All Collections
Integration
API [Connecting to your product catalog] & API Security
API [Connecting to your product catalog] & API Security

API integration and what is required to connect to your products

D
Written by Dan Davis
Updated over a week ago

We have a variety of integrations with a variety of eCommerce platforms. Please click the relevant section to find out more on what we need to connect to your product catalog and why.


Why do we require these details?

For enterprise clients with API integration, we require the following in order to access your live product details. Without these, we will be unable to connect to your products and you will not be able to use product import or use the add to cart functionality.

The details you provide us remain confidential and are never shared outside of Smartzer.

Ideally, you should provide us with the details for both the production and the development or staging environments. However, if you wish to only provide us with the details for production then that is ok.


Demandware/SFCC

To build an integration to Salesforce Commerce Cloud (SFCC) for product catalogue and add to basket functionality we would require the below items:

  • A ClientID which is generated by their backend system

  • The client must whitelist player.smartzer.com and editor.smartzer.com. The client should whitelist *.smartzer.com so it covers testing servers

  • A list of locales for their site which we can use in the API

  • The base url of the API - this is usually just the domain of the website

We use the Demandware shop products endpoint similar to:

http://hostname:port/dw/shop/v22_6/products/({id},...,{id})?expand={String}&inventory_ids={String}&currency={String}&locale={String}&all_images={Boolean}

And authenticate on it by passing the client_id as a URL parameter.

This enables a direct real-time connection between the client’s product catalog and the Smartzer video tagging platform where full product details can be pulled in simply using the product IDs.

We currently support a number of custom fields beyond the standard API response fields. These can be used for:

  • Price

  • Secondary price (e.g. sale price)

  • Brand name

  • Out of stock message

  • Preferred image type (e.g. Large, medium, hi-res etc)

  • Image URL param

  • Coming soon message

  • Product page URL

  • Variant attributes (Separate from standard variant attributes object)

Other custom fields will require additional work.


Shopify

All you need to do is install the Shopify app found here

For starter, growth, and enterprise packages, we will automatically connect to your product catalog upon the acceptance of billing. These details are stored in an encrypted secret store.

There are several options which can be configured when importing products:

  • Multi language (Optional) Uses Shopify store settings when on

  • Multi currency (Optional) Uses Shopify store settings when on

    • 3rd party currency conversion may be possible although there is currently limited support.

  • Add price to CTA (Buy now / Add to cart) button

  • Replace brand name with product type

  • Allow HTML in the description (Will copy Shopify’s description styling)


Magento

The client must have an API (usually a GET request with a JSON response) that allows us to get information for a list of products via ID/SKU. Smartzer prefers a single endpoint that contains information for all requested products.

This enables a direct real-time connection between the client’s product catalog and the Smartzer video tagging platform where full product details can be pulled in simply using the product IDs.

The API response should contain as many of the below fields as possible/relevant:

  • Brand name (if applicable)

  • Product name

  • Product image(s)

  • Product variants (size/colour) (if supported)

    • Variant name

    • Variant image (if supported)

    • Variant SKU/ID

    • Variant availability (if supported)

    • Variant price (if supported)

  • Product availability / stock information (if supported)

  • Product price

  • Product SKU/ID

  • Product description

  • Either a direct URL to the product or a way to derive the URL from the fields returned

If the integration requires coverage for additional market variations (language/currency):

  • Access to currency endpoint

  • Access to attribute sets

  • Store codes (for different languages)


Woocommerce

For Woocommerce integration, please see the below requirements:

  • Key

  • Secret

  • baseURL of API server

This enables direct realtime connection between the client’s product catalogue and the Smartzer video tagging platform where full product details can be pulled in simply using the product IDs.


BigCommerce

To set up the Smartzer product catalogue and add to basket functionality with BigCommerce we require the following credentials:

  • Client ID of API

  • Client Secret

  • Access Token

All authorisation credentials are saved in an encrypted secret store.

It is possible to configure the API for multi-currency and multi-language.

Here are the steps to obtain those credentials:

1. Navigate to Advanced Settings > API Accounts > Create API Account.

2. Give the account a name (it will only be visible to store users).

3. In the OAuth Scopes section, select read-only under Product.

4. Select Save.

5. Copy the credentials and share with Smartzer

This enables direct realtime connection between the client’s product catalogue and the Smartzer video tagging platform where full product details can be pulled in simply using the product IDs.


Custom Integration

The clients must have an API (usually a GET request with a JSON response) that allows us to get information for a list of products via ID/SKU. Smartzer prefers a single endpoint that contains information for all requested products.

This enables a direct real-time connection between the client’s product catalog and the Smartzer video tagging platform where full product details can be pulled in simply using the product IDs.

The API response should contain as many of the below fields as possible/relevant:

  • Brand name (if applicable)

  • Product name

  • Product image(s)

  • Product variants (size/colour) (if supported)

    • Variant name

    • Variant image (if supported)

    • Variant SKU/ID

    • Variant availability (if supported)

    • Variant price (if supported)

  • Product availability/stock information (if supported)

  • Product price

  • Product SKU/ID

  • Product Description

  • Either a direct URL to the product or a way to derive the URL from the fields returned.

If the integration requires coverage for additional market variations (language/currency):

  • Access to currency endpoint

  • Access to attribute sets

  • Store codes (for different languages)

For the direct Add to Basket functionality, we use postMessage. To receive the postMessage on the client’s website, the following example code can be used on the same page as the iFrame:


Google Merchant Center

In order to integrate with your Google Merchant Centre, we require your GMC ID number. Also, please give standard access to your merchant centre to the following emails:

Please note we do not actually have access to these email accounts, they are simply used for our integration. As such, we cannot make changes to your GMC and the access is essentially read only.

When we receive the required access and ID number we can then begin the integration process.

Did this answer your question?