Bonjour,
Votre approche avec un champ personnalisé caché est une piste, mais il y a une solution plus élégante et plus robuste qui s'intègre naturellement à HikaMarket : développer un petit plugin HikaMarket qui écoute l'événement onBeforeProductsVendorAttribution
Principe :
Cet événement se déclenche lors du traitement de la commande, juste avant que HikaMarket ne sépare les produits par vendeur. Il vous permet de modifier dynamiquement le vendeur assigné à chaque produit de la commande. Vous pouvez donc, dans votre plugin :
1. Détecter sur quel sous-site la commande a été passée (via l'URL du site avec
, ou via un paramètre de configuration MIGHTYSITES)
2. Identifier le revendeur associé à ce sous-site (depuis une table de correspondance, un paramètre, ou un groupe d'utilisateurs)
3. Réassigner le(s) produit(s) de la commande à ce revendeur en modifiant
Exemple de structure :
public function onBeforeProductsVendorAttribution(&$products, &$productObjects, &$order) {
$host = $_SERVER['HTTP_HOST'];
$reseller_id = $this->getResellerIdForHost($host);
if(empty($reseller_id))
return;
foreach($products as $key => &$product) {
$product['vendor'] = $reseller_id;
}
}
Avantages par rapport à la solution avec champ personnalisé :
- Le revendeur devient le vrai vendeur de la commande aux yeux de HikaMarket et il recevra automatiquement les emails de notification vendeur (aucune modification de gabarit nécessaire)
- Le revendeur verra la commande dans son espace vendeur en frontend
- La commission/paiement vendeur sera automatiquement calculée pour lui
- Vous avez une traçabilité complète dans HikaMarket
La documentation de l'événement se trouve ici :
www.hikashop.com/support/documentation/1...ctsVendorAttribution