Skip to content

Commit 7437708

Browse files
committed
ADO-313: moves the check for existing event id for purchase event into controller
1 parent c77224d commit 7437708

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

app/code/Meta/Conversion/Model/CapiTracker.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
use Magento\Customer\Model\Session as CustomerSession;
88
use Magento\Framework\Serialize\Serializer\Json as JsonSerializer;
99
use Magento\Framework\MessageQueue\PublisherInterface;
10-
use Meta\Conversion\Model\Tracker\Purchase;
1110

1211
class CapiTracker
1312
{
@@ -28,11 +27,6 @@ public function __construct(
2827
public function execute(array $payload, string $eventName, string $eventType, bool $useSessionForEventIds = false): void
2928
{
3029
if (isset($payload)) {
31-
// Purchase event is triggered twice sometimes, to prevent that check if event id is already stored for current request
32-
// if it does prevent the message form being added to the message queue.
33-
if ((Purchase::EVENT_TYPE == $eventType) && $this->capiEventIdHandler->getMetaEventId($eventName)) {
34-
return;
35-
}
3630
$eventId = $this->generateEventId($eventName, $useSessionForEventIds);
3731
$payload['event_id'] = $eventId;
3832
$payload['event_type'] = $eventType;

app/code/Meta/Conversion/Observer/Tracker/Purchase.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Meta\Conversion\Model\Tracker\Purchase as PurchaseTracker;
99
use Magento\Checkout\Model\Session as CheckoutSession;
1010
use Meta\Conversion\Model\CapiTracker;
11+
use Meta\Conversion\Model\CapiEventIdHandler;
1112

1213
class Purchase implements ObserverInterface
1314
{
@@ -17,13 +18,16 @@ class Purchase implements ObserverInterface
1718
public function __construct(
1819
private readonly PurchaseTracker $purchaseTracker,
1920
private readonly CheckoutSession $checkoutSession,
20-
private readonly CapiTracker $capiTracker
21+
private readonly CapiTracker $capiTracker,
22+
private readonly CapiEventIdHandler $capiEventIdHandler
2123
) { }
2224

2325
public function execute(Observer $observer): void
2426
{
25-
$lastOrderId = $this->checkoutSession->getLastRealOrder()->getEntityId();
26-
$payload = $this->purchaseTracker->getPayload(['lastOrder' => $lastOrderId]);
27-
$this->capiTracker->execute($payload, self::EVENT_NAME, $this->purchaseTracker->getEventType());
27+
if (!$this->capiEventIdHandler->getMetaEventId(self::EVENT_NAME)) {
28+
$lastOrderId = $this->checkoutSession->getLastRealOrder()->getEntityId();
29+
$payload = $this->purchaseTracker->getPayload(['lastOrder' => $lastOrderId]);
30+
$this->capiTracker->execute($payload, self::EVENT_NAME, $this->purchaseTracker->getEventType());
31+
}
2832
}
2933
}

0 commit comments

Comments
 (0)