[Added] add_to_cart to page/list/list.tpl
This commit is contained in:
parent
5c98d99d80
commit
5ac3385b53
|
@ -0,0 +1,57 @@
|
||||||
|
[{$smarty.block.parent}]
|
||||||
|
|
||||||
|
[{if $oView->getAddToBasketDecision() && $oView->d3GtmRequestedArticleLoadedByAnid() !== null}]
|
||||||
|
[{assign var="oGtmProduct" value=$oView->d3GtmRequestedArticleLoadedByAnid()}]
|
||||||
|
[{*$smarty.block.parent*}]
|
||||||
|
[{* variable $oGtmProduct is passed from parent tempalte *}]
|
||||||
|
[{assign var="d3PriceObject" value=$oGtmProduct->getPrice()}]
|
||||||
|
[{assign var="gtmCurrency" value=$oView->getActCurrency()}]
|
||||||
|
[{assign var="gtmManufacturer" value=$oGtmProduct->getManufacturer()}]
|
||||||
|
[{assign var="gtmCategory" value=$oGtmProduct->getCategory()}]
|
||||||
|
|
||||||
|
[{block name="d3_ga4_add_to_cart_list_block"}]
|
||||||
|
[{capture name="d3_ga4_add_to_cart_listtpl"}]
|
||||||
|
[{strip}]
|
||||||
|
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
|
||||||
|
|
||||||
|
[{*** Debug cases ***}]
|
||||||
|
[{*event.preventDefault();*}]
|
||||||
|
|
||||||
|
let iArtQuantity = $("#amountToBasket").val();
|
||||||
|
if(!iArtQuantity){
|
||||||
|
iArtQuantity = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
dataLayer.push({
|
||||||
|
'isAddToBasket': true,
|
||||||
|
'event':'add_to_cart',
|
||||||
|
'eventLabel': 'add_to_cart',
|
||||||
|
'ecommerce': {
|
||||||
|
'currency': "[{$currency->name}]",
|
||||||
|
'value': iArtQuantity*[{$d3PriceObject->getPrice()}],
|
||||||
|
'items': [
|
||||||
|
{
|
||||||
|
'item_id': '[{$oGtmProduct->getFieldData('oxartnum')}]',
|
||||||
|
'item_name': '[{$oGtmProduct->getFieldData('oxtitle')}]',
|
||||||
|
'price': [{$d3PriceObject->getPrice()}],
|
||||||
|
'item_brand': '[{if $gtmManufacturer}][{$gtmManufacturer->oxmanufacturers__oxtitle->value}][{/if}]',
|
||||||
|
'item_variant': '[{if $oGtmProduct->getFieldData('oxvarselect')}][{$oGtmProduct->getFieldData('oxvarselect')}][{/if}]',
|
||||||
|
[{if $gtmCategory}]
|
||||||
|
'item_category': '[{$gtmCategory->getSplitCategoryArray(0)}]',
|
||||||
|
'item_category_2':'[{$gtmCategory->getSplitCategoryArray(1)}]',
|
||||||
|
'item_category_3':'[{$gtmCategory->getSplitCategoryArray(2)}]',
|
||||||
|
'item_category_4':'[{$gtmCategory->getSplitCategoryArray(3)}]',
|
||||||
|
'item_list_name':'[{$gtmCategory->getSplitCategoryArray()}]',
|
||||||
|
[{/if}]
|
||||||
|
'quantity': iArtQuantity
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}[{if $oViewConf->isDebugModeOn()}],
|
||||||
|
'debug_mode': 'true'
|
||||||
|
[{/if}]
|
||||||
|
});
|
||||||
|
[{/strip}]
|
||||||
|
[{/capture}]
|
||||||
|
[{oxscript add=$smarty.capture.d3_ga4_add_to_cart_listtpl}]
|
||||||
|
[{/block}]
|
||||||
|
[{/if}]
|
|
@ -23,6 +23,18 @@ namespace D3\GoogleAnalytics4\Modules\Application\Model{
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace D3\GoogleAnalytics4\Modules\Application\Controller{
|
namespace D3\GoogleAnalytics4\Modules\Application\Controller{
|
||||||
|
|
||||||
|
use OxidEsales\Eshop\Application\Controller\ArticleListController;
|
||||||
|
|
||||||
class BasketController_parent extends \OxidEsales\Eshop\Application\Controller\BasketController {}
|
class BasketController_parent extends \OxidEsales\Eshop\Application\Controller\BasketController {}
|
||||||
class ThankYouController_parent extends \OxidEsales\Eshop\Application\Controller\ThankYouController {}
|
class ThankYouController_parent extends \OxidEsales\Eshop\Application\Controller\ThankYouController {}
|
||||||
|
|
||||||
|
class ArticleListController_AddToCartHelpMethods_parent extends ArticleListController {}
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace D3\GoogleAnalytics4\Modules\Application\Component{
|
||||||
|
|
||||||
|
use OxidEsales\Eshop\Application\Component\BasketComponent;
|
||||||
|
|
||||||
|
class d3GtmBasketComponentExtension_parent extends BasketComponent {}
|
||||||
}
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace D3\GoogleAnalytics4\Modules\Application\Component;
|
||||||
|
|
||||||
|
use OxidEsales\Eshop\Core\Registry;
|
||||||
|
|
||||||
|
class d3GtmBasketComponentExtension extends d3GtmBasketComponentExtension_parent
|
||||||
|
{
|
||||||
|
public function toBasket($sProductId = null, $dAmount = null, $aSel = null, $aPersParam = null, $blOverride = false)
|
||||||
|
{
|
||||||
|
$return = parent::toBasket($sProductId, $dAmount, $aSel, $aPersParam, $blOverride);
|
||||||
|
|
||||||
|
Registry::getSession()->setVariable('d3GtmAddToBasketTrigger', true);
|
||||||
|
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace D3\GoogleAnalytics4\Modules\Application\Controller;
|
||||||
|
|
||||||
|
use OxidEsales\Eshop\Application\Model\Article;
|
||||||
|
use OxidEsales\Eshop\Core\Registry;
|
||||||
|
|
||||||
|
class ArticleListController_AddToCartHelpMethods extends ArticleListController_AddToCartHelpMethods_parent
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @return mixed|null
|
||||||
|
*/
|
||||||
|
public function getAddToBasketDecision() :bool
|
||||||
|
{
|
||||||
|
$decision = Registry::getSession()->getVariable('d3GtmAddToBasketTrigger');
|
||||||
|
|
||||||
|
Registry::getSession()->setVariable('d3GtmAddToBasketTrigger', false);
|
||||||
|
|
||||||
|
return (bool) $decision;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Article|null
|
||||||
|
*/
|
||||||
|
public function d3GtmRequestedArticleLoadedByAnid()
|
||||||
|
{
|
||||||
|
$sAnid = Registry::getRequest()->getRequestEscapedParameter('anid');
|
||||||
|
|
||||||
|
$oArticle = null;
|
||||||
|
|
||||||
|
if ($sAnid){
|
||||||
|
/** @var Article $oArticle */
|
||||||
|
$oArticle = oxNew(Article::class);
|
||||||
|
$oArticle->load($sAnid);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $oArticle;
|
||||||
|
}
|
||||||
|
}
|
14
metadata.php
14
metadata.php
|
@ -1,11 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use D3\GoogleAnalytics4\Modules\Application\Component\d3GtmBasketComponentExtension;
|
||||||
|
use D3\GoogleAnalytics4\Modules\Application\Controller\ArticleListController_AddToCartHelpMethods;
|
||||||
use D3\GoogleAnalytics4\Modules\Application\Controller\BasketController;
|
use D3\GoogleAnalytics4\Modules\Application\Controller\BasketController;
|
||||||
use D3\GoogleAnalytics4\Modules\Application\Controller\ThankYouController;
|
use D3\GoogleAnalytics4\Modules\Application\Controller\ThankYouController;
|
||||||
use D3\GoogleAnalytics4\Modules\Application\Model\Basket as Basket;
|
use D3\GoogleAnalytics4\Modules\Application\Model\Basket as Basket;
|
||||||
use D3\GoogleAnalytics4\Modules\Application\Model\Category as Category;
|
use D3\GoogleAnalytics4\Modules\Application\Model\Category as Category;
|
||||||
use D3\GoogleAnalytics4\Modules\Application\Model\Manufacturer as Manufacturer;
|
use D3\GoogleAnalytics4\Modules\Application\Model\Manufacturer as Manufacturer;
|
||||||
use D3\GoogleAnalytics4\Modules\Core\ViewConfig;
|
use D3\GoogleAnalytics4\Modules\Core\ViewConfig;
|
||||||
|
use OxidEsales\Eshop\Application\Component\BasketComponent as OEBasketComponent;
|
||||||
|
use OxidEsales\Eshop\Application\Controller\ArticleListController as OEArticleListController;
|
||||||
use OxidEsales\Eshop\Application\Controller\BasketController as OEBasketController;
|
use OxidEsales\Eshop\Application\Controller\BasketController as OEBasketController;
|
||||||
use OxidEsales\Eshop\Application\Controller\ThankYouController as OEThankYouController;
|
use OxidEsales\Eshop\Application\Controller\ThankYouController as OEThankYouController;
|
||||||
use OxidEsales\Eshop\Application\Model\Basket as OEBasket;
|
use OxidEsales\Eshop\Application\Model\Basket as OEBasket;
|
||||||
|
@ -38,7 +42,9 @@ $aModule = [
|
||||||
OEBasket::class => Basket::class,
|
OEBasket::class => Basket::class,
|
||||||
OEBasketController::class => BasketController::class,
|
OEBasketController::class => BasketController::class,
|
||||||
OEManufacturer::class => Manufacturer::class,
|
OEManufacturer::class => Manufacturer::class,
|
||||||
OEThankYouController::class => ThankYouController::class
|
OEThankYouController::class => ThankYouController::class,
|
||||||
|
OEArticleListController::class => ArticleListController_AddToCartHelpMethods::class,
|
||||||
|
OEBasketComponent::class => d3GtmBasketComponentExtension::class
|
||||||
],
|
],
|
||||||
'templates' => [],
|
'templates' => [],
|
||||||
'blocks' => [
|
'blocks' => [
|
||||||
|
@ -95,6 +101,12 @@ $aModule = [
|
||||||
'file' => '/Application/views/ga4/add_to_cart.tpl',
|
'file' => '/Application/views/ga4/add_to_cart.tpl',
|
||||||
'position' => 150
|
'position' => 150
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'template' => 'page/list/list.tpl',
|
||||||
|
'block' => 'page_list_listbody',
|
||||||
|
'file' => '/Application/views/ga4/add_to_cart_listtpl.tpl',
|
||||||
|
'position' => 150
|
||||||
|
],
|
||||||
// remove_from_cart
|
// remove_from_cart
|
||||||
[
|
[
|
||||||
'template' => 'page/checkout/basket.tpl',
|
'template' => 'page/checkout/basket.tpl',
|
||||||
|
|
Loading…
Reference in New Issue