Skip to main content

Get all Products

GET 

/catalog/products

Retrieves the list of products from the catalog. Only the products in a live status are retrieved.

Catalog Rules

If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. If no catalog rules are configured, the first catalog found is returned. For information about how rules are matched, see Resolving Catalog Rules.

Product and Node Associations

You can see the parent nodes a product is associated within the bread_crumbs and bread_crumb_nodes metadata for each product. For example, this is useful if you want to improve how your shoppers search your store. See Product and Node Associations in Breadcrumb Metadata.

Including Resources

Using the include parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.

ParameterRequiredDescription
component_productsOptionalThe component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle.
main_imageOptionalThe main images associated with a product.
filesOptionalAny files associated with a product.

See Including Resources.

Filtering

This endpoint supports filtering. For general filtering syntax, see Filtering. The following operators and attributes are available when filtering on this endpoint.

OperatorDescriptionSupported AttributesExample
EqChecks if the values of two operands are equal. If they are, the condition is true. For product_types and tags, you can only specify one. For example, filter=eq(product_types,child).name, sku, slug, manufacturer_part_num, upc_ean, product_types, tagsfilter=eq(name,some-name)
InChecks if the values are included in the specified string. If they are, the condition is true. For product_types and tags, you can specify more than one. For example, filter=in(product_types,child,bundle).id, name, sku, slug, manufacturer_part_num, upc_ean, product_types, tagsfilter=in(id,some-id)

Building breadcrumbs in a storefront

In a catalog, you can use a filter to return a list of nodes in a hierarchy structure that a product belongs to. You can use this to build breadcrumbs in your storefront. An example is shown below.

filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)

  • Specify the node Ids in the filter expression.
  • You can have as many node Ids as you want.
  • It does not matter what order you specify the node Ids. The nodes are returned in the order they were last updated.

Including Resources

Using the include parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.

ParameterRequiredDescription
component_productsOptionalThe component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle.
main_imageOptionalThe main images associated with a product.
filesOptionalAny files associated with a product.

See Including Resources.

Request

Query Parameters

    filter string

    This endpoints support filtering. See Filtering.

    page[limit] int64

    Possible values: >= 1

    The maximum number of records per page for this response. You can set this value up to 100. If no page size is set, the page length store setting is used.

    page[offset] int64

    Possible values: <= 10000

    The current offset by number of records, not pages. Offset is zero-based. The maximum records you can offset is 10,000. If no page size is set, the page length store setting is used.

Header Parameters

    accept-language string

    The language and locale your storefront prefers. See Accept-Language.

    EP-Channel string

    The list of channels in which this catalog can be displayed. A channel is the shopping experience, such as a mobile app or web storefront. If empty, the catalog rule matches all channels. The channel will eventually be included in the bearer token that is used for authorization, but currently, you must set the EP-Channel header in your requests.

    EP-Context-Tag string

    Product tags are used to store or assign a key word against a product. The product tag can then be used to describe or label that product. Using product tags means that you can group your products together, for example, by brand, category, subcategory, colors, types, industries, and so on. You can enhance your product list using tags, enabling you to refine your product list and run targeted promotions. Tags are used to refine the eligibility criteria for a rule. Requests populate the catalog rule tag using the EP-Context-Tag header.

Responses

The products of a catalog.

Schema
    meta object

    Contains the results for the entire collection.

    results object

    Total number of results for the entire collection.

    total int64

    Total number of results for the entire collection.

    page object
    limit int64

    The maximum number of records for all pages.

    offset int64

    The current offset by number of pages.

    current int64

    The current number of pages.

    total int64

    The total number of records for the entire collection.

    data object[]
  • Array [
  • attributes object

    A product's attributes.

    published_at date-timenullable

    The date and time a product was published in a catalog.

    base_product boolean

    If this product is a parent product. A parent product is a product that has child products that have been built using the build child products endpoint.

    base_product_id string

    The unique identifier of a parent product.

    commodity_type string

    The commodity type, either physical or digital.

    curated_product boolean

    If a product is curated, then the curated_product attribute with a value of true is displayed. If a product is not curated, the curated_product attribute is not displayed.

    upc_ean string

    The universal product code or european article number of the product.

    manufacturer_part_num string

    The manufacturer part number of the product.

    tags string[]

    A list of tags associated with the product. A tag must be HTML compatible characters excluding commas and will be stored in lowercase letters.

    price_modifiers string[]

    A list of price modifier names.

    created_at date-time

    The date and time a product was created.

    description string

    A description of the product.

    name string

    A name of a product.

    price object

    A collection of one or more currencies objects that consists of the three-letter ISO code of the currencies associated with this price and the amount. This is the product's price.

    property name* Amount

    The three-letter ISO code for the currency associated with this price.

    amount int64

    The price in the lowest denomination for the specified currency. This is a product's list price.

    includes_tax boolean

    Whether this price includes tax.

    shopper_attributes object

    The optional price extension with values in string format, viewable by shoppers.

    property name* string
    tiers object

    The price tier that an item is eligible for based on the quantity purchased. You cannot have conflicting tiers within the same currencies block.

    property name* Tier

    The name of the tier, for example, Pencils.

    minimum_quantity integer

    The minimum quantity of 1 or more defined for the specified price. If a minimum quantity is not specified, an error is returned.

    price object

    A collection of one or more currencies objects that consists of the three-letter ISO code of the currencies associated with this price and the amount. This is the product's price.

    property name* Amount

    The three-letter ISO code for the currency associated with this price.

    amount int64

    The price in the lowest denomination for the specified currency. This is a product's list price.

    includes_tax boolean

    Whether this price includes tax.

    components object

    A bundle is a purchasable product, comprising of one or more products that you want to sell together. You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity.

    property name* Component Product

    The unique identifier of the component, for example, games.

    name string

    The component name is the name that is displayed in your storefront.

    min integernullable

    The minimum number of product options a shopper can select from this component.

    max integernullable

    The maximum number of product options a shopper can select from this component.

    sort_order integernullable

    The sort order of the components. The create a bundle and update a bundle endpoints do not sort the components. You can use the sort_order attribute when programming your storefront to display the components in the order that you want.

    options object[]

    The product options included in a component. This can be the ID of another bundle.

  • Array [
  • id uuid

    A unique identifier of the product you want to add to a component.

    type string

    Possible values: [product]

    Default value: product

    This represents the type of object being returned. Always product.

    quantity integer

    The number of this product option that a shopper must purchase.

    sort_order integernullable

    The sort order of the options. The create a bundle and update a bundle endpoints do not sort the options. You can use the sort_order attribute when programming your storefront to display the options in the order that you want.

    default booleannullable

    The boolean indicates whether the current option is a default option for the component.

  • ]
  • custom_inputs object

    You can allow your shoppers to add custom text to a product when adding product items to their carts. This is useful, for example, if you have a product like a T-shirt that can be personalized or you sell greetings cards that can be printed with your shoppers personalized messages. You can do this using the custom_inputs attribute.

    • You can rename input to something more representative of the input that shoppers are adding, for example, message or front.
    • name is the name that is displayed in your storefront.
    • You can add validation rules. For example, the input field must be a string and/or up to 255 characters in length. The limit is 255 characters.
    property name* Custom Input

    The name of the custom input. You can rename the input to something more representative of the input that shoppers are adding, for example, message or front.

    name string

    The name for the custom text field that is displayed in your storefront.

    validation_rules object[]

    The validation rules for the custom text.

  • Array [
  • type string

    Possible values: [string]

    Default value: string

    This represents the type of object being returned. Must be string.

    options object

    The length of the custom input text field.

    max_length integer

    The number of characters the custom text field can be. You can specify a maximum length up to 255 characters, as the limit is 255 characters.

  • ]
  • required booleannullable

    This is true or false depending on whether the custom text is required.

    sku string

    The unique stock keeping unit of the product.

    slug string

    A label for the product that is used in the URL paths. A slug can contain A to Z, a to z, 0 to 9, hyphen, underscore, and period. Spaces or other special characters like ^, [], *, and $ are not allowed. By default, the product name is used as the slug.

    status string

    The status of the product, either live or draft.

    external_ref stringnullable

    The unique attribute associated with the product. This could be an external reference from a separate company system, for example.

    updated_at date-time

    The date and time a product was updated.

    extensions object

    With extension templates, you can attach a specific set of custom fields to your products in Product Experience Manager. For example, a Book template might contain the attributes, such as ISBN, Author, Number of pages, Year Published, or Condition (New/Used).

    property name* Extension

    The name of the product template.

    property name* object

    The product attributes available for this template.

    id string

    A unique identifier for a product.

    relationships object

    Relationships allow you to move between requests. Includes links to the parent and child products, bundle component products, files, and main images associated with a product.

    parent object

    The details of a parent product. A parent product is a product that has child products that have been built using the Build Child Products endpoint.

    data object

    A product identifier.

    id uuid

    A unique identifier for a product.

    type string

    Possible values: [product]

    This represents the type of object being returned. Always product.

    children object

    The details of a child product. When you configure product variations and variation options for parent products, the child products derived from the parent products are automatically created in Commerce.

    data object[]

    A list of product identifiers.

  • Array [
  • id uuid

    A unique identifier for a product.

    type string

    Possible values: [product]

    This represents the type of object being returned. Always product.

  • ]
  • links object

    Links are used to allow you to move between requests.

    self stringrequired

    Single entities use a self parameter with a link to that specific resource.

    files object

    In Product Experience Manager, products can have associated rich media assets, such as product images or a file containing additional product details.

    data object[]
  • Array [
  • type string

    Possible values: [file]

    This represents the type of object being returned. Always file.

    id uuid

    A unique identifier for a file.

    created_at date-time

    The date and time a file is created.

  • ]
  • main_image object

    In Product Experience Manager, products can also have associated product images.

    data object

    The images associated with a product.

    type string

    Possible values: [main_image]

    This represents the type of object being returned. Always main_image.

    id uuid

    A unique identifier for an image.

    component_products object

    A bundle is a purchasable product, comprising of one or more products that you want to sell together. You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity. You can link to the products that make up your bundle components.

    data object[]

    A list of product identifiers.

  • Array [
  • id uuid

    A unique identifier for a product.

    type string

    Possible values: [product]

    This represents the type of object being returned. Always product.

  • ]
  • links object

    Links are used to allow you to move between requests.

    self stringrequired

    Single entities use a self parameter with a link to that specific resource.

    type string

    This represents the type of object being returned. Always product.

    meta object

    A product's metadata contains information about products, for example, the nodes a product is associated with, any child products, bundle configurations, and so on.

    bread_crumbs object

    The relationship among the array of nodes a product is associated with, demonstrating the linking of the children nodes with the parent nodes. Up to 10 levels of parent nodes are displayed, depending on the number of levels of parent nodes you have.

    property name* string[]
  • Array [
  • string

  • ]
  • bread_crumb_nodes string[]

    An array of parent node IDs that a product is associated with. Up to 10 levels of parent nodes are displayed, depending on the number of levels of parent nodes you have.

    catalog_id string

    A unique identifier of the catalog a product is associated with.

    pricebook_id stringnullable

    The unique identifier of the price book a product is associated with.

    display_price object

    A price formatted for display.

    with_tax object

    A price formatted for display.

    amount integer

    The price in the lowest denomination for the specified currency. This is a product's list price.

    currency string

    The three-letter ISO code of the currencies associated with this price and the amount.

    formatted string

    The format of the price for display.

    without_tax object

    A price formatted for display.

    amount integer

    The price in the lowest denomination for the specified currency. This is a product's list price.

    currency string

    The three-letter ISO code of the currencies associated with this price and the amount.

    formatted string

    The format of the price for display.

    catalog_source string

    Possible values: [pim]

    The source of a catalog. Always pim.

    sale_id string

    With sales pricing, a store can optionally add a sale price to a product price. For example, a store can schedule seasonal pricing on products without creating a new price book and catalog ruleset. Optionally, a store can schedule the date ranges for the sale products. This is the unique identifier of a sale.

    sale_expires date-timenullable

    The date and time a sale expires.

    original_price object

    A collection of one or more currencies objects that consists of the three-letter ISO code of the currencies associated with this price and the amount. This is the product's price.

    property name* Amount

    The three-letter ISO code for the currency associated with this price.

    amount int64

    The price in the lowest denomination for the specified currency. This is a product's list price.

    includes_tax boolean

    Whether this price includes tax.

    original_display_price object

    A price formatted for display.

    with_tax object

    A price formatted for display.

    amount integer

    The price in the lowest denomination for the specified currency. This is a product's list price.

    currency string

    The three-letter ISO code of the currencies associated with this price and the amount.

    formatted string

    The format of the price for display.

    without_tax object

    A price formatted for display.

    amount integer

    The price in the lowest denomination for the specified currency. This is a product's list price.

    currency string

    The three-letter ISO code of the currencies associated with this price and the amount.

    formatted string

    The format of the price for display.

    bundle_configuration object

    A bundle is a purchasable product, comprising of one or more products that you want to sell together. You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity.

    selected_options objectrequired

    The product options included in a component. This can be the ID of another bundle.

    property name* object

    The unique identifier of the component, for example, games.

    property name* int64

    The number of this product option that a shopper must purchase.

    component_products object

    A bundle is a purchasable product, comprising of one or more products that you want to sell together. You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity.

    property name* object
    sale_id string

    With sales pricing, a store can optionally add a sale price to a product price. For example, a store can schedule seasonal pricing on products without creating a new price book and catalog ruleset. Optionally, a store can schedule the date ranges for the sale products. This is the unique identifier of a sale.

    sale_expires date-timenullable

    The date and time a sale expires.

    price object

    A collection of one or more currencies objects that consists of the three-letter ISO code of the currencies associated with this price and the amount. This is the product's price.

    property name* Amount

    The three-letter ISO code for the currency associated with this price.

    amount int64

    The price in the lowest denomination for the specified currency. This is a product's list price.

    includes_tax boolean

    Whether this price includes tax.

    display_price object

    A price formatted for display.

    with_tax object

    A price formatted for display.

    amount integer

    The price in the lowest denomination for the specified currency. This is a product's list price.

    currency string

    The three-letter ISO code of the currencies associated with this price and the amount.

    formatted string

    The format of the price for display.

    without_tax object

    A price formatted for display.

    amount integer

    The price in the lowest denomination for the specified currency. This is a product's list price.

    currency string

    The three-letter ISO code of the currencies associated with this price and the amount.

    formatted string

    The format of the price for display.

    original_price object

    A collection of one or more currencies objects that consists of the three-letter ISO code of the currencies associated with this price and the amount. This is the product's price.

    property name* Amount

    The three-letter ISO code for the currency associated with this price.

    amount int64

    The price in the lowest denomination for the specified currency. This is a product's list price.

    includes_tax boolean

    Whether this price includes tax.

    original_display_price object

    A price formatted for display.

    with_tax object

    A price formatted for display.

    amount integer

    The price in the lowest denomination for the specified currency. This is a product's list price.

    currency string

    The three-letter ISO code of the currencies associated with this price and the amount.

    formatted string

    The format of the price for display.

    without_tax object

    A price formatted for display.

    amount integer

    The price in the lowest denomination for the specified currency. This is a product's list price.

    currency string

    The three-letter ISO code of the currencies associated with this price and the amount.

    formatted string

    The format of the price for display.

    pricebook_id stringnullable
    price_modifiers object

    You can use price modifiers to change the price property of child products. By default, child products inherit the same price as their base products. Using price modifiers, you can enable child products to inherit a different price.

    property name* object

    A name for the modifier. The name must be unique and is case-sensitive.

    modifier_type string

    There are three modifier types.

    • The price_increment type increases the prices of a product.
    • The price_decrement type decreases the price of a product.
    • The price_equals type sets the price of a product to an amount you specify.
    currencies object

    A collection of one or more currencies objects that consists of the three-letter ISO code of the currencies associated with this price and the amount. This is the product's price.

    property name* Amount

    The three-letter ISO code for the currency associated with this price.

    amount int64

    The price in the lowest denomination for the specified currency. This is a product's list price.

    includes_tax boolean

    Whether this price includes tax.

    tiers object

    You can use tiers to allow your store to offer different pricing for minimum quantities of items that your shoppers purchase.

    property name* object

    The name of the tier, such as Pencils.

    sale_id string

    The unique identifier of a sale.

    sale_expires date-timenullable

    The date and time a sale expires.

    display_price object

    A price formatted for display.

    with_tax object

    A price formatted for display.

    amount integer

    The price in the lowest denomination for the specified currency. This is a product's list price.

    currency string

    The three-letter ISO code of the currencies associated with this price and the amount.

    formatted string

    The format of the price for display.

    without_tax object

    A price formatted for display.

    amount integer

    The price in the lowest denomination for the specified currency. This is a product's list price.

    currency string

    The three-letter ISO code of the currencies associated with this price and the amount.

    formatted string

    The format of the price for display.

    original_price object

    A collection of one or more currencies objects that consists of the three-letter ISO code of the currencies associated with this price and the amount. This is the product's price.

    property name* Amount

    The three-letter ISO code for the currency associated with this price.

    amount int64

    The price in the lowest denomination for the specified currency. This is a product's list price.

    includes_tax boolean

    Whether this price includes tax.

    original_display_price object

    A price formatted for display.

    with_tax object

    A price formatted for display.

    amount integer

    The price in the lowest denomination for the specified currency. This is a product's list price.

    currency string

    The three-letter ISO code of the currencies associated with this price and the amount.

    formatted string

    The format of the price for display.

    without_tax object

    A price formatted for display.

    amount integer

    The price in the lowest denomination for the specified currency. This is a product's list price.

    currency string

    The three-letter ISO code of the currencies associated with this price and the amount.

    formatted string

    The format of the price for display.

    variation_matrix object

    The variation_matrix object lists the variation IDs and variation option IDs and their corresponding product IDs that are generated when the variation and variation options are built with a product. If no variations are available, the variation_matrix is empty.

    variations object[]

    If you specified build_rules for a product, the variations object lists the variation option IDs that you specified to include when building your child products. If no build_rules are specified, all the variation and variation options available for a product are displayed. If a product does not have any variations, then the variations object is not displayed.

  • Array [
  • id uuid

    A unique identifier of a variation.

    name string

    The name of a variation.

    sort_order integernullable

    If you specified a sort_order when creating your variations and variation options, then use the sort_order value to program your storefront to display the variations and variation options in the order that you want.

    option object

    The options available for a variation.

    id uuid

    A unique identifier for an option.

    name string

    The name of the option.

    sort_order integernullable

    If you specified a sort_order when creating your variations and variation options, then use the sort_order value to program your storefront to display the variations and variation options in the order that you want.

    description string

    The option description to display to customers.

    options object[]

    The options available for this variation.

  • Array [
  • id uuid

    A unique identifier for an option.

    name string

    The name of the option.

    sort_order integernullable

    If you specified a sort_order when creating your variations and variation options, then use the sort_order value to program your storefront to display the variations and variation options in the order that you want.

    description string

    The option description to display to customers.

  • ]
  • ]
  • child_option_ids string[]nullable

    An array of variation options IDs that a child product has.

    child_variations object[]nullable

    If this is a child product, the child_variations object lists the variation option IDs that define this child product.

  • Array [
  • id uuid

    A unique identifier of a variation.

    name string

    The name of a variation.

    sort_order integernullable

    If you specified a sort_order when creating your variations and variation options, then use the sort_order value to program your storefront to display the variations and variation options in the order that you want.

    option object

    The options available for a variation.

    id uuid

    A unique identifier for an option.

    name string

    The name of the option.

    sort_order integernullable

    If you specified a sort_order when creating your variations and variation options, then use the sort_order value to program your storefront to display the variations and variation options in the order that you want.

    description string

    The option description to display to customers.

    options object[]

    The options available for this variation.

  • Array [
  • id uuid

    A unique identifier for an option.

    name string

    The name of the option.

    sort_order integernullable

    If you specified a sort_order when creating your variations and variation options, then use the sort_order value to program your storefront to display the variations and variation options in the order that you want.

    description string

    The option description to display to customers.

  • ]
  • ]
  • product_types string[]

    Commerce automatically assigns types to the products you create. In Commerce Manager, you can see at a glance the product types in a list of a products. In addition, you can filter on product types in both the API and Commerce Manager.

    Product types can also be used in catalogs. For example, in your catalog, you can filter on parent so that only your parent products are displayed in your storefront.

    Products have one of the following types:

    • standard - Standard products are a standalone products.
    • parent - A parent product is a product that has child products that have been built using the Build Child Products endpoint.
    • child - When you configure product variations and variation options for parent products, the child products derived from the parent products are automatically created in Commerce.
    • bundle - A bundle is a purchasable product, comprising two or more standalone products (in other words, components) to be sold together.
    language string

    If you storefront supports multiple languages, your storefront's preferred language and locale.

  • ]
  • links object

    Links allow you to move between requests.

    self urinullable

    Single entities use a self parameter with a link the specific resource.

    first urinullable

    Always the first page.

    last urinullable

    This is null if there is only one page.

    prev urinullable

    This is null if there is only one page.

    next urinullable

    This is null if there is only one page.

Loading...