Block/Pixel/Purchase.php (54 lines of code) (raw):
<?php
/**
* Copyright (c) Meta Platforms, Inc. and affiliates. All Rights Reserved
*/
namespace Facebook\BusinessExtension\Block\Pixel;
use Magento\Catalog\Model\Product;
use Magento\Sales\Model\Order;
class Purchase extends Common
{
/**
* @return string
*/
public function getContentIDs()
{
$productIds = [];
/** @var Order $order */
$order = $this->fbeHelper->getObject(\Magento\Checkout\Model\Session::class)->getLastRealOrder();
if ($order) {
$items = $order->getItemsCollection();
foreach ($items as $item) {
$product = $item->getProduct();
$productIds[] = $product->getId();
}
}
return $this->arrayToCommaSeparatedStringValues($productIds);
}
public function getValue()
{
$order = $this->fbeHelper->getObject(\Magento\Checkout\Model\Session::class)->getLastRealOrder();
/** @var Order $order */
if ($order) {
$subtotal = $order->getSubTotal();
if ($subtotal) {
$priceHelper = $this->fbeHelper->getObject(\Magento\Framework\Pricing\Helper\Data::class);
return $priceHelper->currency($subtotal, false, false);
}
} else {
return null;
}
}
public function getContents()
{
$contents = [];
$order = $this->fbeHelper->getObject(\Magento\Checkout\Model\Session::class)->getLastRealOrder();
/** @var Order $order */
if ($order) {
$priceHelper = $this->objectManager->get(\Magento\Framework\Pricing\Helper\Data::class);
$items = $order->getItemsCollection();
foreach ($items as $item) {
/** @var Product $product */
// @todo reuse results from self::getContentIDs()
$product = $item->getProduct();
$price = $priceHelper->currency($product->getFinalPrice(), false, false);
$content = '{id:"' . $product->getId() . '",quantity:' . (int)$item->getQtyOrdered()
. ',item_price:' . $price . '}';
$contents[] = $content;
}
}
return implode(',', $contents);
}
/**
* @return string
*/
public function getEventToObserveName()
{
return 'facebook_businessextension_ssapi_purchase';
}
}