8768 sujets

Développement web côté serveur, CMS

Bonjour,

Je suis en train de réfléchir à la création d'un bon de réduction pour mon site. Je vois le truc, sauf que je me demande si on peut interroger une session.

Exemple, je vend des fruits et des légumes. Remise de 20% sur les fruits. Le client met dans son panier :
- carottes
- bananes
- navets
- cerises

4 articles dans le panier, les bananes et les cerises peuvent bénéficier de la remise à -20% si code promo taper.

Il faut que lorsque que le client tape la recherche du bon de réduction, ça aille chercher dans les articles du panier et non dans la bdd ?

Bref, je suis un peu perdu, dans mon projet. Je pense mettre le code promo dans la base articles. Si code promo sur cerises, les -20% s'appliquent aux cerises si activation de code promo.

Ma difficulté est que la remise s'applique qu'à certains articles du panier et pas à la totalité. Il faut que le programme aille chercher la remise par référence.

Mes articles dans le panier sont stockés dans une session.

Merci d'avance, de vos conseils, de votre point de vue. Smiley smile
Modifié par Tintin75 (30 Jan 2017 - 10:03)
Bonjour.

Quelque chose me dit que cette histoire de primeurs, c'est un exemple...

De mon point de vue, peu importe comment le code promo est activé, la question est de savoir comment distinguer les fruits (et légumes) qui bénéficient de la promo et ceux qui n'en bénéficient pas...

À partir de là, plusieurs questions se posent : si il y a une promotion, le rabais est-il le même pour tous les produits, et est-ce que suivant la date de la promotion, les articles concernés sont-ils les mêmes ?

La façon la plus simple pour distinguer un autre article affectée par une promotion d'un autre article est, sans doute de rajouter une colonne à la base article, qui pourrait s'appeler 'promo', qui, suivant l'article, serait à 'oui' ou à 'non', valeur qui serait récupérée en même temps que les autres informations sur l'article...

Mais ça c'est dans le plus simple des cas de figure...
Merci de ta réponse.

Je pense rajouter une colonne dans ma table avec Promo. En général la promo est de 20 %, sur les articles.

Je bute pour faire le calcul des articles promo et non promo dans mon panier. Il faut faire le tri entre les lignes promo et non. Si j'ai 5 lignes et j'ai que 2 lignes promos, il faut que ça fonctionne Smiley eek

Explication Promo d'un fournisseur sur une gamme d'articles. Le taux de remise est toujours le même. Il faut juste que j'indique à la référence si il y a une promo ou nous sur la référence. Là, j'indique dans la table le taux de remise sur l'article. Mais je fais comment pour appliquer le taux de remise sur les différents articles ? Promo non promo.
Modifié par Tintin75 (30 Jan 2017 - 14:01)
Bonjour,

J'ai un petit peu de mal à cerner où se situe ton problème.

Dans le cadre de e-commerce, déjà si t'as bien rangé tes articles, les cerises doivent être considérées comme des fruits et tes navets comme des légumes.

A la saisie de ta promo en Bdd, quand tu l'affecte, j'imagine que tu as le choix de l'affecter à un groupe de produits (les fruits) ou à un produit unique, non ? Ben oui, les fraises en cette saison n'ont pas de promo car hors saison.

Dans ton panier, qui n'est ni plus ni moins qu'un simulateur de facture. Théoriquement, lorsque l'utilisateur y insère une ligne (aller pour l'exemple disons 3 bananes), ton panier réagit comme tel :
objet référence: XYZ
Libellé: Banane
Quantité: 3
Prix unitaire: 1,00
Promo: 20%
Ca c'est les données qu'il récupère en Bdd. Ensuite ton panier effectue le calcul suivant :
Colonne PU * Qté - Remise = Prix produit HT

C'était la première ligne. Ensuite ton client ajoute des navets. Rebelotte:
Réf AHG, Navet*2, PU=1,47, Promo/remise: néant
Total de la ligne HT = 2 * 1,47 - 0
Fin de la seconde ligne.

Donc théoriquement, ton panier aura 6 colonnes (sans compter boutons +/- et del) et te sortira un total H.T.

Ensuite tu appliqueras les remises "globales" (coupon de réduction, avoir etc), calcul des TVA + transport + ce que tu veux et tu obtiendras un TTC.

Je ne fais que décrire là un comportement normal. Du coup tu comprendras que j'ai du mal à cerner ta difficulté.

PS: en relisant je me dis que c'est peut-être justement que tu cherches à calculer cette éventuelle remise sur ton total global HT au lieu du total par ligne, non ?
Tintin75 a écrit :

Je pense rajouter une colonne dans ma table avec Promo. En général la promo est de 20 %, sur les articles.
Perso je mettrais l'indication dans le libellé du produit.

Ainsi si le client n'a aucun article en promo dans son panier, je ne perds pas la largeur de cette colonne qui sera vide.

Sinon j'indique une étiquette rouge flashy genre Promo -20% ou encore plus explicite
"Vous bénéficiez actuellement d'une remise de 20 % sur cet article"
Modifié par Greg_Lumiere (30 Jan 2017 - 14:17)
J'explique, c'est simple dans mon esprit mais je peux comprendre que l'on est du ma à me suivre.

Le client ajoute 4 articles à son panier, on a donc 4 lignes. Sur ces 4 lignes, 2 peuvent avoir 20 % de remise via un code promo.

Je tape 20% dans ma ma ligne dans ma bdd avec les cerises par exemple. Par contre les navets eux n'on pas droit à 20 %.

Le hic, c'est d'appliquer la remise de 20% au 2 lignes et non au 4. Il faut que la remise s'applique aux 2 bonnes lignes. Je fais comment pour indiquer au serveur qu'il faut qu'il applique la remise à la ligne 2 et 3 ?

Je viens de tester la partie calcule en test et ça fonctionne. Les données du panier sont stockées en sessions et non dans la bdd. Smiley rolleyes
Modifié par Tintin75 (30 Jan 2017 - 14:23)
Mais tu ne calcul pas tes totaux ligne par ligne ?

A la ligne Cerise, ton total HT prend déjà en compte cette remise.
A la ligne navet, il n'y a pas de remise donc tu obtiens un HT aussi.
Ces sous-totaux tiennent donc compte et de la remise et de leur quantité.

Après tu passes au calcul de la TVA. Ce calcul se base sur tes totaux HT ligne / ligne tu n'a donc plus à te soucier des remises par produit.

http://codepen.io/greglumiere/pen/vgpeZZ
Merci, j'ai le total des par ligne.

4 kg de cerise = 30 €
3 Kg de tomate = 12 €

C'est fort ton code Smiley prie

Figure toi, que j'avais pas vue le truc sous cet angle !!!!
Modifié par Tintin75 (30 Jan 2017 - 14:39)
Tintin75 a écrit :

Figure toi, que j'avais pas vue le truc sous cet angle !!!!


J'en ai bien l'impression, oui ! Smiley biggrin
Merci Smiley smile

Je crois que je suis sur la bonne piste dans mon affaire ... Smiley lol
Modifié par Tintin75 (30 Jan 2017 - 16:25)