From 267eaf6143c25fbccf5deedd56fa994f3f6a82da Mon Sep 17 00:00:00 2001 From: jisse Reitsma Date: Thu, 7 Dec 2023 10:56:29 +0100 Subject: [PATCH] MageWire support --- CHANGELOG.md | 4 ++ MageWire/Checkout.php | 42 +++++++++++++++++++ MageWire/Component.php | 9 ++++ composer.json | 2 +- .../layout/hyva_checkout_index_index.xml | 16 +++++++ .../templates/hyva_checkout/data-layer.phtml | 32 ++++++++++++++ 6 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 MageWire/Checkout.php create mode 100644 MageWire/Component.php create mode 100644 view/frontend/layout/hyva_checkout_index_index.xml create mode 100644 view/frontend/templates/hyva_checkout/data-layer.phtml diff --git a/CHANGELOG.md b/CHANGELOG.md index c0b90dce..4e995c41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [3.7.0] - 7 December 2023 +### Added +- Hyva Checkout support (@hans-vereyken) + ## [3.6.5] - 28 November 2023 ### Fixed - Make sure to use `gtm-checkout` in the checkout, not customerData `cart` diff --git a/MageWire/Checkout.php b/MageWire/Checkout.php new file mode 100644 index 00000000..87710811 --- /dev/null +++ b/MageWire/Checkout.php @@ -0,0 +1,42 @@ + 'triggerShippingMethod', + 'payment_method_selected' => 'triggerPaymentMethod', + ]; + + public function __construct( + private readonly CheckoutSession $checkoutSession, + private readonly BeginCheckout $beginCheckout, + private readonly AddShippingInfo $addShippingInfo, + private readonly AddPaymentInfo $addPaymentInfo, + ) { + } + + public function triggerBeginCheckout() + { + $this->dispatchBrowserEvent('ga:trigger-event', $this->beginCheckout->get()); + } + + public function triggerShippingMethod() + { + $this->dispatchBrowserEvent('ga:trigger-event', $this->addShippingInfo->get()); + } + + public function triggerPaymentMethod() + { + $this->addPaymentInfo->setCartId((int) $this->checkoutSession->getQuote()->getId()); + $this->addPaymentInfo->setPaymentMethod((string) $this->checkoutSession->getQuote()->getPayment()->getMethod()); + $this->dispatchBrowserEvent('ga:trigger-event', $this->addPaymentInfo->get()); + } +} diff --git a/MageWire/Component.php b/MageWire/Component.php new file mode 100644 index 00000000..3c0290c9 --- /dev/null +++ b/MageWire/Component.php @@ -0,0 +1,9 @@ + + + + + + + Yireo\GoogleTagManager2\MageWire\Checkout + Yireo\GoogleTagManager2\DataLayer\Event\BeginCheckout + + + + + diff --git a/view/frontend/templates/hyva_checkout/data-layer.phtml b/view/frontend/templates/hyva_checkout/data-layer.phtml new file mode 100644 index 00000000..87283f9b --- /dev/null +++ b/view/frontend/templates/hyva_checkout/data-layer.phtml @@ -0,0 +1,32 @@ +getData('begin_checkout_event'); +?> + + +