Antonio Sánchez Posted June 26, 2015 Share Posted June 26, 2015 (edited) Hola. Hay algo que no logro entender en la configuración multitienda. Necesito que el cliente pueda comprar artículos de las distintas tiendas, todo en el mismo carrito. Creo que lo que tengo que hacer es configurar el grupo de tiendas con todas las opciones a Sí: Compartir registro, pedido y stock. Concretamente lo que necesito es que se comparta el pedido. Si embargo para ello es obligatorio que se compartan también las existencias. Y esto es lo que no entiendo, porque aun compartiendo carrito desearía que cada tienda administrara las existencias del producto de forma independiente. Supongo que algo parecido como hace Amazon, que te dice que el producto lo tienen tal y cual tienda, y que cada uno tiene tanto y cuanto disponible. Seguramente estoy bastante confundido con la idea de multitienda, si alguien me puede aclarar un poco las cosas lo agradecería mucho. Un saludo 1.6.0.14 Edited June 26, 2015 by Antonio Sánchez (see edit history) Link to comment Share on other sites More sharing options...
Enrique Gómez Posted June 26, 2015 Share Posted June 26, 2015 Necesito que el cliente pueda comprar artículos de las distintas tiendas, todo en el mismo carrito El carrito no se puede compartir, las cookies son distintas para cada dominio... Link to comment Share on other sites More sharing options...
Antonio Sánchez Posted June 26, 2015 Author Share Posted June 26, 2015 (edited) Pongamos por caso: www.mimultitienda.com www.mimultitienda.com/tienda1 www.mimultitienda.com/tienda2 www.mimultitienda.com/tienda3 ¿Tampoco se podría compartir carrito así? Por otra parte dice la ayuda en pantalla: Comparta pedidos: Una vez que esta opción está establecida (lo que es posible sólo si clientes y cantidades disponibles son compartidas entre las tiendas), el carrito del cliente será compartido por todas las tiendas del grupo. De esta forma, cualquier compra iniciada en una tienda podrá ser completada en otra tienda del mismo grupo. Atención: No le está permitido deshabilitar esta opción una vez que ha comenzado a aceptar pedidos. Lo que yo entiendo de eso es que sí se puede compartir el carrito, pero quizás la documentación está confundiendo. O quizás estoy yo confundiendo el concepto de multitienda, por eso hago la pregunta. Lo que yo entiendo de multitieda es algo mas que una herramienta que te permita manejar distintas tiendas desde un mismo panel de control. Concretamente que además de eso exista la posibilidad de que esas tiendas puedan participar en común en por ejemplo un proceso de compra, añadiendo al carrito productos que pertenecen a distintas tiendas, y que el pedido se pueda completar en todas sus fases desde este solo sitio: pago, envío, etc... Creo que mas o menos es lo que hace un Amazon. Por ello insisto en que lo que pregunto es si yo tengo la idea equivocada acerca de la multitienda y de hecho solo sirve para administrar tiendas independientes desde un mismo sitio. Edited June 26, 2015 by Antonio Sánchez (see edit history) Link to comment Share on other sites More sharing options...
Enrique Gómez Posted June 26, 2015 Share Posted June 26, 2015 En el caso que comentas del mismo dominio (con subcarpetas o con subdominios) seguramente vaya ok, pero con dominios distintos...no es posible por una restricción con las cookies http://forge.prestashop.com/browse/PSCSX-3683 -So I'm right and the Share orders feature is completely useless in a multidomain environment? -Unfortunately, yes, browsers doesn't support multi domain cookies.If you really want use multiple domains, your customers must login on all the shops they visit Best Regards, http://jordiob.com/2015/02/entrevistas-ecommerce-juan-vidal-ceo-de-arrobaparktienda-com/#comments El concepto de 2 tiendas con un solo carrito creo que es pionero en España (si lo hay, no lo hemos encontrado). La idea a medio plazo es ir cubriendo diferentes mascotas con tiendas verticales especializadas. 2 Link to comment Share on other sites More sharing options...
Antonio Sánchez Posted June 27, 2015 Author Share Posted June 27, 2015 Ya veo. Muchas gracias por la información. En cualquier caso sigo sin entender por qué Prestashop obliga a que se compartan las existencias como requisito a que se compartan también los pedidos. No le veo sentido, al menos funcionalmente hablando. Link to comment Share on other sites More sharing options...
Soy.es Posted February 21, 2016 Share Posted February 21, 2016 Hola a todos, nosotros lo tenemos integrado en varias tiendas http://arrobaparktienda.com/ un ejemplo. Se puede hacer, tenemos un módulo para ello pero dada su complejidad, precio y poca demanda no lo tenemos en la tienda. Si alguien esta muy interesado puede contactarnos en www.soy.es Saludos 1 Link to comment Share on other sites More sharing options...
ingeis Posted May 18, 2016 Share Posted May 18, 2016 Hola a todos, os explico mi solución que es sencilla y efectiva, a ver si os vale. Vamos a suponer que tenemos un prestashop con multitienda y cada una de ellas con un dominio (exampl1.com, example2.com,example3.com...),da igual el número de dominios/tiendas que tengais. Paso 1) Codificamos las cookies del dominio actual (creamos una cadena) y se las pasamos al .tpl dónde tengamos los links de las diferentes tiendas. Para hacerlo, vamos al PHP que "genera" los datos para el .tpl (en mi caso es un simple módulo que genra un menu superior dónde estan los enlaces a las diferentes tiendas). Así, en el PHP: //config. Multicarrito//codificamos la variable global $_COOKIE$cookies_compartidas=htmlentities(base64_encode(serialize($_COOKIE)));// Y la metemos en smarty para que el tpl la pueda leer$this->smarty->assign('cookies_compartidas', $cookies_compartidas); Seguidamente, vamos a editar el tpl que és el que muestra el menu. en Mi caso es una lista <UL><LI> con CSS para hacerlo bonito: La cuestión es que cuándo hagamos click sobre el enlace para ir a otra tienda/dominio, envíe esa cookie que hemos codificado al nuevo dominio al que queremos ir. Modificamos el .tpl: {* creamos un formulario "invisible" que enviará las cookies *}<form action="foo" method="post" id="frmC000" STYLE='display:none;'><input type='hidden' id='shC000' name='shC000' value='{$cookies_compartidas}'></form><div class="menu_tiendas"><ul>{* links a las diferentes tiendas, la etiqueta Alt contiene la URL de la tienda, que lo ponemos como 'action' al formulario*}<li><A alt="http://www.dominio1.com" onClick="$('#frmC000').attr('action',$(this).attr('alt'));$('#frmC000').submit();">Tienda 1</A></li><li><A alt="http://www.dominio2.com" onClick="$('#frmC000').attr('action',$(this).attr('alt'));$('#frmC000').submit();">Tienda 2</A></li><li><A alt="http://www.dominio3.com" onClick="$('#frmC000').attr('action',$(this).attr('alt'));$('#frmC000').submit();">Tienda 3</A></li></ul> Ahora, con eso, cuándo hagámos click en cualquier enlace a nuestras tiendas, en vez de ir directamente al dominio, irá pero enviando la cookie. Paso 2) leemos las cookies. Ahora, debemos leer esas cookies justo antes de actualizar nuestro carrito. Para ello, sobreescribiremos la función init del FrontController (recordad crear un nuevo FrontController.php en override/classes/controller para que con las actualizaciones continuen funcionando). class FrontController extends FrontControllerCore{ public function init() {// la variable $_POST ya debería ser global, pero por algún motivo, si no la declaro, no funcionaglobal $_POST;// BY SAM, hemos recibido cookies??if(isset($_POST['shC000'])){//descodificamos las cookies$cookies_import=ToolsCore::unSerialize(base64_decode($_POST['shC000']),true);$cookie_lifetime = time() + 24 * 3600);foreach($cookies_import as $nombre=>$valor){//borramos la cooki anteriorsetcookie($nombre,'',time()-3600*100,'/', $_SERVER['HTTP_HOST'],isset($_SERVER['HTTPS'])?true:false);// establecemos la nueva cookiesetcookie($nombre,$valor,$cookie_lifetime,'/', $_SERVER['HTTP_HOST'],isset($_SERVER['HTTPS'])?true:false);// si descomentamos, generará una linea en en log de errores para ver si se establecen//error_log("Cookie establecida en ".$_SERVER['HTTP_HOST'].": ".$nombre."=".$valor,0);}} // lamamos al init de la clase FrontController original parent::init(); } Et voilà, magia hecha, rápido y funcional. 1 Link to comment Share on other sites More sharing options...
ExpertoPrestaShop Posted September 13, 2016 Share Posted September 13, 2016 https://www.prestashop.com/forums/topic/379141-solved-multishop-share-cookiesession/ Link to comment Share on other sites More sharing options...
apositivo Posted August 7, 2020 Share Posted August 7, 2020 hola, sigue sin solución este caso para prestashop 1.7 con diferentes dominios ? ? 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