Skip to content

Commit 2a70fdd

Browse files
authored
Merge pull request #233 from sdinteractive/revert-226-ADO-313-capi-changes
Revert "ADO-313: decouple CAPI event from frontend"
2 parents cdfd84c + ac53f07 commit 2a70fdd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+90
-1792
lines changed

app/code/Meta/Conversion/Block/Pixel/AddToWishlist.php

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,11 @@
33

44
namespace Meta\Conversion\Block\Pixel;
55

6-
use Magento\Customer\Model\Session as CustomerSession;
7-
use Magento\Checkout\Model\Session as CheckoutSession;
8-
use Magento\Framework\Escaper;
9-
use Magento\Framework\View\Element\Template\Context;
10-
use Meta\BusinessExtension\Helper\FBEHelper;
11-
use Meta\BusinessExtension\Model\System\Config as SystemConfig;
12-
use Meta\Conversion\Helper\MagentoDataHelper;
13-
146
/**
157
* @api
168
*/
179
class AddToWishlist extends Common
1810
{
19-
20-
private $customerSession;
21-
22-
public function __construct(
23-
Context $context,
24-
FBEHelper $fbeHelper,
25-
MagentoDataHelper $magentoDataHelper,
26-
SystemConfig $systemConfig,
27-
Escaper $escaper,
28-
CheckoutSession $checkoutSession,
29-
CustomerSession $customerSession,
30-
array $data = []
31-
) {
32-
parent::__construct($context, $fbeHelper, $magentoDataHelper, $systemConfig, $escaper, $checkoutSession, $data);
33-
$this->customerSession = $customerSession;
34-
}
35-
3611
/**
3712
* Returns event name
3813
*
@@ -42,14 +17,4 @@ public function getEventToObserveName()
4217
{
4318
return 'facebook_businessextension_ssapi_add_to_wishlist';
4419
}
45-
46-
public function getEventId(): ?string
47-
{
48-
$eventIds = $this->customerSession->getMetaEventIds();
49-
if (is_array($eventIds) && array_key_exists($this->getEventToObserveName(), $eventIds)) {
50-
return $eventIds[$this->getEventToObserveName()];
51-
}
52-
53-
return null;
54-
}
5520
}

app/code/Meta/Conversion/Block/Pixel/Common.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ public function getTrackerUrl(): string
274274
*
275275
* @return string
276276
*/
277-
public function getEventId(): ?string
277+
public function getEventId(): string
278278
{
279279
return EventIdGenerator::guidv4();
280280
}

app/code/Meta/Conversion/Block/Pixel/CustomerRegistrationSuccess.php

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,11 @@
33

44
namespace Meta\Conversion\Block\Pixel;
55

6-
use Magento\Checkout\Model\Session as CheckoutSession;
7-
use Magento\Customer\Model\Session as CustomerSession;
8-
use Magento\Framework\Escaper;
9-
use Magento\Framework\View\Element\Template\Context;
10-
use Meta\BusinessExtension\Helper\FBEHelper;
11-
use Meta\BusinessExtension\Model\System\Config as SystemConfig;
12-
use Meta\Conversion\Helper\MagentoDataHelper;
13-
146
/**
157
* @api
168
*/
179
class CustomerRegistrationSuccess extends Common
1810
{
19-
20-
private $customerSession;
21-
22-
23-
public function __construct(
24-
Context $context,
25-
FBEHelper $fbeHelper,
26-
MagentoDataHelper $magentoDataHelper,
27-
SystemConfig $systemConfig,
28-
Escaper $escaper,
29-
CheckoutSession $checkoutSession,
30-
CustomerSession $customerSession,
31-
array $data = []
32-
) {
33-
parent::__construct($context, $fbeHelper, $magentoDataHelper, $systemConfig, $escaper, $checkoutSession, $data);
34-
$this->customerSession = $customerSession;
35-
}
36-
3711
/**
3812
* Returns content type
3913
*
@@ -53,14 +27,4 @@ public function getEventToObserveName()
5327
{
5428
return 'facebook_businessextension_ssapi_customer_registration_success';
5529
}
56-
57-
public function getEventId(): ?string
58-
{
59-
$eventIds = $this->customerSession->getMetaEventIds();
60-
if (is_array($eventIds) && array_key_exists($this->getEventToObserveName(), $eventIds)) {
61-
return $eventIds[$this->getEventToObserveName()];
62-
}
63-
64-
return null;
65-
}
6630
}

app/code/Meta/Conversion/Block/Pixel/InitiateCheckout.php

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
use Magento\Framework\Pricing\Helper\Data as PricingHelper;
2929
use Magento\Checkout\Model\Session as CheckoutSession;
3030
use Magento\Quote\Model\Quote;
31-
use Meta\Conversion\Model\CapiEventIdHandler;
3231

3332
/**
3433
* @api
@@ -55,8 +54,6 @@ class InitiateCheckout extends Common
5554
*/
5655
private $checkoutSession;
5756

58-
private $capiEventIdHandler;
59-
6057
/**
6158
* Constructor
6259
*
@@ -67,7 +64,6 @@ class InitiateCheckout extends Common
6764
* @param Escaper $escaper
6865
* @param CheckoutSession $checkoutSession
6966
* @param PricingHelper $pricingHelper
70-
* @param CapiEventIdHandler $capiEventIdHandler
7167
* @param array $data
7268
*/
7369
public function __construct(
@@ -78,7 +74,6 @@ public function __construct(
7874
Escaper $escaper,
7975
CheckoutSession $checkoutSession,
8076
PricingHelper $pricingHelper,
81-
CapiEventIdHandler $capiEventIdHandler,
8277
array $data = []
8378
) {
8479
parent::__construct(
@@ -93,7 +88,6 @@ public function __construct(
9388
$this->pricingHelper = $pricingHelper;
9489
$this->magentoDataHelper = $magentoDataHelper;
9590
$this->checkoutSession = $checkoutSession;
96-
$this->capiEventIdHandler = $capiEventIdHandler;
9791
}
9892

9993
/**
@@ -203,9 +197,4 @@ public function getContentTypeQuote(): string
203197
{
204198
return 'product';
205199
}
206-
207-
public function getEventId(): ?string
208-
{
209-
return $this->capiEventIdHandler->getMetaEventId($this->getEventToObserveName());
210-
}
211200
}

app/code/Meta/Conversion/Block/Pixel/Purchase.php

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
use Magento\Framework\View\Element\Template\Context;
2929
use Magento\Framework\Escaper;
3030
use Magento\Checkout\Model\Session as CheckoutSession;
31-
use Meta\Conversion\Model\CapiEventIdHandler;
3231

3332
/**
3433
* @api
@@ -45,9 +44,6 @@ class Purchase extends Common
4544
*/
4645
private $fbeHelper;
4746

48-
private $capiEventIdHandler;
49-
50-
5147
/**
5248
* Purchase constructor
5349
*
@@ -66,7 +62,6 @@ public function __construct(
6662
SystemConfig $systemConfig,
6763
Escaper $escaper,
6864
CheckoutSession $checkoutSession,
69-
CapiEventIdHandler $capiEventIdHandler,
7065
array $data = []
7166
) {
7267
parent::__construct(
@@ -80,7 +75,6 @@ public function __construct(
8075
);
8176
$this->fbeHelper = $fbeHelper;
8277
$this->checkoutSession = $checkoutSession;
83-
$this->capiEventIdHandler = $capiEventIdHandler;
8478
}
8579

8680
/**
@@ -200,9 +194,4 @@ public function getLastOrderRealOrderEntityId()
200194
{
201195
return $this->checkoutSession->getLastRealOrder()->getEntityId();
202196
}
203-
204-
public function getEventId(): ?string
205-
{
206-
return $this->capiEventIdHandler->getMetaEventId($this->getEventToObserveName());
207-
}
208197
}

app/code/Meta/Conversion/Controller/Pixel/Tracker.php

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66

77
use Magento\Framework\App\Action\HttpPostActionInterface;
88
use Magento\Framework\App\RequestInterface;
9+
use Meta\Conversion\Helper\ServerSideHelper;
10+
use Meta\Conversion\Helper\ServerEventFactory;
911
use Meta\BusinessExtension\Helper\FBEHelper;
1012
use Magento\Framework\Controller\Result\JsonFactory;
1113
use Magento\Framework\Controller\Result\Json;
12-
use Magento\Framework\MessageQueue\PublisherInterface;
13-
use Magento\Framework\Serialize\Serializer\Json as JsonSerializer;
1414

1515
class Tracker implements HttpPostActionInterface
1616
{
@@ -19,6 +19,11 @@ class Tracker implements HttpPostActionInterface
1919
*/
2020
private $request;
2121

22+
/**
23+
* @var ServerSideHelper
24+
*/
25+
private $serverSideHelper;
26+
2227
/**
2328
* @var FBEHelper
2429
*/
@@ -35,36 +40,33 @@ class Tracker implements HttpPostActionInterface
3540
private $jsonFactory;
3641

3742
/**
38-
* @var PublisherInterface
43+
* @var ServerEventFactory
3944
*/
40-
private $publisher;
41-
42-
/**
43-
* @var JsonSerializer
44-
*/
45-
private $jsonSerializer;
45+
private $serverEventFactory;
4646

4747
/**
48+
* Constructor
49+
*
4850
* @param RequestInterface $request
51+
* @param ServerSideHelper $serverSideHelper
4952
* @param FBEHelper $fbeHelper
5053
* @param JsonFactory $jsonFactory
51-
* @param PublisherInterface $publisher
52-
* @param JsonSerializer $jsonSerializer
54+
* @param ServerEventFactory $serverEventFactory
5355
* @param array $pixelEvents
5456
*/
5557
public function __construct(
5658
RequestInterface $request,
59+
ServerSideHelper $serverSideHelper,
5760
FBEHelper $fbeHelper,
5861
JsonFactory $jsonFactory,
59-
PublisherInterface $publisher,
60-
JsonSerializer $jsonSerializer,
62+
ServerEventFactory $serverEventFactory,
6163
array $pixelEvents = []
6264
) {
6365
$this->request = $request;
66+
$this->serverSideHelper = $serverSideHelper;
6467
$this->fbeHelper = $fbeHelper;
6568
$this->jsonFactory = $jsonFactory;
66-
$this->publisher = $publisher;
67-
$this->jsonSerializer = $jsonSerializer;
69+
$this->serverEventFactory = $serverEventFactory;
6870
$this->pixelEvents = $pixelEvents;
6971
}
7072

@@ -79,13 +81,22 @@ public function execute(): Json
7981
try {
8082
$params = $this->request->getParams();
8183
$eventName = $params['eventName'];
84+
$eventId = $params['eventId'];
8285

8386
if ($eventName) {
8487
$payload = $this->pixelEvents[$eventName]->getPayload($params);
85-
$payload['event_id'] = $params['eventId'];
86-
$payload['event_type'] = $this->pixelEvents[$eventName]->getEventType();
8788
if (isset($payload)) {
88-
$this->publisher->publish('send.conversion.event.to.meta', $this->jsonSerializer->serialize($payload));
89+
// Add source and pluginVersion in the payload as custom properties
90+
$payload['custom_properties'] = [];
91+
$payload['custom_properties']['source'] = $this->fbeHelper->getSource();
92+
$payload['custom_properties']['pluginVersion'] = $this->fbeHelper->getPluginVersion();
93+
$eventType = $this->pixelEvents[$eventName]->getEventType();
94+
$event = $this->serverEventFactory->createEvent($eventType, array_filter($payload), $eventId);
95+
if (isset($payload['userDataFromOrder'])) {
96+
$this->serverSideHelper->sendEvent($event, $payload['userDataFromOrder']);
97+
} else {
98+
$this->serverSideHelper->sendEvent($event);
99+
}
89100
$response['success'] = true;
90101
}
91102
}

app/code/Meta/Conversion/CustomerData/EventData.php

Lines changed: 0 additions & 20 deletions
This file was deleted.

app/code/Meta/Conversion/Helper/MagentoDataHelper.php

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -289,48 +289,5 @@ public function hashValue($string): string
289289
return hash('sha256', strtolower($string ?? ""));
290290
}
291291

292-
/**
293-
* @param $quote
294-
* @return array
295-
* @throws LocalizedException
296-
* @throws NoSuchEntityException
297-
*/
298-
public function getCartPayload($quote): array
299-
{
300-
foreach ($quote->getAllItems() as $item) {
301-
$product = $item->getProduct();
302-
$categoryIds[] = $product->getCategoryIds();
303-
array_push($categoryIds, $product->getCategoryIds());
304-
if (!in_array($item['product_type'], ['simple', 'grouped', 'bundle', 'virtual', 'downloadable'])) {
305-
continue;
306-
}
307-
$contents[] = [
308-
'id' => $item->getSku(),
309-
'quantity' => (int) $item->getQty()
310-
];
311-
}
312-
$categoryIds = array_merge([], ...$categoryIds);
313-
$contentCategoriesForItems = explode(
314-
",",
315-
$this->getCategoriesNameById($categoryIds)
316-
);
317-
foreach ($contentCategoriesForItems as $category) {
318-
$contentCategories[] = $category;
319-
}
320-
321-
$contentIds = array_unique(array_map(function ($elem) {
322-
return $elem['id'];
323-
},
324-
$contents));
325-
$contentCategories = array_unique($contentCategories);
326-
return [
327-
'content_category' => implode(', ', $contentCategories),
328-
'content_ids' => $contentIds,
329-
'contents' => $contents,
330-
'currency' => $this->getCurrency(),
331-
'value' => round((float) $quote->getSubtotal(), 2)
332-
];
333-
}
334-
335292
// TODO Remaining user/custom data methods that can be obtained using Magento.
336293
}

0 commit comments

Comments
 (0)