Data Model
Complete reference for all Shopify events, properties, and customer data tracked by Vendo.
Last reviewed July 13, 2026
This is the canonical reference for Shopify events, event properties, and data structures tracked by Vendo.
Event Overview
Vendo tracks events from two sources: client-side (Web Pixel) and server-side (pipeline). Use this table to understand which events come from where.
| Event Category | Client-Side | Server-Side |
|---|---|---|
| Page browsing (page/product/collection viewed) | Yes | — |
| Search | Yes | — |
| Cart actions (add/remove/view) | Yes | — |
| Checkout flow (contact/address/shipping/payment) | Yes | — |
| Checkout completed | Yes | Yes |
| Order fulfillment & delivery | — | Yes |
| Order refunds | — | Yes |
| Abandoned checkouts | — | Yes |
| Customer profile updates | Yes | Yes |
| Auto track events | Yes (theme) | — |
| Session recording & heatmaps | Yes (theme) | — |
| Push notification prompts | Yes (theme) | — |
Client-Side Events
The Shopify event registry is the source of truth for client-side availability. Standard events are enabled or disabled per destination, and custom events can be forwarded when that option is enabled.
Browsing Events
| Event | Description | Key Properties |
|---|---|---|
| Page Viewed | Customer visits any page | $current_url, page_title, path_name, $referrer |
| Product Viewed | Customer views a product detail page | products[], $current_url |
| Collection Viewed | Customer views a collection page | collection_id, collection_title, products[] |
| Search Submitted | Customer performs a search | search_query, products[] |
Cart Events
| Event | Description | Key Properties |
|---|---|---|
| Product Added To Cart | Customer adds item to cart | products[], quantity, amount, currency |
| Product Removed From Cart | Customer removes item from cart | products[], quantity, amount, currency |
| Cart Viewed | Customer views the cart page | products[], quantity, amount, currency |
Checkout Events
| Event | Description | Key Properties |
|---|---|---|
| Checkout Started | Customer initiates checkout | checkout_token, order_id, cart_total_amount, products[] |
| Checkout Contact Info Submitted | Customer enters email/phone | email, phone, checkout_token |
| Checkout Address Info Submitted | Customer enters shipping address | shipping_address, email, phone |
| Checkout Shipping Info Submitted | Customer selects shipping method | shipping_amount, cart_total_amount |
| Payment Info Submitted | Customer enters payment details | checkout_token, cart_total_amount |
| Checkout Completed | Customer completes purchase | order_id, email, cart_total_amount, products[], shipping_address |
Identification and Diagnostic Events
| Event | Description |
|---|---|
| Customer Logged In | Customer successfully logs in; disabled by default |
| Newsletter Registered | Visitor submits a supported newsletter signup; disabled by default |
| Checkout Alert Displayed | A checkout validation or warning alert appears; disabled by default |
| UI Extension Errored | A Vendo checkout UI extension fails to load or crashes; disabled by default |
| Custom Events | Events published through Shopify Customer Events when custom forwarding is enabled |
Want to track additional interactions? See Sending Custom Events.
Server-Side Events
These events are derived from Shopify’s backend data by scheduled pipeline jobs. Use the connection status and job history for the actual cadence.
Order Events
| Event | Description | Key Properties |
|---|---|---|
| Order Received | New order created | shopify_order_id, order_id, email, cart_total_amount, products[], discount[], utm_source/medium/campaign |
| Order Fulfilled | Order marked as shipped | fulfillment_id, tracking_number, fulfillment_speed, products[] |
| Order Delivered | Order marked as delivered | shopify_order_id, delivery_date, delivery_speed |
| Order Refunded | Full refund issued | shopify_order_id, refund_amount, reason |
| Order Partially Refunded | Partial refund issued | shopify_order_id, refund_amount, refunded_items[] |
| Checkout Started (Server) | First server-side checkout record for the session | Checkout and cart fields available from the source |
| Products Purchased | Per line item (disabled by default) | product_id, title, sku, price, quantity |
Abandonment Events
| Event | Description | Key Properties |
|---|---|---|
| Abandoned Checkout | Checkout not completed | checkout_id, email, cart_total_amount, products[], abandoned_checkout_url |
Profile Events
| Event | Description | Key Properties |
|---|---|---|
| Set Property | Customer profile update | $email, $first_name, $last_name, total_spent, order_count |
| Alias | Links anonymous to known ID | distinct_id, alias |
Common Properties
All client-side events include these properties automatically.
Identity
| Property | Type | Description |
|---|---|---|
distinct_id | String | User identifier (customer ID or device ID) |
$device_id | String | Anonymous device identifier |
$user_id | String | Shopify Customer ID (when known) |
$insert_id | String | Unique event ID for deduplication |
Device & Browser
| Property | Type | Description |
|---|---|---|
$browser | String | Browser name |
$device | String | Device type (Desktop, Mobile, Tablet) |
$os | String | Operating system |
$screen_height | Number | Screen height in pixels |
$screen_width | Number | Screen width in pixels |
language | String | Browser language |
Page Context
| Property | Type | Description |
|---|---|---|
$current_url | String | Full page URL |
page_title | String | Page title |
path_name | String | URL path |
$referrer | String | Referring URL |
Attribution
UTM parameters and click IDs are captured from landing page URLs.
| Property | Type | Description |
|---|---|---|
utm_source | String | Traffic source |
utm_medium | String | Marketing medium |
utm_campaign | String | Campaign name |
utm_content | String | Ad content identifier |
utm_term | String | Paid search keyword |
gclid | String | Google Ads click ID |
fbclid | String | Meta/Facebook click ID |
msclkid | String | Microsoft Ads click ID |
ttclid | String | TikTok click ID |
For the complete list of supported parameters, see Supported UTM Properties.
Metadata
| Property | Type | Description |
|---|---|---|
$source | String | Always Vendo - Shopify App |
vendo_tracking_version | String | Pixel version |
event_type | String | Event type identifier |
Product Object
Product-related events include a products array with this structure:
| Property | Type | Description |
|---|---|---|
id | String | Shopify product ID (GID format) |
product_id | String | Numeric product ID |
title | String | Product title |
type | String | Product type |
vendor | String | Product vendor |
variant_id | String | Variant ID |
variant_title | String | Variant name (e.g., Black / Medium) |
variant_price | String | Variant price |
variant_currency_code | String | Currency code |
variant_sku | String | SKU |
quantity | Number | Quantity (for cart/order events) |
result_rank | Number | Position in search/collection results |
Customer Profile Properties
Customer profiles are synced to destinations that support user properties (Mixpanel, Segment, Customer.io, OneSignal).
| Property | Type | Description |
|---|---|---|
$email | String | Customer email |
$first_name | String | First name |
$last_name | String | Last name |
$phone | String | Phone number |
$created | DateTime | Account creation date |
shopify_customer_id | String | Shopify customer ID |
total_spent | Number | Lifetime spend |
order_count | Number | Total orders |
verified_email | Boolean | Email verified |
customer_tags | Array | Shopify customer tags |
first_order_date | DateTime | First purchase date |
last_order_date | DateTime | Most recent purchase |
email_marketing_consent_state | String | Marketing consent status |
marketing_state | String | Marketing state |
tax_exempt | Boolean | Tax exemption status |
Address Object
Shipping and billing addresses use this structure:
| Property | Type | Description |
|---|---|---|
firstName | String | First name |
lastName | String | Last name |
address1 | String | Street address |
city | String | City |
province | String | State/province name |
provinceCode | String | State/province code |
country | String | Country name |
countryCode | String | Country code (ISO) |
zip | String | Postal/ZIP code |
Example Payloads
For complete JSON examples of client-side Shopify events, see BigQuery Client-Side Events. Destination-specific pages document any additional field mapping.