Jump to content

Añadir snippet código en Order


jmelich

Recommended Posts

Hola,

 

Google Ads me recomienda añadir las google reviews en los pedidos. Para ello he de añadir el siguiente snippet en algun .tpl del checkout.

<script src="https://apis.google.com/js/platform.js?onload=renderOptIn" async defer></script>

<script>
  window.renderOptIn = function() {
    window.gapi.load('surveyoptin', function() {
      window.gapi.surveyoptin.render(
        {
          // REQUIRED FIELDS
          "merchant_id": 137765381,
          "order_id": "ORDER_ID",
          "email": "CUSTOMER_EMAIL",
          "delivery_country": "COUNTRY_CODE",
          "estimated_delivery_date": "YYYY-MM-DD",

          // OPTIONAL FIELDS
          "products": [{"gtin":"GTIN1"}, {"gtin":"GTIN2"}]
        });
    });
  }
</script>

El problema és que este fragmento es genérico y tendría que adaptar las variables al entorno prestashop.

Alguien lo tiene ya adaptado?

En caso negativo mi duda es: Cómo hacéis para debugar un pedido sin llevarlo a cabo o que se haga efectivo??

Pues no tenemos entorno de pruebas.

 

 

Gracias!!!

 

 

Link to comment
Share on other sites

Buenos días @Becquel

Al confirmarse un pedido, el tpl que se carga es el /themes/MY_THEME/templates/checkout/order-confirmation.tpl

Puedes añadir tu snippet al final del todo:

<script src="https://apis.google.com/js/platform.js?onload=renderOptIn" async defer></script>

<script>
    window.renderOptIn = function() {
        window.gapi.load('surveyoptin', function() {
            window.gapi.surveyoptin.render(
                {
                    // REQUIRED FIELDS
                    "merchant_id": "137765381",
                    "order_id": {Tools::getValue("id_order")},
                    "email": {$customer.email},
                    "delivery_country": "ES",
                    "estimated_delivery_date": {$smarty.now + (60*60*24*1)|date_format:"%Y-%m-%d"}, //aqui he puesto 24 horas de entrega estimada
                });
        });
    }
</script>

He eliminado los campos opcionales ( OPTIONAL FIELDS )

Espero que te sirva.

Un saludo.

  • Like 1
Link to comment
Share on other sites

3 hours ago, garciasanchezdani said:

Buenos días @Becquel

Al confirmarse un pedido, el tpl que se carga es el /themes/MY_THEME/templates/checkout/order-confirmation.tpl

Puedes añadir tu snippet al final del todo:


<script src="https://apis.google.com/js/platform.js?onload=renderOptIn" async defer></script>

<script>
    window.renderOptIn = function() {
        window.gapi.load('surveyoptin', function() {
            window.gapi.surveyoptin.render(
                {
                    // REQUIRED FIELDS
                    "merchant_id": "137765381",
                    "order_id": {Tools::getValue("id_order")},
                    "email": {$customer.email},
                    "delivery_country": "ES",
                    "estimated_delivery_date": {$smarty.now + (60*60*24*1)|date_format:"%Y-%m-%d"}, //aqui he puesto 24 horas de entrega estimada
                });
        });
    }
</script>

He eliminado los campos opcionales ( OPTIONAL FIELDS )

Espero que te sirva.

Un saludo.

Hola @garciasanchezdani gracias por tu respuesta, me ha resultado de gran utilidad.

A partir de tu fragmento de código he añadido que se rellene también automaticamente el país de envío. Los ficheros editados són los siguientes:

 

order-confirmation.tpl

<script src="https://apis.google.com/js/platform.js?onload=renderOptIn" async defer></script>

<script>
window.renderOptIn = function() {
    window.gapi.load('surveyoptin', function() {
        window.gapi.surveyoptin.render(
            {
                // REQUIRED FIELDS
                "merchant_id": 137765381,
                "order_id": "{Tools::getValue("id_order")}",
                "email": "{$customer.email}",
                "delivery_country": "{$delivery_country_iso_code}",
                "estimated_delivery_date": "{$smarty.now + (60*60*24*1)|date_format:"%Y-%m-%d"}",
              }
        );
    });
  }
</script>

 

OrderConfirmationController.php

        $address = new Address($this->context->cart->id_address_delivery);
        $this->context->smarty->assign('delivery_country_iso_code', Country::getIsoById($address->id_country));

 

 

De esta forma ya aparece la solicitud de review de Google

image.thumb.png.6519bf06f6ae37066c3ebf046b9697b5.png

  • Like 1
Link to comment
Share on other sites

  • 1 year later...

Hola @ocio87 ya no tengo acceso a ese código modificado ni me acuerdo de cuál era el funcionamiento ni la lógica ya que tengo el entorno Prestashop un poco oxidado, pero he abierto el fichero y veo el siguiente fragmento de la función initContent():

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

Pues lo pondría exactamente antes o despues de esto.

Si no funciona, probaría en insertarlo dentro de las otras funciones del fichero, ya sea init(), displayPaymentReturn(), displayOrderConfirmation(), checkFreeOrder().

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...