Block/Pixel/InitiateCheckout.php (65 lines of code) (raw):

<?php /** * Copyright (c) Meta Platforms, Inc. and affiliates. All Rights Reserved */ namespace Facebook\BusinessExtension\Block\Pixel; class InitiateCheckout extends Common { /** * @return string */ public function getContentIDs() { $productIds = []; $cart = $this->fbeHelper->getObject(\Magento\Checkout\Model\Cart::class); $items = $cart->getQuote()->getAllVisibleItems(); foreach ($items as $item) { $product = $item->getProduct(); $productIds[] = $product->getId(); } return $this->arrayToCommaSeparatedStringValues($productIds); } public function getValue() { $cart = $this->fbeHelper->getObject(\Magento\Checkout\Model\Cart::class); if (!$cart || !$cart->getQuote()) { return null; } $subtotal = $cart->getQuote()->getSubtotal(); if ($subtotal) { $priceHelper = $this->fbeHelper->getObject(\Magento\Framework\Pricing\Helper\Data::class); return $priceHelper->currency($subtotal, false, false); } else { return null; } } /** * @return string */ public function getContents() { $cart = $this->fbeHelper->getObject(\Magento\Checkout\Model\Cart::class); if (!$cart || !$cart->getQuote()) { return ''; } $contents = []; $items = $cart->getQuote()->getAllVisibleItems(); $priceHelper = $this->objectManager->get(\Magento\Framework\Pricing\Helper\Data::class); foreach ($items as $item) { $product = $item->getProduct(); $price = $priceHelper->currency($product->getFinalPrice(), false, false); $content = '{id:"' . $product->getId() . '",quantity:' . (int)$item->getQty() . ',item_price:' . $price . "}"; $contents[] = $content; } return implode(',', $contents); } /** * @return int|null */ public function getNumItems() { $cart = $this->fbeHelper->getObject(\Magento\Checkout\Model\Cart::class); if (!$cart || !$cart->getQuote()) { return null; } $numItems = 0; $items = $cart->getQuote()->getAllVisibleItems(); foreach ($items as $item) { $numItems += $item->getQty(); } return $numItems; } /** * @return string */ public function getEventToObserveName() { return 'facebook_businessextension_ssapi_initiate_checkout'; } }