THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

Voici un extrait du wiki

Les déclinaisons permettent de définir les différentes versions d'un même produit. Toutes les déclinaisons d'un même produit sont vendues au même prix. Le coloris est une des déclinaisons les plus communes. Souvent, la couleur n'influe pas sur le prix mais il est nécessaire que le client la choisisse et quelle soit mentionnée dans le panier, sur la commande et la facture.

C'est très dommageable !!!

Ceci me pose un gros problème, puisque thélia ne me permet pas d'avoir deux produits portant la même référence et une déclinaison différente.

J'ai, pour des produits de même référence, des prix différents par taille.
J'ai fait le tour des sites marchands et je souhaite m'aligner sur ce qui se fait  sur la majorité des sites qui vendent les mêmes produits.

Dans mon cas les couleurs ont généralement des numéros de référence différents, mais ce n'est pas le cas des tailles, qui ont une référence unique en magasin et sur les sites de commerce que j'ai visité.

Je vois qu'il existe dans la base une table nommée stock dans laquelle vous faites le lien entre les produits et déclinaisons.

Cette table contient les quantités en stock par déclinaison.
Je propose que lorsqu'un article est décliné, cette table contienne sa quantité (c'est déjà le cas), le prix , prix promotionnel, code promo, poids, etc...
Certaines tailles peuvent être en promo.

et qu'elle soit indexée (par reference ou id article,...) car elle peut-être contenir quelques milliers de lignes.

Est-ce prévu prochainement, en tout cas je l'espère.
Merci

Last edited by reinette (09-03-2009 18:40:40)

Offline


Salut,

Je ne sais pas si ce que tu espères est prévu dans les prochaines versions mais en attendant :

- Il existe un plugin "declibre" te permettant de créer une déclinaison avec variation de prix.

- j'ai le projet de créer un plugin permettant de gérer plusieurs déclinaisons faisant varier le prix du produit : je finalise le plugin en cours (devis) et m'attèle à cette fonctionnalité dont j'ai besoin impérativement et qui est une demande récurrente sur le forum (livraison possible : mai)

@+

jb

  • manu
  • faï tot petar miladiu

Offline


l'extrait du wiki que tu as pris n'est pas à jour (donc il faut le mettre à jour, je le ferais quand j'aurais un peu de temps).

Donc à l'heure actuel, tu peux décliner un produit et donc changer son prix.

Pour chaque déclinaison tu peux attribuer en fait un surplus à ta déclinaison.

Ex :
J'ai un vêtement dont le prix le moins chers est de 10€.
j'ai les déclinaisons : S,M,L,XL
S = 10 €
M = 12€
L = 15€
XL = 18€

Je donne donc sur ma fiche produit prix : 10€
ensuite pour chaque déclinaison j'aurais :
déclinaison | stock | supplément
S | mon stock | 0
M | mon stock | 2
L | mon stock | 5
XL | mon stock | 8


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Cher Manu,
Je n'ai pas trouvé comment modifier le prix par déclinaison
Par contre, il y a quelque chose qui me chiffonne, pourquoi choisir de mettre la différence par rapport à un prix de base ?
Ceci qui oblige à calculer toutes les différences...!!!!!!!

par exemple
je crée un article housse de couette
Je crée une déclinaison taille de housses
150x200 , 200x200, etc sont mes déclinaisons
Les prix sont très différents d'une taille à l'autre.

Je ne me voie pas obliger la personne qui entre les prix à faire autant de soustractions que de produits à mettre en stock.

Il me faut une autre solution, avoir pour chaque produit décliné (id article + id déclinaison) une quantité, un prix, un prix réduit, un code promo,un poids, ....des informations qui sont actuellement dans la table produit.

J'envisage de modifier ma base et les programmes, mais cette solution ne m'enchante pas.
Avez vous une meilleure solution ?

si je modifie mes références (ref + declinaison), il me faudra rattacher tous ces produits d'une manière ou d'une autre, et cela je ne voie pas trop comment, à moins de créer une rubrique par produit décliné, ou de multiplier les caractéristiques, une centaine !!!!

A mon avis, en évitant une solution logique, on crée de la complexité.
J espère être entendue.

merci

Last edited by reinette (09-03-2009 21:58:13)

Offline


Salut manu,
j'ai pris ton exemple et je l'ai mis dans la rubrique gestion de déclinaison sur theliadoc.
Je n'ai pas modifié la phrase plus haut, de reinette, car, c'est tout bète, je ne l'ai pas trouvée....

Offline


Reinette,
je te propose cette solution :
tu fais l'exemple proposé par manu, mais effectivement, tu mets le prix sans faire la différence.
Puis, tu règles le problème à l'affichage
au lieu de faire afficher #prixminimum+#différence, tu fais
afficher #priminimum+(#prixdeclinaison-#prixminimum)
qu'en penses tu?

Offline


Bonjour Papilou,
Je pense que pour un problème simple, il faut une réponse simple.
Lorsque l'on fait une gestion de stock professionnelle, on met les prix des articles, et non leur différence par rapport au moins cher.

Je pense que faire du rafistolage peut conduire à un codage complexe et difficilement compréhensible et maintenable.

Offline


Bonjour reinette,
Oui oui, tu dois effectivement avoir raison puisque tu le dis.

Pour ma part, lorsque j'ai appris l'informatique, en 1979 il est vrai, mais je pense que cela n'a pas changé depuis, j'ai appris que la construction d'une table dans une base de données, quelqu'elle soit, devait passer par un numéro d'identification, une clé primaire, un index, une référence, enfin appelle le comme tu veux, mais ceci afin d'identifier un et un seul article.

Or toi tu as des articles différents qui ont le même numero de référence. Si moi j'avais fait cela dans mes cours j'aurais eu zero pointé.

Et toi tu dis "c'est pas moi qui fait une erreur, c'est thelia...... et j'espere que je serai entendu"

Posons nous cette question : "Est-il nécessaire de modifier thelia à chaque fois qu'une personne bien intentionnée ferra une erreur de comception de base de données ? "

Offline


j'apprécie l'aide que vous cherchez à m'apporter, je pense que thélia est bien fait,
et aussi que l'on peut repousser ses limites.
Peut-on discuter de ces limites ?.

J'ai développé plusieurs bases de données complexes, dans d'autres langages . J'ai appris qu'il faut faire des choix et que parfois ce n'est pas tout à fait satisfaisant.

Thélia a fait un pas vers la gestion des déclinaisons par l'ajout de surplus.

Mais dans mon cas les stocks ne sont pas gérés de cette manière et je dois faire avec l'existant, j'ai des centaines d'articles déclinés portant la même référence et qui doivent être rattachés.

certaines déclinaisons d'un produit peuvent bénéficier d'une réduction.

mon problème est de trouver rapidement toutes les déclinaisons d'un produit dans une table volumineuse.
Je pense rajouter l'indexation de certaines colonnes de tables, dans ma base ce qui ne modifie pas la programmation, car c'est géré au niveau de MySQL .


Je propose une solution, qui est déjà esquissée dans la bdd actuelle, au niveau de la table stocks(constituées de lignes ref+decli), en y ajoutant le prix de chaque déclinaison etc.. .

Une autre solution est de permettre d'avoir dans la base plusieurs articles portant la même référence, mais je la trouve moins performante, car il faudra ajouter des tests sur d'autres critères.

Last edited by reinette (10-03-2009 12:36:13)

Offline


Il n'y a pas de problème, je ne suis pas faché.... rassure toi.
Par contre discutons, tu as raison, amélioration de thélia.

Pour améliorer une application comme thelia, il y a,en gros, 2 solutions.
La première, est de faire des modification dans le différents programmes, d'ajouter des plugin, pour que chacun y trouve son compte. C'est souvent ce qui est fait dans ce genre de développement communautaire, et le risque de de faire une machine à gaz, super performante, mais inutilisable auquelle plus personne, sauf les développeurs, ne comprennent quelque chose.
Ce fut ma premiere impression, lorsque l'on m'a demandé de travailler avec thélia. Mais rapidement, je suis revenu sur cette premiere impression, et suis un peu rassuré, car en plus de la communauté, il y a une société (française) qui est derriere.

La seconde, c'est de regarder thelia de façon plus théorique, et de voir l'utilisation qu'en font ceux qui développent avec.
Je vais te dire, ce que j'en pense, et ce qu'a mon avis il convient d'améliorer dans ton cas. (c'est la premiere question que j'ai posée en arrivant dans le forum).
Thélia, me semble parfait ou presque dans sa partie paiement, panier, suivi de commande... le coté commercial et, cela n'engage que moi, est trés bien fait.

Pour la base de données des produits c'est autres chose. Là, ce n'est pas abouti, et là, cela ressemble à ma fameuse usine a gaz. (mais ce n'est pas facile pour faire mieux, je l'avoue)

Raisonons :
Dans une base de données, il n'y a que 2 types de relations entre entitées(entitées n'est pas encore une table, mais cela y ressemble).
Une entité c'est ce qui définie un et un seul article.
exemple :
entité client (définie un et un seul client) et entitées facture(définie une seule facture)
la relation qui existe entre c'est deux tables est un relation de type CIF(contrainte d'intégrité fonctionnelle) qui dit, tout simplement/
Un client peut avoir au minimum une facture dans la base (voire parfois 0), et au maximum N (un certain nombre indeterminé).
Une facture, n'appartient qu'a un et un seul client.

Ca, THELIA le fait trés bien.

Supposons maintenant, que,je vende des produits de saison, dont le prix varie tous les jours, et qui ne sont pas conditionnés selon un embalage quelconque, donc qui ne possèdent pas de numéro de référence unique (c'est quelque chose qui ressemble à ton cas).
Donc, un client achète un ou plusieurs produits selon une quantité différente pour chacun, selon un prix du jourdifférent pour chacun, à une date donnée.

Dans ce cas, la relation qui existe entre l'entité client et l'entité produit est du type N'aire, ce qui veux dire :
Un client peut acheter au minimum 1 produit et au maximum N.
Un produit peut être acheté par au minimum 0 client ou N clients au maximum.
evidamment, selon des prix et quantité différente a chaque fois.

Donc dans ce cas là, il nous faudra construire une table intermédiaire entre la table clients et la table produits. Cette table intermédiaire devra être composé à partir de la clée primaire de la table client, de la clée primaire de la table produit, de la quantité achetée, du prix du jour, de la date du jour .

Ca thélia ne sait pas faire. (et moi non plus pour l'instant, mais je me soigne).

La question que je pose est la suivante :
Comment resolvons nous les relations de type N'aire dans la base des produits THELIA?

Pour palier un peu, à ce problème, il y a les caractéristiques et le déclinaisons...... Mais ce n'est pas exactement ce qu'il faut.... La preuve, c'est difficile pour toi, car tu as besoin de champs supplémentaires dans les déclinaisons, (si je comprends ton problème).

Je te prie de bien vouloir excuser, ce ton un peu trop professoral que je mets dans mes explications, ce long post, mais je préfère, être trop clair que pas assez..... et ne n'est pas certain... en plus.

Voila le type de discution que j'aimerai avoir, avec vous tous, voila le type de post que j'aimerai lire, et pas des posts qui rouspètent, qui exigent, et qui ne sont la que parce que le gens on besoin, mais pas pour faire avancer le projet.....
Je ne dis pas cela pour toi, car j'ai vu d'autres posts ou tu participes efficacement.
Amicalement
Papilou

  • manu
  • faï tot petar miladiu

Offline


Donc dans ce cas là, il nous faudra construire une table intermédiaire entre la table clients et la table produits. Cette table intermédiaire devra être composé à partir de la clée primaire de la table client, de la clée primaire de la table produit, de la quantité achetée, du prix du jour, de la date du jour .

Ca thélia ne sait pas faire. (et moi non plus pour l'instant, mais je me soigne).

Heureusement que thelia sait le faire, sinon on serait pas dans la...
c'est table commande, venteprod + ventedeclidisp lorsque des déclinaisons entrent en jeux.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Oui, je me doutais bien qu'en prenant cet exemple, quelqu'un comprendrait que nous parlions ici de la table commandes.
C'est exact pour cet exemple, mais prenons cela sur le plan théorique ok?

Une autre façon de poser la question, c'est, peut-être de demander? comment créer des tables intermediaires liées aux produits que je vends.

Pour cela, reprenons, manu, l'exemple d'une bibliotheque.
Je vends des livres, je veux les relier a une table auteurs.
Un auteur ecrit au moins un livre et au plus un certain nombre.
Et un livre est ecrit par un auteurs au minimum et plusieurs auteurs au maximum.
Dans ce cas, la table commande de thelia ne peut pas grand chose... OK
Il faut bien que je crée une table intermediaire entre table auteurs et table livre.
Cette table est constituée par la clef primaire de la table auteurs et pas la clef primaire de la table livre.(plus eventuellement, selon le vrai problème posé, d'autres champs possible)

Voila le sujet théorique que je pose, et je vous demande, est-ce possible?
si oui comment?
bien entendu, sans ajouter de plugin, car je sents bien que la solution est la.

Last edited by Papilou86 (11-03-2009 13:03:47)