Bonjour,
Pour vos question relatives à HikaMarket ; le mieux est d'utiliser la section du forum liée à HikaMarket.
Le cas échéant, je ne suis pas notifié et je ne peux pas savoir qu'il y a une question pour moi.
HikaMarket gère la surcharge de l'adresse de livraison en fonction du vendeur ; mais cette fonctionnalité ne peux marcher que lorsqu'il n'y a qu'un seul vendeur dans la commande.
HikaShop ne possède pas (encore) de fonctionnalité pour avoir plusieurs adresses de livraison par commande ; un début d'implémentation a été fait pour HikaShop 3 mais la fonction ne sera pas complètement disponible.
De ce fait, un client ne peux avoir une commande qu'avec une seule adresse de livraison.
Dans le cas ou une commande va avoir plusieurs vendeurs ; HikaMarket ne peux pas faire de surcharge pour poser tous les vendeurs.
Pour avoir quelque chose de plus logique pour le client, il faudrait alors qu'il puisse savoir quels produits sont à retirer à quelles adresses et donc, de laisser HikaMarket afficher le nom du vendeur dans la liste des produits et ensuite, afficher l'adresse des différents vendeurs.
Malheureusement pour afficher les informations des vendeurs dans l'email, il faut faire un peu de personnalisation et cela va inclure du PHP afin de faire le chargement et le traitement des données.
Par exemple, pour récupérer l'adresse d'un vendeur, cela demande le code suivant :
// $vendor_id = 1;
$vendorClass = hikamarket::get('class.vendor');
$fieldsClass = hikamarket::get('shop.class.field');
$vendor = $vendorClass->get( $vendor_id );
$vendorFields = $vendor;
$extraFields = array(
'vendor' => $fieldsClass->getFields('frontcomp', $vendorFields, 'plg.hikamarket.vendor')
);
$params = null; $js = null;
$html = hikamarket::getLayout('shop.address', 'address_template', $params, $js);
foreach($extraFields['vendor'] as $field) {
$fieldname = $field->field_namekey;
$html = str_replace('{' . str_replace('vendor_', '', $fieldname) . '}', $fieldsClass->show($field, @$vendor->$fieldname), $html);
}
$vendor_address = str_replace("\n","<br/>\n",trim(str_replace("\n\n","\n",preg_replace('#{(?:(?!}).)*}#i','',$html)),"\n"));
Cordialement,