__fito__ Posted November 23, 2016 Share Posted November 23, 2016 (edited) Hola, Como muchos ya sabéis, Google ofrece a comerciantes, a través de Merchant center, la participación en su "programa Reseñas de Clientes en Google", esto es, las opiniones de clientes (estrellitas, que luego aparecerán en los anuncios de adwords, etc.). Y también ofrece la integración de la insignia de participación en la tienda. Me parece muy interesante este tema y quería integrar ambas funcionalidades, pero no me queda muy claro cómo hacerlo. Toda ayuda es bienvenida, muchas gracias. Estas son las breves instrucciones que Google envía por email: Para habilitar Reseñas de Clientes en Google1) Inicia sesión en tu cuenta de Merchant Center2) Selecciona "Programas de Merchant Center" en el menú de tres puntos de la esquina superior derecha.3) Haz clic en "Empezar" en la tarjeta de Reseñas de Clientes en Google y acepta el Acuerdo del Programa.4) Añade el código de inclusión de la encuesta en tu sitio web.5) [Opcional] Añade el código de la insignia en la parte que quieras de tu sitio web. De este modo, la insignia aparecerá en tu sitio web y mostrará a los clientes que formas parte de Reseñas de Clientes en Google, además de tu puntuación como vendedor En Google Merchant ofrecen las dos integraciones: 1) INTEGRACIÓN DE FUNCIÓN PARA ACEPTAR EL ENVÍO DE OFERTAS POR CORREO ELECTRÓNICO Importante: Integrar la función para aceptar el envío de ofertas por correo electrónico es un paso obligatorio para activar Reseñas de Clientes en Google. El programa no funcionará en su sitio web ni ofrecerá encuestas hasta que no realice este paso. Cuando lo haga, Google podrá mostrar una función para aceptar el envío de ofertas de Reseñas de Clientes en Google por correo electrónico en su sitio web y ofrecer encuestas a los clientes que hayan aceptado participar en el programa. Antes de empezar, compruebe que ha completado los requisitos de integración de la función para aceptar el envío de ofertas por correo electrónico. Las páginas del carrito y de pago deben estar alojadas en el mismo dominio, y la página de confirmación debe estar alojada en su propio dominio. Añada <!DOCTYPE HTML> en la parte superior de cada página web. Tras la verificación, añada el fragmento de código que aparece a continuación en la página de confirmación de pedidos y personalice las variables según sea necesario. Al integrar el fragmento, Google puede mostrar la opción para aceptar el envío de ofertas por correo electrónico de Reseñas de Clientes en Google en su sitio web. Este es el código (Cambiar XXXXXXX por tu ID de Merchant Center): <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({"merchant_id": XXXXXXX,"order_id": "ORDER_ID","email": "CUSTOMER_EMAIL","delivery_country": "COUNTRY_CODE","estimated_delivery_date": "YYYY-MM-DD"});});}</script> 2) INTEGRACIÓN DE LA INSIGNIA Opcional: Use la insignia para mostrar que participa en el programa Reseñas de Clientes en Google y para añadir su valoración como vendedor en su sitio web.Para empezar, añada el fragmento de código que verá más abajo a cualquier página de su sitio web y personalice las variables de acuerdo con sus necesidades. Una vez añadido, verifique la insignia y el texto adjunto aparecerá correctamente en su sitio web. Nota: Si no hay puntuaciones del vendedor disponibles, aparece el mensaje "No hay puntuaciones disponibles" Este es el código (Cambiar XXXXXXX por tu ID de Merchant Center): <script src="https://apis.google.com/js/platform.js?onload=renderBadge" async defer></script><script> window.renderBadge = function() { var ratingBadgeContainer = document.createElement("div"); document.body.appendChild(ratingBadgeContainer); window.gapi.load('ratingbadge', function() { window.gapi.ratingbadge.render(ratingBadgeContainer, {"merchant_id": XXXXXXX}); }); }</script> A ver si hay alguien que lo haya hecho y nos explica cómo integrar estos códigos correctamente. En mi caso, PS 1.6.1.2 Default Bootstrap Muchas gracias de antemano! Edited November 23, 2016 by __fito__ (see edit history) Link to comment Share on other sites More sharing options...
mAchAcA Posted December 23, 2016 Share Posted December 23, 2016 Buenos días. Yo lo he realizado de la siguiente forma, aunque no se si es la más correcta. En primer lugar he duplicado el controlador de confirmación de orden de pedido y lo he metido en override/controllers/front/OrderConfirmationController.php y le he editado lo siguiente: public function initContent() { parent::initContent(); $this->context->smarty->assign(array( 'is_guest' => $this->context->customer->is_guest, 'HOOK_ORDER_CONFIRMATION' => $this->displayOrderConfirmation(), 'HOOK_PAYMENT_RETURN' => $this->displayPaymentReturn(), 'tomorrow', strtotime('+1 day'), 'reference_order' => $this->reference, 'email' => $this->context->customer->email )); if ($this->context->customer->is_guest) { $this->context->smarty->assign(array( 'id_order' => $this->id_order, 'reference_order' => $this->reference, 'id_order_formatted' => sprintf('#%06d', $this->id_order), 'email' => $this->context->customer->email )); /* If guest we clear the cookie for security reason */ $this->context->customer->mylogout(); } $this->setTemplate(_PS_THEME_DIR_.'order-confirmation.tpl'); } Después me he ido a mi plantilla y he editado el fichero 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( { "merchant_id": xxxxxxx, "order_id": "{$reference_order}", "email": "{$email}", "delivery_country": "ES", "estimated_delivery_date": "{$tomorrow|date_format:'%Y-%m-%d'}", "opt_in_style": "CENTER_DIALOG" }); }); } </script> La integración de la insignia no la he realizado, ya que es opcional Link to comment Share on other sites More sharing options...
Naroa Posted February 25, 2017 Share Posted February 25, 2017 (edited) Hola mAchAcA! Gracias por tu aporte, me ha ayudado mucho pero he seguido tus pasos y todo bien menos la fecha que no me la cogía Por si a alguien más le ocurre yo lo he solucionado con estos cambios: en el archivo OrderConfirmationController.php en lugar de: 'tomorrow', strtotime('+1 day'), he usado: 'tomorrow' => date('Y-m-d', strtotime('+1 day')), y en el archivo order-confirmation.tpl en lugar de: "estimated_delivery_date": "{$tomorrow|date_format:'%Y-%m-%d'}", esto: "estimated_delivery_date": "{$tomorrow}", Así sí me ha cogido todos los datos y me muestra el popup de google para consentir el envío de la encuesta al cliente Un saludo! Edited February 25, 2017 by Naroa (see edit history) Link to comment Share on other sites More sharing options...
[email protected] Posted November 20, 2017 Share Posted November 20, 2017 He seguido vuestros pasos y a mi no me hace nada..... ¿Que tiene que ocurrir? ¿manda un emai o algo? En Google Merchant, me aparece como "no ha mostrado a los usuarios ninguna notificación" Link to comment Share on other sites More sharing options...
Tuito Posted September 6, 2018 Share Posted September 6, 2018 Hola, Antes de nada, gracias por el aporte. Los cambios que habéis realizado son para Prestashop 1.6, pero ¿Como podría insertarlo en Prestashop 1.7? La arquitectura de los ficheros no son los mismos. Espero alguien pueda ayudarme Muchas gracias de antemano!! Saludos Link to comment Share on other sites More sharing options...
gusman126 Posted September 6, 2018 Share Posted September 6, 2018 En prestashop 1.7 el fichero tpl esta themes/classic/templates/checkout/order-confirmation.tpl El fichero override, haz lo mismo que en las instrucciones Puedes encontrar modulos en addons que hacen "el trabajo sucio" y añaden el codigo En mi pagina web tambien tengo uno para vender Link to comment Share on other sites More sharing options...
Tuito Posted September 17, 2018 Share Posted September 17, 2018 Hola gusman126! Muchas gracias por tu ayuda He visto los plugins, pero me gustaría hacerlo sin plugin para no sobrecargar el PrestaShop. El archivo del order-confirmation.tpl lo tenía localizado, pero el override no sé si está correctamente ya que es un poco diferente al de la 1.6. Lo he hecho siguiendo los pasos de mAchAcA y así me ha quedado el override del controller, no sé si debo eliminar o añadir algo más: 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, 'id_order' => $this->id_order, 'reference_order' => $this->reference, 'id_order_formatted' => sprintf('#%06d', $this->id_order), 'email' => $this->context->customer->email )); if ($this->context->customer->is_guest) { $this->context->smarty->assign(array( 'id_order' => $this->id_order, 'reference_order' => $this->reference, 'id_order_formatted' => sprintf('#%06d', $this->id_order), 'email' => $this->context->customer->email )); /* If guest we clear the cookie for security reason */ $this->context->customer->mylogout(); } $this->setTemplate('checkout/order-confirmation'); } Con respecto al tpl, también he seguido sus instrucciones y así me ha quedado. No sé si las variables está correctamente: <script> window.renderOptIn = function() { window.gapi.load('surveyoptin', function() { window.gapi.surveyoptin.render( { // REQUIRED "merchant_id":"xxxxxxxxx", "order_id": "{$reference_order}", "email": "{$email}", "delivery_country": "ES", "estimated_delivery_date": "{$tomorrow|date_format:'%Y-%m-%d'}", // OPTIONAL "opt_in_style": "CENTER_DIALOG" }); }); } </script> <!-- END GCR Opt-in Module Code --> Con el código que he dejado no me ha cogido los datos cogido nada, sigue apareciéndome la notificación de que no ha recibido datos Espero puedas ayudarme. Muchas gracias!! Saludos Link to comment Share on other sites More sharing options...
pablobuendiaelvira Posted November 13, 2018 Share Posted November 13, 2018 On 23/12/2016 at 11:16 AM, mAchAcA said: Buenos días. Yo lo he realizado de la siguiente forma, aunque no se si es la más correcta. En primer lugar he duplicado el controlador de confirmación de orden de pedido y lo he metido en override/controllers/front/OrderConfirmationController.php y le he editado lo siguiente: public function initContent() { parent::initContent(); $this->context->smarty->assign(array( 'is_guest' => $this->context->customer->is_guest, 'HOOK_ORDER_CONFIRMATION' => $this->displayOrderConfirmation(), 'HOOK_PAYMENT_RETURN' => $this->displayPaymentReturn(), 'tomorrow', strtotime('+1 day'), 'reference_order' => $this->reference, 'email' => $this->context->customer->email )); if ($this->context->customer->is_guest) { $this->context->smarty->assign(array( 'id_order' => $this->id_order, 'reference_order' => $this->reference, 'id_order_formatted' => sprintf('#%06d', $this->id_order), 'email' => $this->context->customer->email )); /* If guest we clear the cookie for security reason */ $this->context->customer->mylogout(); } $this->setTemplate(_PS_THEME_DIR_.'order-confirmation.tpl'); } Después me he ido a mi plantilla y he editado el fichero 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( { "merchant_id": xxxxxxx, "order_id": "{$reference_order}", "email": "{$email}", "delivery_country": "ES", "estimated_delivery_date": "{$tomorrow|date_format:'%Y-%m-%d'}", "opt_in_style": "CENTER_DIALOG" }); }); } </script> La integración de la insignia no la he realizado, ya que es opcional ¿Como queda el archivo de order-confirmation.tpl? Se añade este código o se queda solo con este script. Gracias Link to comment Share on other sites More sharing options...
pablobuendiaelvira Posted November 13, 2018 Share Posted November 13, 2018 On 25/2/2017 at 1:10 PM, Naroa said: Hola mAchAcA! Gracias por tu aporte, me ha ayudado mucho pero he seguido tus pasos y todo bien menos la fecha que no me la cogía Por si a alguien más le ocurre yo lo he solucionado con estos cambios: en el archivo OrderConfirmationController.php en lugar de: 'tomorrow', strtotime('+1 day'), he usado: 'tomorrow' => date('Y-m-d', strtotime('+1 day')), y en el archivo order-confirmation.tpl en lugar de: "estimated_delivery_date": "{$tomorrow|date_format:'%Y-%m-%d'}", esto: "estimated_delivery_date": "{$tomorrow}", Así sí me ha cogido todos los datos y me muestra el popup de google para consentir el envío de la encuesta al cliente Un saludo! He seguido tus pasos y no me muestra ese popup. Tengo prestashop 1.6.1.7 ¿que debo hacer? Link to comment Share on other sites More sharing options...
jisas7 Posted April 9, 2019 Share Posted April 9, 2019 Hola, yo tengo la 1.7, he seguido los pasos de tuito y no aparece nada. Lo pudisteis poner? Saludos, Link to comment Share on other sites More sharing options...
Tuito Posted May 14, 2019 Share Posted May 14, 2019 Yo al final me decanté por el módulo Link to comment Share on other sites More sharing options...
jd250 Posted October 12, 2019 Share Posted October 12, 2019 No me funciona y no sé por qué Link to comment Share on other sites More sharing options...
korsakov14 Posted December 2, 2019 Share Posted December 2, 2019 Buenos días, ¿alguno lo ha conseguido para la 1.7? Saludos! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now