Merci pour votre retour.
Contexte précis :
Sur notre marketplace, une commande peut contenir des produits de deux types de producteurs (manufacturer chacun attaché à un warehouse) :
1. Producteurs “warehouse = 1” : les produits sont facturés par la marketplace (facture client unique).
2. Producteurs “warehouse ≠ 1” : chaque producteur doit émettre sa propre facture client pour ses produits. (géré par mon code pas de souci la dessus)
Cas à gérer :
1. Commande 100 % warehouse = 1
→ 1 facture client marketplace, numérotation normale native
2. Commande 100 % warehouse ≠ 1
→ Aucune facture marketplace ne doit être créée
→ uniquement des factures clients producteur gérées par mon code sans toucher au champ invoice_id ou invoice number
3. Commande mixte (warehouse = 1 + warehouse ≠ 1)
→ 1 facture client marketplace, comportement natif hikashop
→ + factures clients producteur pour les produits non-warehouse (gérées par mon code)
Problème :
Dans le cas 2, la commande est confirmée mais ne doit pas consommer de numéro de facture marketplace, afin d’éviter des trous dans la numérotation légale de la marketplace.
Constat :
- onBeforeInvoiceNumberGenerate permet bien de remplacer le numéro, mais l’order_invoice_id est quand même généré (MAX+1).
- Modifier order_invoice_id a posteriori fonctionne en test, mais semble risqué car c’est un identifiant interne qui pourrait être appelé ailleurs par hikashop ?
Question :
Quelle est selon vous la meilleure approche propre et supportable pour :
- empêcher la consommation d’un numéro de facture marketplace dans le cas 2
- tout en conservant une numérotation continue pour les factures marketplace,
- sans risquer d’effets de bord internes ?
Merci d’avance.