Segue un esempio di implementazione dei tracking script all’interno di un e-commerce sviluppato con PrestaShop v. 1.6.1.1.
Script generale
Una possibilità è inserire il javascript principale (quello che permette di attivare tutte le funzioni Blendee) nel file header.tpl del tema corrente:
<!-- Blendee basic code --> <script type="text/javascript"> var _sbnaq = _sbnaq || []; _sbnaq.push(["setDocumentTitle", document.domain + "/" + document.title]); {if isset($cookie->id_customer)} _sbnaq.push(["setSiteUserId", {$cookie->id_customer}]); {else} _sbnaq.push(["setSiteUserId", 0]); {/if} _sbnaq.push(["setSiteId", 101]); _sbnaq.push(["setCatalogId", 9]); _sbnaq.push(["setLanguage", "{$lang_iso}"]); _sbnaq.push(["trkPageView"]); (function() { var u=(("https:" == document.location.protocol) ? "https" : "http") + "://staging.marketingspray.com/tracking/"; _sbnaq.push(["setTrackerUrl", u]); var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript"; g.defer=true; g.async=true; g.src=u+"sbn.js"; s.parentNode.insertBefore(g,s); })(); </script> <!-- Fine Blendee basic code -->
In tal modo su ogni pagina saranno disponibili le funzionalità della piattaforma Blendee. In particolare sarà possibile procedere con il corretto tracciamento delle azioni come indicato di seguito (presentiamo solo alcuni casi tipici; si rimanda poi all’elenco completo delle azioni già proposto).
Tracciamento pagina Categoria
(Category View)
Nel file category.tpl del template corrente possiamo inserire (ad esempio alla fine del file):
<script> _sbnaq.push(["trkCategoryView", {$category->id}]); </script>
Tracciamento pagina Prodotto
(Product View)
Nel file product.tpl del template corrente possiamo inserire (ad esempio alla fine del file):
<script> _sbnaq.push(["trkProductView", {$product->id}]); </script>
Tracciamento Acquisto
(Sale)
Se scegliamo di tracciare l’acquisto nella pagina di conferma d’ordine, occorre agire sul file: porder- confirmation.tpl.
Tracciare l’ordine in questo caso è leggermente più complicato, in quanto in tale file occorre rendere disponibili alcune variabili che di per sé potrebbero non esserlo nel template:
- $idordine: Una variabile contenente l’identificativo dell’ordine
- $prodlist: Una variabile contenente la lista dei prodotti facenti parte dell’ordine stesso
- $currency: la valuta utilizzata per la transazione
Occorre procedere attraverso due step:
1. Nel file controllers/front/OrderConfirmationController.php, nel metodo initContent(), aggiungere le seguenti righe di codice subito prima dell’ultima riga ($this→setTemplate(_PS_THEME_DIR_.’order-confirmation.tpl’);):
$order = new Order($this->id_order); $prodlist = $order->getProducts(); $currency = new Currency($order->id_currency); $this->context->smarty->assign(array( 'adb_prodlist' => $prodlist, 'adb_idordine' => $this->id_order, 'adb_currency' => $currency->iso_code, ));
2. Nel file order-confirmation.tpl aggiungere in fondo:
<script> var adb_ord_id = {$adb_idordine}; var adb_ts = new Date(); adb_ts = adb_ts.toISOString(); var adb_tsarray = adb_ts.split('.'); {foreach from=$adb_prodlist item=product name=item} _sbnaq.push(["trkProductSale",adb_ord_id,{$product.id_product},{$product.product _quantity},'',{$product.total_price_tax_excl},{$product.total_price_tax_incl},{$ product.total_shipping_price_tax_incl},'{$adb_currency}',adb_tsarray[0],0,0]); {/foreach} </script>
Thanks for contributing!