# BigCommerce

BigCommerce is an eCommerce platform to help retailers and brands create and manage their online businesses.

BigCommerce integration replicates data using the [BigCommerce REST API](https://developer.bigcommerce.com/).

See the [Schema](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-BigCommerce.htm#Schema) section for a list of objects available for replication.

## Preparing for authentication

To access your data, you need to authenticate the connection with your account credentials.

Information noteMake sure that the account you use has read access to the tables you want to fetch.

To retrieve your API credentials:

1. Log into your [BigCommerce account](https://login.bigcommerce.com/login) as the store owner.

2. Click Advanced Settings &gt; API Accounts. The Store API Accounts page is displayed.

3. Click Create API Account.

4. In the Name field, enter a name for your app.

5. In the OAuth Scopes section, set the following permission fields to read-only:

   * Customers.
   * Marketing.
   * Orders.
   * Products.

6. Click Save. The account is created.

7. From the pop-up window, download the .txt file containing your API credentials.

   If you are not prompted to download the .txt file or encounter other issues, contact [BigCommerce support](https://support.bigcommerce.com/s/?language=en_US).

8. Open the file and copy the credentials.

## Creating the connection

For more information, see [Connecting to SaaS applications](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm).

1. Fill in the required connection properties.

2. Provide a name for the connection in Connection name.

3. Select Open connection metadata to define metadata for the connection when it has been created.

4. Click Create.

Connection settings

| Setting | Description |
| --- | --- |
| Data gateway | Select a Data Movement gateway if required by your use case.<br><br>Information note<br><br>This field is not available with the Qlik Talend Cloud Starter subscription, as it does not support Data Movement gateway. If you have another subscription tier and do not want to use Data Movement gateway, select None.<br><br>For information on the benefits of Data Movement gateway and use cases that require it, see [Qlik Data Gateway - Data Movement](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm). |
| Start Date | Enter the date, in the format `MM/DD/YYYY`, from which the data must be replicated from your source to your target. |
| Client ID | Client ID. |
| Access Token | Access token. |
| Store Hash | Store hash.<br><br>The value between `stores/` and `/v3/` in the API path is your store hash. For example: If the API path were https://api.bigcommerce.com/stores/123456/v3/, the store hash would be 123456. |

## Schema

Information note

Schemas and naming conventions can change from version to version. It is recommended to verify your version before continuing.

Depending on your destination, table and column names may not appear as they are outlined below.

### coupons

The `coupons` table contains info about the coupons in your BigCommerce store.

Information note **Tip:** This table uses Full Table Replication, which means all records will be replicated during every replication job. To avoid re-replicating unnecessary data, create a second BigCommerce integration in your Stitch account (you can even use the same BigCommerce API credentials) and set the integration to replicate every 12 or 24 hours.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [BigCommerce API method](https://developer.bigcommerce.com/api-reference/marketing/marketing-api/coupons/getallcoupons "Opens in new tab: BigCommerce API method") |

coupons table foreign keys

| Join coupons with | on |
| --- | --- |
| [orders](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-BigCommerce.htm#orders) | ```<br>coupons.id = orders.coupons.coupon_id<br>```<br><br>```<br>coupons.id = orders.products.applied_discounts.id<br>``` |

coupons table schema

| **amount**<br><br><br>NUMBER |
| --- |
| **applies\_to**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>entity: STRING</li><li>ids: ARRAY, which is also a nested data structure.</li></ul> |
| **code**<br><br><br>STRING |
| **date\_created**<br><br><br>DATE-TIME |
| **enabled**<br><br><br>BOOLEAN |
| **expires**<br><br><br>DATE-TIME |
| **id**<br><br><br>INTEGER |
| **max\_uses**<br><br><br>INTEGER |
| **max\_uses\_per\_customer**<br><br><br>INTEGER |
| **min\_purchase**<br><br><br>NUMBER |
| **name**<br><br><br>STRING |
| **num\_uses**<br><br><br>INTEGER |
| **restricted\_to**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>countries: ARRAY, which is also a nested data structure.</li></ul> |
| **shipping\_methods**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **type**<br><br><br>STRING |

### customers

The `customers` table contains info about the customers in your BigCommerce store.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | date\_modified |
| **Useful links** | [BigCommerce API method](https://developer.bigcommerce.com/api-reference/customer-subscribers/customers-api/customers/getallcustomers "Opens in new tab: BigCommerce API method") |

customers table foreign keys

| Join customers with | on |
| --- | --- |
| [orders](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-BigCommerce.htm#orders) | ```<br>customers.id = orders.customer_id<br>``` |

customers table schema

| **accepts\_marketing**<br><br><br>BOOLEAN |
| --- |
| **company**<br><br><br>STRING |
| **customer\_group\_id**<br><br><br>INTEGER |
| **date\_created**<br><br><br>DATE-TIME |
| **date\_modified**<br><br><br>DATE-TIME |
| **email**<br><br><br>STRING |
| **first\_name**<br><br><br>STRING |
| **form\_fields**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>name: STRING</li><li>value: STRING</li></ul> |
| **id**<br><br><br>INTEGER |
| **last\_name**<br><br><br>STRING |
| **notes**<br><br><br>STRING |
| **phone**<br><br><br>STRING |
| **registration\_ip\_address**<br><br><br>STRING |
| **reset\_pass\_on\_login**<br><br><br>BOOLEAN |
| **store\_credit**<br><br><br>NUMBER |
| **tax\_exempt\_category**<br><br><br>STRING |

### orders

The `orders` table contains info about the orders in your BigCommerce store.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | date\_modified |
| **Useful links** | [BigCommerce API method](https://developer.bigcommerce.com/Content/rest-management/orders#get-all-orders "Opens in new tab: BigCommerce API method") |

orders table foreign keys

| Join orders with | on |
| --- | --- |
| [coupons](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-BigCommerce.htm#coupons) | ```<br>orders.coupons.coupon_id = coupons.id<br>```<br><br>```<br>orders.products.applied_discounts.id = coupons.id<br>``` |
| [customers](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-BigCommerce.htm#customers) | ```<br>orders.customer_id = customers.id<br>``` |
| [products](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-BigCommerce.htm#products) | ```<br>orders.products.product_id = products.id<br>```<br><br>```<br>orders.products.parent_order_product_id = products.id<br>```<br><br>```<br>orders.products.product_id = products.images.product_id<br>```<br><br>```<br>orders.products.parent_order_product_id = products.images.product_id<br>```<br><br>```<br>orders.products.product_id = products.related_products.items<br>```<br><br>```<br>orders.products.parent_order_product_id = products.related_products.items<br>```<br><br>```<br>orders.products.product_id = products.variants.product_id<br>```<br><br>```<br>orders.products.parent_order_product_id = products.variants.product_id<br>``` |

orders table schema

| **base\_handling\_cost**<br><br><br>NUMBER |
| --- |
| **base\_shipping\_cost**<br><br><br>NUMBER |
| **base\_wrapping\_cost**<br><br><br>NUMBER |
| **billing\_address**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>city: STRING</li><li>company: STRING</li><li>country: STRING</li><li>country_iso2: STRING</li><li>email: STRING</li><li>first_name: STRING</li><li>form_fields: ARRAY, which is also a nested data structure.											<ul><li>name: STRING</li><li>value: STRING</li></ul></li><li>last_name: STRING</li><li>phone: STRING</li><li>state: STRING</li><li>street_1: STRING</li><li>street_2: STRING</li><li>zip: STRING</li></ul> |
| **cart\_id**<br><br><br>STRING |
| **channel\_id**<br><br><br>INTEGER |
| **coupon\_discount**<br><br><br>NUMBER |
| **coupons**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>amount: NUMBER</li><li>code: STRING</li><li>coupon_id: INTEGER</li><li>discount: NUMBER</li><li>id: INTEGER</li><li>order_id: INTEGER</li><li>type: STRING</li></ul> |
| **currency\_code**<br><br><br>STRING |
| **currency\_exchange\_rate**<br><br><br>NUMBER |
| **currency\_id**<br><br><br>INTEGER |
| **custom\_status**<br><br><br>STRING |
| **customer\_id**<br><br><br>INTEGER |
| **customer\_message**<br><br><br>STRING |
| **date\_created**<br><br><br>DATE-TIME |
| **date\_modified**<br><br><br>DATE-TIME |
| **date\_shipped**<br><br><br>DATE-TIME |
| **default\_currency\_code**<br><br><br>STRING |
| **default\_currency\_id**<br><br><br>INTEGER |
| **discount\_amount**<br><br><br>STRING |
| **ebay\_order\_id**<br><br><br>STRING |
| **external\_id**<br><br><br>STRING |
| **external\_merchant\_id**<br><br><br>STRING |
| **external\_source**<br><br><br>STRING |
| **form\_fields**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>name: STRING</li><li>value: STRING</li></ul> |
| **geoip\_country**<br><br><br>STRING |
| **geoip\_country\_iso2**<br><br><br>STRING |
| **gift\_certificate\_amount**<br><br><br>NUMBER |
| **handling\_cost\_ex\_tax**<br><br><br>NUMBER |
| **handling\_cost\_inc\_tax**<br><br><br>NUMBER |
| **handling\_cost\_tax**<br><br><br>NUMBER |
| **handling\_cost\_tax\_class\_id**<br><br><br>INTEGER |
| **id**<br><br><br>INTEGER |
| **ip\_address**<br><br><br>STRING |
| **is\_deleted**<br><br><br>BOOLEAN |
| **is\_email\_opt\_in**<br><br><br>BOOLEAN |
| **items\_shipped**<br><br><br>INTEGER |
| **items\_total**<br><br><br>INTEGER |
| **order\_is\_digital**<br><br><br>BOOLEAN |
| **order\_source**<br><br><br>STRING |
| **payment\_method**<br><br><br>STRING |
| **payment\_provider\_id**<br><br><br>STRING |
| **payment\_status**<br><br><br>STRING |
| **products**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>applied_discounts: ARRAY, which is also a nested data structure.											<ul><li>amount: NUMBER</li><li>code: STRING</li><li>id: STRING</li><li>name: STRING</li><li>type: STRING</li></ul></li><li>base_cost_price: NUMBER</li><li>base_price: NUMBER</li><li>base_total: NUMBER</li><li>base_wrapping_cost: NUMBER</li><li>bin_picking_number: STRING</li><li>cost_price_ex_tax: NUMBER</li><li>cost_price_inc_tax: NUMBER</li><li>cost_price_tax: NUMBER</li><li>depth: STRING</li><li>ebay_item_id: STRING</li><li>ebay_transaction_id: STRING</li><li>event_date: DATE-TIME</li><li>event_name: STRING</li><li>external_id: INTEGER, STRING</li><li>fixed_shipping_cost: NUMBER</li><li>height: STRING</li><li>id: INTEGER</li><li>is_bundled_product: BOOLEAN</li><li>is_refunded: BOOLEAN</li><li>name: STRING</li><li>option_set_id: INTEGER</li><li>order_address_id: INTEGER</li><li>order_id: INTEGER</li><li>parent_order_product_id: INTEGER</li><li>price_ex_tax: NUMBER</li><li>price_inc_tax: NUMBER</li><li>price_tax: NUMBER</li><li>product_id: INTEGER</li><li>product_options: ARRAY, which is also a nested data structure.											<ul><li>display_name: STRING</li><li>display_style: STRING</li><li>display_value: STRING</li><li>id: INTEGER</li><li>name: STRING</li><li>option_id: INTEGER</li><li>order_product_id: INTEGER</li><li>product_option_id: INTEGER</li><li>type: STRING</li><li>value: NUMBER</li></ul></li><li>quantity: INTEGER</li><li>quantity_refunded: INTEGER</li><li>quantity_shipped: INTEGER</li><li>refund_amount: NUMBER</li><li>return_id: INTEGER</li><li>sku: STRING</li><li>total_ex_tax: NUMBER</li><li>total_inc_tax: NUMBER</li><li>total_tax: NUMBER</li><li>type: STRING</li><li>weight: NUMBER</li><li>width: STRING</li><li>wrapping_cost_ex_tax: NUMBER</li><li>wrapping_cost_inc_tax: NUMBER</li><li>wrapping_cost_tax: NUMBER</li><li>wrapping_message: STRING</li><li>wrapping_name: STRING</li></ul> |
| **refunded\_amount**<br><br><br>NUMBER |
| **shipping\_address\_count**<br><br><br>INTEGER |
| **shipping\_addresses**<br><br><br>ARRAY<br><br><ul><li>base_cost: NUMBER</li><li>base_handling_cost: NUMBER</li><li>city: STRING</li><li>company: STRING</li><li>cost_ex_tax: NUMBER</li><li>cost_inc_tax: NUMBER</li><li>cost_tax: NUMBER</li><li>cost_tax_class_id: INTEGER</li><li>country: STRING</li><li>country_iso2: STRING</li><li>email: STRING</li><li>first_name: STRING</li><li>form_fields: ARRAY, which is also a nested data structure.											<ul><li>name: STRING</li><li>value: STRING</li></ul></li><li>handling_cost_ex_tax: NUMBER</li><li>handling_cost_inc_tax: NUMBER</li><li>handling_cost_tax: NUMBER</li><li>handling_cost_tax_class_id: INTEGER</li><li>id: INTEGER</li><li>items_shipped: INTEGER</li><li>items_total: INTEGER</li><li>last_name: STRING</li><li>order_id: INTEGER</li><li>phone: STRING</li><li>shipping_method: STRING</li><li>shipping_zone_id: INTEGER</li><li>shipping_zone_name: STRING</li><li>state: STRING</li><li>street_1: STRING</li><li>street_2: STRING</li><li>zip: STRING</li></ul> |
| **shipping\_cost\_ex\_tax**<br><br><br>NUMBER |
| **shipping\_cost\_inc\_tax**<br><br><br>NUMBER |
| **shipping\_cost\_tax**<br><br><br>NUMBER |
| **shipping\_cost\_tax\_class\_id**<br><br><br>INTEGER |
| **staff\_notes**<br><br><br>STRING |
| **status**<br><br><br>STRING |
| **status\_id**<br><br><br>INTEGER |
| **store\_credit\_amount**<br><br><br>NUMBER |
| **subtotal\_ex\_tax**<br><br><br>NUMBER |
| **subtotal\_inc\_tax**<br><br><br>NUMBER |
| **subtotal\_tax**<br><br><br>NUMBER |
| **tax\_provider\_id**<br><br><br>STRING |
| **total\_ex\_tax**<br><br><br>NUMBER |
| **total\_inc\_tax**<br><br><br>NUMBER |
| **total\_tax**<br><br><br>NUMBER |
| **wrapping\_cost\_ex\_tax**<br><br><br>NUMBER |
| **wrapping\_cost\_inc\_tax**<br><br><br>NUMBER |
| **wrapping\_cost\_tax**<br><br><br>NUMBER |
| **wrapping\_cost\_tax\_class\_id**<br><br><br>INTEGER |

### products

The `products` table contains info about the products in your BigCommerce store.

**Note**: During the initial replication job for a BigCommerce integration, all products will be replicated. On subsequent replication jobs, only new and updated product records will be replicated.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | date\_modified |
| **Useful links** | [BigCommerce API method](https://developer.bigcommerce.com/api-reference/catalog/catalog-api/products/getproducts "Opens in new tab: BigCommerce API method") |

products table foreign keys

| Join products with | on |
| --- | --- |
| [orders](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-BigCommerce.htm#orders) | ```<br>products.id = orders.products.product_id<br>```<br><br>```<br>products.images.product_id = orders.products.product_id<br>```<br><br>```<br>products.related_products.items = orders.products.product_id<br>```<br><br>```<br>products.variants.product_id = orders.products.product_id<br>```<br><br>```<br>products.id = orders.products.parent_order_product_id<br>```<br><br>```<br>products.images.product_id = orders.products.parent_order_product_id<br>```<br><br>```<br>products.related_products.items = orders.products.parent_order_product_id<br>```<br><br>```<br>products.variants.product_id = orders.products.parent_order_product_id<br>``` |

products table schema

| **availability**<br><br><br>STRING |
| --- |
| **availability\_description**<br><br><br>STRING |
| **base\_variant\_id**<br><br><br>INTEGER |
| **bin\_picking\_number**<br><br><br>STRING |
| **brand\_id**<br><br><br>INTEGER |
| **brand\_name**<br><br><br>STRING |
| **bulk\_pricing\_rules**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>amount: NUMBER</li><li>id: INTEGER</li><li>quantity_max: INTEGER</li><li>quantity_min: INTEGER</li><li>type: STRING</li></ul> |
| **calculated\_price**<br><br><br>NUMBER |
| **categories**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **condition**<br><br><br>STRING |
| **cost\_price**<br><br><br>NUMBER |
| **custom\_fields**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: INTEGER</li><li>name: STRING</li><li>value: STRING</li></ul> |
| **custom\_url**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>is_customized: BOOLEAN</li><li>url: STRING</li></ul> |
| **date\_created**<br><br><br>DATE-TIME |
| **date\_modified**<br><br><br>DATE-TIME |
| **depth**<br><br><br>NUMBER |
| **description**<br><br><br>STRING |
| **fixed\_cost\_shipping\_price**<br><br><br>NUMBER |
| **gift\_wrapping\_options\_list**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **gift\_wrapping\_options\_type**<br><br><br>STRING |
| **gtin**<br><br><br>STRING |
| **height**<br><br><br>NUMBER |
| **id**<br><br><br>INTEGER |
| **images**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>date_modified: DATE-TIME</li><li>description: STRING</li><li>id: INTEGER</li><li>image_file: STRING</li><li>is_thumbnail: BOOLEAN</li><li>product_id: INTEGER</li><li>sort_order: INTEGER</li><li>url_standard: STRING</li><li>url_thumbnail: STRING</li><li>url_tiny: STRING</li><li>url_zoom: STRING</li></ul> |
| **inventory\_level**<br><br><br>INTEGER |
| **inventory\_tracking**<br><br><br>STRING |
| **inventory\_warning\_level**<br><br><br>INTEGER |
| **is\_condition\_shown**<br><br><br>BOOLEAN |
| **is\_featured**<br><br><br>BOOLEAN |
| **is\_free\_shipping**<br><br><br>BOOLEAN |
| **is\_preorder\_only**<br><br><br>BOOLEAN |
| **is\_price\_hidden**<br><br><br>BOOLEAN |
| **is\_visible**<br><br><br>BOOLEAN |
| **layout\_file**<br><br><br>STRING |
| **map\_price**<br><br><br>NUMBER |
| **meta\_description**<br><br><br>STRING |
| **meta\_keywords**<br><br><br>STRING |
| **mpn**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **open\_graph\_description**<br><br><br>STRING |
| **open\_graph\_title**<br><br><br>STRING |
| **open\_graph\_type**<br><br><br>STRING |
| **open\_graph\_use\_image**<br><br><br>BOOLEAN |
| **open\_graph\_use\_meta\_description**<br><br><br>BOOLEAN |
| **open\_graph\_use\_product\_name**<br><br><br>BOOLEAN |
| **option\_set\_display**<br><br><br>STRING |
| **option\_set\_id**<br><br><br>INTEGER |
| **order\_quantity\_maximum**<br><br><br>INTEGER |
| **order\_quantity\_minimum**<br><br><br>INTEGER |
| **page\_title**<br><br><br>STRING |
| **preorder\_message**<br><br><br>STRING |
| **preorder\_release\_date**<br><br><br>STRING |
| **price**<br><br><br>NUMBER |
| **price\_hidden\_label**<br><br><br>STRING |
| **product\_tax\_code**<br><br><br>STRING |
| **related\_products**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **retail\_price**<br><br><br>NUMBER |
| **reviews\_count**<br><br><br>INTEGER |
| **reviews\_rating\_sum**<br><br><br>INTEGER |
| **sale\_price**<br><br><br>NUMBER |
| **search\_keywords**<br><br><br>STRING |
| **sku**<br><br><br>STRING |
| **sort\_order**<br><br><br>INTEGER |
| **tax\_class\_id**<br><br><br>INTEGER |
| **total\_sold**<br><br><br>INTEGER |
| **type**<br><br><br>STRING |
| **upc**<br><br><br>STRING |
| **variants**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>bin_picking_number: STRING</li><li>calculated_price: NUMBER</li><li>cost_price: NUMBER</li><li>depth: NUMBER</li><li>fixed_cost_shipping_price: NUMBER</li><li>height: NUMBER</li><li>id: INTEGER</li><li>image_url: STRING</li><li>inventory_level: INTEGER</li><li>inventory_warning_level: INTEGER</li><li>is_free_shipping: BOOLEAN</li><li>map_price: NUMBER</li><li>option_values: ARRAY, which is also a nested data structure.											<ul><li>id: INTEGER</li><li>label: STRING</li><li>option_display_name: STRING</li><li>option_id: INTEGER</li></ul></li><li>price: NUMBER</li><li>product_id: INTEGER</li><li>purchasing_disabled: BOOLEAN</li><li>purchasing_disabled_message: STRING</li><li>sale_price: NUMBER</li><li>sku: STRING</li><li>sku_id: INTEGER</li><li>upc: STRING</li><li>weight: NUMBER</li><li>width: NUMBER</li></ul> |
| **videos**<br><br><br>ARRAY<br><br><ul><li>description: STRING</li><li>id: INTEGER</li><li>length: STRING</li><li>product_id: INTEGER</li><li>sort_order: INTEGER</li><li>title: STRING</li><li>type: STRING</li><li>video_id: STRING</li></ul> |
| **view\_count**<br><br><br>INTEGER |
| **warranty**<br><br><br>STRING |
| **weight**<br><br><br>NUMBER |
| **width**<br><br><br>NUMBER |