DodoPayments.Products (dodo_payments v0.1.0)

Copy Markdown View Source

Product lifecycle operations.

Summary

Types

Parameters for products_create. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/products/products.ts declaration ProductCreateParams.

Parameters for products_list. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/products/products.ts declaration ProductListParams.

Parameters for products_update_files. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/products/products.ts declaration ProductUpdateFilesParams.

Parameters for products_update. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/products/products.ts declaration ProductUpdateParams.

Functions

Calls Dodo operation products_archive (DELETE /products/{id}). Required parameters: none.

Calls Dodo operation products_create (POST /products). Required parameters: :name, :price, :tax_category.

Calls Dodo operation products_create (POST /products). Required parameters: :name, :price, :tax_category.

Calls Dodo operation products_list (GET /products). Required parameters: none. Numbered pagination is zero-based.

Calls Dodo operation products_list (GET /products). Required parameters: none. Numbered pagination is zero-based.

Calls Dodo operation products_list (GET /products). Required parameters: none. Numbered pagination is zero-based.

Calls Dodo operation products_retrieve (GET /products/{id}). Required parameters: none.

Calls Dodo operation products_unarchive (POST /products/{id}/unarchive). Required parameters: none.

Calls Dodo operation products_update (PATCH /products/{id}). Required parameters: none.

Calls Dodo operation products_update (PATCH /products/{id}). Required parameters: none.

Calls Dodo operation products_update (PATCH /products/{id}). Required parameters: none.

Calls Dodo operation products_update_files (PUT /products/{id}/files). Required parameters: :file_name.

Calls Dodo operation products_update_files (PUT /products/{id}/files). Required parameters: :file_name.

Types

create_params()

@type create_params() ::
  %{
    :name => String.t(),
    :price => DodoPayments.RequestTypes.product_price(),
    :tax_category => DodoPayments.Enums.tax_category(),
    optional(:addons) => [String.t()],
    optional(:brand_id) => String.t(),
    optional(:credit_entitlements) => [
      DodoPayments.RequestTypes.product_credit_entitlement()
    ],
    optional(:description) => String.t(),
    optional(:digital_product_delivery) =>
      DodoPayments.RequestTypes.product_digital_delivery_create(),
    optional(:entitlements) => [DodoPayments.RequestTypes.product_entitlement()],
    optional(:license_key_activation_message) => String.t(),
    optional(:license_key_activations_limit) => number(),
    optional(:license_key_duration) =>
      DodoPayments.RequestTypes.license_key_duration(),
    optional(:license_key_enabled) => boolean(),
    optional(:metadata) => DodoPayments.RequestTypes.flat_metadata(),
    optional(:pricing_mode) => DodoPayments.Enums.pricing_mode(),
    optional(String.t()) => DodoPayments.RequestTypes.input_value()
  }
  | DodoPayments.RequestTypes.compatibility_params()

Parameters for products_create. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/products/products.ts declaration ProductCreateParams.

list_params()

@type list_params() ::
  %{
    optional(:page_number) => number(),
    optional(:page_size) => number(),
    optional(:archived) => boolean(),
    optional(:brand_id) => String.t(),
    optional(:recurring) => boolean(),
    optional(String.t()) => DodoPayments.RequestTypes.input_value()
  }
  | DodoPayments.RequestTypes.compatibility_params()

Parameters for products_list. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/products/products.ts declaration ProductListParams.

update_files_params()

@type update_files_params() ::
  %{
    :file_name => String.t(),
    optional(String.t()) => DodoPayments.RequestTypes.input_value()
  }
  | DodoPayments.RequestTypes.compatibility_params()

Parameters for products_update_files. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/products/products.ts declaration ProductUpdateFilesParams.

update_params()

@type update_params() ::
  %{
    optional(:addons) => [String.t()],
    optional(:brand_id) => String.t(),
    optional(:credit_entitlements) => [
      DodoPayments.RequestTypes.product_credit_entitlement()
    ],
    optional(:description) => String.t(),
    optional(:digital_product_delivery) =>
      DodoPayments.RequestTypes.product_digital_delivery_update(),
    optional(:entitlements) => [DodoPayments.RequestTypes.product_entitlement()],
    optional(:image_id) => String.t(),
    optional(:license_key_activation_message) => String.t(),
    optional(:license_key_activations_limit) => number(),
    optional(:license_key_duration) =>
      DodoPayments.RequestTypes.license_key_duration(),
    optional(:license_key_enabled) => boolean(),
    optional(:metadata) => DodoPayments.RequestTypes.flat_metadata(),
    optional(:name) => String.t(),
    optional(:price) => DodoPayments.RequestTypes.product_price(),
    optional(:pricing_mode) => DodoPayments.Enums.pricing_mode(),
    optional(:tax_category) => DodoPayments.Enums.tax_category(),
    optional(String.t()) => DodoPayments.RequestTypes.input_value()
  }
  | DodoPayments.RequestTypes.compatibility_params()

Parameters for products_update. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/products/products.ts declaration ProductUpdateParams.

Functions

archive(client, id, opts \\ [])

@spec archive(DodoPayments.Client.t(), String.t() | integer(), keyword()) ::
  {:ok, nil | DodoPayments.Response.t(nil)} | {:error, Exception.t()}

Calls Dodo operation products_archive (DELETE /products/{id}). Required parameters: none.

Options are request-local.

create(client, params)

@spec create(DodoPayments.Client.t(), create_params()) ::
  {:ok, DodoPayments.Product.t()} | {:error, Exception.t()}

Calls Dodo operation products_create (POST /products). Required parameters: :name, :price, :tax_category.

API parameters must be supplied as a map.

create(client, params, opts)

Calls Dodo operation products_create (POST /products). Required parameters: :name, :price, :tax_category.

The final argument contains request-local options.

list(client)

Calls Dodo operation products_list (GET /products). Required parameters: none. Numbered pagination is zero-based.

Calls the operation with an empty parameter map.

list(client, opts)

Calls Dodo operation products_list (GET /products). Required parameters: none. Numbered pagination is zero-based.

Pass a map for Dodo parameters or a keyword list for request-local options.

list(client, params, opts)

Calls Dodo operation products_list (GET /products). Required parameters: none. Numbered pagination is zero-based.

Accepts both a Dodo parameter map and request-local options.

retrieve(client, id, opts \\ [])

Calls Dodo operation products_retrieve (GET /products/{id}). Required parameters: none.

Options are request-local.

unarchive(client, id, opts \\ [])

@spec unarchive(DodoPayments.Client.t(), String.t() | integer(), keyword()) ::
  {:ok, nil | DodoPayments.Response.t(nil)} | {:error, Exception.t()}

Calls Dodo operation products_unarchive (POST /products/{id}/unarchive). Required parameters: none.

Options are request-local.

update(client, id)

@spec update(DodoPayments.Client.t(), String.t() | integer()) ::
  {:ok, nil} | {:error, Exception.t()}

Calls Dodo operation products_update (PATCH /products/{id}). Required parameters: none.

Calls the operation with an empty parameter map.

update(client, id, opts)

@spec update(
  DodoPayments.Client.t(),
  String.t() | integer(),
  update_params() | nil | keyword()
) ::
  {:ok, nil | DodoPayments.Response.t(nil)} | {:error, Exception.t()}

Calls Dodo operation products_update (PATCH /products/{id}). Required parameters: none.

Pass a map for Dodo parameters or a keyword list for request-local options.

update(client, id, params, opts)

@spec update(
  DodoPayments.Client.t(),
  String.t() | integer(),
  update_params() | nil,
  keyword()
) ::
  {:ok, nil | DodoPayments.Response.t(nil)} | {:error, Exception.t()}

Calls Dodo operation products_update (PATCH /products/{id}). Required parameters: none.

Accepts both a Dodo parameter map and request-local options.

update_files(client, id, params)

@spec update_files(
  DodoPayments.Client.t(),
  String.t() | integer(),
  update_files_params()
) ::
  {:ok, DodoPayments.PresignedFileUpload.t()} | {:error, Exception.t()}

Calls Dodo operation products_update_files (PUT /products/{id}/files). Required parameters: :file_name.

API parameters must be supplied as a map.

update_files(client, id, params, opts)

Calls Dodo operation products_update_files (PUT /products/{id}/files). Required parameters: :file_name.

The final argument contains request-local options.