Bonjour,
J'ai trouvé la solution à mon problème et la voici.
Tout d'abord, ne pas grouper les options avec le produit, afin d'avoir une ligne par produit et par options du produit. (Configuration générale > Principal > Produits > grouper les options avec les produits > NON)
Ensuite, pour faire figurer la réduction, je pouvais choisir l'option "Afficher le montant de la réduction" dans Configuration générale > Affichage > Paramètres par défaut pour les Produits > Afficher les prix réduits
Seulement, même si cette solution est assez satisfaisante dans le Checkout, elle ne l'est pas pour les mails et la facture car le montant de la réduction disparaît de ces vues. On se retrouve avec le prix final réduit, dans le prix à l'unité et le prix total.
Et c'est aussi ça qui est embêtant. Que la réduction soit directement appliquée au prix unitaire, alors que la fonction du prix unitaire, c'est de donner le prix du produit du départ, pas celui directement réduit.
J'ai donc décidé de "supprimer" la colonne du Prix à l'unité (avec des display: none; pour le checkout, les mails et la facture) et de créer deux champs personnalisés de table Product et de type text, qui figurent sous forme de colonne dans le tableau récapitulatif des commandes.
Un champ personnalisé : Prix unitaire HT
Un champ personnalisé : Remise unitaire
Au niveau de l'affichage de ces champs, j'ai procédé comme dans l'image jointe pour qu'ils apparaissent dans le backend, le checkout, les mails et la facture mais pas sur la liste des produits et les pages produits de la boutique en frontend.
Ensuite, pour chaque produit, j'ai précisé le prix et la remise dans les zone de text. Heureusement, je n'en ai pas beaucoup.
Du fait de faire disparaître la colonne de Prix à l'unité et d'ajouter deux colonnes à la place, j'ai observé un décalage dans le tableau. Il se réduit au niveau des lignes des produits sur la droite.
J'ai compensé cet effet dans le checkout, dans la Vue > checkout > show_block_cart , en changeant tous les
colspan="<?php echo $row_count - 2; ?>
en
colspan="<?php echo $row_count - 3; ?>
Par contre, je n'ai pas réussi à changer ce problème de layout dans la facture.
Dans la Vue > order > invoice
A la ligne 127, en changeant
en
Dans la popup, toutes les colonnes sont de même taille. En l'imprimant, et en réduisant l'échelle, on réussit à retrouver un tableau correct, mais la partie supérieure est toujours en décalage sur la droite, par rapport aux lignes Sous-total et Total en dessous. (voir image)
Auriez-vous une solution ?
Dans les mails, avec une colonne supplémentaire, ça devient très fouilli. J'ai essayé d'appliquer des width directement dans le style de chaque colonne dans les mails mais ça n'a pas fonctionné. Je souhaiterais réduire la largeur de la description et agrandir la largeur de la colonne totale.
Auriez-vous aussi une solution ?
Belle journée à vous