Connecting to BigCommerce

BigCommerce is the leading e-commerce platform for running an online store.

Data integration: Skyvia supports importing data to and from BigCommerce, exporting BigCommerce data to CSV files, replicating BigCommerce data to relational databases, and synchronizing BigCommerce data with other cloud apps and relational databases.

Backup: Skyvia Backup supports BigCommerce backup.

Query: Skyvia Query supports BigCommerce.

BigCommerce-Specific Features and Limitations

Skyvia has the following limitations for BigCommerce:

Synchronization and Replication with Incremental Updates enabled are not supported for objects without DateCreated and DateModified fields. Both fields must be present for this functionality. Thus, synchronization and replication with incremental updates are supported only for Customers, Products, and Orders objects.
Skyvia supports only the Insert operation for ProductVideos and only Insert and Delete operations for ProductImages.
The following BigCommerce objects are read-only: BlogTags, Countries, CustomerAddressCustomFields*, CustomerCustomFields*, OrderCoupons, OrderMessages, OrderProductOptions*, OrderProducts*, OrderShippingAddresses*, OrderStatuses, OrderTaxes, PaymentMethods, ProductConfigurableFields, ProductGoogleProductSearch, ProductOptions, ProductReviews, States, Store, TaxClasses.
Some of the BigCommerce objects can be accessed only via their parent objects. For example, to query ProductCustomFields, BigCommerce API requires the id of the corresponding Customer. To get ProductVariants records, Shopify API requires the id of the corresponding Product.
 
Skyvia does not require this id of the parent object from user. If you don't specify the ids of the parent objects (for example, in a filter), Skyvia queries all the parent object records first, takes their ids, and then queries child object records for each parent object record. This allows querying child objects without knowing their parents, but this method takes much time and consumes many API calls. It uses at least one API call for every parent object record (for example, product). Thus, working, for example, with ProductVariants can be slow.
 
Because of this, it is strongly recommended to use filters on the parent object fields when querying data from such child objects. This reduces the number of parent object records, for which child object data must be queried.

* Some of the BigCommerce tables store complex structured data. These are the following objects: Orders, OrderShipments, objects that can have custom fields and some other objects.  For example, an order can have several lines and several shipping addresses. Skyvia represents this information in such tables as fields in the JSON format. In case of Orders, the fields are named Products and ShippingAddresses. Here is an example of the Products field value from the Orders table:

[
  {
    "Id": 37,
    "ProductId": 77,
    "Name": "[Sample] Fog Linen Chambray Towel - Beige Stripe",
    "Sku": "SLCTBS-70D1759E",
    "PriceExTax": 49,
    "PriceIncTax": 49,
    "Quantity": 1,
    "ProductOptions": [
      {
        "Id": 29,
        "OptionId": 18,
        "OrderProductId": 37,
        "ProductOptionId": 108,
        "DisplayName": "Size",
        "DisplayValue": "L",
        "Value": "71",
        "Type": "Multiple choice",
        "Name": "Apparel sizes",
        "DisplayStyle": "Rectangle"
      },
      {
        "Id": 30,
        "OptionId": 3,
        "OrderProductId": 37,
        "ProductOptionId": 133,
        "DisplayName": "Color",
        "DisplayValue": "Yellow",
        "Value": "12",
        "Type": "Swatch",
        "Name": "Colors"
      }
    ],
    "OrderId": 128,
    "OrderAddressId": 36,
    "Type": "physical",
    "BasePrice": 49,
    "PriceTax": 0,
    "BaseTotal": 0,
    "TotalExTax": 49,
    "TotalIncTax": 49,
    "TotalTax": 0,
    "Weight": 0,
    "BaseCostPrice": 0,
    "CostPriceIncTax": 0,
    "CostPriceExTax": 0,
    "CostPriceTax": 0,
    "IsRefunded": false,
    "RefundAmount": 0,
    "ReturnId": 0,
    "BaseWrappingCost": 0,
    "WrappingCostExTax": 0,
    "WrappingCostIncTax": 0,
    "WrappingCostTax": 0,
    "QuantityShipped": 0,
    "FixedShippingCost": 0,
    "OptionSetId": 14
  }
]

For user convenience, lines of these objects are also available as separate records via read-only tables with names, containing the name of the corresponding parent table and its JSON fields: OrderShippingAddresses, OrderProducts, OrderProductOptions, CustomerCustomFields, etc.

Since these tables (presenting JSON data in table form) are read-only, they are not available in Import packages as a target or in Synchronization packages. To modify lines or shipping addresses of an order, etc. you need to provide values in JSON format for the corresponding field of the corresponding main table - Orders, etc.

These tables are available in backup packages, but you cannot restore data to these tables, because they are read-only. Since they store the same information as the corresponding field of the corresponding main tables, you don't actually need to backup them. All the information in such tables is present in the corresponding main tables, and you can back up and restore data in the main table only.

BigCommerce API Versions Support

Skyvia supports both BigCommerce API v2 and API v3 connections. Please note that the lists of objects and their structure is different for BigCommerce API v2 and API v3. The main differences are connected with objects, storing data about products, their variants, options, prices, brands, etc.

Here are the lists of objects, that are supported via API v3, and thus, have different data structure in API v2 and v3 connections:

API v3

API v2

Brands
Categories
ProductsBulkPricingRules
ProductCustomFields
ProductImages
ProductReviews
ProductComplexRules
ComplexRulesCondition
Products
ProductVariants
ProductVideos

 

 

ProductVariantOptionValues
ProductVariantOptions
VariantOptionValues.

 

 

 

BrandMetafields
CategoryMetafields
ProductMetafields
ProductVariantMetafields
PriceLists
PriceListRecords
ProductModifiers
ProductModifiersValues
CatalogSummary

 

Brands
Categories
ProductsBulkPricingRules
ProductCustomFields
ProductImages
ProductReviews
ProductRules
Products
ProductSkus
ProductVideos

 

 

OptionSets
Options
OptionSetsOptions
OptionValues
ProductOptions

 

ProductConfigurableFields
ProductGoogleProductSearch

Part of the objects (the first list) have clear counterparts in API v3 and v2, and have just different internal structure. However, product options have completely different structure, and the objects, storing them, don't have such a clear counterparts. Besides, BigCommerce API v3 provides access to new objects, not available via API v2, for example, metafields for brands, categories, products, and product variants, etc.

Other BigCommerce objects are accessed via API v2 in both API v2 and API v3 connections.

Creating BigCommerce Connections

Skyvia supports connecting to BigCommerce both using legacy Basic authentication and OAuth authentication (using Store Credentials). Connections with OAuth authentication, using App Credentials cannot be manually created by the user.

Note that Basic authentication authentication is not supported for API v3 connections. BigCommerce strongly recommends using OAuth authentication, and Basic authentication support is left in Skyvia for compatibility purposes for API v2 connections.

 

OAuth Authentication

To connect to BigCommerce, using OAuth authentication (Store Credentials), you need to set the following parameters:

BigCommerce API Version to use - v2 or v3.
Authentication - select Store Credentials for OAuth authentication.
Store Id - the store hash from the API Path. For example, when you log in to your BigCommerce store Control Panel, an URL, similar to the following, opens in your browser: https://store-kj3jh4c.mybigcommerce.com/manage/dashboard . The part of the URL, highlighted with bold, is the store Id required.
Client Id - Client Id of your API account. See how to find it below.
Access Token - the OAuth access token to login with. See how to find it below.

bigcommerce-connection-editor-store-credentials

 

Creating a connection, using App Credentials authentication manually is not possible.

 

Basic Authentication

Note that Basic Authentication is considered deprecated. It uses BigCommerce legacy API accounts that cannot be created in new BigCommerce stores, created after July 31, 2018.

To connect to BigCommerce, using basic authentication you need to specify the url to connect to and the user name and authentication token to login.

bigcommerce-connection-editor

You need to specify the following parameters for a basic authentication connection:

API Version - only API v2 supports basic authentication.
Authentication - select Basic.
URL - API Path - the path where all XML requests to BigCommerce should be sent.
User Id - the user name to login with.  
Authentication Token - an automatically generated key that is used that must be included in the API requests to BigCommerce.
 
To get the URL, User Id, and Authentication Token, sign in to BigCommerce, point to the Settings link in the bottom left corner of the page, and then in the Advanced Settings column click the Legacy API Settings link. After this, you can find all the necessary parameters in the opened Legacy API Account Details. Copy the Username parameter to the User Id box, API Path parameter to the URL box, and API Token parameter to the Authentication Token box.

 

Metadata Cache and Use Custom Fields

Optionally, you can also change value for the Metadata Cache and Use Custom Fields connection parameter

Metadata Cache - Determines how often to update cached metadata for the connection. By default, Skyvia caches metadata of available objects for cloud sources. You can configure how often the cache is refreshed automatically or reset in manually on the Connection Details page of the corresponding connection by clicking the Clear link in the Metadata cache parameter in the Parameters pane. The following values are available for this setting:
oDisabled - the metadata cache is not created, and metadata are queried automatically whenever the connection is opened.
oOne Hour - the metadata cache expires after one hour since the previous refresh, and it is refreshed after this when the connection is opened.
oOne Day - the metadata cache expires after one day since the previous refresh, and it is refreshed after this when the connection is opened.
oOne Week - the metadata cache expires after one week since the previous refresh, and it is refreshed after this when the connection is opened.
oOne Month - the metadata cache expires after one month since the previous refresh, and it is refreshed after this when the connection is opened.
oInfinite - the cache is never reset automatically. Default value.
Use Custom Fields - This check box is available only for BigCommerce API v3 connections. It determines whether you will be able to get product custom fields via the CustomFields field of the Products object through this connection. If this check box is selected, this field returns a JSON array, containing information about custom fields and their values for products, if such are available. Otherwise, it always returns null values.
 
This check box does not affect working with custom fields for customers and customer addresses, and it also does not affect access to product custom fields via the ProductCustomFields object.
 
Please note that processing custom fields may take an additional time and API calls, so it's recommended to select this check box only if you need to work with product custom fields via this connection.

 

Obtaining Connection Parameters

Parameters for OAuth (Store Credentials) Authentication

To get parameters for OAuth authentication using Store Credentials, you need to create an API user. For this, perform the following actions:

1.Sign in to your BigCommerce Control Panel.
2.In the menu on the left, click Advanced Settings.
 
bigcommerce-advanced-settings
3.Then click API Accounts.
 
bigcommerce-api-accounts
4.A list of API accounts, displaying the assigned scopes opens. Note that the required parameters are displayed only once, when creating an API account. It's not possible to view these parameters for an already created account. If you don't have the parameters for an existing parameters, stored anywhere, the only way to obtain them is to create a new API account.
 
bigcommerce-store-api-accounts
 
To create a new account, click Create API Account.
5.Specify the API user name and select the necessary OAuth scopes to allow Skyvia access
 
bigcommerce-create-api-account
6.Click Save. The necessary connection parameter are displayed and automatically downloaded as a text file. In Skyvia, you will need client ID and access token from there. Be sure to store these parameters somewhere, as you won't be able to see them for this API account any more.
 
bigcommerce-api-credentials

 

Parameters for Basic Authentication

You can get parameters for basic authentication by viewing them for your legacy API accounts. To do it, perform the following steps:

1.Sign in to your BigCommerce Control Panel.
2.In the menu on the left, click Advanced Settings.
 
bigcommerce-advanced-settings
3.Then click Legacy API Settings.
 
bigcommerce-legacy-api-settings
4.A list of legacy API accounts is displayed. In the Action column, click the three dotted button for the necessary account, and then click Edit to view parameters for an existing account. Or click Create a Legacy API Account to create a new one.
 
bigcommerce-legacy-api-accounts
5.Copy the required API Path and API Token.
 
bigcommerce-legacy-api-parameters