6
6
7
7
use Magento \Framework \App \Action \HttpPostActionInterface ;
8
8
use Magento \Framework \App \RequestInterface ;
9
- use Meta \Conversion \Helper \ServerSideHelper ;
10
- use Meta \Conversion \Helper \ServerEventFactory ;
11
9
use Meta \BusinessExtension \Helper \FBEHelper ;
12
10
use Magento \Framework \Controller \Result \JsonFactory ;
13
11
use Magento \Framework \Controller \Result \Json ;
12
+ use Magento \Framework \MessageQueue \PublisherInterface ;
13
+ use Magento \Framework \Serialize \Serializer \Json as JsonSerializer ;
14
+ use FacebookAds \Object \ServerSide \Util ;
14
15
15
16
class Tracker implements HttpPostActionInterface
16
17
{
@@ -19,11 +20,6 @@ class Tracker implements HttpPostActionInterface
19
20
*/
20
21
private $ request ;
21
22
22
- /**
23
- * @var ServerSideHelper
24
- */
25
- private $ serverSideHelper ;
26
-
27
23
/**
28
24
* @var FBEHelper
29
25
*/
@@ -40,33 +36,36 @@ class Tracker implements HttpPostActionInterface
40
36
private $ jsonFactory ;
41
37
42
38
/**
43
- * @var ServerEventFactory
39
+ * @var PublisherInterface
44
40
*/
45
- private $ serverEventFactory ;
41
+ private $ publisher ;
42
+
43
+ /**
44
+ * @var JsonSerializer
45
+ */
46
+ private $ jsonSerializer ;
46
47
47
48
/**
48
- * Constructor
49
- *
50
49
* @param RequestInterface $request
51
- * @param ServerSideHelper $serverSideHelper
52
50
* @param FBEHelper $fbeHelper
53
51
* @param JsonFactory $jsonFactory
54
- * @param ServerEventFactory $serverEventFactory
52
+ * @param PublisherInterface $publisher
53
+ * @param JsonSerializer $jsonSerializer
55
54
* @param array $pixelEvents
56
55
*/
57
56
public function __construct (
58
57
RequestInterface $ request ,
59
- ServerSideHelper $ serverSideHelper ,
60
58
FBEHelper $ fbeHelper ,
61
59
JsonFactory $ jsonFactory ,
62
- ServerEventFactory $ serverEventFactory ,
60
+ PublisherInterface $ publisher ,
61
+ JsonSerializer $ jsonSerializer ,
63
62
array $ pixelEvents = []
64
63
) {
65
64
$ this ->request = $ request ;
66
- $ this ->serverSideHelper = $ serverSideHelper ;
67
65
$ this ->fbeHelper = $ fbeHelper ;
68
66
$ this ->jsonFactory = $ jsonFactory ;
69
- $ this ->serverEventFactory = $ serverEventFactory ;
67
+ $ this ->publisher = $ publisher ;
68
+ $ this ->jsonSerializer = $ jsonSerializer ;
70
69
$ this ->pixelEvents = $ pixelEvents ;
71
70
}
72
71
@@ -81,22 +80,17 @@ public function execute(): Json
81
80
try {
82
81
$ params = $ this ->request ->getParams ();
83
82
$ eventName = $ params ['eventName ' ];
84
- $ eventId = $ params ['eventId ' ];
85
83
86
84
if ($ eventName ) {
87
85
$ payload = $ this ->pixelEvents [$ eventName ]->getPayload ($ params );
86
+ $ payload ['event_id ' ] = $ params ['eventId ' ];
87
+ $ payload ['event_type ' ] = $ this ->pixelEvents [$ eventName ]->getEventType ();
88
+ $ payload ['request_uri ' ] = Util::getRequestUri ();
89
+ $ payload ['user_agent ' ] = Util::getHttpUserAgent ();
90
+ $ payload ['fbp ' ] = Util::getFbp ();
91
+ $ payload ['fbc ' ] = Util::getFbc ();
88
92
if (isset ($ 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
- }
93
+ $ this ->publisher ->publish ('send.conversion.event.to.meta ' , $ this ->jsonSerializer ->serialize ($ payload ));
100
94
$ response ['success ' ] = true ;
101
95
}
102
96
}
0 commit comments