Larnic Posted September 13, 2017 Share Posted September 13, 2017 Bonjour à tous, J'ai besoin d'aide pour un problème sur Prestashop 1.6 Configuration: Multi boutique API mobile J'ai créer une api mobile pour une boutique, avec Prestashop 1.6 Elle me permets de : Naviguer dans les catégories Naviguer dans les produits Rechercher des produits Ajouter au panier (avec vérifications) Retirer un produit du panier Commander Changer de boutique Se connecter (avec jeton de sécurité en plus du token de Prestashop ) ++ Le problème que j'ai c'est que, lorsque mon application qui utilise l'API change de la boutique 1 à la boutique 4, et que je demande l'ajout d'un produit au panier de la boutique courante soit la 4, il est toujours ajouté au panier de la boutique 1. NB: * Première connexion sur la boutique 1 * Pas de déconnexion au changement de boutique. voici comment j'ajoute au panier $_shop = new Shop(_PS_SHOP_SELECTED_ID); //_PS_SHOP_SELECTED_ID = 4 $isAdded = $cart->updateQty((int)$product->quantity, (int)$producToAdd->id, $id_product_attribute, FALSE, 'up', 0,$_shop); Voici comment je récupère mon panier ou créer $context = Context::getContext(); if (!$context->cart->id) { $context->cart->add(TRUE, FALSE, TRUE,_PS_SHOP_SELECTED_ID); $context->cookie->id_cart = $context->cart->id; $cart = new Cart($context->cart->id); $cart->id_customer = (int)UserApi::getIdAuthUser(); $cart->id_lang = _PS_APP_MOBILE_LANG_ID; $cart->id_currency = (int)Context::getContext()->currency->id; $cart->id_carrier = 1; $cart->recyclable = 0; $cart->gift = 0; } $cart = new Cart($context->cart->id); Je remercie d'avance toute personne pour son aide. Link to comment Share on other sites More sharing options...
doekia Posted September 13, 2017 Share Posted September 13, 2017 Au moment ou tu switch de boutique, tu dois recréer ton contexte pour qu'il pointe sur le bon shop et probablement réinjecter également cette info dans le cookie Link to comment Share on other sites More sharing options...
Larnic Posted September 13, 2017 Author Share Posted September 13, 2017 Merci doekia pour ta réponse, mais comment { tu dois recréer ton contexte pour qu'il pointe sur le bon shop } ? Link to comment Share on other sites More sharing options...
doekia Posted September 13, 2017 Share Posted September 13, 2017 Un truc du genre Context::getContext()->shop = new Shop(id_shop_new); Selon ton code, cela peux être +/- différent mais tu as le principe Link to comment Share on other sites More sharing options...
Larnic Posted September 14, 2017 Author Share Posted September 14, 2017 Merci à tous ceux qui m'ont apporté leur aide. J'ai finalement trouvé un moyen propre et facile de changer la boutique dans mon contexte. Après des heures de recherches dans le code Prestashop, j'ai trouvé que le shop du contexte est défini dans config.inc.php Mais la valeur est retournée par La classe Search de Prestashop. Donc pour changer de façon sécurisée votre shop dans le contexte, il faut faire un override de la classe Shop: Shop::initialize(); Car par défaut il se base soit sur l'identifiant de la boutique en paramètre de la requête (id_shop) ou sur l'url si rien de trouvé, il affecte la boutique par défaut. 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