Jump to content

Edit History

Colinee

Colinee

Bonjour,

 

J'essaie de récupérer le montant de la commande pour l'ajouter en variable sur mon pixel et ainsi tracker le montant payé des commandes. Je n'y arrive pas. Je suis débutante dans le milieu! Je suis avec prestashop 1.7.6.8

 

 

J'ai utilisé un plugin pour ajouter le pixel facebook. Le pixel fonctionne très bien, mais je dois y ajouter la variable "value". Voila le code qui se trouve dans le template/ du plugin :

 

<!-- Facebook Pixel Code -->
<script>
  {literal}
  !function(f,b,e,v,n,t,s)
  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
  n.callMethod.apply(n,arguments):n.queue.push(arguments)};
  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
  n.queue=[];t=b.createElement(e);t.async=!0;
  t.src=v;s=b.getElementsByTagName(e)[0];
  s.parentNode.insertBefore(t,s)}(window, document,'script',
  'https://connect.facebook.net/en_US/fbevents.js');
  {/literal}
  fbq('init', '{$facebookId|escape:"htmlall":"UTF-8"}');
  fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
  src="https://www.facebook.com/tr?id={$facebookId|escape:"htmlall":"UTF-8"}&ev=PageView&noscript=1"
/></noscript>
<!-- End Facebook Pixel Code -->

{if $page_type == 'orderconfirmation' || $page_type == 'order-confirmation'}
	<script>
	  fbq('track', 'Purchase', {
		value: 0.00,
		currency: 'EUR'
	  });
	</script>
{/if}

 

Dans mon "OrderConfirmationControllerCore", j'ai ajouté la variable $total_paid dans la function initContent(), est-ce que c'est bien comme ça ? :

 

public function initContent()
    {
        if (Configuration::isCatalogMode()) {
            Tools::redirect('index.php');
        }

        $order = new Order(Order::getIdByCartId((int) ($this->id_cart)));
        $presentedOrder = $this->order_presenter->present($order);
        $register_form = $this
            ->makeCustomerForm()
            ->setGuestAllowed(false)
            ->fillWith(Tools::getAllValues());

        parent::initContent();

        $this->context->smarty->assign(array(
            'HOOK_ORDER_CONFIRMATION' => $this->displayOrderConfirmation($order),
            'HOOK_PAYMENT_RETURN' => $this->displayPaymentReturn($order),
            'order' => $presentedOrder,
            'register_form' => $register_form,
            'total_paid' => $order->total_paid,
        ));

        if ($this->context->customer->is_guest) {
            /* If guest we clear the cookie for security reason */
            $this->context->customer->mylogout();
        }
        $this->setTemplate('checkout/order-confirmation');
    }

 

J'aurai pensé que je pouvais utiliser total_paid dans mon template de plugin avec l'event comme ceci, mais ca ne fonctionne pas, dans la console j'ai "$total_paid is not defined":

{if $page_type == 'orderconfirmation' || $page_type == 'order-confirmation'}
	<script>
	  fbq('track', 'Purchase', {
		value: $total_paid,
		currency: 'EUR'
	  });
	</script>
{/if}

 

Est-ce que quelqu'un est capable de m'aider ?

 

Merci beaucoup :)

Coline

Colinee

Colinee

Bonjour,

 

J'essaie de récupérer le montant de la commande pour l'ajouter en variable sur mon pixel et ainsi tracker le montant payé des commandes. Je n'y arrive pas. Je suis débutante dans le milieu! 

 

J'ai utilisé un plugin pour ajouter le pixel facebook. Le pixel fonctionne très bien, mais je dois y ajouter la variable "value". Voila le code qui se trouve dans le template/ du plugin :

 

<!-- Facebook Pixel Code -->
<script>
  {literal}
  !function(f,b,e,v,n,t,s)
  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
  n.callMethod.apply(n,arguments):n.queue.push(arguments)};
  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
  n.queue=[];t=b.createElement(e);t.async=!0;
  t.src=v;s=b.getElementsByTagName(e)[0];
  s.parentNode.insertBefore(t,s)}(window, document,'script',
  'https://connect.facebook.net/en_US/fbevents.js');
  {/literal}
  fbq('init', '{$facebookId|escape:"htmlall":"UTF-8"}');
  fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
  src="https://www.facebook.com/tr?id={$facebookId|escape:"htmlall":"UTF-8"}&ev=PageView&noscript=1"
/></noscript>
<!-- End Facebook Pixel Code -->

{if $page_type == 'orderconfirmation' || $page_type == 'order-confirmation'}
	<script>
	  fbq('track', 'Purchase', {
		value: 0.00,
		currency: 'EUR'
	  });
	</script>
{/if}

 

Dans mon "OrderConfirmationControllerCore", j'ai ajouté la variable $total_paid dans la function initContent(), est-ce que c'est bien comme ça ? :

 

public function initContent()
    {
        if (Configuration::isCatalogMode()) {
            Tools::redirect('index.php');
        }

        $order = new Order(Order::getIdByCartId((int) ($this->id_cart)));
        $presentedOrder = $this->order_presenter->present($order);
        $register_form = $this
            ->makeCustomerForm()
            ->setGuestAllowed(false)
            ->fillWith(Tools::getAllValues());

        parent::initContent();

        $this->context->smarty->assign(array(
            'HOOK_ORDER_CONFIRMATION' => $this->displayOrderConfirmation($order),
            'HOOK_PAYMENT_RETURN' => $this->displayPaymentReturn($order),
            'order' => $presentedOrder,
            'register_form' => $register_form,
            'total_paid' => $order->total_paid,
        ));

        if ($this->context->customer->is_guest) {
            /* If guest we clear the cookie for security reason */
            $this->context->customer->mylogout();
        }
        $this->setTemplate('checkout/order-confirmation');
    }

 

J'aurai pensé que je pouvais utiliser total_paid dans mon template de plugin avec l'event comme ceci, mais ca ne fonctionne pas, dans la console j'ai "$total_paid is not defined":

{if $page_type == 'orderconfirmation' || $page_type == 'order-confirmation'}
	<script>
	  fbq('track', 'Purchase', {
		value: $total_paid,
		currency: 'EUR'
	  });
	</script>
{/if}

 

Est-ce que quelqu'un est capable de m'aider ?

 

Merci beaucoup :)

Coline

×
×
  • Create New...