Jump to content

Employé qui arrive directement sur l'admin d'une sous-boutique en particulier


Recommended Posts

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

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

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

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

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

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...