Skip to content
Home » Reference » E-commerce Event Schema: The Complete Reference

E-commerce Event Schema: The Complete Reference

Reading time: 10 min · Last updated: January 2026

A complete reference for GA4 e-commerce tracking. All events, parameters, and implementation examples in one place — copy-paste ready for your data layer.

E-commerce Funnel Overview

GA4 tracks the complete shopping journey through these events:

view_item_list select_item Discovery view_item add_to_wishlist Detail add_to_cart view_cart Cart begin_checkout add_shipping_info add_payment_info Checkout purchase refund Transaction Required for GA4 Ecommerce Reports: view_item, add_to_cart, begin_checkout, purchase — populate default reports Other events — enhance funnel analysis and user journey tracking Source: Google Analytics Documentation
“The most important events are view_item, add_to_cart, begin_checkout, and purchase — these populate GA4’s default Ecommerce purchases report.”
Google Analytics Documentation

Product Discovery Events

view_item_list

Fire when a user sees a list of products (category page, search results, recommendations).

Parameter Type Required Example
item_list_id string No “category_shoes”
item_list_name string No “Running Shoes”
items array Yes [{item_id, item_name, …}]

select_item

Fire when a user clicks on a product from a list.

Parameter Type Required Example
item_list_id string No “search_results”
item_list_name string No “Search Results”
items array Yes [{item_id, item_name, index}]

view_item

Fire when a user views a product detail page.

Parameter Type Required Example
currency string Yes “EUR”
value number Yes 99.99
items array Yes [{item_id, item_name, price}]

Cart Events

add_to_cart

Fire when a user adds a product to the shopping cart.

Parameter Type Required Example
currency string Yes “EUR”
value number Yes 99.99
items array Yes [{item_id, item_name, price, quantity}]

Data Layer Example:

dataLayer.push({
  event: "add_to_cart",
  ecommerce: {
    currency: "EUR",
    value: 99.99,
    items: [{
      item_id: "SKU_12345",
      item_name: "Running Shoes Pro",
      price: 99.99,
      quantity: 1,
      item_brand: "SportBrand",
      item_category: "Shoes",
      item_category2: "Running"
    }]
  }
});

view_cart

Fire when a user views their shopping cart.

remove_from_cart

Fire when a user removes a product from the cart.

Both events use the same parameters as add_to_cart.

Checkout Events

begin_checkout

Fire when a user starts the checkout process.

Parameter Type Required Example
currency string Yes “EUR”
value number Yes 199.98
coupon string No “SUMMER20”
items array Yes […]

add_shipping_info

Fire when a user submits shipping information.

Parameter Type Required Example
shipping_tier string No “Express”
+ currency, value, coupon, items

add_payment_info

Fire when a user submits payment information.

Parameter Type Required Example
payment_type string No “Credit Card”
+ currency, value, coupon, items

Purchase & Refund

purchase

Fire when a transaction is completed. This is the most important e-commerce event.

Parameter Type Required Example
transaction_id string Yes “ORD-2026-001234”
currency string Yes “EUR”
value number Yes 189.98
tax number No 36.10
shipping number No 5.99
coupon string No “SUMMER20”
items array Yes […]

Important: Each transaction_id must be unique. Duplicate IDs will be deduplicated in GA4 reports.

Data Layer Example:

dataLayer.push({
  event: "purchase",
  ecommerce: {
    transaction_id: "ORD-2026-001234",
    currency: "EUR",
    value: 189.98,
    tax: 36.10,
    shipping: 5.99,
    coupon: "SUMMER20",
    items: [{
      item_id: "SKU_12345",
      item_name: "Running Shoes Pro",
      price: 99.99,
      quantity: 2,
      item_brand: "SportBrand",
      item_category: "Shoes"
    }]
  }
});

refund

Fire when an order is refunded (full or partial).

Uses the same parameters as purchase. For partial refunds, include only the refunded items in the items array.

Promotion Events

view_promotion

Fire when a promotion banner or block is displayed.

select_promotion

Fire when a user clicks on a promotion.

Parameter Type Example
promotion_id string “summer_sale_2026”
promotion_name string “Summer Sale 20% Off”
creative_name string “Hero Banner Blue”
creative_slot string “homepage_hero”

Items Array Reference

Every e-commerce event requires an items array. Here are all available item parameters:

Parameter Type Required Description
item_id string Yes* SKU or product ID
item_name string Yes* Product name
price number No Unit price
quantity number No Number of items
item_brand string No Brand name
item_category string No Primary category
item_category2-5 string No Sub-categories (up to 5 levels)
item_variant string No Size, color, etc.
index number No Position in list
discount number No Discount amount
coupon string No Item-level coupon

* Either item_id or item_name is required. Best practice: include both.

Validation Checklist

Before going live, verify your implementation:

Currency is consistent — same format across all events (EUR, not €)
Values are numbers — not strings (“99.99” vs 99.99)
Transaction IDs are unique — no duplicates across purchases
Items array is present — even for single-product events
item_id or item_name exists — at least one is required
Events fire in correct order — view_item before add_to_cart before purchase
No PII in parameters — no emails, names, or addresses
Test in GA4 DebugView — verify events appear correctly

Further Reading:

Lukas Meier

Written by

Lukas Meier

Product Analytics Specialist with 10 years of experience configuring tracking for e-commerce and SaaS products across Europe. Creator of EU-Medin.

Leave a Reply

Your email address will not be published. Required fields are marked *