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.

Establishing Connection

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

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

Getting Credentials

Parameters for OAuth (Store Credentials) Authentication

To get parameters for OAuth authentication using Store Credentials, you must 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 Settings.
  3. Scroll the settings page down and click API Accounts. API Accounts of BigCommerce

  4. You can see a list of API accounts displaying the assigned scopes. To create a new account, click + Create API Account.

    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

  5. Specify the API user name and select the necessary OAuth scopes to allow Skyvia access. You can find available OAuth scopes in the BigCommerce documentation. Create API Account

  6. Click Save. The necessary connection parameters are displayed and automatically downloaded as a text file. In Skyvia, you need a 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 anymore. 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 Settings.
  3. Scroll the settings page down and click API Accounts.

    API Accounts of BigCommerce

  4. A list of API accounts displaying the assigned scopes opens. Scroll it down to the bottom. At the bottom of this list, click the Click here link in “Click here to access existing legacy API accounts.”.

    Store API Accounts

  5. A list of legacy accounts is opened. Click the three-dotted button for the required account, and then click Edit.

  6. Copy the required API Path and API Token.

    Legacy API Account Details

Creating Connection

OAuth Authentication

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

  1. Select the API Version to use — v2 or v3.
  2. Select Store Credentials for Authentication parameter to use the OAuth authentication.
  3. Specify the 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 in bold is the store Id required.
  4. Specify the Client Id — Client Id of your API account.
  5. Insert the Access Token — OAuth access token to log in with.

    Connection Editor window

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

Basic Authentication

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

Connection Editor window

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

  1. Select API Version. Only API v2 supports basic authentication.
  2. Set Basic for the Authentication.
  3. Specify the URL. API Path (the path where all XML requests to BigCommerce should be sent).
  4. Specify the User Id — user name to log in with.
  5. Insert the Authentication Token — an automatically generated key that is used and that must be included in the API requests to BigCommerce.

Additional Connection Parameters

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

Metadata Cache

You can specify the period of time after which Metadata Cache is considered expired.

Use Custom Fields

This checkbox 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 checkbox 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 checkbox does not affect working with custom fields for Customers and CustomerAddresses, and it also does not affect access to Product custom fields via the ProductCustomFields object.

Processing custom fields may take additional time and API calls, so it’s recommended to select this checkbox only if you need to work with Product custom fields via this connection.

Connector Specifics

Object peculiarities

Read-only Objects

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 value of the corresponding Product record.

Skyvia does not require this Id of the parent object from the 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 ProductCustomFields, can be slow.

Thus, it is 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.

Complex Structured Data

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 nested objects. For example, an order can have several lines and several shipping addresses. Skyvia represents this information in such objects 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 orders, 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 back them up. 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.

Wishlists

BigCommerce Wishlists object also has a similar field Items with a JSON array of wishlist items. When you create a new record in this table, you need to specify its value as a JSON array as well as for the previously mentioned tables. However, the table of its items - WishlistItems is not read-only, and you can update existing wishlists by adding or deleting records to the WishlistItems table. The Items field of the Wishlists object is not available for the UPDATE operation.

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 structures 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 structures. However, product options have a 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, meta fields for brands, categories, products, product variants, etc.

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

Incremental Replication and Synchronization

Replication with Incremental Updates enabled is supported for the following objects: BrandMetafields, CategoryMetafields, Customers, _OrderMessages, OrderShipments, OrderMetafields, Orders, PriceLists, PriceListRecords, ProductImages, ProductMetafields, ProductReviews, Products, ProductVariantMetafields, Subscribers, Transactions. The OrderMessages, OrderShipments and Transactions objects have the CreatedDate field and do not have the DateModified field. It means that only new records can be replicated.

Synchronization is supported for the following objects: BrandMetafields, CategoryMetafields, Customers, OrderMetafields, Orders, PriceLists, PriceListRecords, ProductImages, ProductMetafields, ProductReviews, Products, ProductVariantMetafields, Subscribers.

DML Operations Support

Skyvia supports the following DML Operation for BigCommerce:

Operation Objects
INSERT, UPDATE, DELETE BlogPost, BrandMetafields, Brands, Categories, CategoryMetafields, Coupons, CustomerAddresses, CustomerGroups, Customers, GiftCertificates, OrderMetafields, Orders, OrderShipments, Pages, PriceLists, ProductComplexRules, ProductCustomFields, ProductImages, ProductMetafields, ProductModifiers, ProductModifiersValues, ProductReviews, Products, ProductsBulkPricingRules, ProductVariantMetafields, ProductVariantOptions, ProductVariantOptionsValues, ProductVariants, ProductVideos, Redirects, ShippingMethods, ShippingZones, Subscribers, Wishlists
INSERT, DELETE PriceListAssignments, WishListItems
DELETE PriceListRecords
INSERT Refunds

Supported Actions

Skyvia supports all the common actions for BigCommerce.