Site e-commerce

Recherche d'un "prof particulié" pour conseils/questions

a marqué ce sujet comme résolu.

Bonjour à tous :)

Je suis en train de développer un site e-commerce (dont j'expliquerai les détails à ceux que ça intéresse :p). Je n'ai pas le droit d'utiliser de framework et le tout doit être architecturé en MVC. Je ne m'occupe que de la partie programmation (le design/intégration et marketing étant gérés par d'autres).

Je recherche une personne assez expérimenté pour me superviser et avancer avec moi. Je pourrais bien-évidemment rémunérer (faudrait en discuter pour savoir comment ?)

Grossièrement les fonctionnalités dont j'ai besoin sont :

Côté Front office :

  • Consultation des pages
  • Consultation d’articles et produits classés en catégories
  • Prise de contact
  • Création de compte
  • Consultation et modification du panier
  • Consultation, modification et suppression du compte client
  • Paiement en ligne sécurisé

Côté Back office :

  • La création, activation, suspension et suppression d’un compte client
  • La création d’articles et produits classés en catégories
  • La modification des tarifs et la mise en place d’offres promotionnelles

Et au minimum les pages suivantes :

  • Page de liste des articles
  • Page de création/modification/suppression d’articles/catégories/produits
  • Page de création/modification de la facturation clients
  • Page de gestion des stocks
  • Page de consultation des ventes réalisées

Je suis en train de développer un site e-commerce (dont j'expliquerai les détails à ceux que ça intéresse :p). Je n'ai pas le droit d'utiliser de framework et le tout doit être architecturé en MVC.

Pour faire ce genre de chose de manière professionnelle, tu peux t'arrêter là. Tu vas droit dans le mur. Ou alors ta définition de "framework" est mauvaise, je ne sais pas.

Réaliser un site e-commerce est déjà un boulot de dingue quand on a un bon framework sur lequel s'appuyer et une conception très propre ; alors sans framework…

Bonjour à tous,

Merci de m'avoir répondu :)

pourquoi cette limitation?

C'est simple, je dois juste répondre à des contraintes qui ont été mis en place pour un cadre pédagogique. Le code doit venir de nos petites mains, je suis dans un sujet d'école en faite j'ai oublié de préciser.

En fait de manière plus générale quel est le contexte? les tenants/aboutissants? les deadline?…

C'est un projet d'école, la deadline étant fixé à mi-mars. On avait le choix de prendre un sujet mais qui devait répondre à certains critères "Site e-commerce composés minimum de deux gammes de produits". Le sujet étant traité par groupe avec dedans un dev ( moi ) un designer et des marketeurs, on peut a terme le développer de manière réel mais pour l'instant on a des contraintes.

Bon, reprenons tout ça calmement.

La première question à laquelle tu dois répondre est celle-ci :

Quelle est ta définition de framework ? Est-ce que tout type de framework est interdit1, ou est-ce que c'est simplement les frameworks e-commerce qui sont interdits ?

Ensuite, parlons un peu du contexte. Je vois que tu as une deadline mi-mars, c'est-à-dire dans deux mois et demie. Même en imaginant que c'est un gros projet super important pour tes études (donc avec le temps prévu dans l'emploi du temps pour le gérer) et que tu aies droits aux frameworks hors e-commerce, je ne vois pas vraiment comment tu peux y arriver.

Donc, quelques questions supplémentaires :

  • De combien de temps disposes-tu pour ce projet par semaine ?
  • As-tu des précisions sur le niveau de fonctionnalités et de qualité demandé ? Exemple, la liste des fonctionnalités fournies dans le 1er post, viennent-elles de toi ou est-ce une contrainte du sujet ?
  • As-tu conscience des implications de chacune de tes contraintes les unes par rapport aux autres ?

Front-office

Consultation des pages

En soi, ça ne veut pas dire grand-chose

Consultation d’articles et produits classés en catégories

Quelle différence fais-tu entre "article" et "produit" ?

En admettant qu'il n'y en ait pas, implique : produits, catégories ; page produit, page catégorie. Pour faire simple, on va dire que les catégories ne sont pas hiérarchiques, c'est une simple liste.

Quelles données sont présentes au niveau d'un produit ? (Nom, description, image, prix, …)

Quelles données sont présentes au niveau d'une catégorie ? (Nom, description, image, …)

Prise de contact

Formulaire de prise de contact, c'est con mais c'est pas instantané à faire surtout si tu n'as pas de framework.

Création de compte

Implique : compte client. Quelles informations sont stockées au niveau du client ? Lesquelles sont à demander à la création ? Quelles contraintes sur les différents champs (login / adresse mail / …).

Même en simplifiant au max, tu dois quand même gérer au moins email / identité (nom + prénom).

Consultation et modification du panier

Implique : un panier de produits. Attention aux différents calculs que ça implique (totaux…) et au fait qu'ils doivent être rafraichis en cas de modification du panier.

On va partir du principe que tu n'as aucune taxe d'aucune sorte, aucune forme de promotion d'aucune sorte (fixe ou coupons), aucun frais de livraison, etc… juste une série d'objets. On peut aussi partir du principe que tu n'as aucun historique à gérer et que donc tu n'as pas à te poser des questions comme "Que se passe-t-il si un produit n'existe plus en base mais qu'un client l'a dans son historique ".

Donc en considérant que tu dégages 99% de ce qui doit être géré dans un vrai site e-commerce mais qui n'est pas obligatoire dans ton projet, cette page devient plutôt simple.

Consultation, modification et suppression du compte client

En considérant que tu n'as pas de contraintes légales ici et que le reste est géré de manière simple (cf supra), pas de grande difficulté ici.

Paiement en ligne sécurisé

Attention, point problématique. L'immense majorité des systèmes de paiement en ligne sécurisés vont te poser deux problèmes :

  1. Ils nécessitent un contrat avec le fournisseur pour être utilisés, même en test (un compte Paypal est un contrat).
  2. Ils sont délicats à implémenter à cause des contraintes de sécurité qu'ils embarquent. Les tests sont longs et pénibles dans l'immense majorité des cas;

Vois avec ton équipe et ton prof si tu ne peux pas faire sauter cette partie.

La création, activation, suspension et suppression d’un compte client

Cf supra, ne devrait pas être problématique si pas de contraintes légales et tout simplifié au maximum

La création d’articles et produits classés en catégories

Une fois les produit et catégories bien définis, ne devrait pas être problématique – tant que tu ne cherches pas à faire une interface ergonomique…

La modification des tarifs

Pas très compliqué, à condition de n'avoir aucune contrainte d'historisation des tarifs à cause des commandes déjà passées, ou en cours.

et la mise en place d’offres promotionnelles

Attention, point problématique. Il y a des dizaines de façons de faire des promotions (pourcentage, valeur fixe, à tout le monde, à certaines catégories de clients, sur le produit, sur le produit si le client en achète plusieurs, sur le panier, sur les frais divers (livraison …), en offrant des cadeaux, gestion de kits, de produits qui vont ensemble, …) et chacune d'entre elle pose ses problèmes particuliers. Surtout si tu veux afficher le prix d'origine et le pourcentage de réduction.

Page de liste des articles

Je ne comprends pas ce qu'est cette page.

Page de création/modification/suppression d’articles/catégories/produits

Tu te rends compte qu'en admettant que articles = produits, tu as déjà 6 pages différentes là ?

Remarque, un bon framework te permettrait d'en avoir des standards sans presque aucun effort.

Page de création/modification de la facturation clients

Si "création" = "l'afficher pour l'imprimer", pourquoi pas.

On ne modifie pas une facture. Sous aucun prétexte. On peut modifier la commande (si elle n'est pas finalisée) ce qui modifie la facture. Mais du coup ça implique de gérer un workflow de commande…

Page de gestion des stocks

Attention, point problématique.

En clair : la gestion des stocks dans un site e-commerce est tellement merdique que même les professionnels s'y cassent les dents.

Questions en vrac à résoudre : que se passe-t-il quand un produit n'est plus en stock ? Quand quelqu'un commande le dernier mais qu'il est dans le panier d'autres personnes ? etc.

A voir si tu ne peux pas te passer de ce genre de chose dans ton projet…

Page de consultation des ventes réalisées

Pourquoi pas.


Voilà, j'espère t'avoir donné une meilleur vision de ce dans quoi tu t'engages. Bon courage… et n'hésite pas si tu as des réponses aux questions que j'ai posé.


  1. Ce qui serait d'une stupidité sans nom de la part de ton prof. Parce que ça ne correspond en rien à la réalité des projets une fois les études finies, et que ça t'oblige à passer un temps monstrueux à réinventer la roue. 

Merci de m'avoir répondu !

Quelle est ta définition de framework ? Est-ce que tout type de framework est interdit, ou est-ce que c'est simplement les frameworks e-commerce qui sont interdits ?

Pour moi un framework c'est une structure logicielle qui aide à développer proprement. Il modélise en quelque sorte une architecture de manière "intelligente". Il est bien précisé que tout type de framework est interdit (Symphony - CakePHP - etc… ), de même qu'un CMS (évidemment me direz-vous). Cependant, pour mon back-office, j'ai le droit d'utiliser un p'tit framework CSS pour ne pas me faire ch*** et perdre du temps, étant donné que l'intégrateur/designer ne mettra pas le nez dedans. Ca reste un détail, et ça ne touche même pas le PHP.

Pour la simulation Paypal, comme me l'a proposé babas , je pourrais utiliser la sandbox.

De combien de temps disposes-tu par semaine ?

Je suis censé travailler sur le projet en dehors de mes heures de cours. Soit : pendant les vacances (me reste les vacs de février), le soir, le week-end (Plus difficilement). Donc pour répondre à ta question, je dirais en gros 4 heures par jours ? C'est très variables, je pourrais très bien faire des nuits blanches si il faut. Je travaillerai principalement la semaine.

Niveau fonctionnalité

As-tu des précisions sur le niveau de fonctionnalités et de qualité demandé ? Exemple, la liste des fonctionnalités fournies dans le 1er post, viennent-elles de toi ou est-ce une contrainte du sujet ?

Le site doit être fonctionnel, difficile de juger la qualité qu'ils attendent… On a même pas encore vu la POO en classe et ils tiennent à leur architecture MVC. Sachant qu'elle est construite autour du concept d'objet, faire du MVC procédural peut vous paraître un non-sens, mais le prof doit penser que c'est une bonne transition que de commencer par du procédural, je sais pas…

Donc pour quelqu'un à qui j'attends conseils et suivie, ça devrait pas être compliqué je pense :p Par rapport au niveau qu'on a actuellement, je dirais que la qualité finale attendue est plus que médiocre si on compare à un vrai gros projet (Pas de framework et tout, donc c'est pas comparable certes).

La liste des fonctionnalités fournies dans le premier post ne viennent pas de moi, ce sont bien des contraintes (à adapté en fonction de notre projet mais elles doivent être là quoi).

As-tu conscience des implications de chacune de tes contraintes les unes par rapport aux autres ?

Euh… Je ne pense pas, je ne dois pas avoir la même vision global que toi. De quelles sortent d'implications parles-tu ?

Front-office

Consultation d’articles et produits classés en catégories

Concernant la différence entre "article" et "produit", il doit y avoir des articles classés par catégorie à la manière d'un blog accessible via le menu. (Cette histoire est un peu flou, je me renseignerai à la rentrée mais c'est pour l'instant comme ça qu'on l'a perçue). Concernant les produits, ce sont nos ventes, ils seront eux aussi classé par catégorie.

Les données présentes au niveau d'un produit : nom, image, prix.

Au niveau d'une catégorie : nom.

Prise de contact

Ils n'attendent pas quelque chose de compliqué, ça devrait aller ;)

Création de compte

Les informations stockées au niveau du client sont à définir, on doit se débrouiller. Etant donné que l'on doit gérer le système de facture, je dirais H/F, adresse, tél, etc…

Contrainte pour champs : pareil, à définir. Essayer de simplifier au max comme tu dis !

Consultation et modification du panier

Je n'ai pas encore expliqué mon projet en question (Je le ferais dans un autre post). Mais je me dois d'expliquer deux/trois points ici. Grossièrement, le site s’appellera "Mon Panier livré", on propose à l'internaute un service de livraison gratuit de produits du quotidien comme le PQ, rasoirs, mouchoirs, pack d'eau, etc… le tout mensuellement. C'est à dire une fois le "panier", créé par l'utilisateur sur le site, il le recevra mensuellement. Il faut qu'il soit modifiable à souhait.

On proposera donc à l'internaute des packs "pré-conçu" et des packs "configurable" à la manière d'un panier de site e-commerce.

Etant donné qu'on doit gérer 2 gammes de produits. On a pensé à diviser la cible : une pour particulier, une autre pour entreprise (pack d'eau, post-it, etc… peu importe).

L'ajout dans le panier pour particulier se fera par unité (si j'appuie sur le bouton plus, j'ajoute un rouleau de PQ) à la différence de ceux pour entreprise qui se feront par dizaine par exemple. Le but étant de montrer une différence entres ces deux gammes quoi ;)

Il va falloir gérer un système d'offre promotionnel, je vois pas trop comment m'en sortir simplement… Sous forme de coupons, fixe (comme tu as proposés) ?

Pour te répondre, on peut en effet partir du principe que je n'ai aucun historique à gérer et que donc je n'ai pas à me poser des questions comme "Que se passe-t-il si un produit n'existe plus en base mais qu'un client l'a dans son historique ". ;)

J'espère ce sera simple, je ne m'en rend pas trop compte. Surement côté base que je vais douiller :/

Offre promotionnel

Là encore, on va faire simple, j'essaierai de voir avec vous le moment venu quelle est la meilleure solution (la moins casse-tête).


Globalement j'ai une meilleure vision de ce en quoi je m'engage, je vous remercie de me partager votre vision, votre expérience, c'est cool !

J'espère en apprendre beaucoup durant le projet.

Pour quel examen fais-tu ce projet ? Les contraintes (attentes) doivent-être précisé dans le formulaire de ton examen ou section.

Pour pouvoir qualifier les limites autrement que "médiocre".

As-tu des notions sur les failles ? Par exemple les plus fréquentes : XSS injection de code, CRSF requêtes malicieuses, l'intérêt d'utiliser la PDO plutôt que MSQLi ?

Je ne m'occupe que de la partie programmation (le design/intégration et marketing étant gérés par d'autres). […] j'ai le droit d'utiliser un p'tit framework CSS pour ne pas me faire ch*** et perdre du temps, étant donné que l'intégrateur/designer ne mettra pas le nez dedans.

La répartition des charges est spéciale… L'intégrateur web ne touche pas au HTML et le troisième vas se tourner les pousses assez tôt…

Surtout si tu as le droit à un moteur de template comme Twig. Toute l'intégration web (front end) pourrait-être fait par la même personne sans te gêner.

Ce n'est pas viable d'être le seul à s'occuper de la programmation, pendant ton temps libre… Et la qualité de tes heures que tu as à disposition (fatigue + distraction), augmente le délais nécessaire.


Pour éviter l'erreur, le taux de TVA des produits alimentaires (tels qu'ils sont obtenus au stade agricole) est le taux réduits.

Ensuite si on part du principe que tu livres uniquement en territoire métropolitain (France + Corse), je n'ai pas besoin de t'embêter plus longtemps ave la fiscalité.

+0 -0

l'intérêt d'utiliser la PDO plutôt que MSQLi ?

il n'y en a pas vraiment. (et c'est soit PDO soit le PDO)

Sachant qu'elle est construite autour du concept d'objet, faire du MVC procédural peut vous paraître un non-sens, mais le prof doit penser que c'est une bonne transition que de commencer par du procédural, je sais pas…

Le MVC ne s'appuie pas sur l'objet, c'est tout à fait faisable de faire un site MVC en procédural (je l'ai déjà fait, durant ma première année). C'est juste plus long est difficile.

Surtout si tu as le droit à un moteur de template comme Twig. Toute l'intégration web (front end) pourrait-être fait par la même personne sans te gêner.

ceci est un très bon conseil, écoute-le.

Pour quel examen fais-tu ce projet ?

Je suis à l'EEMI, c'est notre projet de deuxième années. Il y a trois majeurs (Tronc commun la première année) sur laquelle tu choisis une spécialité, à savoir : marketing, design, dev. Pour ce projet on fait des groupes avec des individus de chaque spé.

Sinon j'ai des notions sur les différentes failles oui. J'utilise PDO plutôt que MSQLi :)

Concernant la répartition des tâches, les designer s'occupent des wireframe/maquette/intégration (HTML & css)/ et des médias queries etc… Moi je m'occupe du dev, et j'ai aussi la casquette de chef de projet.

A savoir que côté front, les designer devront "développer" sans framework non plus (Bootstrap Fondation etc..). Du coup je pense que les moteurs de template sont prohibé :/

Ils sont parfaitement conscient du temps qu'on dispose et de nos connaissances donc concernant la qualité (j'entends par là de s'être posés toutes les questions du monde pour gérer les éventuels bug), je ne pense pas qu'ils attendent un truc de fou !

Up !

Toujours personne décidé à me superviser durant les 2-3 mois restant ? :) Je pourrais très bien poser mes problèmes sur ce forum 1 à 1 lorsque je suis bloqué mais j'aurais apprécié un contact plus fluide (comme skype par exemple).

Bonne année à vous ! ;)

en passant par skype, tu va surtout te limiter à 1 voir 2 personnes, qui ne seront pas toujours dispo, et qui n'auront pas forcément la même vision sur le développement, ni une vision global de ce qui est fait, et ce qui reste à faire

Je serais toi, je resterais sur le forum…de plus, en posant tes questions (et les autres membres en y apportant des réponses) tu laisse une trace visible par la suite à n'importe qui se posant la même question que toi :)

Par contre, avec le temps qui te reste, va pas falloir y aller avec des....Moufles :° (ok, je sort !)

+1 -0

Ok, merci de m'avoir répondu :)

Vous avez raison, autant que ça serve à d'autres ! Dois-je créer un sujet par question/problème ou je peux continuer ici ?

J'ai commencé l'architecture MVC globale, je vais me lancer rapidement dans la base (avec ce soucis de pack qui risque de me poser problème je pense).

J'ai un livrable pour dans un peu plus d'une semaine concernent la conception d'un dossier technique, je me tournerai aussi vers vous pour quelques conseils :)

Merci encore !

Salut à tous ! :)

Je suis en train de coder la partie Espace client. Lorsque l'internaute arrive sur mon site, il peut s'inscrire et/ou se connecter via la page connexion.php. Il accède donc à un formulaire d'inscription avec :

  • Pseudo
  • Email
  • Mot de passe
  • Confirmation mot de passe

Je veux que l'inscription se fasse avec une confirmation par mail. On a donc la création de l’enregistrement dans la table avec une clef et un code de validation à 0. On transmet le mail avec la clef, l’internaute clique, renvoie la clef et grâce à cette clef on vient modifier l’indicateur dans la colonne de validité pour que ce compte devienne utilisable.

L'internaute, après avoir remplie le formulaire d'inscription, est redirigé vers une autre page où il devra mentionner d'autres données personnelles du style l'adresse, le numéro de téléphone, etc.. Je l'aurais prévenu d'aller valider son compte en checkant ses mails préalablement.

Avant de rentrer dans le soucis du code, j'aimerai voir avec vous déjà la table MPL_USERS :

(J'ai essayé de faire un tableau avec le Markdown j'ai galéré ^^')

  • idMPL_Users (INT) PK - NN - AI
  • MPL_Pseudo (varchar20)
  • MPL_FirstName (varchar20)
  • MPL_LastName (varchar20)
  • MPL_Password (varchar32)
  • MPL_Email (varchar45)
  • MPL_Address1 (varchar45)
  • MPL_Address2 (varchar45)
  • MPL_City (varchar15)
  • MPL_PostalCode (Decimal)
  • MPL_Num (Decimal)
  • MPL_Country (varchar20)
  • MPL_Valid (INT)
  • MPL_Key (varchar32)

Les varchar, honnêtement j'ai un peu mis au "pif" je n'ai pas beaucoup d'expérience en SQL et modélisation de base de données :s

Pensez-vous que c'est suffisant ?

Salut !

Pour les prénom et noms de familles, j'augmenterais la tailles, les prénoms composés risque de coincer un peu, et les noms de familles composés aussi (coucou à nos amis portugais :D )

Pour le password, tu compte utiliser quel méthode de chiffrement ? c'est à prendre en considération avant d'imposer une taille.

Pour l'email, tu doit au moins pouvoir rentrer ceci : [taille maxi prenom].[taille maxi nom de famille]@[taille maxi nom fournisseur d'accée].[taille maxi dns]

Pour le city…j'habite à Saint-front de Pradoux (Personne ne rit dans le fond !!), soit 21 char…le nom de ma commune va être tronquer…pas facile pour me faire livrer quoi que ce soit…

Pour le num, pourquoi un décimal ? un int[10] devrais suffire…

Le code postal..un int [5] suffit…sauf si tu prévois de la livraison internationale bien sûr :)

On peut encore affiner, mais voila déjà à la première lecture ce qui cloche à mes yeux ;)

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte