javiervallejo Posted June 3, 2022 Share Posted June 3, 2022 Buenos días, Dispongo de una multi-tienda que me da problemas con la maquetación del carro, a ver si me explico. Originalmente, tenía una tienda con un tema que se había hecho a medida. Unos meses más tarde cree una multi-tienda, añadiendo 3 tiendas más (un total de 4) y estas 3 tiendas usan el tema WareHouse. Me encuentro que en 3 estas últimas tiendas, cuando añado un producto al carrito y me recarga por ajax las cantidades, la maquetación del carrito se me muestra como en la tienda original (que no tiene nada que ver con las 3 tiendas de WareHouse). Me estoy volviendo un poco loco, ya que no comprendo por qué si estoy en una tienda que usa el tema a medida, por qué me carga su fichero .tpl Esto lo he comprobado insertando un console.log y viendo lo que carga cada vez. ¿Alguna idea de por dónde podría tirar para conseguir que el TPL de mis tiendas que usan el tema WareHouse, usen ese TPL y no el TPL de la primera tienda, que es a medida? ¡Un saludo y gracias! Link to comment Share on other sites More sharing options...
idnovate.com Posted June 3, 2022 Share Posted June 3, 2022 El código que te carga dinámicamente al añadir un producto al carrito suele venir de un JS o de un TPL. Identifica primero dónde está ese código y postea la ruta, para ver si es posible sobreescribirlo en el theme. 1 Link to comment Share on other sites More sharing options...
javiervallejo Posted June 3, 2022 Author Share Posted June 3, 2022 Hola! Un pequeño problema lo he resuelto, que era que se "sobreescribirera" el TPL del carrito y saliera el de un tema que no correspondía. En la multi-tienda, si seleccionaba todas las tiendas e iba al módulo del carrito tenía habilitado el check de "all shops", he desmarcado esto. Luego he ido tienda por tienda, entrando al backoffice por cada dominio, habilitando de nuevo el carrito, pero solo para cada tienda y ya no me modifica la apariencia del carrito. Ahora me pasa que tengo los dos modales superpuestos, miraré a ver de donde carga cada uno. Si encuentro la solución la pongo y que quede documentado por si a alguien le pudiera pasar 1 Link to comment Share on other sites More sharing options...
javiervallejo Posted June 3, 2022 Author Share Posted June 3, 2022 Al final borrando la caché se ha solucionado el tema de los modales. Resumen de lo hecho, nunca configurar el carrito con la opción de "all shops" habilitado, en tal caso, con "all shops" dejarlo deshabilitado y luego entrar al backoffice de cada dominio y activarlo tienda a tienda. Link to comment Share on other sites More sharing options...
javiervallejo Posted June 3, 2022 Author Share Posted June 3, 2022 (edited) 2 hours ago, idnovate.com said: El código que te carga dinámicamente al añadir un producto al carrito suele venir de un JS o de un TPL. Identifica primero dónde está ese código y postea la ruta, para ver si es posible sobreescribirlo en el theme. Hola, A pesar de los cambios, vuelve a fallar. Si veo las peticiones desde una multi-tienda que me pinta mal el carrito, la petición que me devuelve el "html" es la siguiente:https://eldominiodeunamultitienda.es/module/ps_shoppingcart/ajax No entiendo por qué me trae el html de un tema que no corresponde... ¿Alguna idea? Edito: Viendo la función initContent dentro de /httpdocs/modules/ps_shoppingcart/controllers/front es como si la instancia de la tienda no la detectara correctament... Edited June 3, 2022 by javiervallejo (see edit history) Link to comment Share on other sites More sharing options...
idnovate.com Posted June 3, 2022 Share Posted June 3, 2022 ¿Puedes subir una captura? Link to comment Share on other sites More sharing options...
javiervallejo Posted June 6, 2022 Author Share Posted June 6, 2022 On 6/3/2022 at 10:24 PM, idnovate.com said: ¿Puedes subir una captura? Ahí va una captura para tratar de explicar lo que me sucede. He revisado los ficheros y no hay ninguna modificación hecha en el PrestaShop y módulo de carrito. La tienda está en desarrollo y cerrada. Link to comment Share on other sites More sharing options...
idnovate.com Posted June 8, 2022 Share Posted June 8, 2022 La función ajax llama a: $modal = $this->module->renderModal( $this->context->cart, (int) Tools::getValue('id_product'), (int) Tools::getValue('id_product_attribute'), (int) Tools::getValue('id_customization') ); Y: return $this->fetch('module:ps_shoppingcart/modal.tpl'); En la función fetch de Module hay: if ($compile_id === null) { $compile_id = $this->getDefaultCompileId(); } $template = $this->context->smarty->createTemplate( $templatePath, $cache_id, $compile_id, $this->smarty ); La primera devuelve: public function getDefaultCompileId() { return Context::getContext()->shop->theme->getName(); } Printa esa variable. Y añade también algunas trazas en la 2ª a ver si descubrimos qué plantilla va a buscar. 1 Link to comment Share on other sites More sharing options...
javiervallejo Posted June 14, 2022 Author Share Posted June 14, 2022 On 6/8/2022 at 9:53 AM, idnovate.com said: La función ajax llama a: $modal = $this->module->renderModal( $this->context->cart, (int) Tools::getValue('id_product'), (int) Tools::getValue('id_product_attribute'), (int) Tools::getValue('id_customization') ); Y: return $this->fetch('module:ps_shoppingcart/modal.tpl'); En la función fetch de Module hay: if ($compile_id === null) { $compile_id = $this->getDefaultCompileId(); } $template = $this->context->smarty->createTemplate( $templatePath, $cache_id, $compile_id, $this->smarty ); La primera devuelve: public function getDefaultCompileId() { return Context::getContext()->shop->theme->getName(); } Printa esa variable. Y añade también algunas trazas en la 2ª a ver si descubrimos qué plantilla va a buscar. Hola, No localizo la función getDefaultCompileId en la versión 1.7.5.2 de PS. A modo temporal y de momento, para que me pinte bien el TPL pregunto el dominio y en función del mismo pinto un tpl u otro. ¡¡Muchas gracias por las respuestas!! 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