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 backup 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 Brands
Categories Categories
ProductsBulkPricingRules ProductsBulkPricingRules
ProductCustomFields ProductCustomFields
ProductImages ProductImages
ProductReviews ProductReviews
ProductComplexRules ProductRules
ComplexRulesCondition  
Products Products
ProductVariants ProductSkus
ProductVideos ProductVideos
   
ProductVariantOptionValues OptionSets
ProductVariantOptions Options
VariantOptionValues OptionSetsOptions
  OptionValues
  ProductOptions
   
BrandMetafields ProductConfigurableFields
CategoryMetafields ProductGoogleProductSearch
ProductMetafields  
ProductVariantMetafields  
PriceLists  
PriceListRecords  
ProductModifiers  
ProductModifiersValues  
CatalogSummary  

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, do not have such 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 strongcdy 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 — 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. Check how to find it below.
  • Access Token — OAuth access token to log in with. Check how to find it below.

    Connection Editor window

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 an url to connect to and user name and authentication token to log in with.

Connection Editor window

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 — user name to log in with.
  • Authentication Token — an automatically generated key that is used and 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 — this parameter determines for how long the cached metadata for the connection are considered valid. By default, Skyvia caches metadata of available objects in cloud sources. Whenever necessary, you can reset metadata cache for a connection manually in the Connection Editor by clicking the Clear Cache button. The following values are available for this parameter:

 * _Disabled_ — metadata cache is not created; metadata are queried automatically whenever required.
 * _One Hour_ — metadata cache expires one hour after the last refresh.
 * _One Day_ — metadata cache expires one day after the last refresh.
 * _One Week_ — metadata cache expires one week after the last refresh.
 * _One Month_ — metadata cache expires one month after the last refresh.
 * _Infinite_ — cache never expires/resets 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.

    Advanced Settings in BigCommerce

  3. Then click API Accounts.

    API Accounts of BigCommerce

  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 do not have the parameters for an existing account stored anywhere, the only way to obtain them is to create a new API account.

    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

    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.

    Advanced Settings in BigCommerce

  3. Then click Legacy API Settings.

    Legacy API Settings in BigCommerce

  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.

    Legacy API Accounts

  5. Copy the required API Path and API Token.

    Legacy API Account Details