67 lines
1.6 KiB
PHP
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;
|
|
}
|
|
}
|