osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Nomenclature produits
JeanLuc
posté 17 Jun 2003, 15:35
Message #1


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3526
Inscrit : 12-June 03
Lieu : Montpellier
Membre no 1239



Bonjour, je suis un petit nouveau dans le monde d'OSCommerce.
J'ai installé la Creload qui marche très bien sous Windows XP avec un serveur Apache en local.
J'aimerais savoir si il est possible (peut-être cela a déjà été fait? biggrin.gif ) de gérer des nomenclatures dans la base de données...
Je m'explique:
Supposons que je vende du mobilier en kit.
Nous aurions par exemple une catégorie de produit "table de cuisine" dans laquelle on trouve :
une table grande prête à monter (1 plateau grand et 4 pieds noirs);
une table petite prête à monter (1 plateau petit et 4 pieds noirs); etc...
Une sous catégorie "accessoires" dans laquelle on trouve:
un plateau grand pour table;
un plateau petit pour table;
un lot de 4 pieds noirs pour table;
un lot de 4 pieds chromés pour table;etc...
L'idée est de pouvoir acheter indifféremment des produits complets constitués de différents accessoires ou des accessoires individuels.
L'ensemble serait listés dans la table "Produits" de mySql; en modifiant le prix des accessoires, on modifierait automatiquement le prix des produits complets (addition de tous les accessoires qui le composent).
Quelqu'un peut il m'aider à gérer cela y compris à partir de l'interface admnistrateur?
Quel sont les fichiers qui entrent en jeux?
Merci d'avance de vos réponses... blush.gif
Go to the top of the page
 
Gnidhal
posté 17 Jun 2003, 15:44
Message #2


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9103
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



Bonjour,
As-tu fouillé dans le réservoir à modules sur www.oscommerce.com ?
va voir dans downloads et contributions...
Il me semble qu'il y a quelque-chose d'approchant.
En tous cas, que ça soit exactement ou pas ce que tu veux, ça te fara un bon point de départ pour une adaptation.
Bon courage...


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
JeanLuc
posté 18 Jun 2003, 08:51
Message #3


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3526
Inscrit : 12-June 03
Lieu : Montpellier
Membre no 1239



Désolé, soit c'est mon anglais qui est mauvais (c'est fort possible blush.gif ), soit il n'y a rien même d'approchant à mon problème dans les contributions de oscommerce.com.
Il y a essentiellement des améliorations de visualisation de la base ou des modules facilitant sa gestion mais rien qui concerne des changements dans la structure même de la base.
Comme je suis un petit nouveau, pouvez-vous m'indiquer par quel bout prendre ce problème et quels sont les fichiers qui devront être modifiés?
Merci pour vos réponses... confused.gif
Go to the top of the page
 
JeanLuc
posté 19 Jun 2003, 13:29
Message #4


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3526
Inscrit : 12-June 03
Lieu : Montpellier
Membre no 1239



Pour gérer une nomenclature dans la DB, je pense que l'idée est de créer une table "composer" qui contiendrait 3 champs:
1 champ "Composé" avec clé étrangère IdProduit de la table Produit;
1 champ "Composant" avec clé étrangère IdProduit de la table Produit;
1 champ "prix" avec le prix du composant.
Chaque ligne identifierait l'association d'1 composant avec 1 composé et cela autant de fois qu'il y a un composant pour chaque composé.
Oui je sais c'est pas facile à expliquer .
Ensuite on autorise à "null" le champ prix de la table "produit" ce qui permet de savoir si le produit est composé ou non d'autre(s) composant(s).
A chaque fois que l'on désire le prix d'1 produit:
soit le prix est indiqué dans la table "produit" et il s'agit d'un composant;
soit le prix est à "null" et on doit exécuter une requête pour calculer le prix dans la nouvelle table "composer" du style:
"select sum(c.prix) from composer c where c.composé = IdProduit".
(J'ai pas testé la requête, la synthaxe doit pas être terrible... blush.gif ).
J'en suis là de mes réflexions.
Maintenant quelques questions (c'était trop beau...):
Cela vous paraît-il faisable?
Dans quels fichiers se trouvent les requêtes pour obtenir les prix (dans le catalog et dans l'admin)?
Est-ce compatible avec les promotions?
Voila pour l'instant... confused.gif
Merci d'avance pour vos réponses.
Go to the top of the page
 
frenchgre
posté 19 Jun 2003, 13:37
Message #5


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 111
Inscrit : 6-June 03
Lieu : uk et france (64) surtout france !
Membre no 1222



Un truc simple qui marcherai peut etre (ça dépend de tes besoins)

c'est de mettre le plateau de table en article et les diférentes formules de pieds en options

ou l'inverse !

c'est peut etre pas ideal, mais c'est simple puisque le systeme existe déja !

mais ptet ben que c'est pas asez evolue pour tes besoins (probable) dans ce cas là essaie de regarder par dessus l'épaule de Mr Ikea pour voir comment il fait lui ! rolleyes.gif

bon courage ! laugh.gif


--------------------
"s'il n'y a pas de solution... c'est qu'il n'y a pas de problème"
- Proverbe Shadock

pscl
Go to the top of the page
 
JeanLuc
posté 19 Jun 2003, 16:16
Message #6


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3526
Inscrit : 12-June 03
Lieu : Montpellier
Membre no 1239



Effectivement, les options ne correspondent pas d'après ce que j'en ai compris...
D'abord elle ne sont pas gérée en stock (dans l'exemple pré installé, une carte graphique MATROX peut être commandée de 16MB ou de 32MB, on retire le même objet du stock!!!! (bonjour la gestion du stock et pour savoir ce qui est dispo).
On ne peut pas vendre une option toute seule.
A moins qu'il y ai une subtilité que je n'ai pas saisie...
Go to the top of the page
 
JeanLuc
posté 25 Jun 2003, 12:42
Message #7


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3526
Inscrit : 12-June 03
Lieu : Montpellier
Membre no 1239



QUOTE
Pour gérer une nomenclature dans la DB, je pense que l'idée est de créer une table \"composer\" qui contiendrait 3 champs:  
1 champ \"Composé\" avec clé étrangère IdProduit de la table Produit;  
1 champ \"Composant\" avec clé étrangère IdProduit de la table Produit;  
1 champ \"prix\" avec le prix du composant.

Petite rectif pour la structure de la table "COMPOSER" décrite plus haut: idea.gif
1 champ "IdComposé" avec clé étrangère IdProduit de la table Produit;
1 champ "IdComposant" avec clé étrangère IdProduit de la table Produit;
1 champ "Qte_de_composant" qui indiquerai le nombre de composant pour le composé concerné.


QUOTE
A chaque fois que l'on désire le prix d'1 produit:  
soit le prix est indiqué dans la table \"produit\" et il s'agit d'un composant;  
soit le prix est à \"null\" et on doit exécuter une requête pour calculer le prix dans la nouvelle table \"composer\" du style:  
\"select sum(c.prix) from composer c where c.composé = IdProduit\".  
(J'ai pas testé la requête, la synthaxe doit pas être terrible...  ).


Egalement pour la requête mais c'est là que çà coince; on lance la requête si le prix du produit demandé est à null: idea.gif
SELECT sum(p1.prix*c.qte)
FROM TABLE_PRODUITS p1, TABLE_COMPOSER c, TABLE_PRODUITS p2
WHERE p1.IdProduit = c.IdComposé
AND c.IdComposant = p2.IdProduit
and not exists (select *
FROM TABLE_COMPOSER c, TABLE_PRODUITS p2
WHERE p2.IdProduit = c.IDComposé
AND c.IdComposant = p1.IdProduit
AND (p2.prix is null))
Cette requête permet de calculer le prix d'un produit composé si aucun de ses composants est lui aussi un composé.
Il faut donc prévoir une boucle dans le code php pour additionner les prix au fur et à mesure que l'on rencontre un produit composé....
Et là j'ai besoin d'aide! blush.gif

Cela vous paraît-il faisable?
Dans quels fichiers se trouvent les requêtes pour obtenir les prix (dans le catalog et dans l'admin)?
Quelqu'un peut-il m'aider pour placer la bocle au bon endroit?
Voila pour l'instant...
Merci d'avance pour vos réponses. wink.gif
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 21st May 2013 - 11:00
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)