Jump to content

Multiboutique redirection vers boutique la plus proche


Recommended Posts

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 by Deithso (see edit history)
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...