6.5 KiB
E-commerce Event Testing in DebugView
Complete E-commerce Flow
1. view_item_list
Fires: Product listing page loads
Required Parameters:
item_list_id: "related_products", "search_results"item_list_name: "Related Products", "Search Results"items: Array of products shown
Validation:
- Items array populated
- Each item has item_id and item_name
- item_list_id and item_list_name present
2. select_item
Fires: User clicks product from list
Required Parameters:
item_list_id: Same as view_item_listitem_list_name: Same as view_item_listitems: Array with selected item
Validation:
- Only selected item in items array
- item_list matches where user clicked from
3. view_item
Fires: Product detail page loads
Required Parameters:
currency: "USD"value: Product priceitems: Array with single product
Validation:
- currency present
- value is number
- items[0] contains full product details
4. add_to_cart
Fires: User adds item to cart
Required Parameters:
currency: "USD"value: Item total (price × quantity)items: Array with added item(s)
Validation:
- value = price × quantity
- currency matches site currency
- items array has correct item
- quantity is integer
5. remove_from_cart (Optional)
Fires: User removes item from cart
Required Parameters:
currency: "USD"value: Removed item valueitems: Array with removed item
6. view_cart (Optional)
Fires: Cart page loads
Required Parameters:
currency: "USD"value: Total cart valueitems: All items in cart
7. begin_checkout
Fires: Checkout process starts
Required Parameters:
currency: "USD"value: Cart totalitems: All items in cartcoupon(if applicable)
Validation:
- value matches cart total
- All cart items in items array
- coupon code if applied
8. add_payment_info (Optional)
Fires: Payment method added
Required Parameters:
currency: "USD"value: Transaction valuepayment_type: "credit_card", "paypal", etc.
9. add_shipping_info (Optional)
Fires: Shipping info added
Required Parameters:
currency: "USD"value: Transaction valueshipping_tier: "Ground", "Express", etc.
10. purchase
Fires: Transaction completes
Required Parameters:
transaction_id: UNIQUE order IDcurrency: "USD"value: Total revenueitems: All purchased items
Optional Parameters:
tax: Tax amountshipping: Shipping costcoupon: Coupon codeaffiliation: Store name
Validation:
- transaction_id is unique (never reused)
- value is total (items + tax + shipping - discounts)
- All items have complete details
- tax and shipping are numbers
- No duplicate purchase events
11. refund (Optional)
Fires: Transaction refunded
Required Parameters:
transaction_id: Original order IDcurrency: "USD"value: Refund amount
Items Array Structure
Complete Item Object:
{
"item_id": "SKU_12345", // Required
"item_name": "Blue T-Shirt", // Required
"affiliation": "Online Store",
"coupon": "SUMMER20",
"currency": "USD",
"discount": 2.00,
"index": 0, // Position in list
"item_brand": "MyBrand",
"item_category": "Apparel",
"item_category2": "Men",
"item_category3": "Shirts",
"item_category4": "T-Shirts",
"item_category5": "Short Sleeve",
"item_list_id": "related_products",
"item_list_name": "Related Products",
"item_variant": "Blue",
"location_id": "Warehouse_A",
"price": 29.99, // Required for most events
"quantity": 2 // Required for cart/purchase events
}
Testing Purchase Event
Complete Test:
- Add items to cart → Verify
add_to_cartfor each - Go to checkout → Verify
begin_checkout - Complete purchase → Verify
purchase
Purchase Event Checklist:
- Event name:
purchase transaction_idpresent and uniquevalueis number (not string)currencyis 3-letter codeitemsarray not empty- Each item has
item_id - Each item has
item_name - Each item has
price(number) - Each item has
quantity(integer) - Optional:
taxis number - Optional:
shippingis number - Optional:
couponis string - No duplicate
transaction_idin DebugView session
Common Issues:
Issue: Items array empty
- Cause: Items not passed to event
- Fix: Ensure dataLayer.push includes ecommerce.items
Issue: Value is string "99.99"
- Cause: Quotes around number
- Fix: Remove quotes:
value: 99.99
Issue: transaction_id repeats
- Cause: Page reload after purchase, or testing with same ID
- Fix: Generate unique IDs, prevent double-submit
Issue: Item missing price
- Cause: Incomplete item object
- Fix: Include price in every item object
Calculating Value
Formula:
value = (sum of item prices × quantities) + tax + shipping - discount
Example:
Item 1: $29.99 × 2 = $59.98
Item 2: $19.99 × 1 = $19.99
Subtotal: $79.97
Tax: $6.40
Shipping: $5.00
Discount: -$10.00
Total value: $81.37
In DebugView:
purchase event:
value: 81.37
currency: "USD"
tax: 6.40
shipping: 5.00
items: [item1, item2]
Multi-Step Checkout Validation
Step 1: Cart Page
view_cartevent- Items match current cart
- Value correct
Step 2: Shipping Info
add_shipping_infoevent- shipping_tier parameter
- Value includes shipping
Step 3: Payment Info
add_payment_infoevent- payment_type parameter
- Value matches total
Step 4: Review Order
- No specific event (or custom event)
- Final verification before purchase
Step 5: Purchase Complete
purchaseevent- Unique transaction_id
- All parameters correct
- Confirmation page loads
Testing with Test Transactions
Using GTM Preview + DebugView:
- Enable GTM Preview mode
- Enable DebugView
- Add test product to cart
- Complete checkout with test payment
- Verify each event in real-time:
- GTM Tag Assistant: Tags fire
- DebugView: Events appear
- Cross-check parameters match
- Verify transaction_id is unique
- Test refund event (if implemented)
Best Practice:
- Use test payment gateway in development
- Generate unique transaction_ids for each test
- Document test transaction IDs
- Clean up test data if it reaches production