Skip to main content

Custom E-commerce Integrations

For custom e-commerce platforms, Disco requires specific data fields for the past 2 years and on an ongoing basis. This data is used to accelerate model training, ensure we're targeting the highest value shoppers, and for attribution purposes.

Data Ingestion Method

Disco's preferred method of ingesting this information is through a daily CSV upload to Disco's SFTP or AWS S3 Bucket. This information should be encrypted in transit, and an encryption key would be exchanged during onboarding. The specific details of this data exchange will be discussed during the early stages of our partnership.

Required Data Fields

{
"user_email": "...", // The user's email address
"type": "...", // The type of event that was fired
"publisher_id": "...", // Generated by brand during onboarding process
"region": "...", // The region of the user (which part of the world)
"user_name": "...", // The user's human name
"city": "...", // The city of the user
"phone": "...", // The user's phone number
"country": "...", // The user's country
"user_id": "...", // The UUID of the user
"brand_name": "...", // The name of the brand the event occurred for
}
{
"billing_phone": "...", // The user's phone from billing information
"contact_email": "...", // The user's provided contact email
"created_at": "...", // The date of the order without a timezone
"created_at_gmt": "...", // The date of the order in GMT time
"customer_default_address_phone": "...", // The user's default phone number
"customer_email": "...", // The user's customer account email
"customer_first_name": "...", // The user's customer account first name
"customer_id": "...", // The customer's unique ID
"customer_last_name": "...", // The user's customer account last name
"customer_phone": "...", // The user's customer account phone number
"customer_province": "...", // The user's customer account province
"customer_province_code": "...", // The user's customer account province code
"customer_zip": "...", // The user's customer account zip code
"discount_codes": "...", // The discount code(s) used for the order
"email": "...", // The user's default email
"financial_status": "...", // The financial status of the order (paid, etc.)
"fulfillment_status": "...", // The fulfillment status of the order (shipped, etc.)
"id": "...", // The database row ID
"landing_site": "...", // The landing page for the order
"line_items": "...", // An array of products purchased
[
{
"discount_amount": "0.00",
"platform_product_id": "XXXXX",
"platform_variant_id": "XXXXX",
"price": "1.00",
"product_name": "Save the Sloths Charm - Dark Green",
"quantity": 1
}
],
"order_cost": "...", // The cost of the order (in USD)
"order_cost_temp": "...",
"order_event_ip_address": "...", // The IP address of the customer ordering
"order_event_user_agent": "...", // The user agent of the customer ordering
"order_first_name": "...", // The first name on the order
"order_id": "...", // The ID of the order from Shopify
"order_last_name": "...", // The last name on the order
"order_name": "...", // The name of the order (usually based on order #)
"order_number": "...", // The order number
"order_phone": "...", // The phone given for the order
"order_source_name": "...", // The source name given for the data
"order_status_url": "...", // The status URL for the order
"order_tags": "...", // Tags placed on the order
"order_token": "...", // The checkout token given in the order
"payment_gateways": "...", // Payment gateway(s) used to checkout. E.g. "stripe", "paypal", "bolt".
"publisher": "...", // The Publisher/Merchant/Shop (remote ID)
"shipping_address_phone_number": "...", // The shipping address phone
"shipping_address_zip_code": "...", // The shipping address zip
"source": "...", // The source of the data (Shopify, BigCommerce, Custom, etc.)
"source_table_row_id": "...", // The table row ID
"test_order": "..." // If the order was a test or not
}

Please ensure that your data export includes all these fields. If you have any questions about the data format or the integration process, please contact our support team.