IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Gérer la mise à jour des prix d'un site e-commerce


Sujet :

Symfony PHP

  1. #1
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut Gérer la mise à jour des prix d'un site e-commerce
    Bonjour les amis,

    je me demande avec quel modèle et comment gérer la mise à jour des produits pour un site d'e-commerce.
    les commandes sont reliées à des produits.

    par exemple, si on met un jour le prix d'un produit ou alors qu'on supprime un produit.
    les anciennes commandes vont donc être affectées !

    J'ai bien des idées mais je ne sais pas si c'est des bonnes pratiques alors je voudrais avoir l'avis de connaisseur...

  2. #2
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    La réponse est dans la question, les clients doivent pouvoir avoir accès à leurs anciennes commandes, donc supprimer totalement les produits de la bdd n'est pas une bonne idée, il suffit de les flagger afin qu'ils n'apparaisse plus dans le shop, avec un champ "visibility" en bool par exemple.

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    ou utiliser la même approche que pour une facture : les tables factures et détails factures ne sont reliées à aucune autre table, tout est en dur (pour des questions d'inaltérabilité, aucun risque de faire un update dessus...).
    Dès qu'un élément engageant les parties devient définitif, tu peux très bien l'isoler du reste des process de ton site.
    Par ailleurs avec les nouvelles lois anti-fraude cette approche est fortement préconisée car elle permet de générer facilement des clés de signature (hash) tenant compte de la position d'un enregistrement par rapport aux autres (aucune rupture de continuité)

  4. #4
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    @Sodium,
    ok pour la suppression et dans le cas d'une mise à jour du prix ?

    @rawsrc,
    ok mais techniquement tu fais comment ? quoi comme modèle relationnelle ?

    par exemple, je crée une table old_product et je relie la commande qui a été acté et signé avec cette table ?
    c.a.d les produits de la commande signé, je les insères dans old_product et je les relies à cette commande. c'est une bonne pratique ?



    ma question porte aussi pour une suppression d'un produit, qu'une mise à jour d'un prix entre les anciennes commandes et les nouvelles....

  5. #5
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    Pour les mises à jour de prix le mieux serait probablement de stocker le prix payé par le consommateur dans des tables factures au moment de la commande, mais l'idéal serait probablement de garder une trace de toutes les modifications de prix de l'article dans le temps, ne serais-ce que pour des besoins statistiques.

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    tu dois raisonner en concept de stockage froid. C'est des tables (copies DDL des tables d'activité pour la plupart) qui figent tout à un moment donné. L'intérêt de ces tables c'est qu'elles sont déconnectées et ne possèdent aucun droit en modification et suppression.

  7. #7
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    merci pour vos réponses.

    @rawsrc,

    à chaque modification de prix :
    (1) il faut créer une copie de la table ? (ça risque pas d'avoir X tables...)
    (2) modifier le prix de la table en cours

    après, comment doctrine va savoir ou allez voir dans quelle table ?

    je ne trouve pas grand chose comme info à ce sujet sur le net..

  8. #8
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    non, à chaque fois qu'un document est définitivement validé, tu le stockes dans la table très longue durée et cet enregistrement fait foi. Les autres tables (prix, catalogues...) continuent leur vie. Tu peux y faire autant de modifs que tu veux, le plus important c'est que les informations relatives aux engagements fermes ne soient plus modifiables.

    Après pour ce qui est de doctrine, je ne pourrais pas t'aider, je dois t'avouer que les ORM me filent des boutons. J'utilise une autre approche : je pose la structure de mes ressources SQL (aussi complexes soient-elles) et j'ai un système qui me remplit uniquement les parties dynamiques selon les règles que je définis.

  9. #9
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    Pour chaque modification de prix, tu crées une entrée dans une table de mises à jour de prix. Doctrine traite ça comme n'importe quel entité, c'est une table avec le nom du produit, code barre, date, prix, etc.

  10. #10
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    ok merci pour vos réponses

    @sodium,
    peux tu me décrire les étapes, j'ai du mal à voir le principe.

    disons qu'on a des commandes passées
    une table produits
    et de futur commandes donc...


    je modifie le prix d'un produit, et donc ? techniquement il faut faire quoi ?

  11. #11
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    Je ne vois pas ce qui te pose tant problème en fait. Tu crées une nouvelle table avec toutes les informations dont tu as besoin (nom du produit, code barre, nouveau prix, date...) et tu fais une insertion dedans chaque fois que tu fais une mise à jour de prix, ce n'est pas compliqué que ça.

  12. #12
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    @sodium,


    j'ai une table produit.

    je fais une modif de prix donc dans la nouvelle table produit2, j'enregistre le produit avec le nouveau prix et donc les futurs commandes auront un lien avec les produits non modifé de la table produit et un lien vers produit2 si c'est un produit avec un code modifié donc -< j'imagine déjà la confusion que ça peut avoir

    ensuite si encore plus tard, je dois modifier encore modifier le prix je dois refaire une table produit3 ?? ...... je vais jamais m'en sortir....


    moi je trouve que c'est pas compliqué d'expliquer avec des cas concrets qu plutot être vague, sans exemple...
    (ou alors c'est moi qui est débile... tout est possible )

  13. #13
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    Mais pourquoi veux-tu faire plusieurs table o____o
    Tu fais UNE table de changements de prix, quand un produit change de prix tu rajoutes un ligne dedans.
    Encore une fois je veux bien t'aider mais je ne comprends pas ce que tu ne comprends pas.
    La nouvelle table n'est pas une copie de la table produits, c'est juste un log, un historique des changements de prix de tous les articles.

  14. #14
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    non désolé je ne comprends pas... laisse tomber !

Discussions similaires

  1. Mise à jour des articles sur un site avec Java (JEE)
    Par zikyoubi dans le forum Développement Web en Java
    Réponses: 13
    Dernier message: 25/09/2013, 22h06
  2. Mise à jour des prix
    Par Salsaboy60 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 17/01/2012, 10h21
  3. Réponses: 10
    Dernier message: 03/03/2009, 11h46
  4. [JTable] mise à jour des données
    Par tripop dans le forum Composants
    Réponses: 3
    Dernier message: 04/02/2009, 18h52
  5. Faciliter la mise à jour des données sur mon site
    Par Pau dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 23/01/2007, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo