Option d'un produit payant offert

  • Posts: 39
  • Thank you received: 4
  • Hikashop Business
1 year 3 months ago #354585

-- HikaShop version -- : 4.7.5
-- Joomla version -- : 4.3.3
-- PHP version -- : 8
-- Browser(s) name and version -- : firefox

Bonjour,

Je souhaite offrir un marque-page avec l'achat d'un roman. La lectrice a le choix entre deux marque-pages. Un marque-page coûte 1,50€.

J'arrive à créer le choix du marque-page avec une caractéristique et deux valeurs, mais ce que je voudrais, c'est que le prix du marque-page apparaisse avec la remise de 100% en-dessous.

exemple d'un panier :
Roman 17€
Marque-page 1,50€
remise marque-page -1,50€
TOTAL 17€

Merci

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 3 months ago #354589

Bonjour,

Faire une remise de 100% sur une option d'un produit, c'est possible. Cependant, ce sera directement le prix réduit qui sera affiché à coté du nom de l'option choisie. Il n'y a pas d'option pour pouvoir afficher cela comme vous le souhaitez.

Je pense que pour faire exactement ce que vous voulez, vous allez avoir besoin de ce plugin:
www.hikashop.com/marketplace/product/279-cart-fee.html
Avec ce plugin, vous pouvez faire un champ personnalisé de la table "product" et de type "texte". Dans les variantes du produit-option, remplissez ce champ avec la valeur de la remise. Ensuite, utilisez la formule:

{product.cart_product_quantity}*{product.xxx}
, où xxx est le nom de colonne de votre champ personnalisé, et avec le label "remise marque-page"

Cela permettra également de gérer les cas plus compliqués du genre:
produit 1 à 17€
marque page produit 1 à 1.5€
produit 2 à 13€
marque page produit 2 à 1.5€
sous total : 33€
remise marque page: 3€
total : 30€

Please Log in or Create an account to join the conversation.

  • Posts: 39
  • Thank you received: 4
  • Hikashop Business
1 year 3 months ago #354605

Merci pour cette réponse.

Je viens de passer à la version business et je trouve dommage de ne pas avoir cette option déjà intégrée.
Je vais étudier ce plugin.


Bonne soirée.

Please Log in or Create an account to join the conversation.

  • Posts: 39
  • Thank you received: 4
  • Hikashop Business
1 year 2 months ago #354744

Bonjour,

Je reviens vers vous.

J'ai affiné mes choix concernant mes produits. Je ne pars plus sur un roman avec une caractéristique à 2 variantes (marque-pages) mais un roman avec le choix d'une option marque-page avec 2 variantes. J'ai appliqué une réduction de 100% sur chaque variante, ce qui me donne un marque-page gratuit (0€).

/jusqu-au-bord-de-l-arctique-episode-1-au-format-broche-ters] lise-whales.com/boutique/product/jusqu-a...u-format-broche-ters [/url]

J'ai activé toutes les options permettant de montrer les réductions (configuration principale/passage en caisse/menu/module) mais rien n'apparaît, c'est à dire, que j'ai bien le prix du livre mais le prix de l'option et sa réduction n'apparaissent pas, que ce soit dans le panier ou le passage en caisse.

J'ai donc plusieurs questions :

1) Mise à part votre plugin, existe-t-il un code à insérer (dans vues>option ? du style de ce post ) forçant l'apparition du prix de l'option avec, en-dessous, sa réduction ?

2) Si c'est possible (que ce soit avec votre plugin ou un code à insérer), est-ce que cela sera répercuté sur la commande et la facture ?

3) si le 1) n'est pas possible pouvez-vous m'indiquer une autre façon de faire ?
Parce que là, je sèche et que je commence franchement à m'énerver pour une chose qui me paraît somme toute être le b-a-ba d'une boutique. Faire figurer les prix et les réductions !
J'ai essayé de faire un bundle, mais le produit ajouté n'apparaît même pas.

Ma boutique est basique : 1 roman + un marque-page offert en faisant figurer les prix de chacun et la réduction sur le deuxième sur le frontend et ensuite dans les documents (commande et facture) afin d'avoir une comptabilité claire et tout en un.

Si ce n'est pas possible, sans passer des heures à tester des codes, travailler avec du php et du html, dites-le moi, je désactive les emails et établirai mes commandes et factures sur un autre programme (tant pis si le frontend est approximatif), que j'enverrai ensuite à mes clients, séparément de Hikashop. Ce sera double de travail alors que je pensais avoir tout en un, mais au moins j'aurai cette partie-là réalisée selon mes souhaits.

Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 4747
  • Thank you received: 644
  • MODERATOR
1 year 2 months ago #354752

Bonjour,

1) Mise à part votre plugin, existe-t-il un code à insérer (dans vues>option ? du style de ce post ) forçant l'apparition du prix de l'option avec, en-dessous, sa réduction ?
Non, il n'y a pas de code à insérer, sauf si vous parlez de la formule (mathématique) fournie par Nicolas.
Quant à l'affichage toujours si les configurations sont bonnes, tout devrait être affiché.

2) Si c'est possible (que ce soit avec votre plugin ou un code à insérer), est-ce que cela sera répercuté sur la commande et la facture ?
Oui, tout à fait!

3) si le 1) n'est pas possible pouvez-vous m'indiquer une autre façon de faire ?
L'autre façon de faire cela va plutôt être une assitance technique, donc pouvez vous nous founrir ses éléments via des screenshots de :
- Vos différentes configuration relative à votre problème
- Les configurations de votre plugin avec sa formule bien lisible.
- Le Custom field relatif et nécessaire pour le fonctionnement du plugin.

En attentes de vos retours.
Cordialement

Last edit: 1 year 2 months ago by Philip.

Please Log in or Create an account to join the conversation.

  • Posts: 39
  • Thank you received: 4
  • Hikashop Business
1 year 2 months ago #354761

Bonsoir,

je n'ai pas encore utilisé le plugin mentionné par Nicolas.

Ci-joint les configurations de ma boutique.

Please Log in or Create an account to join the conversation.

  • Posts: 39
  • Thank you received: 4
  • Hikashop Business
1 year 2 months ago #354762

suite des captures d'écran

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 2 months ago #354767

Bonjour,

Le prix d'une variante d'une option sur la page produit est affiché avec la ligne:

$text .= ' ( '.($positive?'+ ':'').$this->currencyHelper->format($price, $ok->price_currency_id).' )';
du fichier product / option via le menu Affichage>Vues.

Si ce n'est pas possible, sans passer des heures à tester des codes, travailler avec du php et du html,

Vous avez deux options:
1. Vous utilisez le plugin que je vous ai proposé dans mon premier message. La solution permet de faire cela sans coder une seule ligne de PHP ou HTML. C'est très simple, et c'est pour cela que je vous ai recommandé cette option dans mon premier message.
2. La seconde option, c'est de modifier le code. Dans la vue product / option, si vous changez la ligne ci dessous en :
$text .= ' ( <span class="original_price">'.($positive?'+ ':'').$this->currencyHelper->format($ok->price_value_without_discount_with_tax, $ok->price_currency_id) . '</span><span class="discounted_price">'.($positive?'+ ':'').$this->currencyHelper->format($price, $ok->price_currency_id).'</span> )';
et ensuite vous pouvez utiliser les class original_price et discounted_price dans votre CSS pour personnaliser l'affichage des deux prix (par exemple pour barrer le premier, histoire de faire comprendre que c'est une réduction).
Par contre, ce changement est uniquement pour la page produit. Pour changer l'affichage sur la facture, la commande, le panier, etc cela nécessiterait des modifications similaires, voir plus complexes, dans les différentes vues. Vous allez y passer des heures si vous partez sur cette solution.

Please Log in or Create an account to join the conversation.

  • Posts: 39
  • Thank you received: 4
  • Hikashop Business
1 year 2 months ago #354784

Bonjour,

très bien, puisque je ne peux pas faire autrement, j'ai acheté ce plugin. Seulement, son utilisation est flou.

En plus du produit (roman) et de son prix, je veux faire apparaître deux choses concernant l'option sélectionnée dans mes panier/checkout/commande/facture :

A) le prix initial du marque-page offert 1,50€
B ) la remise sur le marque-page -1,50€

Si j'ai bien compris, la démarche que vous avez fournie concerne le B )

  1. Dans Affichage > Champ personnalisé, je créé un champ personnalisé de la table "product" et de type "texte" avec pour référence de champ par exemple "remise.mp"
  2. Dans les variantes de mon produit-option, j'écris "-1,50€" (-1,50 tout seul ?) dans ce champ personnalisé
  3. Ensuite, utilisez la formule:

    {product.cart_product_quantity}*{product.xxx}

    , où xxx est le nom de colonne de votre champ personnalisé, et avec le label "remise marque-page"


    Où ? Dans extension > plugin ?
  4. En n'entrant que cette formule, ces valeurs seront-elles répercutée sur Checkout/commande/facture ? ou faut-il ajouter trois formules supplémentaires spécifiques. Si oui, lesquelles ?

Autres questions :

Où retrouver la liste de tous ces changements/labels que j'ai créés ?

Est-ce que cette procédure s'applique aussi à l'affichage du prix initial A) ?

En utilisant ce plugin, le total est-il recalculé automatiquement ?

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 2 months ago #354790

Bonjour,

De ce que je comprends, vous voulez que l'utilisateur puisse choisir entre "séquoia" et "éléphant" pour le marque page.
Donc ce que vous voulez faire c'est:
- créer un champ personnalisé avec le nom de colonne "marquepage" et de la table "item" (article) et de type "single dropdown".
- pour les valeurs de ce champ, vous en aurez deux: "séquoia" et "éléphant"
Pour le titre du champ je pense que quelque chose comme cela serait bien: "marque page offert (valeur €1,50)"
Cela permettra ainsi à l'utilisateur de sélectionner entre les deux marques page sur la page du produit grâce à ce champ.
Ensuite, éditez les options du plugin "cart fees" dans le gestionnaire de plugins de Joomla, et ajoutez une formule avec le label "remise marque page" et l'option "fee included" activée, et la formule:

{product.cart_product_quantity}*str_word_count({product.marquepage})*-1.5
Ainsi, dans le passage en caisse, la facture, la commande, etc, vous aurez la remise marque page affichée entre le sous total et le total du panier.
Si vous voulez aussi une ligne avec le montant des marque pages, c'est possible avec une seconde formule avec le label "marque page" et la même formule mais avec 1.5 au lieu de -1.5.

Please Log in or Create an account to join the conversation.

  • Posts: 39
  • Thank you received: 4
  • Hikashop Business
1 year 2 months ago #354805

Bonjour,

J'ai fait comme vous me l'avez indiqué, ça ne fonctionne pas.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 2 months ago #354806

Bonjour,

D'après vos captures, le nom de colonne de votre champ personnalisé est mp_jabdla_un_offert
Or dans les formules de votre plugin fees, vous avez utilisé le nom de colonne mpjabdla1offert
Il faut utiliser le même nom de colonne exactement pour que la formule fonctionne. Sinon, la formule sera ignorée par le plugin.

Please Log in or Create an account to join the conversation.

  • Posts: 39
  • Thank you received: 4
  • Hikashop Business
1 year 2 months ago #354823

Bonjour,

sur la capture d'écran, mp_jabdla_un_offert figure dans la deuxième formule du plugin. Mais ça ne marchait toujours pas. ;)

J'ai testé la formule initiale de Nicolas et... ça ne marchait pas... jusqu'à ce que je comprenne qu'il fallait que je retire le discount appliqué au produit-option ET que l'option du plugin "Fee already included" soit sur NON.

Maintenant, j'obtiens presque ce que je veux.

L'option est calculée directement avec le prix. Or, je souhaiterais qu'elle apparaisse comme un produit à part entière de sorte que son prix figure séparément, sous le prix du roman. Est-ce possible ?

D'autre part, la remise apparaît bien sur le checkout, la commande et la facture. Mais elle n'apparaît pas lorsqu'on clique sur le panier.

Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 2 months ago #354827

Bonjour,

Or, je souhaiterais qu'elle apparaisse comme un produit à part entière de sorte que son prix figure séparément, sous le prix du roman. Est-ce possible ?

Mettez un prix à 0 à votre option et au lieu d'avoir une seule formule pour "remise marque page", dupliquez la formule en changeant le -1.5 pour un 1.5. Comme cela, vous aurez deux frais additionnels entre le sous total et le total. Un pour les 1.5€ du marque page, et un pour la remise de 1.5.

Concernant la page panier, c'est une page qui n'affiche que le contenu du panier. Elle n'affiche pas les frais additionnels, les coupons, les frais de livraison, les frais de paiement, etc. Donc c'est normal que cela ne s'affiche pas à cette endroit car ce n'est pas prévu.
Au lieu d'afficher une icone panier avec lien vers la panier panier via un module custom HTML, vous pourriez afficher à la place un module "HikaShop cart module". Vous pouvez activer son option "mini panier" pour avoir un affichage minimaliste permettant de connaitre le contenu du panier et d'afficher au panier du passage en caisse, qui lui aura les frais additionnels affichés.
- Sinon, vous pourriez changer le lien de l'icone pour aller au passage en caisse. Vous n'affichez qua le panier sur la première étape donc je trouve que c'est redondant avec la page panier de toute façon.

Please Log in or Create an account to join the conversation.

  • Posts: 39
  • Thank you received: 4
  • Hikashop Business
1 year 2 months ago #355302

Bonjour,

merci pour la suggestion pour le panier, en effet, c'est plus clair. :)

J'ai essayé votre méthode.

Un roman, avec une option à 0€ et ses variantes à 0€

Ensuite, j'ai entré ces deux formules

{product.cart_produt_quantity}*str_word_count({product.Marque-pages_JABDLA1})*1.5
{product.cart_produt_quantity}*str_word_count({product.Marque-pages_JABDLA1})*-1.5
Où Marque-pages_JABDLA1 est le champ de mon option
Mais les lignes n'apparaissent pas dans le récapitulatif de la commande avant paiement.

Les champs de mes options sont Marque-pages_JABDLA1_10 et Marque-pages_JABDLA1_11. Serait-ce pour cela ?


J'ai aussi pensé à créer directement un champ personnalisé Item avec liste simple.
Mais dans ce cas, comment créer la formule avec l'item ?
{item.xxx}*1.5 ?

Last edit: 1 year 1 month ago by nicolas.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 1 month ago #355321

Bonjour,

Vous avez deux problèmes d'après ce que je vois sur votre site:
- Le nom de colonne de votre champ personnalisé est mpjabdla1offert donc le tag devrait être {product.mpjabdla1offert} et pas {product.Marque-pages_JABDLA1}
- Dans les valeurs du champ il ne faut pas d'espace vu que vous utilisez str_word_count (qui compte le nombre de mots). Vous pouvez avoir des espace dans la colonne "titre" de vos valeurs, mais pas pour la colonne "valeur". Actuellement, vous avez un espace, ce qui fait que le montant calculé sera le double de ce que vous voulez.

Please Log in or Create an account to join the conversation.

  • Posts: 39
  • Thank you received: 4
  • Hikashop Business
1 year 3 weeks ago #356303

Bonjour,

J'ai plus ou moins réglé mon problème.

Je voulais que mes options apparaissent indépendamment du produit et que les réductions soient appliquées et apparaissent aussi indépendamment.

Je ne voyais pas les options indépendantes car j'avais activé l'option "grouper les options avec les produits" dans Configuration générale > Principal > Produits. En la passant à NON, j'ai réglé ce problème.

Ensuite, en faisant figurer le prix avant la réduction, on voit les changements de prix.

Pour expliquer ces changements, j'ai directement insérés la description dans le titre du produit.

Le plugin cart fee ne me sert pas pour l'instant. En utilisant les caractéristiques, les options et les réductions, j'arrive à un résultats assez satisfaisant.

The following user(s) said Thank You: Philip

Please Log in or Create an account to join the conversation.

  • Posts: 39
  • Thank you received: 4
  • Hikashop Business
1 year 5 days ago #356729

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
<?php $colspan = 4; ?>

en
<?php $colspan = 5; ?>
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

Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 3 days ago #356751

Bonjour,

Dans les différentes vues et emails, il y a du code qui modifie dynamiquement le colspan en ajoutant automatiquement +1 pour chaque champ de la table "produit" qui est affiché. Par exemple, dans order / invoice:

			if(!empty($productFields)) {
				foreach($productFields as $field){
					$colspan++;
?>
								<th class="hikashop_order_item_name_title title" ><?php
									echo $this->fieldsClass->getFieldName($field);
								?></th>
<?php
				}
			}
Et dans le preload des emails:
if(!empty($fields)){
			foreach($fields as $field){
				$texts['FOOTER_COLSPAN']++;
				$texts['CUSTOMFIELD_NAME'].='<td class="hika_template_color" style="border-bottom:1px solid #ddd;padding-bottom:3px;text-align:right;font-size:12px;font-weight:bold;">'.$fieldsClass->getFieldName($field).'</td>';
			}
		}
Donc normalement, aucune modification ne devrait être nécessaire pour que le colspan soit correct. Je n'ai d'ailleurs pas le problème de mon coté.
Auriez-vous personnalisé les emails avec une vieille version d'HikaShop qui ne gèrait pas cela correctement ?

Please Log in or Create an account to join the conversation.

  • Posts: 39
  • Thank you received: 4
  • Hikashop Business
1 year 2 days ago #356810

Bonjour,

lorsque j'avais la version Starter et Essential, je personnalisais les mails order_creation_notification.html.php, order_status_notification.html.php et user_account.html.php en allant dans media > com_Hikashop > mail. Je ne faisais qu'ajouter du texte dans des balises <p>. Je ne touchais pas au code.

Cordialement

Please Log in or Create an account to join the conversation.

Time to create page: 0.093 seconds
Powered by Kunena Forum