Supported data types
Indeliveries
Incoming products
Inventory
Stock levels
Orders
Customer transactions
Product Attributes
Product metadata & descriptions
All order types are supported — not just online. You can import retail/in-store, wholesale, and marketplace orders alongside your e-commerce data. Use the `TYPE` field to identify the sales channel (e.g., `ONLINE`, `RETAIL`, `WHOLESALE`) and `EXTERNAL_STOREFRONT_ID` to separate data by store or location.
Prerequisites
Before setting up the Snowflake integration, ensure you have:- Tables or views in Snowflake containing your data, with columns matching our schema
- A Snowflake user with read access to the necessary tables/views for the integration
- An RSA key pair assigned to the integration user (key-pair authentication)
Good to know
COGS priority
COGS priority
Storefront assignment
Storefront assignment
If you operate multiple storefronts, include
EXTERNAL_STOREFRONT_ID in your data for per-row storefront assignment. It applies to orders, including return fields within orders.The value is matched against the externalStorefrontId in your merchant mappings, ignoring case. Rows where it is empty or matches no mapping go to the storefront the integration is set up for.Merchant mappings
Merchant mappings connect your external storefront IDs to the platform's internal storefronts. They also optionally assign country-level marketing cost data based on country codes.Setup: Provide the following JSON structure to the commercial team:[
{
"externalStorefrontId": "STORE-001",
"countries": ["SE", "NO", "DK"]
},
{
"externalStorefrontId": "STORE-002",
"countries": ["GB"]
},
{
"externalStorefrontId": "STORE-003",
"countries": ["US"]
},
{
"externalStorefrontId": "STORE-004",
"countries": []
}
]string
required
Your external storefront identifier. Can be any string but preferably something that represents the storefront.
array
Array of ISO 3166 country codes (2 letters) for assigning marketing cost data. Use an empty array
[] if no country filtering is needed.Step-by-step integration guide
1
Initial setup
Create a dedicated user in Snowflake for the integration with read access to the necessary tables. The integration authenticates using RSA key-pair authentication, not a password.
- Generate an RSA key pair and assign the public key to the Snowflake user (Snowflake key-pair guide).
- Provide the following credentials to your Customer Success Manager:
Send the private key and credentials via secure password sharing.
Snowflake Example
2
Specifying data tables and schema
Ensure each Snowflake table aligns with our schema. Columns must be named according to the column names specified in the schema below. This is crucial for accurate data integration.
3
Finalizing integration
After setting up the user and ensuring data mapping accuracy, our team will finalize the integration process, enabling data flow from Snowflake into our platform.
Multiple values Some fields allow multiple values. These fields can be added as column of Array type, like
["value1", "value2", "value3"]. Data schema
Indeliveries
Track incoming product deliveries to your warehouses.All fields
All fields
Required:
Inventory
Stock levels and cost — the dynamic part of a product record. To get complete product coverage, pair this with the static metadata sent via Product Attributes (name, brand, category, etc.); the two data types are joined on product/variant. See COGS priority for how cost values are resolved.Fields
Fields
Orders
Customer transaction data including order details and line items. See COGS priority for how cost values are resolved.How order data should be structured
How order data should be structured
Each row represents a unique order line, identified by the combination of
ORDER_ID, PRODUCT_ID, and VARIANT_NO.| Requirement | Description |
|---|---|
| Unique rows | Each row must have a unique ORDER_ID–PRODUCT_ID–VARIANT_NO combination |
| Quantity handling | If multiple items of the same variant were bought, aggregate them using QUANTITY_DECIMAL |
| Tax inclusion | All prices should include tax |
| Header repetition | Order header fields (like ORDER_ID, CURRENCY, TOTAL) must be repeated for every line item in the same order |
| Updates | When updating an order, include the UPDATED_AT field along with the changed fields |
| Line-level overrides | Line-level fields override their order-level equivalents when set: STATUS_LINE overrides STATUS, and SHIPPING_PROVIDER_LINE overrides SHIPPING_PROVIDER |
| Storefront mapping | To map data to a specific storefront, fill out EXTERNAL_STOREFRONT_ID and provide us with info about your existing storefronts, see Storefront assignment |
Order header fields
Order header fields
Required:Optional:
Order line fields
Order line fields
Required:Optional:
Return fields (within orders)
Return fields (within orders)
Include these fields to record returns directly in your orders table.Required:Optional:
Custom attributes
Custom attributes
Order header level:Order line level:
Product Attributes
A complete product record requires both Product Attributes and Inventory. Even if stock levels aren't important to you, both tables must be sent — they are separate data types joined on product/variant. Product Attributes holds the static details (name, brand, category, description, etc.), while Inventory holds the dynamic values (stock levels, cost). Send product metadata here, not in the Inventory table.
Required fields
Required fields
Optional fields
Optional fields
Custom attributes
Custom attributes
Troubleshooting and support
For common issues and solutions, contact our support team directly for assistance.Additional resources
- Snowflake’s documentation for user creation and permission settings: Snowflake Documentation

