Now that we have the user’s country, we can call out to the API for a list of available products.

Each product belongs to some Product Category. Products can have multiple Product Variants, and Product Variants can have multiple Product Templates. For example, “Canvas Wraps” is a product that has multiple Product Variants (square, rectangle, black, white, 6x6 inch, etc…) and each of them has multiple Product Templates (with a single photo, 3 photos, 6 photos, etc…). It belongs to “Home Decor” Product Category. SKU (Stock Keeping Unit) is a string that uniquely identifies a single Product Variant. For example, CanvsWrp-BlkWrp-6x6 is a SKU for a black, square 6x6 inch Canvas Wrap.

The GET products endpoint can give you data to:

  • see which products are available in your region
  • see the starting prices for the products
  • get marketing-worthy content and images for the products

The GET products endpoint takes 4 parameters:

  • countryCode - required - the 2 character (ISO 3166-1 alpha-2) country code that the user is interested in shipping to
  • currencyCode - optional, defaults to “USD” - the currency in which the prices will be represented
  • languageCode - optional, defaults to “en” - the language to have product data returned in
  • all - optional, defaults to false - whether to return all the products that are orderable in the user’s region, or to only return products the user has set up in the product settings page.


This request yields following response:

  "Products": [
      "Id": 154,
      "UId": "Accessory Pouches",
      "Name": "Accessory Pouches",
      "ShortDescription": "A convenient pouch to hold all of your essentials. It's the perfect bag to carry on its own or within another. ",
      "HasAvailableProductVariants": true,
      "HasProductTemplates": true,
      "IsFeatured": false,
      "IsComingSoon": false,
      "MaxZoom": 1.5,
      "RetailPrice": {
        "Price": 9.84,
        "CurrencyCode": "USD",
        "FormattedPrice": "$9.84",
        "CurrencyFormat": "${1}",
        "CurrencyDigits": 2
      "Info": [
          "Content": [
            "A convenient pouch to hold all of your essentials. It's the perfect bag to carry on its own or within another.  Secure zipper closure keeps make-up, jewelry and small essentials safely in place and within reach. Carry this beauty around for that extra oomph."

So now we have a list of products. You may want to only display products which have Product.IsComingSoon property set to false. This is the indication that a new product is getting ready to be launched, but is not yet available for ordering.

Now that we have a list of products that are available, we ping the API to see which Product Variants underneath them are available.

Next Step: Getting Product Variants (SKUs)