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
@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.
@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.
@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.
@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
@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.
@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.
@spec create(DodoPayments.Client.t(), create_params(), keyword()) :: {:ok, DodoPayments.Product.t() | DodoPayments.Response.t(DodoPayments.Product.t())} | {:error, Exception.t()}
Calls Dodo operation products_create (POST /products). Required parameters: :name, :price, :tax_category.
The final argument contains request-local options.
@spec list(DodoPayments.Client.t()) :: {:ok, DodoPayments.Page.Numbered.t(DodoPayments.Product.t())} | {:error, Exception.t()}
Calls Dodo operation products_list (GET /products). Required parameters: none. Numbered pagination is zero-based.
Calls the operation with an empty parameter map.
@spec list(DodoPayments.Client.t(), list_params() | nil | keyword()) :: {:ok, DodoPayments.Page.Numbered.t(DodoPayments.Product.t()) | DodoPayments.Response.t( DodoPayments.Page.Numbered.t(DodoPayments.Product.t()) )} | {:error, Exception.t()}
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.
@spec list(DodoPayments.Client.t(), list_params() | nil, keyword()) :: {:ok, DodoPayments.Page.Numbered.t(DodoPayments.Product.t()) | DodoPayments.Response.t( DodoPayments.Page.Numbered.t(DodoPayments.Product.t()) )} | {:error, Exception.t()}
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.
@spec retrieve(DodoPayments.Client.t(), String.t() | integer(), keyword()) :: {:ok, DodoPayments.Product.t() | DodoPayments.Response.t(DodoPayments.Product.t())} | {:error, Exception.t()}
Calls Dodo operation products_retrieve (GET /products/{id}). Required parameters: none.
Options are request-local.
@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.
@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.
@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.
@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.
@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.
@spec update_files( DodoPayments.Client.t(), String.t() | integer(), update_files_params(), keyword() ) :: {:ok, DodoPayments.PresignedFileUpload.t() | DodoPayments.Response.t(DodoPayments.PresignedFileUpload.t())} | {:error, Exception.t()}
Calls Dodo operation products_update_files (PUT /products/{id}/files). Required parameters: :file_name.
The final argument contains request-local options.