Shopper Catalog API

Get a Hierarchy's Nodes

Returns all the nodes for the specified hierarchy.

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

In the breadcrumbs metadata, you can identify the parent nodes that a node is associated with. This is useful if you want to improve how your shoppers search your store, for example. See Product and Node Associations in Breadcrumb Metadata.

Filtering

This endpoint supports filtering. For general syntax, see Filtering.

OperatorDescriptionSupported AttributesExample
EqChecks if the values of two operands are equal. If they are, the condition is true.name, slugfilter=eq(name,some-name)
InChecks if the values are included in the specified string. If they are, the condition is true.idfilter=in(id,some-id)

Building breadcrumbs in a storefront

In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in breadcrumbs metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.

An example is shown below:

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

  • Specify the node IDs directly attached to the product in the filter expression.
  • You can include as many node IDs as required.
  • It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.
get/catalog/hierarchies/{hierarchy_id}/nodes

Request

Path parameters

hierarchy_idstring required

The catalog hierarchy ID.

Query parameters

filterstring

This endpoint supports filtering, see Filtering.

page[limit]integer

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]integer

The current offset by number of records, not pages. Offset is zero-based. The maximum records you can offset is 10,000. You would normally increment the page offset by multiples of the page limit to paginate through the results.

Headers

EP-Channelstring

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-Tagstring

Tags are used to refine the eligibility criteria for a rule. Requests populate the catalog rule tag using the EP-Context-Tag header.

accept-languagestring

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

Response

The child nodes of a catalog hierarchy.

Example response

{
  "data": [
    {
      "attributes": {
        "created_at": "1970-01-01T00:00:00.000",
        "published_at": "1970-01-01T00:00:00.000",
        "description": "Formal dresswear",
        "label": "category",
        "name": "Formal dresswear",
        "slug": "formal",
        "curated_products": [
          "8dbb35b2-ef04-477e-974d-e5f3abe6faae"
        ],
        "status": "live",
        "updated_at": "1970-01-01T00:00:00.000"
      },
      "id": "e871df93-c769-49a9-9394-a6fd555b8e8a",
      "relationships": {
        "products": {
          "data": [
            {
              "type": "product"
            }
          ]
        },
        "parent": {
          "data": {
            "type": "node",
            "id": "8fccaa19-dba9-4621-8d11-31a222a68c7c"
          }
        },
        "hierarchy": {
          "data": {
            "type": "hierarchy",
            "id": "8fccaa19-dba9-4621-8d11-31a222a68c7c"
          }
        }
      },
      "type": "node",
      "meta": {
        "language": "en-GB",
        "bread_crumb": [
          "8dbb35b2-ef04-477e-974d-e5f3abe6faae"
        ],
        "breadcrumbs": [
          {
            "id": "e871df93-c769-49a9-9394-a6fd555b8e8a",
            "name": "Formal dresswear",
            "slug": "formal"
          }
        ],
        "has_children": true
      }
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.