Files
kupshop/bundles/KupShop/GTMBundle/Ecommerce/AbstractEcommerce.php
2025-08-02 16:30:27 +02:00

67 lines
1.6 KiB
PHP

<?php
namespace KupShop\GTMBundle\Ecommerce;
use KupShop\GTMBundle\ServerSideGTMEvent\FetchUsersStatsOrderData;
use KupShop\GTMBundle\Utils\DataLoaders\Products;
use KupShop\GTMBundle\Utils\PriceComputer;
use KupShop\GTMBundle\Utils\ViewDataHelper;
use KupShop\KupShopBundle\Util\Compat\ServiceContainer;
use KupShop\KupShopBundle\Views\View;
abstract class AbstractEcommerce
{
use ViewDataHelper;
use FetchUsersStatsOrderData;
/** @var View */
protected $view;
/**
* @var PriceComputer
*/
protected $priceComputer;
protected $pageData;
/**
* @var Products
*/
protected $productLoader;
public function __construct()
{
// Největší hnus světa, ale prostě to jinak nejde
// Je to kvůli kolizi předefinování servisy symfony a typový kontroly php
// Až se odstrihne v2 / komponentový GTM, může se tohle zahodit
$this->productLoader = ServiceContainer::getService(findModule(\Modules::COMPONENTS) ? \KupShop\ComponentsBundle\GTM\Utils\DataLoaders\Products::class : Products::class);
}
/**
* Specific PageData.
*/
abstract public function getData(&$dataContainer);
public function setView(&$view)
{
$this->view = $view;
}
public function setPageData($pageData)
{
$this->pageData = $pageData;
}
protected function addAdditionalFields(&$container, $object)
{
}
/**
* @required
*/
public function setPriceComputer(PriceComputer $priceComputer): void
{
$this->priceComputer = $priceComputer;
}
}