Deithso Posted November 4, 2014 Share Posted November 4, 2014 (edited) Bonjour à tous, Ayant cherché dans le site et sur le web je n'ai pas pu trouvé une solution ou une piste pour mon problème qui est très simple. Je suis entrain de développer un petit module qui permet au client de choisir la boutique du magasin le plus proche, Comment ça marche ? J'ai hooké mon module à displaytop et je teste si la multiboutique est activé, si oui, je test si la valeur de la cookie n'est pas nulle, Si la cookie est nulle alors le client est redirigé vers le module en lui listant les boutiques disponible, en choisissant une boutique - via ajax - l'id de la boutique est stocké dans la cookie puis redirection. Le besoin, Si le client a déjà choisit une boutique, lorsqu'il tape l'url du site ou une autre boutique il faut qu'il soit redirigé vers la boutique déjà choisit ( pour changer il peut accéder au module pour faire un autre choix) Le lien de la boutique = boutique.ltd, la première boutique = b1.boutique.ltd et la deuxième boutique = b2.boutique.ltd Le problème rencontré Lorsque le client accède à boutique.ltd il est redirigé à b1.boutique.ltd/module/controller pour faire son choix, dans la liste il a 2 boutique, Si je sélectionne la boutique b2, j'ai le cookie crée avec la valeur 'visible dans le context lorsque je suis dans la boutique b2) alors que normalement je le stock dans le context actuel qui est bien celui de la boutique b1, quand je fait n'importe quel choix soit dans la boutique b1 ou b2, la cookie est stockée dans le context de b2 mais je ne retrouve jamais ma cookie dans b1 Question Est ce qu'il y a possibilité d'avoir - via cookie ou autre - la possibilité de stocker le choix du client qu'il soit accessible peut importe le context ou la boutique utilisée en entrée pour le rediriger soit vers son dernier choix, soit vers le module pour choisir ( à savoir y'aura 7 boutique ou plus) public function hookDisplayTop() { if (Shop::isFeatureActive()) { $module = Tools::getValue('module'); ppp($this->context->cookie); if($this->context->controller->module->name!='monmodule' && $this->context->controller->page_name='moncontrolleur'){ if(empty($this->context->cookie->currentShop)){ Tools::redirect($this->context->link->getModuleLink('monmodule', 'moncontrolleur')); } else { $currentShop = (int)$this->context->cookie->currentShop; $shop = new Shop($currentShop); if (!Validate::isLoadedObject($shop)){ die(Tools::jsonEncode(array( 'result' => false, 'error' => Tools::displayError('Error message') ))); } if($shop->id!=$this->context->shop->id){ Tools::redirect($shop->getBaseURL()); } } } } } Code ajax de stockage du choix du client $id_shop = (int)Tools::getValue('choice'); $context->cookie->__set('currentShop' , $id_shop); $shop = new Shop($id_shop); die(Tools::jsonEncode(array( 'result' => true, 'redirect' => $shop->getBaseURL() ))); Merci pour toute piste Edited November 4, 2014 by Deithso (see edit history) 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