Skip to Content
SourcesShopifyData Model

Data Model

The full reference of all Shopify events, properties and customer data that Vendo tracks.

Last reviewed September 15, 2026

This page is the canonical reference for the Shopify events, event properties and data structures that Vendo tracks.


Event Overview

Vendo tracks events in two ways: client-side (Web Pixel) and server-side (pipeline). This table shows where each event comes from.

Event CategoryClient-SideServer-Side
Page browsing (page/product/collection viewed)Yes
SearchYes
Cart actions (add/remove/view)Yes
Checkout flow (contact/address/shipping/payment)Yes
Checkout completedYesYes
Order fulfillment & deliveryYes
Order refundsYes
Abandoned checkoutsYes
Customer profile updatesYesYes
Auto track eventsYes (theme)
Session recording & heatmapsYes (theme)
Push notification promptsYes (theme)

Client-Side Events

The Shopify event registry sets which client-side events are available. Standard events are enabled or disabled for each destination. When the custom events option is enabled, Vendo can forward custom events.

Mixpanel, Segment and Customer.io receive the event names in the Event column. Google Tag Manager receives the GA4 event names in the Google Tag Manager column. Google Tag Manager does not receive custom events.

OneSignal events from the storefront do not include properties whose names start with $.

Customer.io receives client-side events only through the Vendo ingest API. Page Viewed arrives as a track event, not as a page call. Customer.io receives the page and attribution values in the event properties and in the event context.

Browsing Events

EventGoogle Tag ManagerDescriptionKey Properties
Page Viewedpage_viewCustomer visits any page$current_url, page_title, path_name, $referrer
Product Viewedview_itemCustomer views a product detail pageproducts[], $current_url
Collection Viewedview_item_listCustomer views a collection pagecollection_id, collection_title, products[]
Search SubmittedsearchCustomer performs a searchsearch_query, products[]

Cart Events

EventGoogle Tag ManagerDescriptionKey Properties
Product Added To Cartadd_to_cartCustomer adds item to cartproducts[], quantity, amount, currency
Product Removed From Cartremove_from_cartCustomer removes item from cartproducts[], quantity, amount, currency
Cart Viewedview_cartCustomer views the cart pageproducts[], quantity, amount, currency

Checkout Events

EventGoogle Tag ManagerDescriptionKey Properties
Checkout Startedbegin_checkoutCustomer initiates checkoutcheckout_token, order_id, cart_total_amount, products[]
Checkout Contact Info Submittedadd_contact_infoCustomer enters email/phoneemail, phone, checkout_token
Checkout Address Info Submittedadd_shipping_infoCustomer enters shipping addressshipping_address, email, phone
Checkout Shipping Info Submittedadd_shipping_infoCustomer selects shipping methodshipping_amount, cart_total_amount
Payment Info Submittedadd_payment_infoCustomer enters payment detailscheckout_token, cart_total_amount
Checkout CompletedpurchaseCustomer completes purchaseorder_id, email, cart_total_amount, products[], shipping_address

Identification and Diagnostic Events

Event in the Vendo appName sentDescription
Customer Logged InCustomer Logged In (Google Tag Manager: customer_logged_in)Customer successfully logs in. Disabled by default.
Newsletter RegisteredNewsletter Registered (Google Tag Manager: newsletter_registered)Visitor submits a supported newsletter signup. Disabled by default.
Checkout Alert Displayedalert_displayedA checkout validation or warning alert appears. Disabled by default.
UI Extension Erroredui_extension_erroredA Vendo checkout UI extension fails to load or crashes. Disabled by default.
Custom EventsThe name the custom event was published withEvents published through Shopify Customer Events when custom forwarding is enabled

To track more interactions, see Sending Custom Events.


Server-Side Events

Scheduled pipeline jobs make these events from Shopify’s backend data. To see how often the jobs run, check the connection status and job history.

The Event column in the tables below shows the name that Mixpanel receives. Key Properties shows the Mixpanel property names. Other destinations can use different names.

Event Names by Destination

Event in the Vendo appMixpanelSegmentCustomer.ioOneSignal
Orders ReceivedOrder ReceivedOrder CompletedOrder Receivedorder_received
Orders FulfilledOrder FulfilledOrder FulfilledOrder Fulfilledorder_fulfilled
Orders DeliveredOrder DeliveredOrder DeliveredOrder Deliveredorder_delivered
Orders RefundedOrder RefundedOrder RefundedOrder Refundedorder_refunded
Orders Partially RefundedOrder Partially RefundedOrder Partially RefundedOrder Partially Refundedorder_partially_refunded
Checkout Started (Server)Checkout Started (S)Checkout StartedCheckout Startedcheckout_started
Abandoned CheckoutsCart AbandonedCart AbandonedCart Abandonedcart_abandoned
Product PurchasedProducts PurchasedProduct PurchasedNot sentNot sent
User Profiles (Identify)Profile update (not an event)identify callidentify callUser tags

Test Orders

On Shopify development and partner test stores, Vendo also sends test orders as separate events:

  • When Orders Received is on, Mixpanel receives Order Received [Test] and OneSignal receives order_received_test.
  • When Product Purchased is on, Mixpanel receives Products Purchased [Test].

Segment and Customer.io do not receive test-order events.

Order Events

EventDescriptionKey Properties
Order ReceivedNew order createdshopify_order_id, order_id, email, cart_total_amount, products[], discount[], utm_source/medium/campaign
Order FulfilledOrder marked as shippedfulfillment_id, tracking_number, fulfillment_speed, products[]
Order DeliveredOrder marked as deliveredshopify_order_id, delivery_date, delivery_speed
Order RefundedFull refund issuedshopify_order_id, refund_amount, cancel_reason
Order Partially RefundedPartial refund issuedshopify_order_id, refund_amount
Checkout Started (S)First server-side checkout record for the sessioncheckout_id, email, cart_total_amount, products[], abandoned_checkout_url
Products PurchasedPer line item (disabled by default)product_id, product_title, product_sku, product_price, product_quantity

Abandonment Events

EventDescriptionKey Properties
Cart AbandonedCheckout not completedcheckout_id, email, cart_total_amount, products[], abandoned_checkout_url

Property Names by Destination

Segment, Customer.io and OneSignal use different names for some server-side properties.

MixpanelSegmentCustomer.ioOneSignal
cart_total_amount (orders and checkouts)totaltotalcart_total_amount
cart_total_amount (refunds)totaloriginal_totalcart_total_amount
abandoned_checkout_url (Cart Abandoned)checkout_urlcheckout_urlcheckout_url
abandoned_checkout_url (Checkout Started (S))Not sentNot sentNot sent
discount[] (discount codes)Not sent (discount is the discount amount)Not sent (discount is the discount amount)Not sent (total_discounts is the discount amount)
utm_source/medium/campaignNot sentNot sentNot sent
fulfillment_speedfulfillment_speed_daysfulfillment_speed_daysfulfillment_speed_days
delivery_speeddelivery_speed_daysdelivery_speed_daysdelivery_speed_days
product_title (Products Purchased)nameNot sentNot sent
product_sku (Products Purchased)skuNot sentNot sent
product_price (Products Purchased)priceNot sentNot sent
product_quantity (Products Purchased)quantityNot sentNot sent

Profile Updates

Customer profile syncs are not events. They do not show in event reports.

  • Mixpanel: Vendo sends a $set profile update with the Customer Profile Properties. Vendo also sends $create_alias to link a known customer to an earlier ID.
  • Segment and Customer.io: Vendo sends an identify call with the customer traits.
  • OneSignal: Vendo sets user tags on the customer.

Common Properties

All client-side events include these properties automatically.

Identity

PropertyTypeDescription
distinct_idStringUser identifier (customer ID or device ID)
$device_idStringAnonymous device identifier
$user_idStringShopify customer ID or email (when known). Only on Checkout Completed, Customer Logged In, Newsletter Registered and custom events that set it
$insert_idStringUnique event ID for deduplication

Device & Browser

PropertyTypeDescription
$browserStringBrowser name
$deviceStringDevice from the user agent (for example, iPhone)
$osStringOperating system
$screen_heightNumberScreen height in pixels
$screen_widthNumberScreen width in pixels
languageStringBrowser language

Page Context

PropertyTypeDescription
$current_urlStringFull page URL
page_titleStringPage title
path_nameStringURL path
$referrerStringReferring URL

Attribution

Vendo captures UTM parameters and click IDs from landing page URLs.

PropertyTypeDescription
utm_sourceStringTraffic source
utm_mediumStringMarketing medium
utm_campaignStringCampaign name
utm_contentStringAd content identifier
utm_termStringPaid search keyword
gclidStringGoogle Ads click ID
fbclidStringMeta/Facebook click ID
msclkidStringMicrosoft Ads click ID
ttclidStringTikTok click ID
fbcStringMeta click ID from the _fbc cookie

For the complete list of supported parameters, see Supported UTM Properties.

Checkout Completed includes profile_attribution_snapshot. The profile update that Vendo sends at checkout includes it too. The object has the first-touch and last-touch UTM values, click IDs and referrer domain that the browser stored. It also has the Meta browser IDs fbc and fbp. Vendo adds it only when the browser stored one of these values.

Metadata

PropertyTypeDescription
$sourceStringVendo - Shopify App. A custom event can set its own value. Mixpanel shows Vendo - Server for events from the Vendo ingest API
vendo_tracking_versionStringPixel version
event_typeStringstandard or custom
shopify_event_idStringShopify event ID that Vendo routes the event by (for example, product_viewed, or all_custom_events for a custom event)
shopify_routing_contract_versionNumberVersion of the Vendo routing contract (1)
vendo_runtime_instance_idStringID of the pixel runtime that sent the event

Product Object

Client-side product events include a products array with this structure:

PropertyTypeDescription
idStringShopify product ID (GID format)
titleStringProduct title
typeStringProduct type
vendorStringProduct vendor
variant_idStringVariant ID
variant_titleStringVariant name (for example, Black / Medium)
untranslated_titleStringProduct title before translation
variant_untranslated_titleStringVariant name before translation
variant_imageStringVariant image URL
variant_priceStringVariant price
variant_currency_codeStringCurrency code
variant_skuStringSKU
quantityNumberQuantity (Cart Viewed and checkout events)
result_rankNumberPosition in search/collection results

Customer Profile Properties

Vendo syncs customer profiles to destinations that support user properties (Mixpanel, Segment, Customer.io and OneSignal). Each destination uses its own property names.

MixpanelSegmentCustomer.ioOneSignalDescription
$emailemailemailemailCustomer email
$first_namefirstNamefirst_namefirst_nameFirst name
$last_namelastNamelast_namelast_nameLast name
$phonephoneNot sentNot sentPhone number
$createdcreatedAtNot sentcustomer_created_atAccount creation date
shopify_customer_idshopifyCustomerIdNot sentNot sentShopify customer ID
total_spenttotalSpenttotal_spenttotal_spentLifetime spend
order_countorderCountorder_countorder_countTotal orders
verified_emailverifiedEmailverified_emailverified_emailEmail verified
customer_tagscustomerTagscustomer_tagscustomer_tagsShopify customer tags
first_order_datefirstOrderDatefirst_order_datefirst_order_dateFirst purchase date
last_order_datelastOrderDatelast_order_datelast_order_dateMost recent purchase
email_marketing_consent_stateemailMarketingConsentNot sentemail_marketing_consentMarketing consent status
marketing_statemarketingStatemarketing_statemarketing_stateMarketing state
tax_exempttaxExemptNot senttax_exemptTax exemption status

Address Object

Client-side checkout events include shipping_address. Vendo sends Shopify’s checkout shipping address object without changes. It has these fields:

PropertyTypeDescription
firstNameStringFirst name
lastNameStringLast name
address1StringStreet address
cityStringCity
provinceStringState/province name
provinceCodeStringState/province code
countryStringCountry name
countryCodeStringCountry code (ISO)
zipStringPostal/ZIP code

Example Payloads

For the BigQuery schema of client-side Shopify events, see BigQuery Client-Side Events. The page for each destination gives any additional field mapping.

Need help?

When you contact support, give your workspace, the source or destination name, the job ID and the first error message.

support@vendodata.com
Last updated on