📄 Maxima

Maxima (interne)


Description

Site e-commerce proposant la vente au détails de piÚces pour engins de travaux.

Le site est connecté via un pont à l'ERP de Maxima (EBP)

L'objectif est que Maxima gére les produits, les commandes, les clients depuis EBP. Le pont se charge de faire la synchronisation des ces trois éléments.

Le site est destiné aussi bien au particuliers/professionnels qu'aux revendeurs. Ces derniers peuvent voir la quantité en stock des produits directement depuis le site internet.

Pour maxima, l'achat par un client est considéré comme un devis tant que celui-ci n'a pas été payé. Ensuite cet achat est considéré comme une commande.

Intervenants / RĂŽles sur le projet

Maxima

  • April: Directrice
  • Alexia: Responsable Ă©ditorial, visuel, chargĂ© de communication

MSC

Société développant le pont permettant les échanges de données entre EBP et WooCommerce

  • Elise: Responsable du pont

Documents de référence

  • RĂšgles fonctionnelles du projet: D:\Cloud\Nextcloud\Cogitime Team\_PROJETS\202101-Maxima\PARTAGE Maxima\RĂšgles.ods
  • Fichier de mapping des donnĂ©es entre EBP <=> WooCommerce, initiĂ© et maintenu par MSC: D:\Cloud\Nextcloud\Cogitime Team\_PROJETS\202101-Maxima\PARTAGE Maxima\Mapping de donnĂ©es.ods
  • Checklist / historiques des actions Ă  rĂ©aliser au niveau des images Docker: D:\Cloud\Nextcloud\Cogitime Team\_PROJETS\202101-Maxima\Suivi Projet\Maxima_checklist_docker_images.ods
  • Checklist pour la livraison en production du projet: D:\Cloud\Nextcloud\Cogitime Team\_PROJETS\202101-Maxima\Suivi Projet\Maxima_checklist_livraison_en_prod.ods

Schéma des échanges entre EBP et WooCommerce pour les devis / commandes


Particularités du projet

AccĂšs client Maxima

L'objectif est que Maxima intervienne le moins possible dans le back-office du site internet. Le maximum d'interactions avec les produits, les clients, les commandes, doit se faire depuis l'ERP pour ensuite ĂȘtre synchronisĂ© avec le site via le pont.
Il reste cependant des cas particuliers oĂč il est nĂ©cessaire d'intervenir pour Maxima sur le back-office:

  • Cas d'une nouvelle catĂ©gorie de produit: Maxima doit alors la valider manuellement afin que les produits de cette catĂ©gorie soient visible sur le site internet (Voir la section Produits / CatĂ©gories ci-dessous)
  • Cas de documents Ă  mettre Ă  jour dans l'espace revendeur : Maxima doit alors ajouter les nouveaux documents en passant par le menu "WP File Download".

AccĂšs admin Cogitime

Cogitime pourra intervenir notamment dans deux cas dans le back-office du site internet via le menu "Maxima Import":

  • Exporter les catĂ©gories de produits prĂ©parĂ©es sur la staging et les rĂ©-importer ensuite sur la production (Voir le fichier "maxima checklist docker image" dans le suivi projet sur nextcloud).
  • Lancer l'import d'un fichier CSV pour le fournisseur CAB Glazing (Fichier CSV Ă  dĂ©poser dans le dossier /wp-content/sarlmaxima_import/csv/cab-glazing).

Pages vitrines


Tous les produits de Maxima ne sont pas envoyés sur le site internet. Pour palier à cela, des pages vitrines ont été créées pour permettre aux visiteurs d'avoir connaissance de ces produits et de faire une demande de devis via un formulaire dédié par catégorie de produits.

Les pages vitrines doivent ĂȘtre des "enfants" de la page "Vitrines".

Maxima a emis le souhait que ces pages apparaissent dans le menu comme une catégorie produit classique. Pour cela, un systÚme a été mis en place de positionnement imposant la saisie de 2 champs dans les pages vitrines et dans les catégories produits (Un code EBP et un champs Order) => Voir la rÚgle R008
/!\ Attention: en BO, il faut cliquer sur "update" de la page pour faire apparaßtre les 2 champs custom en cas de création de la page "from scratch"

Brochures


Les brochures permettent de mettre à disposition des clients connectés des fichiers PDF présentant les produits d'une marque.

Les brochures sont accessibles depuis "Mon compte" et la section "Brochures"

Afin que Maxima puisse gérer ces brochures, celles-ci sont administrables depuis le back-office.

Pour ajouter une brochure, créer une page enfant de la page "Brochures" et y insérer le shortcode du flipbook crée dans "Real 3D Flipbook"

Catalogue


Le catalogue est un fichier PDF permettant de mettre en avant les produits phares de Maxima.

Celui-ci est géré par Maxima, et le plugin "Real 3D Flipbook" a été choisi car il permet de cliquer sur les liens se trouvant dans un PDF (Souhait de Maxima à termes de mettre des liens vers des produits)

Méthodes de paiements

Les différentes méthodes de paiements proposées par le site sont:

  • Virement bancaire
  • Paiements par chĂšque
  • Paiements par CB (Module Systempay)
  • Paiement en compte (Module Cogitime)
  • Paiement Ă  la livraison => ModifiĂ© pour pouvoir bloquer facilement le paiement d'une commande

Maxima peut affecter une méthode de paiement favorite à un client. Cela permet de gérer différentes situations :

  • MĂ©thode de paiement favorite = Paiement en compte. Le client a alors uniquement cette mĂ©thode de paiement disponible sur le site, et il n'effectue pas de paiement rĂ©el sur le site (PrĂ©levĂ© plus tard par Maxima directement). Voir rĂšgle R007.
  • MĂ©thode de paiement favorite = Paiement Ă  la livraison. Le client est bloquĂ© et ne peut pas valider la commande ni la payer. Il est invitĂ© par un message Ă  contacter Maxima.
  • Dans les autres cas, le client peut choisir entre payer par CB (Le devis est alors validĂ© et se transforme en une commande), par chĂšque ou par virement bancaire (Dans les deux derniers cas, le devis sera validĂ© manuellement par Maxima depuis EBP)

Clients

Les clients sont créés soit via le site internet (InitiĂ© par le client lui-mĂȘme), soit depuis l'ERP via le pont.

Champs custom


  • Siret, pas d'effet sur le site internet.
  • Groupe, par dĂ©faut = "Professionnels / Particuliers" si créé depuis le site internet (Pour rappel, les groupes permettent notamment de proposer des rĂ©ductions diffĂ©rentes selon l'appartenance Ă  un groupe). Si le groupe est "NĂ©goce Revendeur", le client peut voir la quantitĂ© en stock des produits.
  • ERP Code, pas d'effet sur le site internet.
  • MĂ©thode de paiement favorite (Voir section "MĂ©thodes de paiements" ci-dessus)
  • TĂ©lĂ©phone portable (AssociĂ©e Ă  l'adresse de livraison), pas d'effet sur le site internet.

Témoignages

  • Il est possible de spĂ©cifier des tĂ©moignages clients via le BO : "Testimonials"
  • Afin d'avoir un affichage avec des Ă©toiles en front, il faut prĂ©ciser une note sur 5 au format "x/x". Par exemple:
    • Author: John Doe / Ma sociĂ©tĂ©
    • Texte: lorem lorem lorem
 4/5

Produits

Catégories

Les catégories de produits sont découpées en 4 niveaux.

  • CatĂ©gories principales
  • Familles
  • Sous-familles
  • Groupes

Les catégories principales n'existent pas dans l'ERP et sont définies en "durs" sur le site internet. Ces catégories sont liées au thÚme enfant de Wordpress, et ajouter une telle catégorie implique donc de la préparer via des modifications dans le thÚme (Ajout d'images, modifications dans le fichier functions.php...)


Lors de la synchronisation via le pont de nouvelles familles, celles-ci sont associées automatiquement à une catégorie "pendingcategory" qui met "en attente de validation" la catégorie. En effet, les produits sont alors masqués tant que leur famille est enfant de la catégorie "pendingcategory". Maxima doit alors vérifier la catégorie, l'éditer ensuite pour retirer le parent "pendingcategory" et mettre une catégorie principale en tant que nouveau parent. Voir rÚgle R005

  • Positionner les catĂ©gories dans le menu : Chaque catĂ©gorie doit possĂ©der un code EBP et un Order afin qu'elle soit affichĂ©e et positionnĂ©e correctement dans le menu. Voir la rĂšgle R008. Voir le positionnement voulu par Maxima : https://www.gloomaps.com/zoE9Fz6WCR
  • IntĂ©grer les banniĂšres des catĂ©gories (entĂȘte de page), voir le dossier "D:\Cloud\Nextcloud\Cogitime Team\_PROJETS\202101-Maxima\PARTAGE Maxima\DOCUMENTS FINAUX - WEBSITE MAXIMA\BanniĂšres"

Exemple de contenu de description d’une catĂ©gorie de produit avec citation (Commercial) et photos

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus a justo quis magna faucibus hendrerit. Phasellus orci lorem, finibus vitae leo tempor, dictum posuere urna. Fusce tempus neque vitae consectetur semper. Morbi imperdiet venenatis neque, in pulvinar massa consequat et. Phasellus efficitur fermentum lectus, non lobortis dui condimentum ac. Duis eget enim quis est venenatis rhoncus. Aliquam in lobortis orci, nec feugiat dui. <blockquote>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus a justo quis magna faucibus hendrerit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus a justo quis magna faucibus hendrerit.<img class="alignnone size-medium wp-image-177" src="https://www.sarlmaxima.local/wp-content/uploads/2021/05/commercial1-166x300.png" alt="" width="166" height="300" /></blockquote>

Recherche par filtres

Les produits peuvent ĂȘtre filtrĂ©s par mots-clĂ©s, par catĂ©gories (les 4 niveaux) ou par marques / modĂšles.

Champs custom

  • Brands, permet d'associer un produit Ă  la marque et un modĂšle d'un vĂ©hicule, pour lequel le produit est destinĂ©. (Le modĂšle est un enfant de la marque)
    • => Ă  l'affichage en front, il est possible d'avoir une pastille => renseigner le champ "Description", par exemple: ExclusivitĂ© Maxima
  • Inventaire / RĂ©fĂ©rence fournisseur, pas d'effet sur le site internet
  • Inventaire / Nom fournisseur, pas d'effet sur le site internet

Envoi des fiches produits par FTP


Sur une fiche produit, il est possible de proposer au visiteur un lien vers un fichier PDF détaillant les caractÚristiques du produit ou de la machine pour laquelle il est destiné.


Afin de synchroniser les fiches techniques affectées à un produit ou une catégorie de produits, un espace FTP a été mis en place pour déposer les fichiers (Voir infotech pour les accÚs au FTP). Maxima peut alors déposer ces fiches produits en respectant la rÚgle R003. Une tùche CRON va ensuite lire ces fichiers et les associer aux produits correspondants.

Envoi des images produits par FTP


De mĂȘme que pour les fiches produits, les images d'un produit sont envoyĂ©s via FTP.


Afin de synchroniser les images affectées à un produit ou une catégorie de produits, un espace FTP a été mis en place pour déposer les fichiers (Voir infotech pour les accÚs au FTP). Maxima peut alors déposer ces images en respectant la rÚgle R002. Une tùche CRON va ensuite lire ces fichiers et les associer aux produits correspondants.

Cas particuliers

  • Les devis avec produits inexistants dans WooCommerce sont gĂ©rĂ© par le pont (CrĂ©ation de produit temporaire le temps de gĂ©nĂ©rer la commande)
  • Les devis avec produits sans stock sont modifiĂ© par le pont en cochant "GĂ©rer le stock" et passe le champs "Autoriser les commandes en rĂ©approvisionnements" Ă  "Autoriser"
  • Les produits avec un prix Ă  zĂ©ro sont affichĂ©s mais ne peuvent ĂȘtre commandĂ©s

Commandes

Les commandes sont intégralement gérées depuis l'ERP et synchronisées via le pont. Il est, dans le fonctionnement normal, aucunement nécessaire de modifier une donnée dans une commande en passant par le back-office du site internet. Voir le schéma des échanges entre EBP et WooCommerce au début de cette page.
Deux cas peuvent se présenter: Soit la commande est créée par le visiteur du site, il n'est alors pas nécessaire de lui notifier cette commande. Soit le devis ou la commande est créé via l'ERP, il est alors nécessaire de prévenir le client par mail.

Notifications par emails


Un plugin (sarlmaxima_customemails) a été développé pour ajouter de nouvelles notifications par emails (éditables dans WooCommerce) au client selon la situation:

  • Nouveau devis: Notification au client qu'un nouveau devis est disponible.
  • Nouvelle commande: Notification au client qu'une nouvelle commande est disponible.
  • NumĂ©ro de suivi: Envoi au client du numĂ©ro et du lien de suivi de son expĂ©dition.
  • Nouvelle facture ou avoir: Notification au client qu'une nouvelle facture ou un nouvel avoir est disponible.

Méthodes d'expéditions


Les produits sont expédiés en France métropolitaine ou en Corse. Selon la destination, les produits et selon leurs poids, la méthode d'expédition pourra changer et son coût de livraison également. Il y a actuellement 3 modes d'expéditions principaux:

  • ExpĂ©dition Maxima
  • ExpĂ©dition VMT
  • Franco de port
    Les deux premiers modes, en fonction du poids du produit commandé, sont eux aussi chacun découpés en plusieurs méthodes d'expéditions : Lettre suivi, DPD, Schenker messagerie, Schenker pallet, VMT TNT, Maxima Schenker, VMT Schenker.
    Les modes d'expéditions sont liés aux produits via le champs "Classe d'expédition" du produit.


=> Info complémentaire du 21/03/2024


Voici quelques explications sur la configuration actuelle des livraisons sur le site (WooCommerce) :


Il faut bien distinguer trois Ă©lĂ©ments, les Classes d'expĂ©dition, les Zones d'expĂ©dition et les MĂ©thodes de livraison :


Vous avec 4 Classes d'expĂ©dition :

  • ExpĂ©dition CAB (cette classe ne semble pas ĂȘtre utilisĂ©e)
  • ExpĂ©dition Maxima
  • ExpĂ©dition VMT
  • Franco de port (cette classe permet d'afficher l'information de franco de port sur le produit)

Sur un produit, il est possible de sélectionner une de ces classes.

Par défaut, aucune classe n'est sélectionnée, c'est d'ailleurs la configuration actuelle de tous vos produits (MSC ne définit pas cette option pour le moment via leur pont).


Ensuite, vous avez 2 Zones d'expĂ©dition :

  • France MĂ©tropolitaine
  • Corse

Dans chaque zone on peut paramétrer des pays/régions, on retrouve ces valeurs dans la saisie de l'adresse du client, ça permet de définir des méthodes de livraison différentes et/ou des tarifs différents par zone.
Tous les pays/régions non paramétrés dans une zone ne pourront donc pas passer de commande sur le site.


Dans chaque zone, vous avez 3 MĂ©thodes de livraison :

  • ExpĂ©dition Maxima
  • ExpĂ©dition VMT
  • Franco de port

Chaque méthode de livraison possÚde ses propres tarifs et rÚgles.
Actuellement, chaque mĂ©thode de livraison est restreinte aux produits avec la classe d'expĂ©dition correspondante.


Donc, puisque vos produits n'ont pas de classe d'expédition et que les méthodes de livraison sont restreintes aux classes d'expéditions qui leur correspondent, aucune méthode de livraison n'est disponible pour les produits dans leur configuration actuelle (sans classe d'expédition).


En l'état actuel, il est donc nécessaire de définir la classe d'expédition de chaque produit afin d'avoir accÚs aux méthodes de livraison adaptées.

Cette configuration devrait ĂȘtre gĂ©rĂ©e par le pont qui synchronise les produits.


Il est aussi pertinent de vĂ©rifier l'ensemble des rĂšgles de livraison/expĂ©dition afin de s'assurer que la configuration actuelle rĂ©pond bien Ă  votre fonctionnement.




Champs custom


  • Type commande: Champs texte libre utilisĂ© par le pont pour dĂ©finir si la commande WooCommerce est en rĂ©alitĂ© un "devis" ou une "commande"
  • RĂ©fĂ©rence Maxima: Champs texte libre utilisĂ© par le pont pour dĂ©finir notamment le numĂ©ro de devis. Cette information est visible par le client dans le listing des devis/commandes.
  • TĂ©lĂ©phone portable: Champs permettant au client de renseigner un numĂ©ro de tĂ©lĂ©phone pour la livraison des produits.

Envoi des factures / avoirs par FTP


Lorsque la commande est terminée, ou lorsqu'il y a besoin d'envoyer un avoir au client, Maxima peut déposer des fichiers PDF dans un espace FTP reservé à cet effet. Une tùche CRON va ensuite récupérer ce fichier et l'associer à la bonne commande (Voir la rÚgle R004)
En parallÚre, une notification par email est envoyé au client pour le prévenir de l'arrivée de ce document (Voir le chapitre ci-dessus sur les notifications emails)
Les avoirs sont distingués des factures par rapport à leur identifiant qui commence par "AV".

Scripts customs

Afin d'aider MSC à mettre en place le pont et tenir compte des spécificités du projet, plusieurs scripts d'exemples leur ont été fournis pour illustrer les différents cas ou lister les champs spécifiques au projet.
Les scripts se trouvent dans le dossier D:\Cloud\Nextcloud\Cogitime Team\_PROJETS\202101-Maxima\PARTAGE Maxima\Scripts PHP :

  • acces_produit_commentaire.php : Permet de rĂ©cupĂ©rer une instance du produit "commentaires" (Produit utilisĂ© en interne par Maxima et qui ne doit jamais ĂȘtre affichĂ© sur le site internet)
  • add_tracking_number_to_order.php : Permet d'ajouter un numĂ©ro et un lien de suivi Ă  une commande. Le client est notifiĂ© par email grĂące Ă  l'attribut "send" = true
  • associate_user_to_group.php : Permet d'associer un utilisateur Ă  un groupe donnĂ©
  • change_shipping_class_of_one_product.php : Exemples pour rĂ©cupĂ©rer la liste des classes d'expĂ©ditions, rĂ©cupĂ©rer la classe d'expĂ©dition d'un produit ou modifier la classe d'expĂ©dtion d'un produit
  • create_discounts.php : Exemple complet pour crĂ©er une liste de produits en fonction de catĂ©gories donnĂ©es et d'appliquer une rĂ©duction sur ces catĂ©gories pour des clients appartenant Ă  un groupe donnĂ©.
  • creation_marque_modele.php : Exemple complet de crĂ©ation d'une marque, avec la possibilitĂ© de la dĂ©sactiver, de la mettre en avant sur la page "Nos marques exclusives", de lui affecter une image. CrĂ©ation Ă©galement de modĂšle, associĂ© Ă  une marque, avec possibilitĂ© de dĂ©sactiver le modĂšle. Et exemple d'association de "Marque / modĂšle" Ă  un produit.
  • customer_erp_code.php : Exemples pour rĂ©cupĂ©rer le code ERP d'un client, retrouver un client via son code ERP et mettre Ă  jour le code ERP d'un client
  • customer_favorite_payment_method.php : Exemples pour rĂ©cupĂ©rer ou mettre Ă  jour la mĂ©thode de paiement favorite d'un client
  • customer_shipping_phone.php : Exemples pour rĂ©cupĂ©rer, mettre Ă  jour le tĂ©lĂ©phone portable de livraison d'un client, ou retrouver un client via ce numĂ©ro de tĂ©lĂ©phone
  • customer_siret.php : Exemples pour rĂ©cuĂ©prer ou mettre Ă  jour le siret d'un client
  • delete_all_users.php : Exemples pour supprimer tous les comptes exceptĂ©s les administrateurs
  • ebp_code_categories.php : Exemples pour mettre Ă  jour le code EBP d'une catĂ©gorie, rĂ©cupĂ©rer le code EBP d'une catĂ©gorie ou trouver une catĂ©gorie via son code EBP
  • get_chosen_payment_method.php : RĂ©cupĂ©rer la mĂ©thode de paiement choisie pour une commande.
  • notification_devis.php : Exemple pour ajouter une mĂ©ta Ă  la commande qui dĂ©clenchera la notification au client de l'arrivĂ© d'un devis, d'une commande ou d'une facture
  • numero_devis.php : Exemple pour mettre Ă  jour le numĂ©ro de devis (RĂ©fĂ©rence Maxima) dans une commande ou pour rĂ©cupĂ©rer ce numĂ©ro depuis une commande.
  • order_force_price.php : Exemple pour crĂ©er une commande en modifiant le prix des produits uniquement pour cette commande.
  • order_shipping_phone.php : Exemple pour rĂ©cupĂ©rer le tĂ©lĂ©phone de livraison d'une commande
  • order_with_non_existent_product.php : Exemple pour crĂ©er une commande avec un produit fictif
  • reappro_stock_product.php : MĂ©thode pour autoriser les commandes hors stock pour un produit
  • set_get_order_number.php : Exemple pour ajouter un n° de commande dans une commande et pour le rĂ©cupĂ©rer
  • supplier_data_in_product_.php : Exemple pour mettre Ă  jour la rĂ©fĂ©rence fournisseur et le nom du fournisseur d'un produit et exemple pour rĂ©cupĂ©rer ces informations
  • type_commande_devis.php : Exemple pour affecter un type Ă  une commande (Devis ou commande) et exemple pour rĂ©cupĂ©rer cette information


Affichage du stock dans une fiche produit




ConcrĂštement, voici les diffĂ©rentes situations possibles que l’on peut avoir pour les articles sur EBP, avec les diffĂ©rents statuts qui doivent apparaitre sur le site web :

  • En stock + autoriser les commandes en rĂ©appro☑ + tarifs sur demande☑ = ˜ En stock mais bouton « Demander un devis Â»
  • En stock + autoriser les commandes en rĂ©appro☑ + prix affichĂ© = ˜ En stock et bouton « Ajouter au panier Â»
  • En stock + autoriser les commandes en rĂ©appro⬜(pas cochĂ©) + prix affichĂ© = ˜ En stock et bouton « Ajouter au panier Â»
  • En stock + autoriser les commandes en rĂ©appro⬜(pas cochĂ©) + tarif sur demande☑ = ˜ En stock mais bouton « Demander un devis Â»

 

  • Pas de stock + autoriser les commandes en rĂ©appro☑ + tarifs sur demande☑ = ˜ DĂ©part usine mais bouton « Demander un devis Â»
  • Pas de stock + autoriser les commandes en rĂ©appro☑ + prix affichĂ© = ˜ DĂ©part usine et bouton « Ajouter au panier Â»
  • Pas de stock + autoriser les commandes en rĂ©appro⬜(pas cochĂ©) + prix affichĂ© = Ëœ Contactez-nous  et bouton « Ajouter au panier Â»
  • Pas de stock + autoriser les commandes en rĂ©appro⬜(pas cochĂ©) + tarif sur demande☑ = ˜ Contactez-nous et bouton « Demander un devis Â»