CData Cloud offers access to BigCommerce across several standard services and protocols, in a cloud-hosted solution. Any application that can connect to a MySQL or SQL Server database can connect to BigCommerce through CData Cloud.
CData Cloud allows you to standardize and configure connections to BigCommerce as though it were any other OData endpoint, or standard SQL Server/MySQL database.
This page provides a guide to Establishing a Connection to BigCommerce in CData Cloud, as well as information on the available resources, and a reference to the available connection properties.
Establishing a Connection shows how to authenticate to BigCommerce and configure any necessary connection properties to create a database in CData Cloud
Accessing data from BigCommerce through the available standard services and CData Cloud administration is documented in further details in the CData Cloud Documentation.
Connect to BigCommerce by selecting the corresponding icon in the Database tab. Required properties are listed under Settings. The Advanced tab lists connection properties that are not typically required.
BigCommerce authentication is based on the standard OAuth flow.
In order to connect to your BigCommerce Store, you will need your StoreId. To find your Store Id please follow these steps:
Additionally, you must obtain a personal token to test and to access your own data. To obtain the personal token, follow the steps below:
Generating an Access Token
To obtain an OAuthClientId, OAuthClientSecret, and OAuthAccessToken directly from your BigCommerce account's UI:
Your newly created app's Client ID, Client Secret, Access Token, and Store Id are displayed on the screen. Make sure to copy them, since this is the only time you have access to these credentials. You can now use these credentials to connect to BigCommerce by setting the following connection properties:
For additional information on how to find your BigCommerce's Store Id, please see Establishing a Connection.
Note that in all these cases, you must set the AuthScheme to OAuth. The following sections assume that you have done so.
Creating an app is more complicated than generating a single OAuthAccess Token, but may be more desireable for client integrations where your design is to connect or allow access to multiple clients, or an administrative scenario where the admin creates an app to be authorized individually by multiple individual users.
Follow the steps below to authenticate with the credentials for a custom OAuth app. See "Generating an Access Token" above for more information.
Get an OAuth Access Token
After setting the following properties, you are ready to connect:
To configure the driver to use OAuth with a user account on a headless machine, you need to authenticate on another device that has an internet browser.
Option 1: Obtain and Exchange a Verifier Code
To obtain a verifier code, you must authenticate at the OAuth authorization URL.
Follow the steps below to authenticate from the machine with an internet browser and obtain the OAuthVerifier connection property.
On the headless machine, set the following connection properties to obtain the OAuth authentication values:
After the OAuth settings file is generated, you need to re-set the following properties to connect:
Option 2: Transfer OAuth Settings
Prior to connecting on a headless machine, you need to create and install a connection with the driver on a device that supports an internet browser. Set the connection properties as described in "Desktop Applications" above.
After completing the instructions in "Desktop Applications", the resulting authentication values are encrypted and written to the path specified by OAuthSettingsLocation. The default filename is OAuthSettings.txt.
Once you have successfully tested the connection, copy the OAuth settings file to your headless machine.
On the headless machine, set the following connection properties to connect to data:
Date | Build Number | Change Type | Description |
12/14/2022 | 8383 | General | Changed
|
11/05/2022 | 8344 | BigCommerce | Changed
|
09/30/2022 | 8308 | General | Changed
|
08/26/2022 | 8273 | BigCommerce | Added
|
08/19/2022 | 8266 | BigCommerce | Added
|
08/17/2022 | 8264 | General | Changed
|
08/10/2022 | 8257 | BigCommerce | Added
|
08/04/2022 | 8251 | BigCommerce | Added
|
07/20/2022 | 8236 | BigCommerce | Added
Changed
|
06/23/2022 | 8209 | BigCommerce | Changed
|
05/19/2022 | 8174 | BigCommerce | Added
Changed
|
03/10/2021 | 8104 | BigCommerce | Added
Added
|
11/15/2021 | 7989 | BigCommerce | Added
Changed
Removed
|
09/02/2021 | 7915 | General | Added
|
08/07/2021 | 7889 | General | Changed
|
08/06/2021 | 7888 | General | Changed
|
07/23/2021 | 7874 | General | Changed
|
07/08/2021 | 7859 | General | Added
|
06/16/2021 | 7836 | BigCommerce | Added
|
04/23/2021 | 7785 | General | Added
|
04/23/2021 | 7783 | General | Changed
|
04/16/2021 | 7776 | General | Added
Changed
|
04/15 /2021 | 7775 | General | Changed
|
This section details a selection of advanced features of the BigCommerce Cloud.
The Cloud allows you to define virtual tables, called user defined views, whose contents are decided by a pre-configured query. These views are useful when you cannot directly control queries being issued to the drivers. See User Defined Views for an overview of creating and configuring custom views.
Use SSL Configuration to adjust how Cloud handles TLS/SSL certificate negotiations. You can choose from various certificate formats; see the SSLServerCert property under "Connection String Options" for more information.
Configure the Cloud for compliance with Firewall and Proxy, including Windows proxies and HTTP proxies. You can also set up tunnel connections.
The Cloud offloads as much of the SELECT statement processing as possible to BigCommerce and then processes the rest of the query in memory (client-side).
See Query Processing for more information.
See Logging for an overview of configuration settings that can be used to refine CData logging. For basic logging, you only need to set two connection properties, but there are numerous features that support more refined logging, where you can select subsets of information to be logged using the LogModules connection property.
The CData Cloud allows you to define a virtual table whose contents are decided by a pre-configured query. These are called User Defined Views, which are useful in situations where you cannot directly control the query being issued to the driver, e.g. when using the driver from a tool. The User Defined Views can be used to define predicates that are always applied. If you specify additional predicates in the query to the view, they are combined with the query already defined as part of the view.
There are two ways to create user defined views:
You can also have multiple view definitions and control them using the UserDefinedViews connection property. When you use this property, only the specified views are seen by the Cloud.
This User Defined View configuration file is formatted as follows:
For example:
{ "MyView": { "query": "SELECT * FROM Customers WHERE MyColumn = 'value'" }, "MyView2": { "query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)" } }Use the UserDefinedViews connection property to specify the location of your JSON configuration file. For example:
"UserDefinedViews", "C:\\Users\\yourusername\\Desktop\\tmp\\UserDefinedViews.json"
SELECT * FROM Customers WHERE City = 'Raleigh';An example of a query to the driver:
SELECT * FROM UserViews.RCustomers WHERE Status = 'Active';Resulting in the effective query to the source:
SELECT * FROM Customers WHERE City = 'Raleigh' AND Status = 'Active';That is a very simple example of a query to a User Defined View that is effectively a combination of the view query and the view definition. It is possible to compose these queries in much more complex patterns. All SQL operations are allowed in both queries and are combined when appropriate.
By default, the Cloud attempts to negotiate SSL/TLS by checking the server's certificate against the system's trusted certificate store.
To specify another certificate, see the SSLServerCert property for the available formats to do so.
To connect through the Windows system proxy, you do not need to set any additional connection properties. To connect to other proxies, set ProxyAutoDetect to false.
In addition, to authenticate to an HTTP proxy, set ProxyAuthScheme, ProxyUser, and ProxyPassword, in addition to ProxyServer and ProxyPort.
Set the following properties:
For sources that do not support SQL-92, the Cloud offloads as much of SQL statement processing as possible to BigCommerce and then processes the rest of the query in memory (client-side). This results in optimal performance.
For data sources with limited query capabilities, the Cloud handles transformations of the SQL query to make it simpler for the Cloud. The goal is to make smart decisions based on the query capabilities of the data source to push down as much of the computation as possible. The BigCommerce Query Evaluation component examines SQL queries and returns information indicating what parts of the query the Cloud is not capable of executing natively.
The BigCommerce Query Slicer component is used in more specific cases to separate a single query into multiple independent queries. The client-side Query Engine makes decisions about simplifying queries, breaking queries into multiple queries, and pushing down or computing aggregations on the client-side while minimizing the size of the result set.
There's a significant trade-off in evaluating queries, even partially, client-side. There are always queries that are impossible to execute efficiently in this model, and some can be particularly expensive to compute in this manner. CData always pushes down as much of the query as is feasible for the data source to generate the most efficient query possible and provide the most flexible query capabilities.
Capturing Cloud logging can be very helpful when diagnosing error messages or other unexpected behavior.
You will simply need to set two connection properties to begin capturing Cloud logging.
Once this property is set, the Cloud will populate the log file as it carries out various tasks, such as when authentication is performed or queries are executed. If the specified file doesn't already exist, it will be created.
The verbosity level determines the amount of detail that the Cloud reports to the Logfile. Verbosity levels from 1 to 5 are supported. These are described in the following list:
1 | Setting Verbosity to 1 will log the query, the number of rows returned by it, the start of execution and the time taken, and any errors. |
2 | Setting Verbosity to 2 will log everything included in Verbosity 1 and additional information about the request. |
3 | Setting Verbosity to 3 will additionally log HTTP headers, as well as the body of the request and the response. |
4 | Setting Verbosity to 4 will additionally log transport-level communication with the data source. This includes SSL negotiation. |
5 | Setting Verbosity to 5 will additionally log communication with the data source and additional details that may be helpful in troubleshooting problems. This includes interface commands. |
The Verbosity should not be set to greater than 1 for normal operation. Substantial amounts of data can be logged at higher verbosities, which can delay execution times.
To refine the logged content further by showing/hiding specific categories of information, see LogModules.
Best Practices for Data Security
Although we mask sensitive values, such as passwords, in the connection string and any request in the log, it is always best practice to review the logs for any sensitive information before sharing outside your organization.
You may want to refine the exact information that is recorded to the log file. This can be accomplished using the LogModules property.
This property allows you to filter the logging using a semicolon-separated list of logging modules.
All modules are four characters long. Please note that modules containing three letters have a required trailing blank space. The available modules are:
LogModules=INFO;EXEC;SSL ;SQL ;META;
Note that these modules refine the information as it is pulled after taking the Verbosity into account.
The CData Cloud supports several operations on data, including querying, deleting, modifying, and inserting.
See SELECT Statements for a syntax reference and examples.
See Data Model for information on the capabilities of the BigCommerce API.
See INSERT Statements for a syntax reference and examples.
The primary key Id is required to update a record. See UPDATE Statements for a syntax reference and examples.
The primary key Id is required to delete a record. See DELETE Statements for a syntax reference and examples.
Use EXECUTE or EXEC statements to execute stored procedures. See EXECUTE Statements for a syntax reference and examples.
A SELECT statement can consist of the following basic clauses.
The following syntax diagram outlines the syntax supported by the SQL engine of the Cloud:
SELECT {
[ TOP <numeric_literal> | DISTINCT ]
{
*
| {
<expression> [ [ AS ] <column_reference> ]
| { <table_name> | <correlation_name> } .*
} [ , ... ]
}
[ INTO csv:// [ filename= ] <file_path> [ ;delimiter=tab ] ]
{
FROM <table_reference> [ [ AS ] <identifier> ]
} [ , ... ]
[ [
INNER | { { LEFT | RIGHT | FULL } [ OUTER ] }
] JOIN <table_reference> [ ON <search_condition> ] [ [ AS ] <identifier> ]
] [ ... ]
[ WHERE <search_condition> ]
[ GROUP BY <column_reference> [ , ... ]
[ HAVING <search_condition> ]
[ UNION [ ALL ] <select_statement> ]
[
ORDER BY
<column_reference> [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ]
]
[
LIMIT <expression>
[
{ OFFSET | , }
<expression>
]
]
} | SCOPE_IDENTITY()
<expression> ::=
| <column_reference>
| @ <parameter>
| ?
| COUNT( * | { [ DISTINCT ] <expression> } )
| { AVG | MAX | MIN | SUM | COUNT } ( <expression> )
| NULLIF ( <expression> , <expression> )
| COALESCE ( <expression> , ... )
| CASE <expression>
WHEN { <expression> | <search_condition> } THEN { <expression> | NULL } [ ... ]
[ ELSE { <expression> | NULL } ]
END
| <literal>
| <sql_function>
<search_condition> ::=
{
<expression> { = | > | < | >= | <= | <> | != | LIKE | NOT LIKE | IN | NOT IN | IS NULL | IS NOT NULL | AND | OR | CONTAINS | BETWEEN } [ <expression> ]
} [ { AND | OR } ... ]
SELECT * FROM Customers
SELECT [LastName] AS MY_LastName FROM Customers
SELECT CAST(AnnualRevenue AS VARCHAR) AS Str_AnnualRevenue FROM Customers
SELECT * FROM Customers WHERE Column2 = 'Bob'
SELECT COUNT(*) AS MyCount FROM Customers
SELECT COUNT(DISTINCT LastName) FROM Customers
SELECT DISTINCT LastName FROM Customers
SELECT LastName, MAX(AnnualRevenue) FROM Customers GROUP BY LastNameSee Aggregate Functions for details.
SELECT c.SampleCol1, o.SampleCol2, o.SampleCol3, o.SampleCol4 FROM SampleTable_1 c INNER JOIN SampleTable_2 o ON c.Id = o.Id2See JOIN Queries for details.
SELECT FirstName, LastName FROM Customers ORDER BY LastName ASC
SELECT FirstName, LastName FROM Customers LIMIT 10
SELECT * FROM Customers WHERE Column2 = @param
Some input-only fields are available in SELECT statements. These fields, called pseudo columns, do not
appear as regular columns in the results, yet may be specified as part of the WHERE clause. You can use pseudo columns to access additional features from BigCommerce.
SELECT * FROM Customers WHERE Query = 'Column3 > 100'
Returns the number of rows matching the query criteria.
SELECT COUNT(*) FROM Customers WHERE Column2 = 'Bob'
Returns the number of distinct, non-null field values matching the query criteria.
SELECT COUNT(DISTINCT FirstName) AS DistinctValues FROM Customers WHERE Column2 = 'Bob'
Returns the average of the column values.
SELECT LastName, AVG(AnnualRevenue) FROM Customers WHERE Column2 = 'Bob' GROUP BY LastName
Returns the minimum column value.
SELECT MIN(AnnualRevenue), LastName FROM Customers WHERE Column2 = 'Bob' GROUP BY LastName
Returns the maximum column value.
SELECT LastName, MAX(AnnualRevenue) FROM Customers WHERE Column2 = 'Bob' GROUP BY LastName
Returns the total sum of the column values.
SELECT SUM(AnnualRevenue) FROM Customers WHERE Column2 = 'Bob'
The CData Cloud supports standard SQL joins like the following examples.
An inner join selects only rows from both tables that match the join condition:
SELECT c.SampleCol1, o.SampleCol2, o.SampleCol3, o.SampleCol4 FROM SampleTable_1 c INNER JOIN SampleTable_2 o ON c.Id = o.Id2
A left join selects all rows in the FROM table and only matching rows in the JOIN table:
SELECT c.SampleCol1, o.SampleCol2, o.SampleCol3, o.SampleCol4 FROM SampleTable_1 c LEFT JOIN SampleTable_2 o ON c.Id = o.Id2
The following date literal functions can be used to filter date fields using relative intervals. Note that while the <, >, and = operators are supported for these functions, <= and >= are not.
The current day.
SELECT * FROM MyTable WHERE MyDateField = L_TODAY()
The previous day.
SELECT * FROM MyTable WHERE MyDateField = L_YESTERDAY()
The following day.
SELECT * FROM MyTable WHERE MyDateField = L_TOMORROW()
Every day in the preceding week.
SELECT * FROM MyTable WHERE MyDateField = L_LAST_WEEK()
Every day in the current week.
SELECT * FROM MyTable WHERE MyDateField = L_THIS_WEEK()
Every day in the following week.
SELECT * FROM MyTable WHERE MyDateField = L_NEXT_WEEK()Also available:
The previous n days, excluding the current day.
SELECT * FROM MyTable WHERE MyDateField = L_LAST_N_DAYS(3)
The following n days, including the current day.
SELECT * FROM MyTable WHERE MyDateField = L_NEXT_N_DAYS(3)Also available:
Every day in every week, starting n weeks before current week, and ending in the previous week.
SELECT * FROM MyTable WHERE MyDateField = L_LAST_N_WEEKS(3)
Every day in every week, starting the following week, and ending n weeks in the future.
SELECT * FROM MyTable WHERE MyDateField = L_NEXT_N_WEEKS(3)Also available:
You can use the SELECT INTO statement to export formatted data to a file.
The following query exports data into a file formatted in comma-separated values (CSV):
SELECT FirstName, LastName INTO [csv://Customers.txt] FROM [Customers] WHERE Column2 = 'Bob'You can specify other formats in the file URI. The possible delimiters are tab, semicolon, and comma with the default being a comma. The following example exports tab-separated values:
SELECT FirstName, LastName INTO [csv://Customers.txt;delimiter=tab] FROM [Customers] WHERE Column2 = 'Bob'You can specify other file formats in the URI. The following example exports tab-separated values:
The Cloud provides functions that are similar to those that are available with most standard databases. These functions are implemented in the CData provider engine and thus are available across all data sources with the same consistent API. Three categories of functions are available: string, date, and math.
The Cloud interprets all SQL function inputs as either strings or column identifiers, so you need to escape all literals as strings, with single quotes. For example, contrast the SQL Server syntax and Cloud syntax for the DATENAME function:
SELECT DATENAME(yy,GETDATE())
SELECT DATENAME('yy',GETDATE())
These functions perform string manipulations and return a string value. See STRING Functions for more details.
SELECT CONCAT(firstname, space(4), lastname) FROM Customers WHERE Column2 = 'Bob'
These functions perform date and date time manipulations. See DATE Functions for more details.
SELECT CURRENT_TIMESTAMP() FROM Customers
These functions provide mathematical operations. See MATH Functions for more details.
SELECT RAND() FROM Customers
SELECT CONCAT('Mr.', SPACE(2), firstname, SPACE(4), lastname) FROM Customers
Returns the ASCII code value of the left-most character of the character expression.
SELECT ASCII('0'); -- Result: 48
Converts the integer ASCII code to the corresponding character.
SELECT CHAR(48); -- Result: '0'
Returns the starting position of the specified expression in the character string.
SELECT CHARINDEX('456', '0123456'); -- Result: 4 SELECT CHARINDEX('456', '0123456', 5); -- Result: -1
Returns the number of UTF-8 characters present in the expression.
SELECT CHAR_LENGTH('sample text') FROM Account LIMIT 1 -- Result: 11
Returns the string that is the concatenation of two or more string values.
SELECT CONCAT('Hello, ', 'world!'); -- Result: 'Hello, world!'
Returns 1 if expressionToFind is found within expressionToSearch; otherwise, 0.
SELECT CONTAINS('0123456', '456'); -- Result: 1 SELECT CONTAINS('0123456', 'Not a number'); -- Result: 0
Returns 1 if character_expression ends with character_suffix; otherwise, 0.
SELECT ENDSWITH('0123456', '456'); -- Result: 1 SELECT ENDSWITH('0123456', '012'); -- Result: 0
Returns the number of bytes present in the file at the specified file path.
SELECT FILESIZE('C:/Users/User1/Desktop/myfile.txt'); -- Result: 23684
Returns the value formatted with the specified format.
SELECT FORMAT(12.34, '#'); -- Result: 12 SELECT FORMAT(12.34, '#.###'); -- Result: 12.34 SELECT FORMAT(1234, '0.000E0'); -- Result: 1.234E3 SELECT FORMAT('2019/01/01', 'yyyy-MM-dd'); -- Result: 2019-01-01 SELECT FORMAT('20190101', 'yyyyMMdd', 'yyyy-MM-dd'); -- Result: '2019-01-01'
Returns a representation of the unix_timestamp argument as a value in YYYY-MM-DD HH:MM:SS expressed in the current time zone.
SELECT FROM_UNIXTIME(1540495231, 1); -- Result: 2018-10-25 19:20:31 SELECT FROM_UNIXTIME(1540495357385, 0); -- Result: 2018-10-25 19:22:37
Returns the hash of the input value as a byte array using the given algorithm. The supported algorithms are MD5, SHA1, SHA2_256, SHA2_512, SHA3_224, SHA3_256, SHA3_384, and SHA3_512.
SELECT HASHBYTES('MD5', 'Test'); -- Result (byte array): 0x0CBC6611F5540BD0809A388DC95A615B
Returns the starting position of the specified expression in the character string.
SELECT INDEXOF('0123456', '456'); -- Result: 4 SELECT INDEXOF('0123456', '456', 5); -- Result: -1
Replaces null with the specified replacement value.
SELECT ISNULL(42, 'Was NULL'); -- Result: 42 SELECT ISNULL(NULL, 'Was NULL'); -- Result: 'Was NULL'
Computes the average value of a JSON array within a JSON object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.
SELECT JSON_AVG('[1,2,3,4,5]', '$[x]'); -- Result: 3 SELECT JSON_AVG('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]'); -- Result: 3 SELECT JSON_AVG('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]'); -- Result: 4.5
Returns the number of elements in a JSON array within a JSON object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.
SELECT JSON_COUNT('[1,2,3,4,5]', '$[x]'); -- Result: 5 SELECT JSON_COUNT('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]'); -- Result: 5 SELECT JSON_COUNT('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]'); -- Result: 2
Selects any value in a JSON array or object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.
SELECT JSON_EXTRACT('{"test": {"data": 1}}', '$.test'); -- Result: '{"data":1}' SELECT JSON_EXTRACT('{"test": {"data": 1}}', '$.test.data'); -- Result: 1 SELECT JSON_EXTRACT('{"test": {"data": [1, 2, 3]}}', '$.test.data[1]'); -- Result: 2
Gets the maximum value in a JSON array within a JSON object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.
SELECT JSON_MAX('[1,2,3,4,5]', '$[x]'); -- Result: 5 SELECT JSON_MAX('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]'); -- Result: 5 SELECT JSON_MAX('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[..3]'); -- Result: 4
Gets the minimum value in a JSON array within a JSON object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.
SELECT JSON_MIN('[1,2,3,4,5]', '$[x]'); -- Result: 1 SELECT JSON_MIN('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]'); -- Result: 1 SELECT JSON_MIN('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]'); -- Result: 4
Computes the summary value in JSON according to the JSONPath expression. Return value is numeric or null.
SELECT JSON_SUM('[1,2,3,4,5]', '$[x]'); -- Result: 15 SELECT JSON_SUM('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]'); -- Result: 15 SELECT JSON_SUM('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]'); -- Result: 9
Returns the specified number of characters counting from the left of the specified string.
SELECT LEFT('1234567890', 3); -- Result: '123'
Returns the number of characters of the specified string expression.
SELECT LEN('12345'); -- Result: 5
Returns an integer representing how many characters into the string the substring appears.
SELECT LOCATE('sample','XXXXXsampleXXXXX'); -- Result: 6
Returns the character expression with the uppercase character data converted to lowercase.
SELECT LOWER('MIXED case'); -- Result: 'mixed case'
Returns the character expression with leading blanks removed.
SELECT LTRIM(' trimmed'); -- Result: 'trimmed'
Replaces the characters between start_index and end_index with the mask_character within the string.
SELECT MASK('1234567890','*',); -- Result: '**********' SELECT MASK('1234567890','*', 4); -- Result: '1234******' SELECT MASK('1234567890','*', 4, 2); -- Result: '1234****90'
Returns the Unicode character with the specified integer code as defined by the Unicode standard.
Returns the number of bytes present in the expression.
SELECT OCTET_LENGTH('text') FROM Account LIMIT 1 -- Result: 4
Returns the starting position of the first occurrence of the pattern in the expression. Returns 0 if the pattern is not found.
SELECT PATINDEX('123%', '1234567890'); -- Result: 1 SELECT PATINDEX('%890', '1234567890'); -- Result: 8 SELECT PATINDEX('%456%', '1234567890'); -- Result: 4
Returns the starting position of the specified expression in the character string.
SELECT POSITION('456' IN '123456'); -- Result: 4 SELECT POSITION('x' IN '123456'); -- Result: 0
Returns a valid SQL Server-delimited identifier by adding the necessary delimiters to the specified Unicode string.
SELECT QUOTENAME('table_name'); -- Result: '[table_name]' SELECT QUOTENAME('table_name', '"'); -- Result: '"table_name"' SELECT QUOTENAME('table_name', '['); -- Result: '[table_name]'
Replaces all occurrences of a string with another string.
SELECT REPLACE('1234567890', '456', '|'); -- Result: '123|7890' SELECT REPLACE('123123123', '123', '.'); -- Result: '...' SELECT REPLACE('1234567890', 'a', 'b'); -- Result: '1234567890'
Repeats the string value the specified number of times.
SELECT REPLACE('x', 5); -- Result: 'xxxxx'
Returns the reverse order of the string expression.
SELECT REVERSE('1234567890'); -- Result: '0987654321'
Returns the right part of the string with the specified number of characters.
SELECT RIGHT('1234567890', 3); -- Result: '890'
Returns the character expression after it removes trailing blanks.
SELECT RTRIM('trimmed '); -- Result: 'trimmed'
Returns the four-character Soundex code, based on how the string sounds when spoken.
SELECT SOUNDEX('smith'); -- Result: 'S530'
Returns the string that consists of repeated spaces.
SELECT SPACE(5); -- Result: ' '
Returns a section of the string between to delimiters.
SELECT SPLIT('a/b/c/d', '/', 1); -- Result: 'a' SELECT SPLIT('a/b/c/d', '/', -2); -- Result: 'c'
Returns 1 if character_expression starts with character_prefix; otherwise, 0.
SELECT STARTSWITH('0123456', '012'); -- Result: 1 SELECT STARTSWITH('0123456', '456'); -- Result: 0
Returns the character data converted from the numeric data. For example, STR(123.45, 6, 1) returns 123.5.
SELECT STR('123.456'); -- Result: '123' SELECT STR('123.456', 2); -- Result: '**' SELECT STR('123.456', 10, 2); -- Result: '123.46'
Inserts a string into another string. It deletes the specified length of characters in the first string at the start position and then inserts the second string into the first string at the start position.
SELECT STUFF('1234567890', 3, 2, 'xx'); -- Result: '12xx567890'
Returns the part of the string with the specified length; starts at the specified index.
SELECT SUBSTRING('1234567890' FROM 3 FOR 2); -- Result: '34' SELECT SUBSTRING('1234567890' FROM 3); -- Result: '34567890'
Converts the value of this instance to its equivalent string representation.
SELECT TOSTRING(123); -- Result: '123' SELECT TOSTRING(123.456); -- Result: '123.456' SELECT TOSTRING(null); -- Result: ''
Returns the character expression with leading and/or trailing blanks removed.
SELECT TRIM(' trimmed '); -- Result: 'trimmed' SELECT TRIM(LEADING FROM ' trimmed '); -- Result: 'trimmed ' SELECT TRIM('-' FROM '-----trimmed-----'); -- Result: 'trimmed' SELECT TRIM(BOTH '-' FROM '-----trimmed-----'); -- Result: 'trimmed' SELECT TRIM(TRAILING '-' FROM '-----trimmed-----'); -- Result: '-----trimmed'
Returns the integer value defined by the Unicode standard of the first character of the input expression.
Returns the character expression with lowercase character data converted to uppercase.
SELECT UPPER('MIXED case'); -- Result: 'MIXED CASE'
Extracts an XML document using the specified XPath to flatten the XML. A comma is used to separate the outputs by default, but this can be changed by specifying the third parameter.
SELECT XML_EXTRACT('<vowels><ch>a</ch><ch>e</ch><ch>i</ch><ch>o</ch><ch>u</ch></vowels>', '/vowels/ch'); -- Result: 'a,e,i,o,u' SELECT XML_EXTRACT('<vowels><ch>a</ch><ch>e</ch><ch>i</ch><ch>o</ch><ch>u</ch></vowels>', '/vowels/ch', ';'); -- Result: 'a;e;i;o;u'
Returns the current date value.
SELECT CURRENT_DATE(); -- Result: 2018-02-01
Returns the current time stamp of the database system as a datetime value. This value is equal to GETDATE and SYSDATETIME, and is always in the local timezone.
SELECT CURRENT_TIMESTAMP(); -- Result: 2018-02-01 03:04:05
Returns the datetime value that results from adding the specified number (a signed integer) to the specified date part of the date.
SELECT DATEADD('d', 5, '2018-02-01'); -- Result: 2018-02-06 SELECT DATEADD('hh', 5, '2018-02-01 00:00:00'); -- Result: 2018-02-01 05:00:00
Returns the difference (a signed integer) of the specified time interval between the specified start date and end date.
SELECT DATEDIFF('d', '2018-02-01', '2018-02-10'); -- Result: 9 SELECT DATEDIFF('hh', '2018-02-01 00:00:00', '2018-02-01 12:00:00'); -- Result: 12
Returns the datetime value for the specified year, month, and day.
SELECT DATEFROMPARTS(2018, 2, 1); -- Result: 2018-02-01
Returns the character string that represents the specified date part of the specified date.
SELECT DATENAME('yy', '2018-02-01'); -- Result: '2018' SELECT DATENAME('dw', '2018-02-01'); -- Result: 'Thursday'
Returns a character string that represents the specified date part of the specified date.
SELECT DATEPART('yy', '2018-02-01'); -- Result: 2018 SELECT DATEPART('dw', '2018-02-01'); -- Result: 5
Returns the datetime value for the specified date parts.
SELECT DATETIME2FROMPARTS(2018, 2, 1, 1, 2, 3, 456, 3); -- Result: 2018-02-01 01:02:03.456
Returns the datetime value for the specified date parts.
SELECT DATETIMEFROMPARTS(2018, 2, 1, 1, 2, 3, 456); -- Result: 2018-02-01 01:02:03.456
Truncates the date to the precision of the given date part. Modeled after the Oracle TRUNC function.
SELECT DATE_TRUNC('05-04-2005', 'YY'); -- Result: '1/1/2005' SELECT DATE_TRUNC('05-04-2005', 'MM'); -- Result: '5/1/2005'
Truncates the date to the precision of the given date part. Modeled after the PostgreSQL date_trunc function.
SELECT DATE_TRUNC2('year', '2020-02-04'); -- Result: '2020-01-01' SELECT DATE_TRUNC2('week', '2020-02-04', 'monday'); -- Result: '2020-02-02', which is the previous Monday
Returns the integer that specifies the day component of the specified date.
SELECT DAY('2018-02-01'); -- Result: 1
SELECT DAYOFMONTH('04/15/2000'); -- Result: 15
SELECT DAYOFWEEK('04/15/2000'); -- Result: 7
SELECT DAYOFYEAR('04/15/2000'); -- Result: 106
Returns the last day of the month that contains the specified date with an optional offset.
SELECT EOMONTH('2018-02-01'); -- Result: 2018-02-28 SELECT LAST_DAY('2018-02-01'); -- Result: 2018-02-28 SELECT EOMONTH('2018-02-01', 2); -- Result: 2018-04-30
SELECT FDWEEK('02-08-2018'); -- Result: 2/4/2018
SELECT FDMONTH('02-08-2018'); -- Result: 2/1/2018
SELECT FDQUARTER('05-08-2018'); -- Result: 4/1/2018
Returns the time stamp associated with the Date Modified of the relevant file.
SELECT FILEMODIFIEDTIME('C:/Documents/myfile.txt'); -- Result: 6/25/2019 10:06:58 AM
Returns a date derived from the number of days after 1582-10-15 (based upon the Gregorian calendar). This will be equivalent to the MYSQL FROM_DAYS function.
SELECT FROM_DAYS(736000); -- Result: 2/6/2015
Returns the current time stamp of the database system as a datetime value. This value is equal to CURRENT_TIMESTAMP and SYSDATETIME, and is always in the local timezone.
SELECT GETDATE(); -- Result: 2018-02-01 03:04:05
Returns the current time stamp of the database system formatted as a UTC datetime value. This value is equal to SYSUTCDATETIME.
SELECT GETUTCDATE(); -- For example, if the local timezone is Eastern European Time (GMT+2) -- Result: 2018-02-01 05:04:05
Returns the hour component from the provided datetime.
SELECT HOUR('02-02-2020 11:30:00'); -- Result: 11
Returns 1 if the value is a valid date, time, or datetime value; otherwise, 0.
SELECT ISDATE('2018-02-01', 'yyyy-MM-dd'); -- Result: 1 SELECT ISDATE('Not a date'); -- Result: 0
Returns a time stamp equivalent to exactly one week before the current date.
SELECT LAST_WEEK(); //Assume the date is 3/17/2020 -- Result: 3/10/2020
Returns a time stamp equivalent to exactly one month before the current date.
SELECT LAST_MONTH(); //Assume the date is 3/17/2020 -- Result: 2/17/2020
Returns a time stamp equivalent to exactly one year before the current date.
SELECT LAST_YEAR(); //Assume the date is 3/17/2020 -- Result: 3/10/2019
Returns the last day of the provided week.
SELECT LDWEEK('02-02-2020'); -- Result: 2/8/2020
Returns the last day of the provided month.
SELECT LDMONTH('02-02-2020'); -- Result: 2/29/2020
Returns the last day of the provided quarter.
SELECT LDQUARTER('02-02-2020'); -- Result: 3/31/2020
Returns a date value from a year and a number of days.
SELECT MAKEDATE(2020, 1); -- Result: 2020-01-01
Returns the minute component from the provided datetime.
SELECT MINUTE('02-02-2020 11:15:00'); -- Result: 15
Returns the month component from the provided datetime.
SELECT MONTH('02-02-2020'); -- Result: 2
Returns the quarter associated with the provided datetime.
SELECT QUARTER('02-02-2020'); -- Result: 1
Returns the second component from the provided datetime.
SELECT SECOND('02-02-2020 11:15:23'); -- Result: 23
Returns the datetime value for the specified date and time.
SELECT SMALLDATETIMEFROMPARTS(2018, 2, 1, 1, 2); -- Result: 2018-02-01 01:02:00
Parses the provided string value and returns the corresponding datetime.
SELECT STRTODATE('03*04*2020','dd*MM*yyyy'); -- Result: 4/3/2020
Returns the current time stamp as a datetime value of the database system. It is equal to GETDATE and CURRENT_TIMESTAMP, and is always in the local timezone.
SELECT SYSDATETIME(); -- Result: 2018-02-01 03:04:05
Returns the current system date and time as a UTC datetime value. It is equal to GETUTCDATE.
SELECT SYSUTCDATETIME(); -- For example, if the local timezone is Eastern European Time (GMT+2) -- Result: 2018-02-01 05:04:05
Returns the time value for the specified time and with the specified precision.
SELECT TIMEFROMPARTS(1, 2, 3, 456, 3); -- Result: 01:02:03.456
Returns the number of days since 0000-00-01. This will only return a value for dates on or after 1582-10-15 (based upon the Gregorian calendar). This will be equivalent to the MYSQL TO_DAYS function.
SELECT TO_DAYS('02-06-2015'); -- Result: 736000
Returns the week (of the year) associated with the provided datetime.
SELECT WEEK('02-17-2020 11:15:23'); -- Result: 8
Returns the integer that specifies the year of the specified date.
SELECT YEAR('2018-02-01'); -- Result: 2018
Returns the absolute (positive) value of the specified numeric expression.
SELECT ABS(15); -- Result: 15 SELECT ABS(-15); -- Result: 15
Returns the arc cosine, the angle in radians whose cosine is the specified float expression.
SELECT ACOS(0.5); -- Result: 1.0471975511966
Returns the arc sine, the angle in radians whose sine is the specified float expression.
SELECT ASIN(0.5); -- Result: 0.523598775598299
Returns the arc tangent, the angle in radians whose tangent is the specified float expression.
SELECT ATAN(10); -- Result: 1.47112767430373
Returns the angle in radians between the positive x-axis and the ray from the origin to the point (y, x) where x and y are the values of the two specified float expressions.
SELECT ATN2(1, 1); -- Result: 0.785398163397448
Returns the smallest integer greater than or equal to the specified numeric expression.
SELECT CEILING(1.3); -- Result: 2 SELECT CEILING(1.5); -- Result: 2 SELECT CEILING(1.7); -- Result: 2
Returns the trigonometric cosine of the specified angle in radians in the specified expression.
SELECT COS(1); -- Result: 0.54030230586814
Returns the trigonometric cotangent of the angle in radians specified by float_expression.
SELECT COT(1); -- Result: 0.642092615934331
Returns the angle in degrees for the angle specified in radians.
SELECT DEGREES(3.1415926); -- Result: 179.999996929531
Returns the exponential value of the specified float expression. For example, EXP(LOG(20)) is 20.
SELECT EXP(2); -- Result: 7.38905609893065
Evaluates the expression.
SELECT EXPR('1 + 2 * 3'); -- Result: 7 SELECT EXPR('1 + 2 * 3 == 7'); -- Result: true
Returns the largest integer less than or equal to the numeric expression.
SELECT FLOOR(1.3); -- Result: 1 SELECT FLOOR(1.5); -- Result: 1 SELECT FLOOR(1.7); -- Result: 1
Returns the greatest of the supplied integers.
SELECT GREATEST(3,5,8,10,1) -- Result: 10
Returns a the equivalent hex for the input value.
SELECT HEX(866849198); -- Result: 33AB11AE SELECT HEX('Sample Text'); -- Result: 53616D706C652054657874
Returns the least of the supplied integers.
SELECT LEAST(3,5,8,10,1) -- Result: 1
Returns the natural logarithm of the specified float expression.
SELECT LOG(7.3890560); -- Result: 1.99999998661119
Returns the base-10 logarithm of the specified float expression.
SELECT LOG10(10000); -- Result: 4
Returns the integer value associated with the remainder when dividing the dividend by the divisor.
SELECT MOD(10,3); -- Result: 1
Returns the opposite to the real number input.
SELECT NEGATE(10); -- Result: -10 SELECT NEGATE(-12.4) --Result: 12.4
Returns the constant value of pi.
SELECT PI() -- Result: 3.14159265358979
Returns the value of the specified expression raised to the specified power.
SELECT POWER(2, 10); -- Result: 1024 SELECT POWER(2, -2); -- Result: 0.25
Returns the angle in radians of the angle in degrees.
SELECT RADIANS(180); -- Result: 3.14159265358979
Returns a pseudorandom float value from 0 through 1, exclusive.
SELECT RAND(); -- This result may be different, since the seed is randomized -- Result: 0.873159630165044 SELECT RAND(1); -- This result will always be the same, since the seed is constant -- Result: 0.248668584157093
Returns the numeric value rounded to the specified length or precision.
SELECT ROUND(1.3, 0); -- Result: 1 SELECT ROUND(1.55, 1); -- Result: 1.6 SELECT ROUND(1.7, 0, 0); -- Result: 2 SELECT ROUND(1.7, 0, 1); -- Result: 1 SELECT ROUND (1.24); -- Result: 1.0
Returns the positive sign (1), 0, or negative sign (-1) of the specified expression.
SELECT SIGN(0); -- Result: 0 SELECT SIGN(10); -- Result: 1 SELECT SIGN(-10); -- Result: -1
Returns the trigonometric sine of the angle in radians.
SELECT SIN(1); -- Result: 0.841470984807897
Returns the square root of the specified float value.
SELECT SQRT(100); -- Result: 10
Returns the square of the specified float value.
SELECT SQUARE(10); -- Result: 100 SELECT SQUARE(-10); -- Result: 100
Returns the tangent of the input expression.
SELECT TAN(1); -- Result: 1.5574077246549
Returns the supplied decimal number truncated to have the supplied decimal precision.
SELECT TRUNC(10.3423,2); -- Result: 10.34
To create new records, use INSERT statements.
The INSERT statement specifies the columns to be inserted and the new column values. You can specify the column values in a comma-separated list in the VALUES clause, as shown in the following example:
INSERT INTO <table_name>
( <column_reference> [ , ... ] )
VALUES
( { <expression> | NULL } [ , ... ] )
<expression> ::=
| @ <parameter>
| ?
| <literal>
The following is an example query:
INSERT INTO Customers (LastName) VALUES ('John')
To modify existing records, use UPDATE statements.
The UPDATE statement takes as input a comma-separated list of columns and new column values as name-value pairs in the SET clause, as shown in the following example:
UPDATE <table_name> SET { <column_reference> = <expression> } [ , ... ] WHERE { Id = <expression> } [ { AND | OR } ... ]
<expression> ::=
| @ <parameter>
| ?
| <literal>
The following is an example query:
UPDATE Customers SET LastName='John' WHERE Id = @myId
To delete information from a table, use DELETE statements.
The DELETE statement requires the table name in the FROM clause and the row's primary key in the WHERE clause, as shown in the following example:
<delete_statement> ::= DELETE FROM <table_name> WHERE { Id = <expression> } [ { AND | OR } ... ]
<expression> ::=
| @ <parameter>
| ?
| <literal>
The following is an example query:
DELETE FROM Customers WHERE Id = @myId
To execute stored procedures, you can use EXECUTE or EXEC statements.
EXEC and EXECUTE assign stored procedure inputs, referenced by name, to values or parameter names.
To execute a stored procedure as an SQL statement, use the following syntax:
{ EXECUTE | EXEC } <stored_proc_name>
{
[ @ ] <input_name> = <expression>
} [ , ... ]
<expression> ::=
| @ <parameter>
| ?
| <literal>
Reference stored procedure inputs by name:
EXECUTE my_proc @second = 2, @first = 1, @third = 3;
Execute a parameterized stored procedure statement:
EXECUTE my_proc second = @p1, first = @p2, third = @p3;
PIVOT and UNPIVOT can be used to change a table-valued expression into another table.
"SELECT 'AverageCost' AS Cost_Sorted_By_Production_Days, [0], [1], [2], [3], [4]
FROM
(
SELECT DaysToManufacture, StandardCost
FROM Production.Product
) AS SourceTable
PIVOT
(
AVG(StandardCost)
FOR DaysToManufacture IN ([0], [1], [2], [3], [4])
) AS PivotTable;"
"SELECT VendorID, Employee, Orders
FROM
(SELECT VendorID, Emp1, Emp2, Emp3, Emp4, Emp5
FROM pvt) p
UNPIVOT
(Orders FOR Employee IN
(Emp1, Emp2, Emp3, Emp4, Emp5)
)AS unpvt;"
For further information on PIVOT and UNPIVOT, see FROM clause plus JOIN, APPLY, PIVOT (Transact-SQL)
This section shows the available API objects and provides more information on executing SQL to BigCommerce APIs.
Pre-defined Tables and Views are available for read or write access to data from BigCommerce.
The Cloud allows you to list your BigCommerce objects and download/upload data to them via Stored Procedures.
System Tables contains information about the objects and resources belonging to your database.
The Cloud models the data in BigCommerce into a list of tables that can be queried using standard SQL statements.
Generally, querying BigCommerce tables is the same as querying a table in a relational database. Sometimes there are special cases, for example, including a certain column in the WHERE clause might be required to get data for certain columns in the table. This is typically needed for situations where a separate request must be made for each row to get certain columns. These types of situations are clearly documented at the top of the table page linked below.
Name | Description |
Categories | Returns Product Categories. |
ChannelListings | Returns a list of all Channel Listings for a specific channel |
Channels | GET,CREATE,UPDATE Channels |
Currencies | Returns data from Currencies table. |
CustomerAddresses | Returns a list of Customer Addresses. Returns the addresses belonging to a customer. |
Customers | Returns data from Customers table. |
OrderItems | Returns Items ordered for every order. |
Orders | Returns data from Orders table. |
OrderShipments | Returns shipments and their corresponding orders. |
PriceListRecords | Returns a collection of price List records |
PriceLists | Returns a collection of price records |
ProductImages | Returns images registered for products. |
ProductOptions | Returns data from Products table. |
ProductOptionValues | Returns data from Products table. |
ProductReviews | Returns reviews registered for products. |
Products | Returns data from products table. |
ProductVariants | Returns data from Products table. |
Returns Product Categories.
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | True |
The Id of this product category. |
ParentId | Integer | False |
The Id of the category. |
Name | String | False |
Name of the this category. |
Description | String | False |
System name of the type of order status. |
Views | Integer | False |
Number of views the category has on the storefront. |
SortOrder | Integer | False |
Priority this category will be given when included in the menu and category pages. |
PageTitle | String | False |
Custom title for the category page. |
MetaKeywords | String | False |
Custom meta keywords for the category page. |
MetaDescription | String | False |
Custom meta description for the category page. |
LayoutFile | String | False |
A valid layout file. |
ImageUrl | String | False |
Image URL used for this category on the storefront. |
IsVisible | Boolean | False |
Flag to determine whether the product should be displayed to customers browsing the store. |
SearchKeywords | String | False |
A comma-separated list of keywords that can be used to locate the category when searching the store. |
DefaultProductSort | String | False |
Determines how the products are sorted on category page load. |
UrlPath | String | False |
URL Path. |
IsCustomized | Boolean | False |
Flag to determine whether the url is customized. |
Returns a list of all Channel Listings for a specific channel
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
ChannelId or (ChannelId and ListingId) are required for select.
For example, the following queries are processed server side:
select * FROM ChannelListings WHERE ChannelId=667159 AND ListingId=882998595
To insert a new ChannelListings, you need to specify at least the following columns: Productid,State,Variants,ChannelId and Name with valid combinations
INSERT INTO ChannelListings (Productid,State,Variants,ChannelId) values(12345,'active','test',667159)
UPDATE ChannelListings SET name ='Test' WHERE ChannelId=667159
Name | Type | ReadOnly | Description |
Listingid [KEY] | Long | True |
The ID of the channel listing that has been created, returned, or updated |
ChannelId | Integer | True |
The ID of the channel associated with this channel listing |
Datecreated | Datetime | True |
Date on which the channel listing was first created |
Datemodified | Datetime | True |
Date on which the channel listing was most recently changed |
Name | String | False |
Name of the product for this channel listing specifically This is an optional field that can be used to override the product name in the catalog |
Description | String | True |
Description of the product for this channel listing specifically This is an optional field that can be used to override the product description in the catalog |
Productid | Integer | False |
The ID of the product associated with this channel listing |
State | String | False |
The state of the product assignment or channel listing |
Variants | String | False |
Varriatns |
GET,CREATE,UPDATE Channels
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM Channels
To insert a new Channel, you need to specify at least the following columns: Name, Type, Platform, Status and Name with valid combinations
INSERT INTO Channels (Type,Platform,Status,Name) Values('pos','square','active','tests');
UPDATE Channels SET Name='tests' WHERE ID=123
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | True |
The ID of the channel. |
ConfigMetaAppId | Integer | False |
The unique id given to an app registered in DevTools |
sections | String | False |
If set, when the app is loaded within the control panel, the navigation sections will be directly embedded in the control panel navigation |
Datecreated | Datetime | True |
Date on which the channel was first create |
Datemodified | Datetime | True |
Date on which the channel was most recently changed |
Externalid | String | False |
Associated ID within a system / platform outside of BC |
Iconurl | String | False |
Link to the platform icon |
Isenabled | Boolean | False |
Channel with status of prelaunch, active, or connected will have is_enabled set to true. Channel with status of inactive, disconnected, archived, deleted, or terminated will have is_enabled set to false |
IslistableFromUi | Boolean | False |
Indicates if a channel can create listings from the BigCommerce UI. Default value for this field is based on the channel type and platform combination if not specified on create |
Isvisible | Boolean | False |
Indicates if a channel is visible within the BigCommerce merchant admin UI (control panel). If false, the channel will not show in Channel Manager nor in any channels dropdown throughout the UI. Default value for this field is true if not specified on create |
Name | String | False |
Name of the channel as it will appear to merchants in the control panel |
Platform | String | False |
The name of the platform for the channel channel platform and type must be a valid combination |
Status | String | False |
The status of the channel channel type, platform, and status must be a valid combination. terminated is not valid for Update or Insert requests |
Type | String | False |
The type of channel channel platform and type must be a valid combinations |
Returns data from Currencies table.
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | True |
Id of the currency. |
IsDefault | Boolean | True |
Specifies whether this is the store's default currency. |
Code | String | False |
Three-letter ISO 4217 code for this currency. |
Name | String | False |
Name of this currency. |
ExchangeRate | Double | False |
Amount of this currency that is equivalent to one U.S. dollar. |
CountryIso | String | False |
Two-letter ISO Alpha-2 code. |
AutoUpdate | Boolean | False |
Whether to autoupdate currency data. |
TokenLocation | String | False |
Symbol for this currency. |
Token | String | False |
Name of the currency. |
DecimalToken | String | False |
Symbol used as the decimal separator in this currency. |
ThousandsToken | String | False |
Symbol used as the thousands separator in this currency. |
DecimalPlaces | Integer | False |
Number of decimal places to show for this currency. |
Returns a list of Customer Addresses. Returns the addresses belonging to a customer.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM CustomerAddresses SELECT * FROM CustomerAddresses WHERE Id = 1 SELECT * FROM CustomerAddresses WHERE CustomerId = 5
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | False |
ID of this customer address. |
CustomerId | Integer | False |
ID of the associated customer. |
FirstName | String | False |
The customers first name. |
LastName | String | False |
The customers last name. |
Company | String | False |
The customers company name. |
Address1 | String | False |
The customers street address, line 1. |
Address2 | String | False |
The customers street address, line 2. |
City | String | False |
The customers city/town/suburb. |
StateOrProvince | String | False |
The customers state/province. |
PostalCode | String | False |
The customers ZIP or postal code. |
Country | String | False |
The customers country. Must be the full country name. |
CountryCode | String | False |
2-letter ISO Alpha-2 code for the customers country. |
Phone | String | False |
The customers phone number. |
AddressType | String | False |
The type of the address. |
Returns data from Customers table.
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | True |
Unique numeric ID of this customer. |
Company | String | False |
The name of the company for which the customer works. |
FirstName | String | False |
First name of the customer. |
LastName | String | False |
Last name of the customer. |
String | False |
Email address of the customer. | |
Phone | String | False |
Phone number of the customer. |
DateCreated | Datetime | True |
Date on which the customer registered from the storefront or was created in the control panel. |
DateModified | Datetime | True |
The date on which the customer was modified. |
CustomerGroup | Integer | False |
The group to which the customer belongs. |
Notes | String | False |
Store Owner notes on the customer. |
TaxExemptCategory | String | False |
Used to identify customers who fall into special sales-tax categories. |
StoreCreditAmounts | String | False |
Amount of Store Credit |
RegistrationIpAddress | String | False |
The IP address from which this customer was registered. |
AcceptsProductReviewAbandonedCartEmails | Boolean | True |
Determines if the customer is signed up to receive either product review or abandoned cart emails or receive both emails. |
ForcePasswordReset | Boolean | True |
If true,this customer will be forced to change password on next login. |
Returns Items ordered for every order.
To insert an existing product to the OrderItems for a specified Order, order options for that table must be specified. For this reason, before inserting an existing product to the OrderItems, you need to populate a temporary OrderItemOptionValues table with the desired options for the selected product and use this table as a value for the LinkedOrderOptions Pseudo-Column during insertion:
INSERT INTO OrderItemOptionValues#TEMP (Id,Value) Values (117,177); INSERT INTO OrderItemOptionValues#TEMP (Id,Value) Values (116,176); INSERT INTO OrderItems (OrderId,ProductId,QuantityOrdered, LinkedOrderOptions) VALUES (1104,960,3, OrderItemOptionValues#TEMP)");
Note: The OrderItemOptionValue inserted to the temporary table must belong to the product that is being inserted into OrderItems. To verify this, check the ProductOptionValues table.
New, custom products, can be added to the OrderItems table as follows:
INSERT INTO OrderItems (OrderId,Name,CustomSKU,PriceIncTax,PriceExTax,QuantityOrdered) VALUES (1107,'TSS Phone Case','PHC-232453',6.55,5.75,1);
Note: OrderItems does not allow for Updates or Deletes. Once items have been added to an order, they cannot be removed or modified.
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | True |
Numeric ID of this product within this order. |
ProductId | Integer | False |
Numeric ID of the product. |
CustomSKU | String | False |
User defined product code/stock keeping unit (SKU). |
OrderId | Integer | False |
Numeric ID of the associated order. |
Name | String | False |
The product name. |
PriceExTax | Decimal | False |
The price of the product, excluding tax. |
PriceIncTax | Decimal | False |
The price of the product, including tax. |
QuantityOrdered | Integer | False |
Quantity of the product ordered. |
QuantityShipped | Integer | True |
Quantity of the product shipped. |
TotalExtax | Decimal | True |
Total base price, excluding tax. |
TotalIncTax | Decimal | True |
Total base price, including tax. |
IsRefunded | Boolean | True |
Whether the product has been refunded. |
ExternalId | Integer | False |
ID of the order in another system. |
AppliedDiscounts | String | True |
Array of objects containing discounts applied to the product. |
Pseudo column fields are used to enable the user to INSERT Fields that are non-readable but required during creation of new records.
Name | Type | Description |
LinkedOrderOptions | String |
Column for the aggregate table name holding option values. |
Returns data from Orders table.
To insert a new Order, at least one order item is required to be attached to the INSERT query for this order. To do so, you can first populate a temporary OrderItems table with the desired items for the order you are about to create, and later using this table as a value for the LinkedProducts Pseudo-Columns during insertion:
INSERT INTO OrderItems#TEMP (ProductId,QuantityOrdered) VALUES (961,4); INSERT INTO OrderItems#TEMP (ProductId,QuantityOrdered) VALUES (962,3); INSERT INTO Orders (CustomerId,LinkedProducts, BillingFirstName,BillingLastName,BillingCompany, BillingCountry, BillingZip,BillingState,BillingEmail,BillingPhone) VALUES (10002, OrderItems#TEMP, 'TSS','Dev','London Corp.', 'United Kingdom', 23433,'London','[email protected]','+355534445');
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | True |
The Id of the order. |
CustomerId | String | False |
The Id of the customer assigned to this order. |
DateCreated | Datetime | True |
The date of creation for the order. |
DateModified | Datetime | True |
The last modification date of the order. |
DateShipped | Datetime | True |
The date of shipment for the order. |
StatusId | String | True |
The Id of the status for this order. |
CartId | String | True |
The Id of the cart from which this order is assigned. |
Status | String | True |
Order Statuses. |
TotalTax | String | True |
The total value of the order. |
SubtotalTax | String | True |
The value for subtotal tax. |
SubtotalExTax | Decimal | False |
The value for subtotal, excluding tax. |
SubtotalIncTax | Decimal | False |
The value for subtotal, including tax. |
ShippingCostExTax | Decimal | False |
The value of shipping cost, excluding tax. |
ShippingCostIncTax | Decimal | False |
The value of shipping cost, including tax. |
HandlingCostExTax | Decimal | False |
The value of handling cost, excluding tax. |
HandlingCostIncTax | Decimal | False |
The value of handling cost, including tax. |
IpAddress | String | False |
IPv4 Address of the customer, if known. |
WrappingCostExTax | Decimal | False |
The value of wrapping cost, excluding tax. |
WrappingCostIncTax | Decimal | False |
The value of wrapping cost, including tax. |
TotalExTax | Decimal | False |
The total value of the order, excluding tax. |
TotalIncTax | Decimal | False |
The total value of the order, including tax. |
HandlingCostTax | String | True |
The value of handling cost. |
HandlingCostTaxClassId | Integer | True |
The Id of handling cost. |
ShippingCostTax | String | True |
The value of shipping cost. |
ItemsTotal | Integer | True |
The total number of items in the order. |
ItemsShipped | Integer | True |
The total number of items that have been shipped. |
PaymentMethod | String | True |
The payment method for this order. |
PaymentProviderId | String | False |
The external Transaction ID/Payment ID within this order's payment provider (if a payment provider was used). |
PaymentStatus | String | True |
The payment status for this order. |
RefundedAmount | Decimal | False |
The amount refunded from this transaction. |
GiftCertificateAmount | String | True |
Gift Certificate Amount. |
CurrencyId | String | True |
The ID of the currency being used in this transaction. |
CurrencyCode | String | True |
The currency code of the display currency. |
CurrencyExchangeRate | String | True |
The exchange rate between the default currency and display currency of store. |
DefaultCurrencyId | String | True |
The ID of the default currency for the store. |
DefaultCurrencyCode | String | False |
The currency code of the transactional currency the shopper pays in. |
StaffNotes | String | False |
Any additional notes for staff. |
CustomerMessage | String | False |
Message that the customer entered. |
DiscountAmt | Decimal | False |
Amount of discount for this transaction. |
EbayOrderId | String | False |
Ebay order number if order is placed through Ebay. |
GeoIpCountryIso2 | String | False |
The country where the customer made the purchase, in ISO2 format. |
ShippingAddressCount | Integer | True |
The number of shipping addresses associated with this transaction. |
CouponDiscount | String | True |
Discount of the coupon. |
OrderSource | String | True |
Source of the order. |
IsDeleted | Boolean | True |
Indicates whether the order was deleted (archived). |
OrderIsDigital | Boolean | True |
Indicates whether this is an order for digital products. |
ExternalSource | String | False |
A value identifying the system used to generate the order (for orders submitted or modified via the API). |
ExternalId | String | False |
ID of the order in another system. |
ExternalMerchantId | String | False |
Id of the external merchant. |
ChannelId | String | False |
Shows where the order originated. |
TaxProviderId | String | False |
BasicTaxProvider - Tax is set to manual; AvaTaxProvider - This is for when the tax provider has been set to automatic and the order was NOT created by the API; (blank) - When the tax provider is unknown. |
ProductsUrl | String | False |
Url of the products. |
ProductsResource | String | False |
Resource of the products. |
BillingFirstName | String | False |
Addressee first name. |
BillingLastName | String | False |
Addressee last name. |
BillingCompany | String | False |
Addressee company. |
BillingStreet1 | String | False |
Street address (first line). |
BillingStreet2 | String | False |
Street address (second line). |
BillingCity | String | False |
Addressee city |
BillingZip | String | False |
ZIP or postal code |
BillingCountry | String | False |
Addressee's country |
BillingCountryIso2 | String | False |
Addressee's country code |
BillingState | String | False |
The name of the state or province. Should be spelled out in full, for example, California. |
BillingEmail | String | False |
Recipient's email address. |
BillingPhone | String | False |
Recipient's telephone number. |
BaseHandlingCost | String | False |
The value of the base handling cost. |
BaseShippingCost | String | False |
The value of the base shipping cost. |
BaseWrappingCost | String | False |
The value of the base wrapping cost. |
Pseudo column fields are used to enable the user to INSERT Fields that are non-readable but required during creation of new records.
Name | Type | Description |
LinkedProducts | String |
Column for the aggregate table name holding order products. |
Returns shipments and their corresponding orders.
To insert a new Order Shipment, at least one Shipment Item is required to be attached to the INSERT query. For this reason, you can first populate a temporary ShipmentItems table with the desired items for the shipment you are about to create, and later using this table as a value for the LinkedProducts Pseudo-Columns during insertion:
INSERT INTO ShipmentItems#TEMP (Id,Quantity) Values (2519,1); INSERT INTO OrderShipments (OrderId,OrderAddressId,LinkedProducts) VALUES (1106,1007,ShipmentItems#TEMP);
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | True |
Numeric ID of this shipment within this order. |
OrderId | Integer | False |
Numeric ID of the associated order. |
DateCreated | Datetime | True |
Creation date for the shipment. |
TrackingNumber | String | False |
Tracking number of the shipment. |
TrackingCarrier | String | False |
Tracking carrier for the shipment. |
TrackingLink | String | True |
Returns a tracking link from the shipping service. |
ShippingProvider | String | False |
Enum of the BigCommerce shipping-carrier integration/module. |
ShippingMethod | String | False |
Enum of the BigCommerce shipping-carrier integration/module. |
Comments | String | False |
Comments the shipper wishes to add. |
OrderAddressId | Integer | False |
ID of this shipping address. |
Pseudo column fields are used to enable the user to INSERT Fields that are non-readable but required during creation of new records.
Name | Type | Description |
LinkedProducts | String |
Column for the aggregate table name holding order products. |
Returns a collection of price List records
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
PriceListId or (PriceListId and VariantId and Currency) are required for select.
For example, the following queries are processed server side:
SELECT * FROM PriceListRecords Where PriceListId IN (Select Id from PriceLists) SELECT * FROM PriceListRecords WHERE PriceListId = 1 SELECT * FROM PriceListRecords WHERE PriceListId=1 AND SalePrice=23 SELECT * FROM PriceListRecords where PriceListId=1 AND MapPrice=17.99 SELECT * FROM PriceListRecords where PriceListId=1 AND VariantId=361 AND Currency='USD'
To Update a new PriceListRecord, you need to specify at least the following columns:VariantId,Currency,Price,PriceListId
Insert into PriceListRecords#TEMP(VariantId,Currency,Price,SalePrice,PriceListId) values (361,'USD',27,23,1) Insert into PriceListRecords#TEMP(VariantId,Currency,Price,SalePrice,PriceListId) values (362,'USD',28,24,1) UPDATE PriceListRecords (VariantId,Currency,Price,SalePrice) Select VariantId,Currency,Price,SalePrice from PriceListRecords#TEMP
Bulk Update Using Aggregates.
Insert into PriceListRecords#TEMP(VariantId,Currency,Price,SalePrice,PriceListId,BulkPricingTiers) values (361,'USD',27,23,1, '{ \"quantity_min\": 10," \"quantity_max\" : 12," \"type\" : \"percent\"," \"amount\": 1 }' UPDATE PriceListRecords (VariantId,Currency,Price,SalePrice,BulkPricingTiers) Select VariantId,Currency,Price,SalePrice,BulkPricingTiers from PriceListRecords#TEMP
Name | Type | ReadOnly | Description |
CalculatedPrice | Double | True |
The price of the variant as seen on the storefront if a price record is in effect |
DateCreated | Datetime | True |
The date of creation for the Price Entry. |
DateModified | Datetime | True |
The last modification date of the Price Entry. |
ProductId | Integer | True |
The id of the Product this Price Record's variant_id is associated with. |
PriceListId [KEY] | Integer | True |
The Price List ID with which this price set is associated |
VariantId [KEY] | Integer | False |
The variant with which this price set is associated. |
Sku | String | False |
The variant with which this price set is associated |
Currency [KEY] | String | False |
The 3-letter currency code with which this price set is associated |
Price | Double | False |
The list price for the variant mapped in a Price List |
SalePrice | Double | False |
The sale price for the variant mapped in a Price List |
RetailPrice | Double | False |
The retail price for the variant mapped in a Price List |
MapPrice | Double | False |
The MAP (Manufacturers Advertised Price) for the variant mapped in a Price List |
BulkPricingTiers | Integer | False |
The minimum quantity of associated variant in the cart needed to qualify for this tiers pricing |
QuantityMin | Integer | False |
The minimum quantity of associated variant in the cart needed to qualify for this tiers pricing |
QuantityMax | Integer | False |
The maximum allowed quantity of associated variant in the cart to qualify for this tiers pricing. |
QuantityType | String | False |
The type of adjustment that is made. |
QuantityAmount | Double | False |
The maximum allowed quantity of associated variant in the cart to qualify for this tiers pricing. |
Returns a collection of price records
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM PriceLists SELECT * FROM PriceLists WHERE Id = 1 SELECT * FROM PriceLists WHERE DateCreated = '2021-05-26' SELECT * FROM PriceLists WHERE DateModified = '2021-05-26' SELECT * FROM PriceLists WHERE Name LIKE 'Wholesale group1'
To insert a new PriceList, you need to specify the following columns: Name and Active
INSERT INTO PriceLists (Name,Active) VALUES ('Wholesalegroup',false)
To Update the PriceList, you need to specify the following columns: Name and ID
UPDATE PriceLists SET Name = 'Wholesalegroup' WHERE Id = '4'
To Delete the PriceList, you need to specify the following columns:ID
DELETE From PriceLists WHERE Id = '4'
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | True |
ID of the PriceList. |
Active | Boolean | False |
The status of the PriceList. |
DateCreated | Datetime | True |
The date of creation for the PriceList. |
DateModified | Datetime | True |
The last modification date of the PriceList. |
Name | String | False |
The name of the PriceList. |
Returns images registered for products.
There are two alternatives to inserting new product images for BigCommerce, ImageFile and ImageUrl.
To insert a new Product Image using ImageFile, you only need the ProductId and the local path of your ImageFile written as a string using forward slashes as directory separators. BigCommerce does not allow for additional parameters when inserting an image using ImageFile. Trying to do so, will return an error.
INSERT INTO ProductImages (ProductId, ImageFile) VALUES (963,'C:/dev/tests/v19/ProviderBigCommerce/DDHU.jpg');
In addition to using ImageFiles, you can add Product Images by using ImageUrl-s of images on the Web. When inserting by ImageUrl-s, you can add additional fields to your query such as Description, SortOrder, and IsThumbnail..
INSERT INTO ProductImages (ProductId, ImageUrl) VALUES (955,'http://oi50.tinypic.com/kexbfq.jpg');
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | False |
The Id of the image. |
ProductId [KEY] | Integer | False |
The Id of the corresponding product. |
ImageFile | String | False |
The local path to the original image file uploaded to BigCommerce. |
StandardUrl | String | False |
Standard Image URL for the product. |
ThumbnailUrl | String | False |
The thumbnail URL for this image. By default, this is the image size used on the category page and in side panels. |
IsThumbnail | Boolean | False |
Flag for identifying whether the image is used as the product's thumbnail. |
SortOrder | Integer | False |
The order in which the image will be displayed on the product page. |
Description | String | False |
The description for the image. |
DateModified | Datetime | True |
The last modification date of the image. |
Pseudo column fields are used to enable the user to INSERT Fields that are non-readable but required during creation of new records.
Name | Type | Description |
ImageUrl | String |
The local path to the original image file to be uploaded to BigCommerce. |
Returns data from Products table.
To insert a new ProductOption, a set of OptionValues are required to be inserted along with it. This can be done by populating a temporary ProductOptionValues table with the desired values for the option you are creating, and later using this table as a value for the LinkedOptionValues Pseudo-Columns during insertion:
INSERT INTO ProductOptionValues#TEMP (Label,SortOrder,IsDefault) VALUES ('Classic',0,true); INSERT INTO ProductOptionValues#TEMP (Label,SortOrder,IsDefault) VALUES ('Elegance',1,false); INSERT INTO ProductOptionValues#TEMP (Label,SortOrder,IsDefault) VALUES ('Avantgarde',2,false); INSERT INTO ProductOptions (ProductId, DisplayName,Type,Name,SortOrder,LinkedOptionValues) VALUES (955,'ModelSeries','dropdown','Series',0,ProductOptionValues#TEMP);
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | True |
The ID of the option. |
ProductId [KEY] | Integer | True |
The ID of the product. |
DisplayName | String | False |
The name of the option shown on the storefront. |
Name | String | False |
The unique option name, auto-generated from the display name, a timestamp, and the product ID. |
Type | String | False |
The type of option, which determines how it will display on the storefront. Acceptable values: radio_buttons, rectangles, dropdown, product_list, product_list_with_images, swatch. |
SortOrder | Integer | False |
The order in which the option will be displayed on the product page. |
Pseudo column fields are used to enable the user to INSERT Fields that are non-readable but required during creation of new records.
Name | Type | Description |
LinkedOptionValues | String |
Column for the aggregate table name holding option values. |
Returns data from Products table.
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | True |
The ID of the option value. |
OptionId [KEY] | Integer | False |
The ID of the option. |
ProductId [KEY] | Integer | False |
The ID of the product. |
Label | String | False |
The label of the option value shown on the storefront. |
IsDefault | Boolean | False |
Whether this option value is the default for this option. |
SortOrder | Integer | False |
The order in which the option value will be displayed on the product page. |
Returns reviews registered for products.
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | False |
The Id of the review. |
ProductId [KEY] | Integer | True |
The Id of the corresponding product. |
Title | String | False |
Title of the review. |
Text | String | False |
Text content of the review. |
Status | String | False |
The status of the product review. Must be one of approved, disapproved, or pending. |
Rating | Integer | False |
The rating of the product review. Must be one of 0, 1, 2, 3, 4, or 5. |
String | False |
The email of the reviewer. Must be a valid email, or an empty string. | |
Name | String | False |
The name of the reviewer. |
DateCreated | Datetime | True |
The date of creation for the review. |
DateModified | Datetime | True |
The last modification date of the review. |
DateReviewed | Datetime | False |
Date the product was reviewed. |
Returns data from products table.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM Products SELECT * FROM Products WHERE Id > 5 AND Id < 10 SELECT * FROM Products WHERE IsVisible = "true" AND DateCreated >= "2020-01-01" AND DateCreated <= "2020-02-01"
To insert a new Product, you need to specify at least the following columns: Name, Type, Description, Price, Categories, Availability and Weight
INSERT INTO Products (Name, Type, Description, Price, Categories, Availability, Weight) VALUES ("Plain T-Shirt","physical","This is a test description",29.99,18,"available",0.5)
Inserting Products with more than one Variants using Temp table or Aggregegates.
Insert into ProductVariantValues#TEMP(Label, DisplayName, id) Values('Blue','Color', 1) Insert into ProductVariantValues#TEMP(Label, DisplayName, id) Values('Yellow','Color', 2) Insert into ProductVariants#TEMP(SKU, LinkedOptionValues, id) Values('SKU-AB', 'ProductVariantValues#TEMP', 1) Insert into ProductVariants#TEMP(SKU, LinkedOptionValues, id) Values('SKU-CD', 'ProductVariantValues#TEMP', 2) Insert into Products(Name, Type, Weight, Price, ProductVariants) Values('BC-8', 'physical',60,5700,'ProductVariants#TEMP')
INSERT INTO Products (Name, Type, Weight, Price, ProductVariants) VALUES ('BC-95', 'physical', 99, 5800, '[{"sku": "SKU-MM","option_values": [{"option_display_name": "Song","id": "1","label": "Mary"}]},{"sku": "SKU-DE","option_values": [{"option_display_name": "Song","id": "2","label": "Jane"}]}]')
Inserting Products with one Variant
Insert into ProductVariantValues#TEMP(Label, DisplayName) Values('Blue','Color') Insert into ProductVariants#TEMP(SKU, LinkedOptionValues) Values('SKU-AB', 'ProductVariantValues#TEMP') Insert into Products(Name, Type, Weight, Price, ProductVariants) Values('BC-8', 'physical',60,5700,'ProductVariants#TEMP')
Insert into Update#TEMP(Description,id,name,sku,categories,RelatedProducts,MetaKeywords,IsCustomized,Url) values ('my_details','80','hello123','OTL','19,23','1,2','"pqr","xyz"',false,'/orbit-terrarium-large/' Insert into Update#TEMP(Description,id,name,sku,categories,RelatedProducts,MetaKeywords,IsCustomized,Url) values ('my_details1','86','example','ABS','23,21','3,4','"abc","an"',false,'/able-brewing-system/' UPDATE products (Description,id,name,sku,categories,RelatedProducts,MetaKeywords,IsCustomized,Url) SELECT Description,id,name,sku,categories,RelatedProducts,MetaKeywords,IsCustomized,Url FROM Update#TEMP
Bulk Update Using Aggregates.
Insert into Update#TEMP(Description,id,name,sku,categories,RelatedProducts,MetaKeywords,CustomUrl) values ('details1','77','name4456','SLCTBS','23,18','10','"abcd","ab"', '{ "is_customized": False, "url" : "/fog-linen-chambray-towel-beige-stripe/" }') UPDATE products (Description,id,name,sku,categories,RelatedProducts,CustomUrl) SELECT Description,id,name,sku,categories,RelatedProducts,CustomUrl FROM Update#TEMP
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | True |
The Id of the product. |
Name | String | False |
The product name. |
Type | String | False |
The product type. |
Sku | String | True |
User-defined product code/stock keeping unit (SKU) |
Description | String | False |
Product description, which can include HTML formatting. |
SearchKeywords | String | False |
A comma-separated list of keywords that can be used to locate the product when searching the store. |
AvailabilityDescription | String | False |
Availability text, displayed on the checkout page under the product title, telling the customer how long it will normally take to ship this product. |
Price | Decimal | False |
The products price. |
CostPrice | Decimal | False |
The products cost price. |
RetailPrice | Decimal | False |
The products retail cost. |
SalePrice | Decimal | False |
Sale price. |
ProductTaxCode | String | False |
Tax Codes. |
CalculatedPrice | Decimal | True |
Price as displayed to guests, adjusted for applicable sales and rules. |
SortOrder | Integer | False |
Priority to give this product when included in product lists on category pages and in search results. |
IsVisible | Boolean | False |
Flag to determine whether or not the product should be displayed to customers browsing. |
IsFeatured | Boolean | False |
Flag to determine whether the product should be included in the featured products panel for shoppers viewing the store. |
RelatedProducts | String | False |
Defaults to -1, which causes the store to automatically generate a list of related products. |
InventoryLevel | String | False |
Current inventory level of the product. |
InventoryWarningLevel | String | False |
Inventory Warning level for the product. |
Warranty | String | False |
Warranty information displayed on the product page. |
Weight | Decimal | False |
Weight of the product, which can be used when calculating shipping costs. |
Width | Decimal | False |
Width of the product, which can be used when calculating shipping costs. |
Height | Decimal | False |
Height of the product, which can be used when calculating shipping costs. |
Depth | Decimal | False |
Depth of the product, which can be used when calculating shipping costs. |
FixedCostShippingPrice | Decimal | False |
A fixed shipping cost for the product. |
IsFreeShipping | Boolean | False |
Flag used to indicate whether or not the product has free shipping. |
InventoryTracking | String | False |
The type of inventory tracking for the product. |
RatingTotal | Integer | False |
The total rating for the product. |
RatingCount | Integer | False |
The total number of ratings the product has had. |
TotalSold | Integer | False |
Total quantity of this product sold through transactions. |
DateCreated | Datetime | False |
The date of which the product was created. |
BrandId | Integer | True |
The products brand |
ViewCount | Integer | False |
The number of times the product has been viewed. |
PageTitle | String | False |
Custom title for the products page. |
MetaKeywords | String | False |
Custom meta keywords for the product page. |
MetaDescription | String | False |
Custom meta description for the product page. |
LayoutFile | String | False |
The layout template file used to render this product category. |
IsPriceHidden | Boolean | False |
The default false value indicates that this products price should be shown on the product page. |
PriceHiddenLabel | String | False |
By default, an empty string. If is_price_hidden is true, the value of price_hidden_label will be displayed instead of the price. |
Categories | Int[] | False |
An array of IDs for the categories this product belongs to. When updating a product, if an array of categories is supplied, then all product categories will be overwritten. |
DateModified | Datetime | False |
The date that the product was last modified. |
EventDateFieldName | String | False |
Name of the field to be displayed on the product page when selecting the event/delivery date. |
EventDateType | String | False |
Event Date type. |
EventDateStart | Datetime | False |
When the product requires the customer to select an event/delivery date, this date is used as the after date. |
EventDateEnd | Datetime | False |
When the product requires the customer to select an event/delivery date, this date is used as the before date. |
MYOBAssetAccount | String | False |
MYOB Asset Account. |
MYOBIncomeAccount | String | False |
MYOB Income Account. |
MYOBExpenseAccount | String | False |
MYOB Expense/COS Account. |
PeachtreeGlAccount | String | False |
Peachtree General Ledger Account. |
Condition | String | False |
The products condition. |
IsConditionShown | Boolean | False |
Flag used to determine whether the products condition will be shown to the customer on the product page. |
PreorderReleaseDate | Datetime | False |
Pre-order release date. |
IsPreorderOnly | Boolean | False |
If set to false, the product will not change its availability from preorder to available on the release date. |
PreorderMessage | String | False |
Custom expected-date message to display on the product page. |
OrderQuantityMinimum | Integer | False |
The minimum quantity an order must contain in order to purchase this product. |
OrderQuantityMaximum | Integer | False |
The maximum quantity an order can contain when purchasing the product. |
OpenGraphType | String | False |
Type of product. |
OpenGraphTitle | String | False |
Title of the product. If not specified, the products name will be used instead. |
OpenGraphDescription | String | False |
Description to use for the product. |
IsOpenGraphThumbnail | Boolean | False |
If set to true, the product thumbnail image will be used as the open graph image. |
UPC | String | False |
The product UPC code, which is used in feeds for shopping comparison sites. |
DateLastImported | Datetime | False |
The date on which the product was last imported using the bulk importer. |
OptionSetId | Integer | True |
The ID of the option set applied to the product. |
TaxClassId | Integer | True |
The ID of the tax class applied to the product. |
OptionSetDisplay | String | True |
The position on the product page where options from the option set will be displayed. |
BinPickingNumber | String | False |
The BIN picking number for the product. |
CustomUrl | String | False |
Custom URL (if set) overriding the structure dictated in the stores settings. |
ManufacturerPartNumber | String | False |
Manufacturer Part Number. |
IsCustomized | Boolean | False |
Returns true if the URL has been changed from its default state (the auto-assigned URL that BigCommerce provides. |
Url | String | False |
Product URL on the storefront. |
Availability | String | False |
Availability of the product. |
PrimaryImageId | Integer | True |
Id of the primary image. |
PrimaryImageStandardUrl | String | True |
Standard url of the primary image. |
Pseudo column fields are used to enable the user to INSERT Fields that are non-readable but required during creation of new records.
Name | Type | Description |
ProductVariants | String |
Variants of the Products |
Returns data from Products table.
To create a new ProductVariant, a set of OptionValues are required to be inserted along with it. This can be done by populating a temporary ProductVariantValues table with the desired values for the option you are creating, and later using this table as a value for the LinkedOptionValues Pseudo-Columns during insertion:
INSERT INTO ProductVariantValues#TEMP (Id,OptionId,Label,DisplayName) VALUES (181,118, 'Elegance', 'Series'); INSERT INTO ProductVariants (ProductId, LinkedOptionValues,SKU) VALUES (955, ProductVariantValues#TEMP, 'DSFMGG');
Name | Type | ReadOnly | Description |
Id [KEY] | Integer | True |
The ID of the product variant. |
ProductId [KEY] | Integer | True |
The ID of the product. |
SKU | String | False |
User defined product code/stock keeping unit (SKU). |
Name | String | False |
The product variant name. |
Type | String | False |
The product type. One of: physical - a physical stock unit, digital - a digital download. |
InventoryLevel | Integer | False |
Available Inventory. |
Weight | Double | False |
Weight of this product variant, which can be used when calculating shipping costs. |
Price | Decimal | False |
The price of the product variant. The price should include or exclude tax, based on the store settings. |
CostPrice | Decimal | False |
The cost price of the product variant. Stored for reference only; it is not used or displayed anywhere on the store. |
Pseudo column fields are used to enable the user to INSERT Fields that are non-readable but required during creation of new records.
Name | Type | Description |
LinkedOptionValues | String |
Column for the aggregate table name holding option values. |
Views are composed of columns and pseudo columns. Views are similar to tables in the way that data is represented; however, views do not support updates. Entities that are represented as views are typically read-only entities. Often, a stored procedure is available to update the data if such functionality is applicable to the data source.
Queries can be executed against a view as if it were a normal table, and the data that comes back is similar in that regard.
Dynamic views, such as queries exposed as views, and views for looking up specific combinations of project_team work items are supported.
Name | Description |
Blogposts | Returns all Blog Posts. |
BlogTags | Returns a list of Blog Tags. |
Brands | Gets the collection of brands. |
Coupons | Lists all coupons. |
CustomerGroups | Returns a list of Customer Groups. |
GiftCertificates | Lists all gift certificates. |
OrderCoupons | Lists all order coupons. |
OrderItemOptionValues | Returns data from OrderItems table. |
OrderMessages | Gets the messages associated with an order. |
OrderRefunds | Returns a list of refunds. |
OrderRefundsItems | List of Items refunded. |
OrderRefundsPayments | Refund payments made to payment providers. |
OrderShippingAddresses | Returns shipping addresses and their corresponding orders. |
OrderStatuses | Returns order statuses. |
OrderTaxes | Gets all order taxes related to an order. |
Pages | Lists all pages. |
PaymentMethods | Lists all payment methods. |
PriceListAssignments | Returns an array of Price List Assignments matching a particular Customer Group and Price List and Channel. |
ProductBulkPricingRules | Returns bulk pricing rules applied to a product. |
ProductCustomFields | Lists all tax classes. |
ProductRules | Returns rules that modify the properties of a product, such as weight, price, and product image. |
ProductSkus | Returns Stock Keeping Unit identifiers associated with products or product options. |
ProductVariantValues | Returns data from Products table. |
ProductVideos | Returns Embedded videos displayed on product listings. |
Redirects | Lists all redirect URLs. |
ShipmentItems | Returns data from Items within a shipment. |
ShippingMethods | Lists all shipping methods. |
ShippingZones | Lists all shipping zones. |
Stores | Lists all Stores. |
TaxClasses | Lists all tax classes. |
Transactions | Lists all transactions. |
Returns all Blog Posts.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM Blogposts SELECT * FROM Blogposts WHERE Id = "1234" SELECT * FROM Blogposts WHERE IsPublished = "true"
Name | Type | Description |
Id [KEY] | Integer | Id of the blogpost |
Title | String | Title of this blog post. |
URL | String | URL for the public blog post. |
PreviewURL | String | URL to preview the blog post. |
Body | String | Text body of the blog post. |
Summary | String | Summary of the blog post. |
IsPublished | Boolean | Whether the blog post is published. |
PublishedDate | Datetime | Date when the blogpost was published. |
PublishedTimezone | String | Timezone when the blogpost was published. |
PublishedTimezoneType | String | Type of the timezone. |
PublishedDateISO | String | Published date in ISO8601 format. |
MetaDescription | String | Description text for this blog posts meta element. |
MetaKeywords | String | Keywords for this blog posts meta element. |
Author | String | Name of the blog posts author. |
ThumbnailPath | String | Local path to a thumbnail image within the product_images folder to accompany the blog post. |
Returns a list of Blog Tags.
Name | Type | Description |
BlogIds [KEY] | String | Id of the blogpost |
Tag | String | Tag which belongs to the blog. |
Gets the collection of brands.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM Brands SELECT * FROM Brands WHERE Id = 1 SELECT * FROM Brands WHERE Id >= 1 AND Id <= 5
Name | Type | Description |
Id [KEY] | Integer | The id of the brand. |
Name | String | The name of the brand. Must be unique. |
PageTitle | String | The title shown in the browser while viewing the brand. |
MetaKeywords | String | Comma-separated list of meta keywords to include in the HTML. |
MetaDescription | String | A meta description to include. |
ImageFile | String | A valid image. |
Lists all coupons.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM Coupons SELECT * FROM Coupons WHERE Id = 1 SELECT * FROM Coupons WHERE Id >= 1 AND Id <= 5 SELECT * FROM Coupons WHERE Name = "test"
Name | Type | Description |
Id [KEY] | Integer | The coupons ID. |
Name | String | The name of the coupon. |
Type | String | Type of the coupon. |
Amount | Decimal | The discount to apply to an order, as either an amount or a percentage. |
MinPurchase | Decimal | Specifies a minimum value that an order must have before the coupon can be applied to it. |
Expires | Datetime | Specifies when a coupon expires. |
Enabled | Boolean | If the coupon is enabled, this fields value is true; otherwise, false. |
Code | String | The coupon code that customers will use to receive their discounts. |
AppliesToEntity | String | What the discount applies to. Can be products or categories. |
AppliesToIds | String | ID of either the products or categories |
NumUses | Integer | Number of times this coupon has been used. |
MaxUses | Integer | Maximum number of times this coupon can be used. |
MaxUsesPerCustomer | Integer | Maximum number of times each customer can use this coupon. |
DateCreated | Datetime | Date Created |
ShippingMethods | String | List of shipping-method names. |
Returns a list of Customer Groups.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM CustomerGroups SELECT * FROM CustomerGroups WHERE Id = 1 SELECT * FROM CustomerGroups WHERE IsDefault = "true" SELECT * FROM CustomerGroups WHERE IsGroupForGuests = "true"
Name | Type | Description |
Id [KEY] | Integer | Id of the customer group |
Name | String | Name of the group |
IsDefault | Boolean | Determines whether new customers are assigned to this group by default. |
CategoryAccessType | String | Type of the category access. |
IsGroupForGuests | Boolean | If the groups is for guests. There can only be one customer group for guests at a time. |
Lists all gift certificates.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM GiftCertificates SELECT * FROM GiftCertificates WHERE Id = 1 SELECT * FROM GiftCertificates WHERE IsDefault = "true" SELECT * FROM GiftCertificates WHERE IsGroupForGuests = "true"
Name | Type | Description |
Id [KEY] | Integer | The ID of the gift certificate. |
Code | String | A unique string that the customer can input to redeem the gift certificate. |
Amount | Decimal | Value of the gift certificate. |
Status | String | Status of the gift certificate. |
Balance | Decimal | Remaining value of the gift certificate. |
ToName | String | Name of the recipient. |
ToEmail | String | Email of the recipient. |
OrderId | Integer | The ID of the order. |
Template | String | The email theme to use in the message sent to the recipient. |
Message | String | Text that will be sent to the recipient, such as Congratulations. |
FromName | String | Name of the customer who purchased the gift certificate. |
FromEmail | String | Email of the customer who purchased the gift certificate. |
CustomerId | Integer | The id of the customer placing the order. |
ExpiryDate | Datetime | Date on which the gift certificate is set to expire. |
PurchaseDate | Datetime | Date the gift certificate was purchased. |
Lists all order coupons.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM OrderCoupons SELECT * FROM OrderCoupons WHERE Id = 1 SELECT * FROM OrderCoupons WHERE OrderId = 2
Name | Type | Description |
Id [KEY] | Integer | Numeric ID of this product within this order. |
OrderId | Integer | Numeric ID of the associated order. |
CouponId | Integer | The coupon id. |
Code | String | The code of the coupon. |
Amount | Decimal | The amount of the coupon. |
Type | Integer | The type of the coupon. |
Discount | Decimal | The discount of the coupon. |
Returns data from OrderItems table.
The ID of the corresponding Order-Item is required to perform a SELECT query on OrderItemOptionValues:
SELECT * FROM [OrderItemOptionValues] WHERE OrderItemId=2522;
Name | Type | Description |
Id [KEY] | Integer | The numerical ID of the option value within the group of ordered items. |
OptionId | Integer | The ID of the option from Product Options table. |
OrderItemId | Integer | The ID of the product. |
OrderItemOptionId | Integer | The numerical ID of the option within the group of ordered items. |
DisplayName | String | The name of the option shown on the storefront. |
DisplayValue | String | The value of the option shown on the storefront. |
Value | Integer | The actual value of the option. |
Name | String | The unique option name, auto-generated from the display name, a timestamp, and the product ID. |
Type | String | The type of option, which determines how it will display on the storefront. Acceptable values: radio_buttons, rectangles, dropdown, product_list, product_list_with_images, swatch. |
DisplayStyle | String | The specific style which the order will be displayed as. |
Gets the messages associated with an order.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM OrderMessages SELECT * FROM OrderMessages WHERE Id = 1 SELECT * FROM OrderMessages WHERE OrderId = 2 SELECT * FROM OrderMessages WHERE IsFlagged = "true" SELECT * FROM OrderMessages WHERE DateCreated >= "2019-01-01" AND DateCreated <= "2020-01-01"
Name | Type | Description |
Id [KEY] | Integer | Numeric ID of this product within this order. |
OrderId | Integer | Numeric ID of the associated order. |
StaffId | Integer | The staff id. |
CustomerId | Integer | The customer id. |
Type | String | Type of the message. |
Subject | String | Subject of the message. |
Message | String | Message content. |
Status | String | Status of the message. |
IsFlagged | Boolean | Indicator if the message is flagged. |
DateCreated | Datetime | Datetime when the message was first created. |
Returns a list of refunds.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM OrderRefunds SELECT * FROM OrderRefunds WHERE Id = 1 SELECT * FROM OrderRefunds WHERE OrderId = 2
Name | Type | Description |
Id [KEY] | Integer | Refund resource ID. |
Created [KEY] | Datetime | Timestamp of when this refund was created. |
OrderId | Integer | Reference to order id. |
Reason | String | Reason for refund. |
TotalAmount | Decimal | A non-negative 2 decimal place rounded value that represents the amount that can be charged/refunded via payment providers. |
TotalTax | Decimal | Total tax amount refunded back to the shopper. Note: order_level_amount does not affect tax liability. |
UserId | Integer | Reference to the user's id who create this refund. |
UsesMerchantOverrideValues | Boolean | Whether refund amount and tax are provided explicitly by merchant override |
List of Items refunded.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM OrderRefundsItems SELECT * FROM OrderRefundsItems where OrderRefundId=2 SELECT * FROM OrderRefundsItems where OrderId=2
Name | Type | Description |
ItemId [KEY] | Integer | order_product.id corresponding to the item_types of PRODUCT, GIFT_WRAPPING. order_address.id corresponding to the item_types of SHIPPING, HANDLING. order.id corresponding to the item_type of ORDER. |
OrderRefundId | Integer | The ID of the order refund. |
OrderId | Integer | Reference to order id. |
ItemType | String | Type of item that was refunded. |
Quantity | Integer | Quantity of item refunded. Note: this will only be populated for item_type PRODUCT |
Reason | Boolean | Reason for refunding an item. |
RequestedAmount | Decimal | A non-negative 2 decimal place rounded value that represents the amount that can be charged/refunded via payment providers.. |
Refund payments made to payment providers.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM OrderRefundsPayments SELECT * FROM OrderRefundsItems where OrderRefundId=2 SELECT * FROM OrderRefundsPayments where OrderId=2
Name | Type | Description |
Id [KEY] | Integer | The ID of the refund payment. |
OrderRefundId | Integer | The ID of the order refund. |
OrderId | Integer | Reference to order id. |
ProviderId | String | Reference to payment provider. |
Amount | Decimal | A non-negative 2 decimal place rounded value that represents the amount that can be charged/refunded via payment providers. |
Offline | Boolean | Indicate whether payment was offline. |
IsDeclined | Boolean | Indicate if this payment has been declined by payment provider. |
DeclinedMessage | String | Message indicate why payment was declined. |
Returns shipping addresses and their corresponding orders.
Name | Type | Description |
Id [KEY] | Integer | ID of this shipping address. |
OrderId | Integer | ID of the order. |
FirstName | String | Addressee first name. |
LastName | String | Addressee last name. |
Company | String | Addressee company. |
Street1 | String | Street address (first line). |
Street2 | String | Street address (second line). |
City | String | Addressee city. |
Zip | String | ZIP or postal code. |
Country | String | Addressee's country. |
State | String | The name of the state or province. Should be spelled out in full, for example, California. |
String | Recipient's email address. | |
Phone | String | Recipient's telephone number. |
Returns order statuses.
Name | Type | Description |
Id [KEY] | Integer | The Id of the type of order status |
Name | String | Name of the type of order status. |
Systemlabel | String | System name of the type of order status. |
CustomLabel | String | Custom order status label given in the Control Panel. |
SystemDescription | String | System description of the order status. |
Gets all order taxes related to an order.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM OrderTaxes SELECT * FROM OrderTaxes WHERE Id = 1 SELECT * FROM OrderTaxes WHERE OrderId = 2
Name | Type | Description |
Id [KEY] | Integer | Numeric ID of this product within this order. |
OrderId | Integer | Numeric ID of the associated order. |
OrderAddressId | Integer | The unique numeric identifier of the order address object associated with the order. |
TaxRateId | Integer | The unique numeric identifier of the tax rate. |
TaxClassId | Integer | The unique numeric identifier of the tax class object. |
Name | String | The name of the tax class object. |
Class | String | The name of the type of tax that was applied. |
Rate | Decimal | The tax rate. |
Priority | Integer | The order in which the tax is applied. |
PriorityAmount | Decimal | The amount of tax calculated on the order. |
LineAmount | Decimal | The line amount. |
OrderProductId | String | If the line_item_type is item or handling then this field will be the order product id. Otherwise the field will return as null. |
LineItemType | String | Type of tax on item. |
Lists all pages.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM Pages SELECT * FROM Pages WHERE Id = 1
Name | Type | Description |
Id [KEY] | Integer | Id of the page. |
ChannelId | Integer | Channel Id of the page. |
Name | String | Name of the page. |
String | Email of the page. | |
MetaTitle | String | Title of the page. |
Body | String | Body of the page. |
IsVisible | Boolean | Indicator if page is visible. |
ParentId | Integer | Parent id of the page. |
SortOrder | Integer | Sort order of the page. |
MetaKeywords | String | Keywords of the page. |
Type | String | Type of the page. |
MetaDescription | String | Description of the page. |
IsHomepage | Boolean | Indicator if the page is homepage. |
LayoutFile | String | Layout file of the page. |
IsCustomersOnly | Boolean | Indicator if the page is customer only. |
SearchKeywords | String | Search keywords of the page. |
HasMobileVersion | Boolean | Indicator if the page is mobile supported. |
MobileBody | String | Mobile body of the page. |
Url | String | Url of the page. |
DateCreated | Datetime | Date when the page was created. |
Feed | String | Feed of the page. |
Link | String | Link of the page. |
Lists all payment methods.
Name | Type | Description |
Code [KEY] | String | The code of the payment method. |
Name | String | The name of the payment method. |
TestMode | Boolean | Indicator if the payment method is in test mode. |
Returns an array of Price List Assignments matching a particular Customer Group and Price List and Channel.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
SELECT * FROM PriceListAssignments WHERE CustomerGroupId IN (1,2) SELECT * FROM PriceListAssignments WHERE PriceListId IN (1,2) SELECT * FROM PriceListAssignments WHERE PriceListId = 1 SELECT * FROM PriceListAssignments WHERE CustomerGroupId = 1
Name | Type | Description |
Id | Integer | The ID of the PriceList Assignment. |
CustomerGroupId | Integer | The ID of the customer group. |
PriceListId | Integer | The ID of the PriceList. |
ChannelId | Integer | ID of the Channel. |
Returns bulk pricing rules applied to a product.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM ProductBulkPricingRules SELECT * FROM ProductBulkPricingRules WHERE Id = 1 SELECT * FROM ProductBulkPricingRules WHERE ProductId = 2
Name | Type | Description |
Id [KEY] | String | The ID of the bulk discount rule. |
ProductId [KEY] | Integer | The ID of the product associated with this bulk discount rule. |
Min | Integer | The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. |
Max | Integer | The maximum inclusive quantity of a product to satisfy this rule. |
Type | String | Type of the discount. |
TypeValue | Decimal | The value of the discount |
Lists all tax classes.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM ProductCustomFields SELECT * FROM ProductCustomFields WHERE Id = 1 SELECT * FROM ProductCustomFields WHERE ProductId = 2
Name | Type | Description |
Id [KEY] | Integer | Numeric ID of the custom field. |
ProductId | Integer | Id of the product that the custom field belongs to. |
Name | String | Name of the custom field. |
Text | String | Value of the custom field. |
Returns rules that modify the properties of a product, such as weight, price, and product image.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM ProductRules SELECT * FROM ProductRules WHERE Id = 1 SELECT * FROM ProductRules WHERE ProductId = 2
Name | Type | Description |
Id [KEY] | Integer | The ID of the rule. |
ProductId [KEY] | Integer | The ID of the product to which the rule belongs. |
SortOrder | Integer | The order in which the rule will be displayed on the product page. |
IsEnabled | Boolean | If set to true, the rule will be evaluated when a customer configures a products options. |
IsStop | Boolean | If set to true and the rule evaluates to true, no more rules with a higher sort_order will be processed. |
PriceAdjusterName | String | Price adjuster name. |
PriceAdjusterValue | Decimal | Price adjuster value. |
WeightAdjusterName | String | Weight adjuster name. |
WeightAdjusterValue | Decimal | Weight adjuster value. |
IsPurchasingDisabled | Boolean | If true this rule prohibits purchasing the product with the configured option values. |
PurchasingDisabledMessage | String | The message to display if the rule disabled purchasing the product. |
IsPurchasingHidden | Boolean | If true the rule hides the options on the product. |
ImageFile | String | A path to an rule already uploaded via FTP in the import directory and the path should be relative from the import directory. |
Returns Stock Keeping Unit identifiers associated with products or product options.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM ProductSkus SELECT * FROM ProductSkus WHERE Id = 1 SELECT * FROM ProductSkus WHERE Id >= 1 AND Id <= 4 SELECT * FROM ProductSkus WHERE ProductId = 2 SELECT * FROM ProductSkus WHERE InventoryLevel = "test"
Name | Type | Description |
Id [KEY] | Integer | ID of this sku. |
ProductId [KEY] | Integer | ID of the associated product. |
Sku | String | The unique SKU (stock keeping unit). |
Price | Decimal | This SKUs base price on the storefront. |
AdjustedPrice | Decimal | The SKUs price on the storefront, after the products base price is inherited, or any option set or any product rules are applied. |
CostPrice | Decimal | The products cost price. |
UPC | String | |
InventoryLevel | Integer | The inventory level for the product. |
InventoryWarningLevel | Integer | The inventory warning level for the product . |
BinPickingNumber | String | The BIN picking number. |
Weight | Decimal | This SKUs base weight on the storefront. |
AdjustedWeight | Decimal | This SKUs weight on the storefront, after the products base weight is inherited, or any option set or any product rules are applied. |
IsPurchasingDisabled | Boolean | If true, this prohibits purchasing of the SKU. |
PurchasingDisabledMessage | String | The message to display if purchasing is disabled on this SKU. |
ImageFile | String | The image that will be displayed when this SKU is selected on the storefront. When updating a SKU image, send the publicly accessible URL. Supported image formats are JPEG, PNG, and GIF. |
Returns data from Products table.
Name | Type | Description |
Id [KEY] | Integer | The ID of the option value. |
VariantId [KEY] | Integer | The ID of the corresponding variant. |
OptionId [KEY] | Integer | The ID of the option. |
Label | String | The label of the option value shown on the storefront. |
DisplayName | String | The label of the option value shown on the storefront. |
Returns Embedded videos displayed on product listings.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM ProductVideos SELECT * FROM ProductVideos WHERE Id = 1 SELECT * FROM ProductVideos WHERE ProductId = 1
Name | Type | Description |
Id [KEY] | String | ID of this video. |
ProductId [KEY] | Integer | ID of the associated product. |
SortOrder | Integer | Sort order for this video. |
Name | String | Name for this video. |
Lists all redirect URLs.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM Redirects SELECT * FROM Redirects WHERE Id = 1
Name | Type | Description |
Id [KEY] | Integer | Numeric ID of the redirect. |
SiteId | Integer | Site ID of the redirect. |
FromPath | String | The path from which to redirect. |
ToType | String | The type of redirect. |
ToEntityId | Integer | EntityId of the redirect. |
ToURL | String | URL of the redirect. |
URL | String | Full destination URL for the redirect. Must be explicitly included via URL parameter. |
Returns data from Items within a shipment.
Name | Type | Description |
Id [KEY] | Integer | Id of the Product within the order. |
ProductId | Integer | Numerical Id of the product. |
OrderShipmentId | String | Id of the shipment. |
Quantity | Integer | Quantity of product shipped. |
Lists all shipping methods.
Name | Type | Description |
Id [KEY] | Integer | Shipping Method Id. |
Name | String | Shipping Method name. |
Type | String | Shipping Method type. |
Enabled | Boolean | Minimum subtotal of the free shipping. |
HandlingFeesPercentageSurcharge | Decimal | Percentage surcharge of the handling fee. |
HandlingFeesFixedSurcharge | Decimal | Fixed surcharge of the handling fee. |
IsFallback | Boolean | Whether or not this shipping zone is the fallback if all others are not valid for the order. |
Lists all shipping zones.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM ShippingZones SELECT * FROM ShippingZones WHERE Id = 1
Name | Type | Description |
Id [KEY] | Integer | Zone Id. |
Name | String | Zone name. |
Type | String | Zone type. |
FreeShippingEnabled | Boolean | Indicator if free shipping is enabled. |
FreeShippingMinimumSubTotal | Decimal | Minimum subtotal of the free shipping. |
FreeShippingExcludeFixedShippingProducts | Boolean | Indicator whether or not to exclude fixed shipping on products. |
HandlingFeesDisplaySeparately | Boolean | Indicator whether or not to display the handling fees separately. |
HandlingFeesPercentageSurcharge | Decimal | Percentage surcharge of the handling fee. |
HandlingFeesFixedSurcharge | Decimal | Fixed surcharge of the handling fee. |
Enabled | Boolean | Whether this shipping zone is enabled. |
Lists all Stores.
Name | Type | Description |
Id [KEY] | String | Unique store identifier. |
Domain | String | Primary domain name. |
SecureUrl | String | Stores current HTTPS URL. |
Status | String | Status of the store. |
Name | String | Stores name. |
FirstName | String | Primary contacts first name |
LastName | String | Primary contacts last name |
Address | String | Display address. |
Country | String | Country where the store is located |
CountryCode | String | Country code. |
Phone | String | Display phone number. |
AdminEmail | String | Email address of the store administrator/owner. |
OrderEmail | String | Email address for orders and fulfillment. |
FaviconUrl | String | URL of the favicon. |
TimezoneName | String | A string identifying the time zone, in the format: /. |
TimezoneRawOffset | Integer | A negative or positive number, identifying the offset from UTC/GMT, in seconds, during winter/standard time. |
Language | String | Default language code. |
Currency | String | Default currency code |
CurrencySymbol | String | Default symbol for values in the currency. |
DecimalSeparator | String | Default decimal separator for values in the currency. |
ThousandsSeparator | String | Default thousands separator for values in the currency. |
DecimalPlaces | Integer | Default decimal places for values in the currency. |
CurrencySymbolLocation | String | Default position of the currency symbol (left or right). |
WeightUnits | String | Default weight units (metric or imperial). |
DimensionUnits | String | Default dimension units (metric or imperial). |
DimensionDecimalPlaces | Integer | The number of decimal places. |
DimensionDecimalToken | String | The symbol that separates the whole numbers from the decimal points. |
DimensionThousandsToken | String | The symbol used to denote thousands. |
PlanName | String | Name of the BigCommerce plan to which this store is subscribed. |
PlanLevel | String | Level of the BigCommerce plan to which this store is subscribed. |
Industry | String | Industry, or vertical category, in which the business operates. |
LogoUrl | String | URL of the logo. |
IsPriceEnteredWithTax | Boolean | A Boolean value that indicates whether or not prices are entered with tax. |
FeaturesStencilEnabled | Boolean | Indicates whether a store is using a Stencil theme. |
FeaturesSitewideHttpsEnabled | Boolean | Indicates if there is sitewide https. |
FeaturesFacebookCatalogId | String | Id of the facebook catalog. If there is none, it returns an empty string. |
FeaturesCheckoutType | String | What type of checkout is enabled on the store. |
Lists all tax classes.
The Cloud will use the BigCommerce API to process WHERE clause conditions built with the following column and operator. The rest of the filter is executed client side within the Cloud.
For example, the following queries are processed server side:
SELECT * FROM TaxClasses SELECT * FROM TaxClasses WHERE Id = 1
Name | Type | Description |
Id [KEY] | Integer | Numeric ID of the tax class. |
Name | String | Name of the tax class. |
Lists all transactions.
Name | Type | Description |
Id [KEY] | Integer | Unique identifier for the transaction. |
OrderId | String | Identifier for the BigCommerce Order with which this transaction is associated. |
Event | String | Store event that created the transaction. |
Method | String | The payment method. |
Amount | Decimal | Amount of money in the transaction. |
Currency | String | Currency used for the transaction. |
Gateway | String | The payment gateway. |
Status | String | Status of the transaction. |
GatewayTransactionId | String | The transaction ID returned by the payment gateway for this transaction item. |
DateCreated | Datetime | The datetime of the transaction. |
Test | Boolean | True if the transaction performed was a test, or if the gateway is in test mode. |
FraudReview | Boolean | Result of gateway fraud review, if any. |
ReferenceTransactionId | Integer | Identifier for an existing transaction upon which this transaction acts. |
OfflineDisplayName | String | Display name for the offline payment. |
CustomPaymentMethod | String | Custom payment from manual order. |
PaymentMethodId | String | The payment method ID used for this transaction. |
PaymentInstrumentToken | String | Internal BigPay token for stored card. |
AVSResultCode | String | AVS code from the payment gateway. |
AVSResultMessage | String | AVS message from the payment gateway. |
AVSResultStreetMatch | String | AVS Code for street matching result. |
AVSResultPostalMatch | String | AVS Code for postal matching result. |
CVVResultCode | String | CVV Code from the payment Gateway. |
CVVResultMessage | String | CVV Message from the payment Gateway. |
CreditCardType | String | Type of credit-card. |
CreditCardIIN | String | The IIN of a credit-card number. |
CreditCardLast4 | String | The last 4 digits of a credit-card number. |
CreditCardExpiryMonth | Integer | The expiry month of a credit-card. |
CreditCardExpiryYear | Integer | The expiry year of a credit-card. |
GiftCertificateCode | String | The gift-certificate code. |
GiftCertificateOriginalBalance | Decimal | The balance on a gift certificate when it was purchased. |
GiftCertificateStartingBalance | Decimal | The balance on a gift certificate at the time of this purchase. |
GiftCertificateRemainingBalance | Decimal | The remaining balance on a gift certificate. |
GiftCertificateStatus | String | The status of a gift certificate. |
StoreCreditRemainingBalance | Decimal | Remaining balance of shopper's store credit. |
Stored procedures are function-like interfaces that extend the functionality of the Cloud beyond simple SELECT/INSERT/UPDATE/DELETE operations with BigCommerce.
Stored procedures accept a list of parameters, perform their intended function, and then return, if applicable, any relevant response data from BigCommerce, along with an indication of whether the procedure succeeded or failed.
Name | Description |
Gets an authentication token from BigCommerce.
Name | Type | Required | Description |
AuthMode | String | False | The type of authentication mode to use. Select App for getting authentication tokens via a desktop app. Select Web for getting authentication tokens via a Web app.
The allowed values are APP, WEB. The default value is APP. |
Scope | String | False | A comma-separated list of permissions to request from the user. Please check the BigCommerce API for a list of available permissions.
The default value is store_v2_orders store_v2_customers store_v2_products store_v2_information. |
CallbackUrl | String | False | The URL the user will be redirected to after authorizing your application. This value must match the Redirect URL you have specified in the BigCommerce app settings. Only needed when the Authmode parameter is Web. |
Verifier | String | False | The verifier returned from BigCommerce after the user has authorized your app to have access to their data. This value will be returned as a parameter to the callback URL. |
State | String | False | Indicates any state which may be useful to your application upon receipt of the response. Your application receives the same value it sent, as this parameter makes a round-trip to the BigCommerce authorization server and back. Uses include redirecting the user to the correct resource in your site, nonces, and cross-site-request-forgery mitigations. |
Name | Type | Description |
OAuthAccessToken | String | The access token used for communication with BigCommerce. |
OAuthRefreshToken | String | The OAuth refresh token. This is the same as the access token in the case of BigCommerce. |
ExpiresIn | String | The remaining lifetime on the access token. A -1 denotes that it will not expire. |
Gets the authorization URL that must be opened separately by the user to grant access to your application. Only needed when developing Web apps. You will request the OAuthAccessToken from this URL.
Name | Type | Required | Description |
CallbackUrl | String | False | The URL the user will be redirected to after authorizing your application. This value must match the Redirect URL in the BigCommerce app settings. |
Scope | String | False | A comma-separated list of scopes to request from the user. Please check the BigCommerce API documentation for a list of available permissions.
The default value is store_v2_orders store_v2_customers store_v2_products store_v2_information. |
State | String | False | Indicates any state which may be useful to your application upon receipt of the response. Your application receives the same value it sent, as this parameter makes a round-trip to the BigCommerce authorization server and back. Uses include redirecting the user to the correct resource in your site, nonces, and cross-site-request-forgery mitigations. |
Name | Type | Description |
URL | String | The authorization URL, entered into a Web browser to obtain the verifier token and authorize your app. |
You can query the system tables described in this section to access schema information, information on data source functionality, and batch operation statistics.
The following tables return database metadata for BigCommerce:
The following tables return information about how to connect to and query the data source:
The following table returns query statistics for data modification queries:
Lists the available databases.
The following query retrieves all databases determined by the connection string:
SELECT * FROM sys_catalogs
Name | Type | Description |
CatalogName | String | The database name. |
Lists the available schemas.
The following query retrieves all available schemas:
SELECT * FROM sys_schemas
Name | Type | Description |
CatalogName | String | The database name. |
SchemaName | String | The schema name. |
Lists the available tables.
The following query retrieves the available tables and views:
SELECT * FROM sys_tables
Name | Type | Description |
CatalogName | String | The database containing the table or view. |
SchemaName | String | The schema containing the table or view. |
TableName | String | The name of the table or view. |
TableType | String | The table type (table or view). |
Description | String | A description of the table or view. |
IsUpdateable | Boolean | Whether the table can be updated. |
Describes the columns of the available tables and views.
The following query returns the columns and data types for the Customers table:
SELECT ColumnName, DataTypeName FROM sys_tablecolumns WHERE TableName='Customers'
Name | Type | Description |
CatalogName | String | The name of the database containing the table or view. |
SchemaName | String | The schema containing the table or view. |
TableName | String | The name of the table or view containing the column. |
ColumnName | String | The column name. |
DataTypeName | String | The data type name. |
DataType | Int32 | An integer indicating the data type. This value is determined at run time based on the environment. |
Length | Int32 | The storage size of the column. |
DisplaySize | Int32 | The designated column's normal maximum width in characters. |
NumericPrecision | Int32 | The maximum number of digits in numeric data. The column length in characters for character and date-time data. |
NumericScale | Int32 | The column scale or number of digits to the right of the decimal point. |
IsNullable | Boolean | Whether the column can contain null. |
Description | String | A brief description of the column. |
Ordinal | Int32 | The sequence number of the column. |
IsAutoIncrement | String | Whether the column value is assigned in fixed increments. |
IsGeneratedColumn | String | Whether the column is generated. |
IsHidden | Boolean | Whether the column is hidden. |
IsArray | Boolean | Whether the column is an array. |
Lists the available stored procedures.
The following query retrieves the available stored procedures:
SELECT * FROM sys_procedures
Name | Type | Description |
CatalogName | String | The database containing the stored procedure. |
SchemaName | String | The schema containing the stored procedure. |
ProcedureName | String | The name of the stored procedure. |
Description | String | A description of the stored procedure. |
ProcedureType | String | The type of the procedure, such as PROCEDURE or FUNCTION. |
Describes stored procedure parameters.
The following query returns information about all of the input parameters for the SelectEntries stored procedure:
SELECT * FROM sys_procedureparameters WHERE ProcedureName='SelectEntries' AND Direction=1 OR Direction=2
Name | Type | Description |
CatalogName | String | The name of the database containing the stored procedure. |
SchemaName | String | The name of the schema containing the stored procedure. |
ProcedureName | String | The name of the stored procedure containing the parameter. |
ColumnName | String | The name of the stored procedure parameter. |
Direction | Int32 | An integer corresponding to the type of the parameter: input (1), input/output (2), or output(4). input/output type parameters can be both input and output parameters. |
DataTypeName | String | The name of the data type. |
DataType | Int32 | An integer indicating the data type. This value is determined at run time based on the environment. |
Length | Int32 | The number of characters allowed for character data. The number of digits allowed for numeric data. |
NumericPrecision | Int32 | The maximum precision for numeric data. The column length in characters for character and date-time data. |
NumericScale | Int32 | The number of digits to the right of the decimal point in numeric data. |
IsNullable | Boolean | Whether the parameter can contain null. |
IsRequired | Boolean | Whether the parameter is required for execution of the procedure. |
IsArray | Boolean | Whether the parameter is an array. |
Description | String | The description of the parameter. |
Ordinal | Int32 | The index of the parameter. |
Describes the primary and foreign keys.
The following query retrieves the primary key for the Customers table:
SELECT * FROM sys_keycolumns WHERE IsKey='True' AND TableName='Customers'
Name | Type | Description |
CatalogName | String | The name of the database containing the key. |
SchemaName | String | The name of the schema containing the key. |
TableName | String | The name of the table containing the key. |
ColumnName | String | The name of the key column. |
IsKey | Boolean | Whether the column is a primary key in the table referenced in the TableName field. |
IsForeignKey | Boolean | Whether the column is a foreign key referenced in the TableName field. |
PrimaryKeyName | String | The name of the primary key. |
ForeignKeyName | String | The name of the foreign key. |
ReferencedCatalogName | String | The database containing the primary key. |
ReferencedSchemaName | String | The schema containing the primary key. |
ReferencedTableName | String | The table containing the primary key. |
ReferencedColumnName | String | The column name of the primary key. |
Describes the foreign keys.
The following query retrieves all foreign keys which refer to other tables:
SELECT * FROM sys_foreignkeys WHERE ForeignKeyType = 'FOREIGNKEY_TYPE_IMPORT'
Name | Type | Description |
CatalogName | String | The name of the database containing the key. |
SchemaName | String | The name of the schema containing the key. |
TableName | String | The name of the table containing the key. |
ColumnName | String | The name of the key column. |
PrimaryKeyName | String | The name of the primary key. |
ForeignKeyName | String | The name of the foreign key. |
ReferencedCatalogName | String | The database containing the primary key. |
ReferencedSchemaName | String | The schema containing the primary key. |
ReferencedTableName | String | The table containing the primary key. |
ReferencedColumnName | String | The column name of the primary key. |
ForeignKeyType | String | Designates whether the foreign key is an import (points to other tables) or export (referenced from other tables) key. |
Describes the primary keys.
The following query retrieves the primary keys from all tables and views:
SELECT * FROM sys_primarykeys
Name | Type | Description |
CatalogName | String | The name of the database containing the key. |
SchemaName | String | The name of the schema containing the key. |
TableName | String | The name of the table containing the key. |
ColumnName | String | The name of the key column. |
KeySeq | String | The sequence number of the primary key. |
KeyName | String | The name of the primary key. |
Describes the available indexes. By filtering on indexes, you can write more selective queries with faster query response times.
The following query retrieves all indexes that are not primary keys:
SELECT * FROM sys_indexes WHERE IsPrimary='false'
Name | Type | Description |
CatalogName | String | The name of the database containing the index. |
SchemaName | String | The name of the schema containing the index. |
TableName | String | The name of the table containing the index. |
IndexName | String | The index name. |
ColumnName | String | The name of the column associated with the index. |
IsUnique | Boolean | True if the index is unique. False otherwise. |
IsPrimary | Boolean | True if the index is a primary key. False otherwise. |
Type | Int16 | An integer value corresponding to the index type: statistic (0), clustered (1), hashed (2), or other (3). |
SortOrder | String | The sort order: A for ascending or D for descending. |
OrdinalPosition | Int16 | The sequence number of the column in the index. |
Returns information on the available connection properties and those set in the connection string.
When querying this table, the config connection string should be used:
jdbc:cdata:bigcommerce:config:
This connection string enables you to query this table without a valid connection.
The following query retrieves all connection properties that have been set in the connection string or set through a default value:
SELECT * FROM sys_connection_props WHERE Value <> ''
Name | Type | Description |
Name | String | The name of the connection property. |
ShortDescription | String | A brief description. |
Type | String | The data type of the connection property. |
Default | String | The default value if one is not explicitly set. |
Values | String | A comma-separated list of possible values. A validation error is thrown if another value is specified. |
Value | String | The value you set or a preconfigured default. |
Required | Boolean | Whether the property is required to connect. |
Category | String | The category of the connection property. |
IsSessionProperty | String | Whether the property is a session property, used to save information about the current connection. |
Sensitivity | String | The sensitivity level of the property. This informs whether the property is obfuscated in logging and authentication forms. |
PropertyName | String | A camel-cased truncated form of the connection property name. |
Ordinal | Int32 | The index of the parameter. |
CatOrdinal | Int32 | The index of the parameter category. |
Hierarchy | String | Shows dependent properties associated that need to be set alongside this one. |
Visible | Boolean | Informs whether the property is visible in the connection UI. |
ETC | String | Various miscellaneous information about the property. |
Describes the SELECT query processing that the Cloud can offload to the data source.
See SQL Compliance for SQL syntax details.
Below is an example data set of SQL capabilities. The following result set indicates the SELECT functionality that the Cloud can offload to the data source or process client side. Your data source may support additional SQL syntax. Some aspects of SELECT functionality are returned in a comma-separated list if supported; otherwise, the column contains NO.
Name | Description | Possible Values |
AGGREGATE_FUNCTIONS | Supported aggregation functions. | AVG, COUNT, MAX, MIN, SUM, DISTINCT |
COUNT | Whether COUNT function is supported. | YES, NO |
IDENTIFIER_QUOTE_OPEN_CHAR | The opening character used to escape an identifier. | [ |
IDENTIFIER_QUOTE_CLOSE_CHAR | The closing character used to escape an identifier. | ] |
SUPPORTED_OPERATORS | A list of supported SQL operators. | =, >, <, >=, <=, <>, !=, LIKE, NOT LIKE, IN, NOT IN, IS NULL, IS NOT NULL, AND, OR |
GROUP_BY | Whether GROUP BY is supported, and, if so, the degree of support. | NO, NO_RELATION, EQUALS_SELECT, SQL_GB_COLLATE |
OJ_CAPABILITIES | The supported varieties of outer joins supported. | NO, LEFT, RIGHT, FULL, INNER, NOT_ORDERED, ALL_COMPARISON_OPS |
OUTER_JOINS | Whether outer joins are supported. | YES, NO |
SUBQUERIES | Whether subqueries are supported, and, if so, the degree of support. | NO, COMPARISON, EXISTS, IN, CORRELATED_SUBQUERIES, QUANTIFIED |
STRING_FUNCTIONS | Supported string functions. | LENGTH, CHAR, LOCATE, REPLACE, SUBSTRING, RTRIM, LTRIM, RIGHT, LEFT, UCASE, SPACE, SOUNDEX, LCASE, CONCAT, ASCII, REPEAT, OCTET, BIT, POSITION, INSERT, TRIM, UPPER, REGEXP, LOWER, DIFFERENCE, CHARACTER, SUBSTR, STR, REVERSE, PLAN, UUIDTOSTR, TRANSLATE, TRAILING, TO, STUFF, STRTOUUID, STRING, SPLIT, SORTKEY, SIMILAR, REPLICATE, PATINDEX, LPAD, LEN, LEADING, KEY, INSTR, INSERTSTR, HTML, GRAPHICAL, CONVERT, COLLATION, CHARINDEX, BYTE |
NUMERIC_FUNCTIONS | Supported numeric functions. | ABS, ACOS, ASIN, ATAN, ATAN2, CEILING, COS, COT, EXP, FLOOR, LOG, MOD, SIGN, SIN, SQRT, TAN, PI, RAND, DEGREES, LOG10, POWER, RADIANS, ROUND, TRUNCATE |
TIMEDATE_FUNCTIONS | Supported date/time functions. | NOW, CURDATE, DAYOFMONTH, DAYOFWEEK, DAYOFYEAR, MONTH, QUARTER, WEEK, YEAR, CURTIME, HOUR, MINUTE, SECOND, TIMESTAMPADD, TIMESTAMPDIFF, DAYNAME, MONTHNAME, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, EXTRACT |
REPLICATION_SKIP_TABLES | Indicates tables skipped during replication. | |
REPLICATION_TIMECHECK_COLUMNS | A string array containing a list of columns which will be used to check for (in the given order) to use as a modified column during replication. | |
IDENTIFIER_PATTERN | String value indicating what string is valid for an identifier. | |
SUPPORT_TRANSACTION | Indicates if the provider supports transactions such as commit and rollback. | YES, NO |
DIALECT | Indicates the SQL dialect to use. | |
KEY_PROPERTIES | Indicates the properties which identify the uniform database. | |
SUPPORTS_MULTIPLE_SCHEMAS | Indicates if multiple schemas may exist for the provider. | YES, NO |
SUPPORTS_MULTIPLE_CATALOGS | Indicates if multiple catalogs may exist for the provider. | YES, NO |
DATASYNCVERSION | The CData Data Sync version needed to access this driver. | Standard, Starter, Professional, Enterprise |
DATASYNCCATEGORY | The CData Data Sync category of this driver. | Source, Destination, Cloud Destination |
SUPPORTSENHANCEDSQL | Whether enhanced SQL functionality beyond what is offered by the API is supported. | TRUE, FALSE |
SUPPORTS_BATCH_OPERATIONS | Whether batch operations are supported. | YES, NO |
SQL_CAP | All supported SQL capabilities for this driver. | SELECT, INSERT, DELETE, UPDATE, TRANSACTIONS, ORDERBY, OAUTH, ASSIGNEDID, LIMIT, LIKE, BULKINSERT, COUNT, BULKDELETE, BULKUPDATE, GROUPBY, HAVING, AGGS, OFFSET, REPLICATE, COUNTDISTINCT, JOINS, DROP, CREATE, DISTINCT, INNERJOINS, SUBQUERIES, ALTER, MULTIPLESCHEMAS, GROUPBYNORELATION, OUTERJOINS, UNIONALL, UNION, UPSERT, GETDELETED, CROSSJOINS, GROUPBYCOLLATE, MULTIPLECATS, FULLOUTERJOIN, MERGE, JSONEXTRACT, BULKUPSERT, SUM, SUBQUERIESFULL, MIN, MAX, JOINSFULL, XMLEXTRACT, AVG, MULTISTATEMENTS, FOREIGNKEYS, CASE, LEFTJOINS, COMMAJOINS, WITH, LITERALS, RENAME, NESTEDTABLES, EXECUTE, BATCH, BASIC, INDEX |
PREFERRED_CACHE_OPTIONS | A string value specifies the preferred cacheOptions. | |
ENABLE_EF_ADVANCED_QUERY | Indicates if the driver directly supports advanced queries coming from Entity Framework. If not, queries will be handled client side. | YES, NO |
PSEUDO_COLUMNS | A string array indicating the available pseudo columns. | |
MERGE_ALWAYS | If the value is true, The Merge Mode is forcibly executed in Data Sync. | TRUE, FALSE |
REPLICATION_MIN_DATE_QUERY | A select query to return the replicate start datetime. | |
REPLICATION_MIN_FUNCTION | Allows a provider to specify the formula name to use for executing a server side min. | |
REPLICATION_START_DATE | Allows a provider to specify a replicate startdate. | |
REPLICATION_MAX_DATE_QUERY | A select query to return the replicate end datetime. | |
REPLICATION_MAX_FUNCTION | Allows a provider to specify the formula name to use for executing a server side max. | |
IGNORE_INTERVALS_ON_INITIAL_REPLICATE | A list of tables which will skip dividing the replicate into chunks on the initial replicate. | |
CHECKCACHE_USE_PARENTID | Indicates whether the CheckCache statement should be done against the parent key column. | TRUE, FALSE |
CREATE_SCHEMA_PROCEDURES | Indicates stored procedures that can be used for generating schema files. |
The following query retrieves the operators that can be used in the WHERE clause:
SELECT * FROM sys_sqlinfo WHERE Name='SUPPORTED_OPERATORS'
Note that individual tables may have different limitations or requirements on the WHERE clause; refer to the Data Model section for more information.
Name | Type | Description |
NAME | String | A component of SQL syntax, or a capability that can be processed on the server. |
VALUE | String | Detail on the supported SQL or SQL syntax. |
Returns information about attempted modifications.
The following query retrieves the Ids of the modified rows in a batch operation:
SELECT * FROM sys_identity
Name | Type | Description |
Id | String | The database-generated Id returned from a data modification operation. |
Batch | String | An identifier for the batch. 1 for a single operation. |
Operation | String | The result of the operation in the batch: INSERTED, UPDATED, or DELETED. |
Message | String | SUCCESS or an error message if the update in the batch failed. |
The connection string properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure in the connection string for this provider. Click the links for further details.
Property | Description |
AuthScheme | The type of authentication to use when connecting to BigCommerce. |
Property | Description |
InitiateOAuth | Set this property to initiate the process to obtain or refresh the OAuth access token when you connect. |
OAuthClientId | The client Id assigned when you register your application with an OAuth authorization server. |
OAuthClientSecret | The client secret assigned when you register your application with an OAuth authorization server. |
StoreId | The store hash for this BigCommerce account. |
CallbackURL | The OAuth callback URL to return to when authenticating. This value must match the callback URL you specify in your app settings. |
OAuthVerifier | The verifier code returned from the OAuth authorization URL. |
OAuthExpiresIn | The lifetime in seconds of the OAuth AccessToken. |
OAuthTokenTimestamp | The Unix epoch timestamp in milliseconds when the current Access Token was created. |
Property | Description |
SSLServerCert | The certificate to be accepted from the server when connecting using TLS/SSL. |
Property | Description |
FirewallType | The protocol used by a proxy-based firewall. |
FirewallServer | The name or IP address of a proxy-based firewall. |
FirewallPort | The TCP port for a proxy-based firewall. |
FirewallUser | The user name to use to authenticate with a proxy-based firewall. |
FirewallPassword | A password used to authenticate to a proxy-based firewall. |
Property | Description |
ProxyAutoDetect | This indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings. |
ProxyServer | The hostname or IP address of a proxy to route HTTP traffic through. |
ProxyPort | The TCP port the ProxyServer proxy is running on. |
ProxyAuthScheme | The authentication type to use to authenticate to the ProxyServer proxy. |
ProxyUser | A user name to be used to authenticate to the ProxyServer proxy. |
ProxyPassword | A password to be used to authenticate to the ProxyServer proxy. |
ProxySSLType | The SSL type to use when connecting to the ProxyServer proxy. |
ProxyExceptions | A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer . |
Property | Description |
Logfile | A filepath which designates the name and location of the log file. |
Verbosity | The verbosity level that determines the amount of detail included in the log file. |
LogModules | Core modules to be included in the log file. |
MaxLogFileSize | A string specifying the maximum size in bytes for a log file (for example, 10 MB). |
MaxLogFileCount | A string specifying the maximum file count of log files. |
Property | Description |
Location | A path to the directory that contains the schema files defining tables, views, and stored procedures. |
BrowsableSchemas | This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC. |
Tables | This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC. |
Views | Restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC. |
Property | Description |
AutoCache | Automatically caches the results of SELECT queries into a cache database specified by either CacheLocation or both of CacheConnection and CacheProvider . |
CacheLocation | Specifies the path to the cache when caching to a file. |
CacheTolerance | The tolerance for stale data in the cache specified in seconds when using AutoCache . |
Offline | Use offline mode to get the data from the cache instead of the live source. |
CacheMetadata | This property determines whether or not to cache the table metadata to a file store. |
Property | Description |
IncludeCustomFields | A boolean indicating if you would like to include custom fields in the column listing. |
MaxRows | Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time. |
Other | These hidden properties are used only in specific use cases. |
PseudoColumns | This property indicates whether or not to include pseudo columns as columns to the table. |
Readonly | You can use this property to enforce read-only access to BigCommerce from the provider. |
RowScanDepth | The maximum number of rows to scan to look for the columns available in a table. |
RTK | The runtime key used for licensing. |
Timeout | The value in seconds until the timeout error is thrown, canceling the operation. |
UserDefinedViews | A filepath pointing to the JSON configuration file containing your custom views. |
This section provides a complete list of the Authentication properties you can configure in the connection string for this provider.
Property | Description |
AuthScheme | The type of authentication to use when connecting to BigCommerce. |
The type of authentication to use when connecting to BigCommerce.
string
"OAuth"
This section provides a complete list of the OAuth properties you can configure in the connection string for this provider.
Property | Description |
InitiateOAuth | Set this property to initiate the process to obtain or refresh the OAuth access token when you connect. |
OAuthClientId | The client Id assigned when you register your application with an OAuth authorization server. |
OAuthClientSecret | The client secret assigned when you register your application with an OAuth authorization server. |
StoreId | The store hash for this BigCommerce account. |
CallbackURL | The OAuth callback URL to return to when authenticating. This value must match the callback URL you specify in your app settings. |
OAuthVerifier | The verifier code returned from the OAuth authorization URL. |
OAuthExpiresIn | The lifetime in seconds of the OAuth AccessToken. |
OAuthTokenTimestamp | The Unix epoch timestamp in milliseconds when the current Access Token was created. |
Set this property to initiate the process to obtain or refresh the OAuth access token when you connect.
string
"OFF"
The following options are available:
The client Id assigned when you register your application with an OAuth authorization server.
string
""
As part of registering an OAuth application, you will receive the OAuthClientId value, sometimes also called a consumer key, and a client secret, the OAuthClientSecret.
The client secret assigned when you register your application with an OAuth authorization server.
string
""
As part of registering an OAuth application, you will receive the OAuthClientId, also called a consumer key. You will also receive a client secret, also called a consumer secret. Set the client secret in the OAuthClientSecret property.
The store hash for this BigCommerce account.
string
""
The store hash for this BigCommerce account.
The OAuth callback URL to return to when authenticating. This value must match the callback URL you specify in your app settings.
string
"http://localhost:33333"
During the authentication process, the OAuth authorization server redirects the user to this URL. This value must match the callback URL you specify in your app settings.
The verifier code returned from the OAuth authorization URL.
string
""
The verifier code returned from the OAuth authorization URL. This can be used on systems where a browser cannot be launched such as headless systems.
See to obtain the OAuthVerifier value.
Set OAuthSettingsLocation along with OAuthVerifier. When you connect, the Cloud exchanges the OAuthVerifier for the OAuth authentication tokens and saves them, encrypted, to the specified file.
Once the OAuth settings file has been generated, you can remove OAuthVerifier from the connection properties and connect with OAuthSettingsLocation set.
To automatically refresh the OAuth token values, set OAuthSettingsLocation and additionally set InitiateOAuth to REFRESH.
The lifetime in seconds of the OAuth AccessToken.
string
""
Pair with OAuthTokenTimestamp to determine when the AccessToken will expire.
The Unix epoch timestamp in milliseconds when the current Access Token was created.
string
""
Pair with OAuthExpiresIn to determine when the AccessToken will expire.
This section provides a complete list of the SSL properties you can configure in the connection string for this provider.
Property | Description |
SSLServerCert | The certificate to be accepted from the server when connecting using TLS/SSL. |
The certificate to be accepted from the server when connecting using TLS/SSL.
string
""
If using a TLS/SSL connection, this property can be used to specify the TLS/SSL certificate to be accepted from the server. Any other certificate that is not trusted by the machine is rejected.
This property can take the following forms:
Description | Example |
A full PEM Certificate (example shortened for brevity) | -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE----- |
A path to a local file containing the certificate | C:\cert.cer |
The public key (example shortened for brevity) | -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY----- |
The MD5 Thumbprint (hex values can also be either space or colon separated) | ecadbdda5a1529c58a1e9e09828d70e4 |
The SHA1 Thumbprint (hex values can also be either space or colon separated) | 34a929226ae0819f2ec14b4a3d904f801cbb150d |
If not specified, any certificate trusted by the machine is accepted.
Use '*' to signify to accept all certificates. Note that this is not recommended due to security concerns.
This section provides a complete list of the Firewall properties you can configure in the connection string for this provider.
Property | Description |
FirewallType | The protocol used by a proxy-based firewall. |
FirewallServer | The name or IP address of a proxy-based firewall. |
FirewallPort | The TCP port for a proxy-based firewall. |
FirewallUser | The user name to use to authenticate with a proxy-based firewall. |
FirewallPassword | A password used to authenticate to a proxy-based firewall. |
The protocol used by a proxy-based firewall.
string
"NONE"
This property specifies the protocol that the Cloud will use to tunnel traffic through the FirewallServer proxy. Note that by default, the Cloud connects to the system proxy; to disable this behavior and connect to one of the following proxy types, set ProxyAutoDetect to false.
Type | Default Port | Description |
TUNNEL | 80 | When this is set, the Cloud opens a connection to BigCommerce and traffic flows back and forth through the proxy. |
SOCKS4 | 1080 | When this is set, the Cloud sends data through the SOCKS 4 proxy specified by FirewallServer and FirewallPort and passes the FirewallUser value to the proxy, which determines if the connection request should be granted. |
SOCKS5 | 1080 | When this is set, the Cloud sends data through the SOCKS 5 proxy specified by FirewallServer and FirewallPort. If your proxy requires authentication, set FirewallUser and FirewallPassword to credentials the proxy recognizes. |
To connect to HTTP proxies, use ProxyServer and ProxyPort. To authenticate to HTTP proxies, use ProxyAuthScheme, ProxyUser, and ProxyPassword.
The name or IP address of a proxy-based firewall.
string
""
This property specifies the IP address, DNS name, or host name of a proxy allowing traversal of a firewall. The protocol is specified by FirewallType: Use FirewallServer with this property to connect through SOCKS or do tunneling. Use ProxyServer to connect to an HTTP proxy.
Note that the Cloud uses the system proxy by default. To use a different proxy, set ProxyAutoDetect to false.
The TCP port for a proxy-based firewall.
int
0
This specifies the TCP port for a proxy allowing traversal of a firewall. Use FirewallServer to specify the name or IP address. Specify the protocol with FirewallType.
The user name to use to authenticate with a proxy-based firewall.
string
""
The FirewallUser and FirewallPassword properties are used to authenticate against the proxy specified in FirewallServer and FirewallPort, following the authentication method specified in FirewallType.
A password used to authenticate to a proxy-based firewall.
string
""
This property is passed to the proxy specified by FirewallServer and FirewallPort, following the authentication method specified by FirewallType.
This section provides a complete list of the Proxy properties you can configure in the connection string for this provider.
Property | Description |
ProxyAutoDetect | This indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings. |
ProxyServer | The hostname or IP address of a proxy to route HTTP traffic through. |
ProxyPort | The TCP port the ProxyServer proxy is running on. |
ProxyAuthScheme | The authentication type to use to authenticate to the ProxyServer proxy. |
ProxyUser | A user name to be used to authenticate to the ProxyServer proxy. |
ProxyPassword | A password to be used to authenticate to the ProxyServer proxy. |
ProxySSLType | The SSL type to use when connecting to the ProxyServer proxy. |
ProxyExceptions | A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer . |
This indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.
bool
true
This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.
To connect to an HTTP proxy, see ProxyServer. For other proxies, such as SOCKS or tunneling, see FirewallType.
The hostname or IP address of a proxy to route HTTP traffic through.
string
""
The hostname or IP address of a proxy to route HTTP traffic through. The Cloud can use the HTTP, Windows (NTLM), or Kerberos authentication types to authenticate to an HTTP proxy.
If you need to connect through a SOCKS proxy or tunnel the connection, see FirewallType.
By default, the Cloud uses the system proxy. If you need to use another proxy, set ProxyAutoDetect to false.
The TCP port the ProxyServer proxy is running on.
int
80
The port the HTTP proxy is running on that you want to redirect HTTP traffic through. Specify the HTTP proxy in ProxyServer. For other proxy types, see FirewallType.
The authentication type to use to authenticate to the ProxyServer proxy.
string
"BASIC"
This value specifies the authentication type to use to authenticate to the HTTP proxy specified by ProxyServer and ProxyPort.
Note that the Cloud will use the system proxy settings by default, without further configuration needed; if you want to connect to another proxy, you will need to set ProxyAutoDetect to false, in addition to ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.
The authentication type can be one of the following:
If you need to use another authentication type, such as SOCKS 5 authentication, see FirewallType.
A user name to be used to authenticate to the ProxyServer proxy.
string
""
The ProxyUser and ProxyPassword options are used to connect and authenticate against the HTTP proxy specified in ProxyServer.
You can select one of the available authentication types in ProxyAuthScheme. If you are using HTTP authentication, set this to the user name of a user recognized by the HTTP proxy. If you are using Windows or Kerberos authentication, set this property to a user name in one of the following formats:
user@domain domain\user
A password to be used to authenticate to the ProxyServer proxy.
string
""
This property is used to authenticate to an HTTP proxy server that supports NTLM (Windows), Kerberos, or HTTP authentication. To specify the HTTP proxy, you can set ProxyServer and ProxyPort. To specify the authentication type, set ProxyAuthScheme.
If you are using HTTP authentication, additionally set ProxyUser and ProxyPassword to HTTP proxy.
If you are using NTLM authentication, set ProxyUser and ProxyPassword to your Windows password. You may also need these to complete Kerberos authentication.
For SOCKS 5 authentication or tunneling, see FirewallType.
By default, the Cloud uses the system proxy. If you want to connect to another proxy, set ProxyAutoDetect to false.
The SSL type to use when connecting to the ProxyServer proxy.
string
"AUTO"
This property determines when to use SSL for the connection to an HTTP proxy specified by ProxyServer. This value can be AUTO, ALWAYS, NEVER, or TUNNEL. The applicable values are the following:
AUTO | Default setting. If the URL is an HTTPS URL, the Cloud will use the TUNNEL option. If the URL is an HTTP URL, the component will use the NEVER option. |
ALWAYS | The connection is always SSL enabled. |
NEVER | The connection is not SSL enabled. |
TUNNEL | The connection is through a tunneling proxy. The proxy server opens a connection to the remote host and traffic flows back and forth through the proxy. |
A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer .
string
""
The ProxyServer is used for all addresses, except for addresses defined in this property. Use semicolons to separate entries.
Note that the Cloud uses the system proxy settings by default, without further configuration needed; if you want to explicitly configure proxy exceptions for this connection, you need to set ProxyAutoDetect = false, and configure ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.
This section provides a complete list of the Logging properties you can configure in the connection string for this provider.
Property | Description |
Logfile | A filepath which designates the name and location of the log file. |
Verbosity | The verbosity level that determines the amount of detail included in the log file. |
LogModules | Core modules to be included in the log file. |
MaxLogFileSize | A string specifying the maximum size in bytes for a log file (for example, 10 MB). |
MaxLogFileCount | A string specifying the maximum file count of log files. |
A filepath which designates the name and location of the log file.
string
""
Once this property is set, the Cloud will populate the log file as it carries out various tasks, such as when authentication is performed or queries are executed. If the specified file doesn't already exist, it will be created.
Connection strings and version information are also logged, though connection properties containing sensitive information are masked automatically.
If a relative filepath is supplied, the location of the log file will be resolved based on the path found in the Location connection property.
For more control over what is written to the log file, you can adjust the Verbosity property.
Log contents are categorized into several modules. You can show/hide individual modules using the LogModules property.
To edit the maximum size of a single logfile before a new one is created, see MaxLogFileSize.
If you would like to place a cap on the number of logfiles generated, use MaxLogFileCount.
The verbosity level that determines the amount of detail included in the log file.
string
"1"
The verbosity level determines the amount of detail that the Cloud reports to the Logfile. Verbosity levels from 1 to 5 are supported. These are detailed in the Logging page.
Core modules to be included in the log file.
string
""
Only the modules specified (separated by ';') will be included in the log file. By default all modules are included.
See the Logging page for an overview.
A string specifying the maximum size in bytes for a log file (for example, 10 MB).
string
"100MB"
When the limit is hit, a new log is created in the same folder with the date and time appended to the end. The default limit is 100 MB. Values lower than 100 kB will use 100 kB as the value instead.
Adjust the maximum number of logfiles generated with MaxLogFileCount.
A string specifying the maximum file count of log files.
int
-1
When the limit is hit, a new log is created in the same folder with the date and time appended to the end and the oldest log file will be deleted.
The minimum supported value is 2. A value of 0 or a negative value indicates no limit on the count.
Adjust the maximum size of the logfiles generated with MaxLogFileSize.
This section provides a complete list of the Schema properties you can configure in the connection string for this provider.
Property | Description |
Location | A path to the directory that contains the schema files defining tables, views, and stored procedures. |
BrowsableSchemas | This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC. |
Tables | This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC. |
Views | Restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC. |
A path to the directory that contains the schema files defining tables, views, and stored procedures.
string
"%APPDATA%\\CData\\BigCommerce Data Provider\\Schema"
The path to a directory which contains the schema files for the Cloud (.rsd files for tables and views, .rsb files for stored procedures). The folder location can be a relative path from the location of the executable. The Location property is only needed if you want to customize definitions (for example, change a column name, ignore a column, and so on) or extend the data model with new tables, views, or stored procedures.
If left unspecified, the default location is "%APPDATA%\\CData\\BigCommerce Data Provider\\Schema" with %APPDATA% being set to the user's configuration directory:
This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC.
string
""
Listing the schemas from databases can be expensive. Providing a list of schemas in the connection string improves the performance.
This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC.
string
""
Listing the tables from some databases can be expensive. Providing a list of tables in the connection string improves the performance of the Cloud.
This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.
Specify the tables you want in a comma-separated list. Each table should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space`.
Note that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that exist in multiple catalogs or schemas.
Restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC.
string
""
Listing the views from some databases can be expensive. Providing a list of views in the connection string improves the performance of the Cloud.
This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.
Specify the views you want in a comma-separated list. Each view should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space`.
Note that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that exist in multiple catalogs or schemas.
This section provides a complete list of the Caching properties you can configure in the connection string for this provider.
Property | Description |
AutoCache | Automatically caches the results of SELECT queries into a cache database specified by either CacheLocation or both of CacheConnection and CacheProvider . |
CacheLocation | Specifies the path to the cache when caching to a file. |
CacheTolerance | The tolerance for stale data in the cache specified in seconds when using AutoCache . |
Offline | Use offline mode to get the data from the cache instead of the live source. |
CacheMetadata | This property determines whether or not to cache the table metadata to a file store. |
Automatically caches the results of SELECT queries into a cache database specified by either CacheLocation or both of CacheConnection and CacheProvider .
bool
false
When AutoCache = true, the Cloud automatically maintains a cache of your table's data in the database of your choice.
When AutoCache = true, the Cloud caches to a simple, file-based cache. You can configure its location or cache to a different database with the following properties:
Specifies the path to the cache when caching to a file.
string
"%APPDATA%\\CData\\BigCommerce Data Provider"
The CacheLocation is a simple, file-based cache.
If left unspecified, the default location is "%APPDATA%\\CData\\BigCommerce Data Provider" with %APPDATA% being set to the user's configuration directory:
The tolerance for stale data in the cache specified in seconds when using AutoCache .
int
600
The tolerance for stale data in the cache specified in seconds. This only applies when AutoCache is used. The Cloud checks with the data source for newer records after the tolerance interval has expired. Otherwise, it returns the data directly from the cache.
Use offline mode to get the data from the cache instead of the live source.
bool
false
When Offline = true, all queries execute against the cache as opposed to the live data source. In this mode, certain queries like INSERT, UPDATE, DELETE, and CACHE are not allowed.
This property determines whether or not to cache the table metadata to a file store.
bool
false
As you execute queries with this property set, table metadata in the BigCommerce catalog are cached to the file store specified by CacheLocation if set or the user's home directory otherwise. A table's metadata will be retrieved only once, when the table is queried for the first time.
The Cloud automatically persists metadata in memory for up to two hours when you first discover the metadata for a table or view and therefore, CacheMetadata is generally not required. CacheMetadata becomes useful when metadata operations are expensive such as when you are working with large amounts of metadata or when you have many short-lived connections.
This section provides a complete list of the Miscellaneous properties you can configure in the connection string for this provider.
Property | Description |
IncludeCustomFields | A boolean indicating if you would like to include custom fields in the column listing. |
MaxRows | Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time. |
Other | These hidden properties are used only in specific use cases. |
PseudoColumns | This property indicates whether or not to include pseudo columns as columns to the table. |
Readonly | You can use this property to enforce read-only access to BigCommerce from the provider. |
RowScanDepth | The maximum number of rows to scan to look for the columns available in a table. |
RTK | The runtime key used for licensing. |
Timeout | The value in seconds until the timeout error is thrown, canceling the operation. |
UserDefinedViews | A filepath pointing to the JSON configuration file containing your custom views. |
A boolean indicating if you would like to include custom fields in the column listing.
bool
true
Setting this to true will cause custom fields to be included in the column listing, but may cause poor performance when listing metadata.
Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.
int
-1
Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.
These hidden properties are used only in specific use cases.
string
""
The properties listed below are available for specific use cases. Normal driver use cases and functionality should not require these properties.
Specify multiple properties in a semicolon-separated list.
DefaultColumnSize | Sets the default length of string fields when the data source does not provide column length in the metadata. The default value is 2000. |
ConvertDateTimeToGMT | Determines whether to convert date-time values to GMT, instead of the local time of the machine. |
RecordToFile=filename | Records the underlying socket data transfer to the specified file. |
This property indicates whether or not to include pseudo columns as columns to the table.
string
""
This setting is particularly helpful in Entity Framework, which does not allow you to set a value for a pseudo column unless it is a table column. The value of this connection setting is of the format "Table1=Column1, Table1=Column2, Table2=Column3". You can use the "*" character to include all tables and all columns; for example, "*=*".
You can use this property to enforce read-only access to BigCommerce from the provider.
bool
false
If this property is set to true, the Cloud will allow only SELECT queries. INSERT, UPDATE, DELETE, and stored procedure queries will cause an error to be thrown.
The maximum number of rows to scan to look for the columns available in a table.
int
100
The columns in a table must be determined by scanning table rows. This value determines the maximum number of rows that will be scanned.
Setting a high value may decrease performance. Setting a low value may prevent the data type from being determined properly, especially when there is null data.
The runtime key used for licensing.
string
""
The RTK property may be used to license a build.
The value in seconds until the timeout error is thrown, canceling the operation.
int
60
If Timeout = 0, operations do not time out. The operations run until they complete successfully or until they encounter an error condition.
If Timeout expires and the operation is not yet complete, the Cloud throws an exception.
A filepath pointing to the JSON configuration file containing your custom views.
string
""
User Defined Views are defined in a JSON-formatted configuration file called UserDefinedViews.json. The Cloud automatically detects the views specified in this file.
You can also have multiple view definitions and control them using the UserDefinedViews connection property. When you use this property, only the specified views are seen by the Cloud.
This User Defined View configuration file is formatted as follows:
For example:
{ "MyView": { "query": "SELECT * FROM Customers WHERE MyColumn = 'value'" }, "MyView2": { "query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)" } }Use the UserDefinedViews connection property to specify the location of your JSON configuration file. For example:
"UserDefinedViews", "C:\\Users\\yourusername\\Desktop\\tmp\\UserDefinedViews.json"