Pamgui2000 Posted July 17 Share Posted July 17 Bonjour, J'utilise Prestashop 8.2 en mode multiboutique. J'ai créé des employés qui ont accès à la boutique principale et chacun à une sous-boutique en plus. Je voudrais que lorsque l'employé qui se connecte, arrive directement sur l'admin de la boutique secondaire (avec SetShopContext = l'id_de_la_sous_boutique par exemple), comme dans les liens du menu déroulant. En gros je voudrais que dans le menu déroulant avec toutes les boutiques, la sous-boutique soit sélectionnée d'office. Une idée de comment faire ? Je sèche... Merci d'avance Link to comment Share on other sites More sharing options...
Eolia Posted July 17 Share Posted July 17 A part modifier le code de base ce n'est pas possible car il n'y a pas de notion de shop par défaut lié aux employés. L'idée serait, à la connexion de détecter les shops associés autre que celui par défaut et associer le contexte au 1er shop trouvé. Link to comment Share on other sites More sharing options...
Pamgui2000 Posted July 19 Author Share Posted July 19 Bonjour, J'arrive bien à récupérer l'id du shop associé à l'employé (hors id_shop=1) je l'ai affiché sur la page d'admin pour verifier, mais impossible de changer le setShopContext...😔 j'ai essayé avec du javascript,mais je n'ai pas reussi... J'ai essayé un override mais ça ne fonctionne pas non plus... si quelqu'un a une piste, je suis preneur... <?php class AdminLoginController extends AdminLoginControllerCore { protected function processLogin() { parent::processLogin(); if ($this->context->employee && $this->context->employee->isLoggedBack()) { $id_employee = (int) $this->context->employee->id; // Récupère un shop autre que le principal $id_shop = Db::getInstance()->getValue( 'SELECT id_shop FROM '._DB_PREFIX_.'employee_shop WHERE id_employee = '.$id_employee.' AND id_shop != 1 LIMIT 1' ); if (!$id_shop) { $id_shop = 1; } // Redirige vers la page commandes avec le bon contexte shop Tools::redirectAdmin( $this->context->link->getAdminLink('AdminOrders') . '&setShopContext=s-' . (int) $id_shop ); } } } ?> Link to comment Share on other sites More sharing options...
Eolia Posted July 19 Share Posted July 19 si la requete du login est en ajax parent::processLogin(); termine en die()... Faites un override complet de la fonction parent et remplacez $url par votre code. Link to comment Share on other sites More sharing options...
Prestashop Addict Posted July 21 Share Posted July 21 Le 19/07/2025 à 10:37 PM, Pamgui2000 a dit : si quelqu'un a une piste, je suis preneur... Dans l'override faites plutôt : if (!$id_shop) { $id_shop = 1; } // Forcer le contexte shop Shop::setContext(Shop::CONTEXT_SHOP, $id_shop); Link to comment Share on other sites More sharing options...
Knowband Plugins Posted July 21 Share Posted July 21 On 7/20/2025 at 2:07 AM, Pamgui2000 said: Tools::redirectAdmin( $this->context->link->getAdminLink('AdminOrders') . '&setShopContext=s-' . (int) $id_shop ); Dies sollte auch funktionieren. Der Parameter in der URL, z. B. setShopContext=s-{shop_id}, ist die Standardfunktion von PrestaShop zum Festlegen des Shop-Kontexts. Haben Sie mithilfe der Würfelfunktion überprüft, ob Ihre Übersteuerung funktioniert? 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