|
5 | 5 | use Magento\Quote\Api\Data\CartItemInterface; |
6 | 6 | use Yireo\GoogleTagManager2\Api\Data\EventInterface; |
7 | 7 | use Yireo\GoogleTagManager2\DataLayer\Mapper\CartItemDataMapper; |
| 8 | +use Yireo\GoogleTagManager2\DataLayer\Tag\CurrencyCode; |
| 9 | +use Yireo\GoogleTagManager2\Util\PriceFormatter; |
8 | 10 |
|
9 | 11 | class RemoveFromCart implements EventInterface |
10 | 12 | { |
| 13 | + private ?CartItemInterface $cartItem = null; |
11 | 14 | private CartItemDataMapper $cartItemDataMapper; |
12 | | - private CartItemInterface $cartItem; |
| 15 | + private CurrencyCode $currencyCode; |
| 16 | + private PriceFormatter $priceFormatter; |
13 | 17 |
|
14 | 18 | /** |
15 | 19 | * @param CartItemDataMapper $cartItemDataMapper |
16 | 20 | */ |
17 | | - public function __construct(CartItemDataMapper $cartItemDataMapper) |
18 | | - { |
| 21 | + public function __construct( |
| 22 | + CartItemDataMapper $cartItemDataMapper, |
| 23 | + CurrencyCode $currencyCode, |
| 24 | + PriceFormatter $priceFormatter |
| 25 | + ) { |
19 | 26 | $this->cartItemDataMapper = $cartItemDataMapper; |
| 27 | + $this->currencyCode = $currencyCode; |
| 28 | + $this->priceFormatter = $priceFormatter; |
20 | 29 | } |
21 | 30 |
|
22 | 31 | /** |
23 | 32 | * @return array |
24 | 33 | */ |
25 | 34 | public function get(): array |
26 | 35 | { |
27 | | - $cartItemData = $this->cartItemDataMapper->mapByCartItem($this->cartItem); |
| 36 | + $itemData = $this->cartItemDataMapper->mapByCartItem($this->cartItem); |
| 37 | + $value = $itemData['price'] * $itemData['quantity']; |
| 38 | + |
28 | 39 | return [ |
29 | 40 | 'event' => 'remove_from_cart', |
30 | 41 | 'ecommerce' => [ |
31 | | - 'items' => [$cartItemData] |
| 42 | + 'currency' => $this->currencyCode->get(), |
| 43 | + 'value' => $this->priceFormatter->format((float)$value), |
| 44 | + 'items' => [$itemData] |
32 | 45 | ] |
33 | 46 | ]; |
34 | 47 | } |
35 | 48 |
|
36 | 49 | /** |
37 | 50 | * @param CartItemInterface $cartItem |
| 51 | + * |
38 | 52 | * @return RemoveFromCart |
39 | 53 | */ |
40 | 54 | public function setCartItem(CartItemInterface $cartItem): RemoveFromCart |
|
0 commit comments