begin_checkout
A user begins checkout.
Status: Active
Triggered when a user begins checkout.
Source: checkout portal flow (PMS). This is emitted when the Stay step is shown.
If a CMS search snapshot cookie is present, a top-level search object is included.
Checkout portal emits a booking snapshot with totals and guest group counts (status = concept).
Sample data layer snippet
dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. dataLayer.push({ "event": "begin_checkout", "ecommerce": { "currency": "EUR", "value": 350.0, "coupon": "SUMMER10", "items": [ { "item_id": "123123", "item_name": "4-Person Luxury Villa", "item_brand": "Administration Name", "item_category": "Accommodation", "item_category2": "house", "item_variant": "single_night", "item_list_id": "checkout", "item_list_name": "Checkout", "coupon": "SUMMER10", "discount": 25.0, "price": 350.0, "quantity": 1, "index": 1, "item_country": "Netherlands", "item_region": "Twente", "item_city": "Enschede", "administration_id": "321321", "administration_name": "Administration Name", "start_date": "2026-02-20", "end_date": "2026-02-22", "google_business_vertical": "hotel_rental" } ] }, "booking": { "status": "concept", "final": false, "guest_group": { "seniors": 0, "adults": 2, "adolescents": 0, "children": 1, "babies": 0, "pets": 0, "total": 3 }, "currency": "EUR", "total": 350, "base_rent_total": 350, "upgrade_total": 0, "preference_total": 0, "deposit_total": 0, "deferred_deposit_total": 0, "security_deposit_total": 0, "tourist_taxes_total": 0, "vat_total": 50 }});We do not auto-clear booking. If you map booking outside booking events, clear it manually with dataLayer.push({ booking: null }).
Top-level objects
ecommerce
Ecommerce payload wrapper for GA4 events.
ecommerce.items[]
Items array for the ecommerce payload.
booking
Booking snapshot with status concept and checkout totals. Source: Checkout portal booking summary.
booking.guest_group
Guest counts by group (see guest_group fields). Source: Aggregated guest group from reservations.