Projet Création marketplace opérateur

Shopetic × Wizaplace : bâtir le premier frontend marchand en 31 jours

Jérémy Chomel Dawap
  • Publié le : 16 mars 2022
  • Temps de lecture : Étude de cas · 18 min
  1. Le projet en un coup d’œil
  2. Shopetic, une marketplace où la découverte fait partie de la promesse
  3. Livrer verticalement, de la réponse API jusqu’à la page
  4. Avant le frontend
  5. Objectifs
  6. Chronologie
  7. Architecture
  8. Contrats Wizaplace
  9. Recherche produit
  10. Facettes
  11. SEO et slugs
  12. Catégories, marques et labels
  13. Fiche produit
  14. Cache Redis
  15. Traitements asynchrones
  16. Mesure de la recherche
  17. Vues opérateur
  18. Qualité
  19. Arbitrages
  20. Transformation
  21. Limites
  22. Scénario terrain
  23. Suite Shopetic
  24. Un premier frontend qui rend Shopetic maître de son parcours catalogue
Cas client

Le projet en un coup d’œil

Système audité
01 / Point de départ
Un moteur marketplace sans expérience Shopetic autonome

Le catalogue et ses objets existaient côté Wizaplace. Shopetic devait encore maîtriser les pages publiques, la navigation et la manière de présenter son offre engagée.

02 / Réponse
Une couche Symfony entre l’API et les visiteurs

Le frontend traduit les contrats Wizaplace en objets métier, compose les parcours catalogue et absorbe les appels répétés grâce à Redis et à des traitements asynchrones.

03 / Résultat
Un socle marchand testable et remplaçable

Onze routes publiques, sept vues opérateur et trente-cinq tests actifs valident une première architecture qui sépare l’expérience Shopetic du fournisseur de marketplace.

Signal / 01 31 jours Fenêtre de réalisation Du 14 février au 16 mars 2022
Signal / 02 11 Routes publiques Catalogue, contenus et navigation
Signal / 03 50 Produits par recherche Avec requête, page et facettes
Signal / 04 35 Tests actifs Unitaires et intégration API
Frontend catalogue Shopetic construit au-dessus des API Wizaplace
La première génération du frontend Shopetic transforme les réponses Wizaplace en recherche, facettes, catégories, marques, labels et fiches produit, avec un cache indépendant du moteur marketplace.

En février 2022, Shopetic disposait d’un moteur Wizaplace pour porter les objets marketplace, mais l’expérience visible devait devenir un produit à part entière. Une marketplace écoresponsable ne se raconte pas avec une simple grille de références : elle doit rendre les catégories compréhensibles, donner une place réelle aux marques et aux labels, puis conduire le visiteur jusqu’à une fiche produit cohérente.

Dawap a construit cette première génération comme une couche autonome sous Symfony. Le navigateur dialogue avec des parcours Shopetic ; le serveur interroge les API opérateur, transforme leurs réponses et protège l’affichage des variations de contrat. Cette séparation constitue le cœur de notre approche du frontend marketplace sur mesure.

L’histoire est courte et dense : démarrage le 14 février, domaine et premiers tests à partir du 25, catalogue filtrable et cache dès la fin du mois, pages de catégories, marques et labels début mars, puis promotions et comptes utilisateurs jusqu’au 16 mars. Le résultat est un socle vérifiable ; il ne dépend ni d’un témoignage inaccessible ni d’un gain commercial inventé.

1. Shopetic, une marketplace où la découverte fait partie de la promesse

Faire émerger produits, marques et engagements depuis une même source Wizaplace

Shopetic organise une offre autour d’une consommation plus responsable. Cette orientation apparaît dans les parcours prévus dès la première version : une charte d’engagement, une présentation de la plateforme, des marques et une famille de labels appelée « Etictos » accompagnent les catégories et les produits.

Le moteur marketplace reste responsable du catalogue, des catégories, des attributs, des devises, des commandes et d’autres objets opérateur. Le frontend doit cependant décider comment un visiteur cherche, filtre et ouvre ces informations. Il devient donc le lieu où la donnée technique acquiert une hiérarchie éditoriale et marchande.

Le défi ne consiste pas à copier toutes les fonctions du moteur. Il faut choisir un premier parcours cohérent, maintenir une identité stable entre les pages et éviter que chaque variation d’API se diffuse jusque dans les gabarits. Les fonctions réellement accessibles au public se concentrent alors sur la découverte du catalogue.

Cette première génération précède le frontend Origami et le hub d’exploitation Shopetic. Les trois projets répondent à des responsabilités différentes : expérience d’achat, évolution du moteur marketplace, puis synchronisation des catalogues vendeurs. Les confondre effacerait précisément les décisions prises à chaque étape.

2. Livrer verticalement, de la réponse API jusqu’à la page

Un mois de progression datée autour du catalogue et de ses dépendances

Le 25 février, le travail commence par les contrats métier et un premier test d’intégration sur les devises. Les jours suivants ajoutent les traductions, le menu, les attributs et leurs valeurs. Cette progression prépare les éléments nécessaires au catalogue avant de multiplier les écrans.

Le 28 février, la recherche produit, les facettes et une première stratégie de cache apparaissent ensemble. Le 1er mars, le thème public et l’ordre des parcours prennent forme. Les catégories, les marques, les Etictos et les fiches produit rejoignent ensuite la navigation entre le 2 et le 4 mars.

Les derniers jalons étendent le domaine aux promotions et aux utilisateurs. Ils montrent la direction marchande visée, tandis que les routes publiques disponibles restent centrées sur le catalogue. La fiche distingue ces fondations internes des fonctions effectivement présentées aux visiteurs.

Le 16 mars 2022 marque le dernier jalon de cette génération Wizaplace. Douze jours plus tard commence la génération Origami. La chronologie permet ainsi de raconter un passage de relais technologique sans attribuer à Shopetic des arbitrages, des ateliers ou des résultats qui ne sont pas documentés.

3. Avant le frontend : le moteur ne suffit pas à raconter Shopetic

Des objets marketplace disponibles, mais aucune expérience indépendante pour les relier

Wizaplace expose les produits, catégories, attributs, contenus et objets opérateur utiles à la plateforme. Ces données forment le moteur du service, pas encore la manière dont un visiteur comprend l’offre. Sans couche dédiée, l’identité Shopetic resterait contrainte par la présentation fournie avec la solution.

Le catalogue pose immédiatement plusieurs questions d’expérience. Comment faire cohabiter une recherche textuelle et des filtres ? Comment conserver le contexte d’une catégorie ? Comment offrir une entrée par marque ou par engagement ? Comment produire une adresse lisible pour une fiche produit dont la source principale reste externe ?

Une réponse purement graphique aurait déplacé le problème. Si les gabarits lisaient directement les structures JSON de l’API, la moindre différence de pagination, de nommage ou de sous-objet fragiliserait plusieurs pages. Le projet devait donc créer une vraie frontière avant de composer les écrans.

Le point de départ est celui d’un produit à construire, pas d’une refonte mesurée sur une plateforme précédente. La transformation observable va d’une intégration API explorée par cas d’usage à un parcours catalogue accessible depuis onze routes publiques.

4. Donner au frontend quatre responsabilités claires

Traduire, composer, accélérer et préparer les évolutions

La première responsabilité consiste à traduire les réponses Wizaplace en objets maîtrisés par Shopetic. Un produit, une facette ou une catégorie ne traverse pas directement toute l’application sous la forme reçue. Un adaptateur contrôle les champs attendus et construit l’objet utilisé par le cas métier.

La deuxième consiste à composer les parcours. Recherche, catégories, marques et Etictos réutilisent la même logique catalogue tout en imposant un filtre de départ différent. Cette unité évite de maintenir quatre moteurs de liste qui finiraient par diverger.

La troisième porte sur le temps de réponse et la dépendance à l’API. Les recherches, produits, catégories et attributs peuvent être conservés vingt-quatre heures dans Redis. Des traitements distincts préparent aussi les pages du catalogue et les images sans monopoliser une requête visiteur.

Enfin, l’architecture doit pouvoir évoluer sans emprisonner Shopetic dans le premier fournisseur. Les cas métier dépendent d’interfaces, tandis que les appels HTTP et la transformation des réponses restent dans une couche séparée. Cette décision prendra tout son sens lors de la génération Origami.

5. Du 14 février au 16 mars : un catalogue construit par couches

Chaque jalon apporte une dépendance nécessaire au parcours suivant

Le projet est initialisé le 14 février 2022. À partir du 25, le domaine s’organise et les premières intégrations vérifient les appels de devise. Le 26, trois tests d’intégration sont déjà présents ; le 28, traductions, menus, attributs et recherche catalogue donnent une première épaisseur fonctionnelle.

Le 1er mars relie la recherche à ses facettes et pose le thème public. La commande rejoint aussi les cas explorés côté opérateur. Le 2 mars ajoute la première chaîne de déploiement, la vue catégorie, le menu et les bannières issues du CMS.

Le 3 mars concentre la navigation catalogue : listes et fiches de marques, listes et fiches Etictos, recherche par catégorie, Redis en environnement de validation, mise en cache des catégories et préparation locale des images. La fiche produit est consolidée le lendemain avec son adaptateur dédié.

Du 8 au 16 mars, le modèle s’étend aux promotions de catalogue, de panier et de marketplace, puis aux utilisateurs et à leurs objets associés. Ces briques ne sont pas toutes transformées en tunnel d’achat public dans cette version. Elles documentent la progression au-delà du premier parcours de découverte.

6. Séparer la décision métier de l’appel HTTP

Cas d’usage, contrats, adaptateurs et présentateurs plutôt qu’un contrôleur monolithique

Chaque parcours part d’une requête propre au domaine : rechercher des produits, collecter une catégorie, ouvrir une valeur d’attribut ou obtenir une fiche produit. Le cas d’usage valide les entrées, appelle un contrat de lecture puis présente une réponse indépendante de Symfony.

Les contrôleurs se limitent à traduire la requête web en paramètres métier et à choisir le gabarit. Pour une catégorie, ils chargent d’abord l’objet correspondant au slug, vérifient son existence, puis relancent la recherche produit avec la catégorie comme facette imposée.

Les appels Wizaplace vivent dans des adaptateurs HTTP. Ils ajoutent le jeton opérateur côté serveur, composent la pagination et les filtres, puis passent les réponses dans quatorze adaptateurs de données. Les gabarits ne portent donc ni le secret d’accès ni la logique de décodage.

Cette organisation paraît plus exigeante pour un premier mois. Elle répond pourtant à un risque concret : catalogue, CMS et opérations ne suivent pas tous le même modèle de pagination. Isoler leurs contrats empêche une irrégularité d’un point d’entrée de contaminer le reste du frontend.

7. Encadrer les différences entre les API Wizaplace

Onze adaptateurs de lecture pour ne pas traiter tous les objets comme un catalogue

La couche d’intégration couvre notamment produit, catégorie, attribut, valeur d’attribut, devise, commande, attribut PIM, menu et bannière. Chaque famille possède son contrat de lecture et sa transformation, car les champs et les règles de pagination diffèrent.

L’adresse du service et le jeton opérateur sont lus depuis la configuration serveur. Le navigateur demande une page Shopetic ; seul le backend dialogue avec Wizaplace. Cette frontière réduit l’exposition du secret et centralise la façon d’appeler le moteur.

La recherche produit assemble une requête à partir du texte, des facettes, du numéro de page et d’une limite. Avant de fabriquer la clé de cache, les filtres sont triés. Deux sélections identiques arrivées dans un ordre différent retrouvent ainsi la même entrée plutôt que de créer des doublons inutiles.

Pour ouvrir un produit, le frontend résout d’abord le slug auprès du service SEO, vérifie que sa nature est bien « product », récupère son identifiant puis collecte le détail. Cette étape interdit de supposer qu’une adresse lisible contient directement la clé interne du catalogue.

8. Faire de la recherche le centre du premier parcours marchand

Cinquante produits, une requête libre, une page et une collection de filtres

Le parcours `/produits/recherche` demande cinquante résultats par page au moteur. La réponse contient les produits, le numéro de page, le nombre total de résultats, le nombre de pages, la taille de page et la collection de facettes renvoyée par Wizaplace.

Une recherche libre alimente le filtre `query`. Les facettes sélectionnées sont regroupées par nom, puis transmises au même cas d’usage. Cette construction permet au catalogue général, à une catégorie, à une marque ou à un label de partager le même moteur de résultats.

Chaque carte s’appuie sur l’identifiant, le nom, le slug, la disponibilité, les prix, les évaluations et l’image principale lorsque ces valeurs existent. Le lien vers la fiche est construit avec le slug, ce qui garde une adresse compréhensible au lieu d’exposer un identifiant technique.

La première version conserve aussi des éléments de thème encore génériques dans certaines zones. Le cœur livré n’est donc pas présenté comme un tunnel marchand achevé. La preuve tient à la circulation réelle de la requête, des filtres, des produits et de leur navigation.

9. Transformer les facettes API en navigation compréhensible

Valeurs textuelles et plages numériques gardent leur nature propre

Wizaplace renvoie des facettes textuelles ou numériques. Le frontend ne les réduit pas à une liste uniforme : une facette textuelle devient une collection de valeurs avec identifiant, libellé, nombre de résultats et position éventuelle ; une facette numérique conserve ses bornes.

Dans la colonne de filtre, chaque valeur textuelle est accompagnée de son volume de produits. La sélection renvoie le nom de la facette et l’identifiant choisi. L’utilisateur peut donc comprendre l’effet probable du filtre avant de relancer la recherche.

Les pages spécialisées imposent leur propre facette sans perdre celles choisies ensuite par le visiteur. Une page de marque fixe la valeur de l’attribut marque ; une page Etictos fixe celle de l’attribut d’engagement ; une catégorie fixe l’identifiant de catégorie.

Ce mécanisme constitue une décision de conception importante. La marque, le label et la catégorie restent des pages éditoriales identifiables, mais leur liste produit repose sur une seule logique. Une correction du catalogue profite à tous ces parcours.

10. Donner aux objets du moteur une adresse Shopetic

Résoudre le slug, contrôler le type puis injecter les métadonnées disponibles

La fiche produit ne se contente pas d’un identifiant numérique dans l’URL. Son slug est recherché dans le service SEO Wizaplace. Si aucune correspondance n’existe ou si la réponse désigne un autre type d’objet, le frontend s’arrête proprement au lieu d’ouvrir une ressource incohérente.

Les catégories et valeurs d’attribut suivent la même intention : une route lisible reçoit un slug, le traduit en objet puis renvoie une page introuvable lorsque la ressource n’existe pas. Le visiteur et le moteur de recherche partagent ainsi une adresse stable à l’échelle du frontend.

Les gabarits de fiche produit, catégorie et marque reprennent les titres et descriptions SEO fournis par leurs objets. La couche publique peut donc exploiter les contenus du moteur sans recopier manuellement la même métadonnée dans une seconde base.

Cette fondation ne signifie pas que toute la stratégie SEO était achevée. Pagination, contenus génériques du thème et contrôle complet du maillage restaient à approfondir. Elle établit néanmoins la relation essentielle entre slug, type d’objet, page et métadonnée.

11. Ouvrir trois chemins de découverte autour du même catalogue

Catégories, marques et Etictos expriment trois intentions différentes

La catégorie répond à une intention de besoin. Le frontend collecte son identité depuis le slug, affiche sa page puis ajoute son identifiant aux filtres de recherche. Les autres facettes restent disponibles pour affiner le résultat sans quitter cet univers.

La marque répond à une intention de confiance ou de préférence. Sa page utilise une valeur d’attribut dédiée, récupère ses métadonnées SEO et applique cette valeur à la recherche produit. Une liste générale permet aussi de découvrir les marques avant d’en ouvrir une.

L’Etictos répond à la promesse spécifique de Shopetic. Ce parcours utilise lui aussi une valeur d’attribut, mais il donne au visiteur une entrée par label ou engagement plutôt que par fabricant. L’architecture commune ne gomme donc pas le sens éditorial de la page.

Ces trois portes évitent de réduire une marketplace engagée à son moteur de recherche. Elles organisent le même stock de données selon le besoin, la provenance de marque ou le critère d’engagement. C’est là que le frontend commence à porter la proposition de valeur de Shopetic.

12. Assembler une fiche produit depuis plusieurs sous-objets

Identité, SEO, images et détails présentés après résolution du slug

Après résolution de l’adresse, l’adaptateur produit transforme la réponse détaillée en un objet de fiche. Le nom, les informations SEO et l’identifiant alimentent l’en-tête ; les images peuvent être parcourues séparément ; le gabarit n’a pas à connaître la structure JSON d’origine.

L’image principale utilise des variantes locales de deux cents et cinq cents pixels. Les images complémentaires restent reliées à l’objet. Cette approche prépare une diffusion plus prévisible que l’appel direct à une image distante à chaque affichage.

Le lien entre liste et détail est bidirectionnel dans la conception : la carte produit fabrique l’adresse depuis le slug, puis la fiche repart du slug pour confirmer l’objet chez Wizaplace. Une adresse invalide ne peut donc pas être interprétée comme un identifiant arbitraire.

Certains blocs visuels et actions de commerce du thème restaient encore génériques dans cette première génération. La fiche prouve la collecte et la composition du produit ; elle ne revendique pas un panier, un paiement ou une gestion de compte entièrement finalisés côté public.

13. Réduire la dépendance immédiate au moteur avec Redis

Une durée de vingt-quatre heures pour les lectures catalogue répétées

Produit, recherche, catégorie et attribut disposent de règles de cache fixées à vingt-quatre heures. Les clés distinguent le type d’objet et son identité. Pour une recherche, elles incorporent la requête normalisée après tri des filtres.

Redis sert aussi de stockage de session. Le projet évite ainsi de mélanger le cache métier et une variable locale à un seul processus PHP. Plusieurs requêtes peuvent retrouver une lecture déjà préparée dans le même environnement.

La durée longue correspond à un premier arbitrage : privilégier la stabilité et limiter les appels répétés pendant que les parcours catalogue se structurent. Elle ne résout pas encore la question d’une invalidation fine lorsqu’un prix, une disponibilité ou un contenu change côté moteur.

Cette limite est importante pour lire le résultat avec justesse. Le cache améliore l’autonomie du frontend et amortit la latence d’une API externe ; il demande ensuite une politique de fraîcheur adaptée à chaque donnée marchande. La génération suivante approfondira ce sujet.

14. Préparer catalogue et images hors de la requête visiteur

Trois files spécialisées et une file d’échec

Symfony Messenger sépare trois traitements : téléchargement d’image produit, préchauffage des pages de recherche et préchauffage des fiches produit. Chaque type possède son échange et sa file RabbitMQ, avec une file supplémentaire pour recueillir les échecs.

La commande de préchauffage commence par connaître le nombre de pages du catalogue. Elle envoie ensuite un message pour chaque page afin que les résultats soient préparés indépendamment. Un traitement lent n’oblige pas l’utilisateur qui a déclenché la commande à attendre toute la série.

Le téléchargement d’images suit la même philosophie. Une commande parcourt les produits et confie chaque récupération à un message dédié. Le frontend peut alors servir des variantes locales nommées selon l’identifiant du produit, plutôt que répéter la même transformation distante.

Une file ne garantit ni disponibilité ni reprise automatique parfaite. Elle crée un cadre où chaque tâche peut réussir ou échouer séparément et où l’erreur possède une destination explicite. Pour cette première génération, c’est déjà un changement net par rapport à un traitement unique dans la page web.

15. Observer ce que les visiteurs demandent au catalogue

Mémoriser la requête, sa page d’origine et la famille d’appareil

Lorsqu’un visiteur saisit un texte, le frontend crée un événement de recherche avec un identifiant unique, la requête et l’adresse depuis laquelle elle a été envoyée. Cette donnée donne une base pour repérer les mots demandés au catalogue.

Le dispositif classe également l’appareil : smartphone, tablette, ordinateur et plusieurs familles plus spécifiques peuvent être distingués. Il ne collecte pas ici un profil commercial complet ; il rattache simplement la recherche à un contexte d’affichage.

Cette instrumentation prépare une question utile à l’opérateur : les visiteurs cherchent-ils des produits, des marques ou des engagements qui restent difficiles à trouver ? Le projet ne fournit pas encore de tableau d’analyse ni de résultat chiffré, mais il crée l’événement nécessaire pour le construire.

La mesure est enregistrée avant l’appel catalogue. Elle conserve donc aussi les requêtes qui renvoient peu ou pas de résultats, sous réserve que l’appel suivant aboutisse. Ces recherches sans réponse peuvent devenir une source de travail éditorial ou de qualité catalogue.

16. Vérifier les objets Wizaplace depuis sept vues opérateur

Devises, attributs, catégories, produits et commandes accessibles derrière authentification

En parallèle du parcours public, un espace protégé donne accès à sept routes opérateur : recherche de devises, liste et détail des attributs, recherche de produits, liste et détail des catégories, puis recherche de commandes. Un tableau de bord sert de point d’entrée.

Ces vues ne constituent pas encore un back-office complet de marketplace. Elles permettent surtout de vérifier ce que renvoient les contrats du moteur et de parcourir les objets nécessaires au frontend sans passer par un outil d’appel API séparé.

L’authentification repose sur un fournisseur d’utilisateurs distant. Les routes sous `/app` exigent un rôle utilisateur, tandis que les pages publiques restent accessibles anonymement. Le jeton opérateur utilisé pour les lectures API reste dans la configuration serveur.

Cette coexistence sert la mise au point : une catégorie ou un attribut peut être observé côté opérateur, puis contrôlé dans son usage public. Elle prépare aussi le hub opérateur Shopetic, qui prendra ensuite en charge des synchronisations bien plus larges.

17. Tester les règles métier avant de multiplier les écrans

Vingt-et-un fichiers unitaires, neuf fichiers d’intégration actifs et trente-cinq scénarios

Le corpus contient trente fichiers avec au moins un test actif : vingt-et-un consacrés aux cas métier et neuf aux appels d’intégration. Ils regroupent trente-cinq méthodes de test exécutables. Un dixième fichier d’intégration, consacré aux promotions panier, reste désactivé et n’est pas compté comme couverture active.

Les tests unitaires isolent les cas d’usage avec des implémentations en mémoire. Ils contrôlent notamment recherche et collecte d’attributs, devises, commandes, promotions, utilisateurs, cartes, adresses et paniers. La règle métier peut ainsi être vérifiée sans dépendre d’une API disponible.

Les tests d’intégration confrontent plusieurs mêmes cas aux contrats réels : devises, menus, bannières, attributs, valeurs d’attribut, commandes et attributs PIM. Ils ne constituent pas une garantie globale sur tout Wizaplace, mais ils vérifient les premiers échanges essentiels.

La chaîne de livraison construit séparément les images PHP et Nginx pour les branches principales. Le projet possède aussi des configurations locales et de validation avec Redis, RabbitMQ et base de données. La qualité repose donc sur un environnement reproductible autant que sur les contrôles métier.

18. Les décisions qui ont donné sa valeur à cette première génération

Assumer un périmètre étroit pour rendre le changement de moteur possible

Le premier arbitrage est de ne pas faire du thème le cœur du produit. Même si plusieurs composants visuels restaient génériques, les règles de recherche, les facettes, les slugs et les adaptateurs vivaient déjà hors des gabarits. Le travail utile pouvait donc survivre à une refonte graphique.

Le deuxième est de concentrer le public sur la découverte. Catégories, marques, Etictos, recherche et produit forment un ensemble cohérent. Promotions, utilisateurs, paniers et commandes progressent dans le domaine sans être présentés comme un tunnel complet tant que les routes publiques correspondantes ne sont pas abouties.

Le troisième est de traiter la performance comme une architecture, pas comme un chiffre isolé. Cache Redis, clés normalisées, images locales et messages asynchrones réduisent les dépendances synchrones. Aucun temps de chargement moyen n’est inventé pour transformer ces mécanismes en résultat de production.

Le quatrième est de préserver une sortie. Les cas d’usage ne connaissent pas le client HTTP Wizaplace. Lorsqu’Origami devient le moteur de la génération suivante, l’expérience peut être reconstruite autour d’autres contrats sans abandonner le principe de séparation.

19. Ce que le mois de réalisation a concrètement transformé

D’une série de points d’entrée API à un catalogue navigable et testable

Au début de la période, le projet ne contient qu’une initialisation. À la fin, un visiteur peut entrer par une recherche, une catégorie, une marque ou un Etictos, filtrer le catalogue, ouvrir un produit par son slug et retrouver des métadonnées issues de la source marketplace.

L’équipe dispose d’une frontière stable entre Wizaplace et les pages. Onze adaptateurs de lecture et quatorze transformations de données absorbent les différences de contrat. Une évolution du moteur se traite dans cette couche avant d’affecter l’expérience visible.

Les lectures répétées ne repartent plus nécessairement vers l’API. Redis conserve les principaux objets vingt-quatre heures, tandis que trois files déplacent préchauffage et images hors du parcours immédiat. Le bénéfice observable est organisationnel et technique : moins d’opérations couplées dans une seule requête.

Enfin, l’opérateur peut confronter plusieurs objets aux pages publiques et les cas métier possèdent trente-cinq scénarios actifs. Le projet gagne ainsi une base de diagnostic et de régression avant la prochaine génération. Les gains commerciaux, eux, demanderaient des mesures qui ne font pas partie de cette archive.

20. Ce que la première génération laissait encore ouvert

Fraîcheur, finition marchande et exploitation devaient poursuivre leur maturation

Le cache de vingt-quatre heures est simple et efficace pour démarrer, mais aucune invalidation fine par événement n’est visible dans ce périmètre. Un changement de prix ou de disponibilité peut donc demander une régénération ou attendre l’expiration selon le parcours.

La pagination reçue du moteur est bien représentée dans le domaine, tandis que l’interface publique conserve encore une pagination visuelle statique dans certains gabarits. De même, plusieurs libellés et cartes issus du thème démontrent que la finition éditoriale et transactionnelle n’était pas terminée.

Le domaine contient des fondations pour panier, promotions, commandes, utilisateurs et expédition, mais les onze routes publiques ne forment pas encore un cycle d’achat complet. Cette fiche les présente comme une trajectoire technique, jamais comme des fonctions marchandes toutes accessibles en production.

Enfin, aucune base avant-après ne relie cette version à un taux de conversion, un revenu, un volume de visiteurs ou un gain de temps opérateur. La valeur démontrée reste celle du socle livré : parcours, contrats, cache, traitements, instrumentation et tests.

21. Le scénario qui résume le frontend Wizaplace

Partir d’un engagement, filtrer l’offre puis ouvrir un produit sans exposer le moteur

Un visiteur souhaite découvrir les produits associés à un Etictos. Il ouvre la page du label depuis une adresse lisible. Le frontend résout la valeur d’attribut correspondante et refuse la page si ce slug ne désigne aucun objet valide.

La page lance ensuite la recherche commune avec le filtre Etictos déjà imposé. Wizaplace renvoie les produits et les autres facettes disponibles. Le visiteur ajoute un critère ; le frontend trie les filtres, construit la requête et peut retrouver une réponse déjà présente dans Redis.

Chaque carte conduit vers une adresse produit construite avec son slug. À l’ouverture, le service SEO confirme qu’il s’agit bien d’un produit, puis le détail est transformé en objet Shopetic. Le titre, les métadonnées et les images sont présentés sans transmettre le jeton opérateur au navigateur.

En parallèle, la requête textuelle éventuelle est enregistrée avec son origine et la famille d’appareil. L’opérateur peut contrôler les catégories ou attributs dans l’espace protégé. Une seule interaction relie ainsi identité de marque, contrat API, cache, SEO et capacité de diagnostic.

22. Le 28 mars, Shopetic ouvre une génération raccordée à Origami

Conserver l’expérience comme produit tout en changeant le moteur marketplace

Le dernier jalon de la génération Wizaplace date du 16 mars 2022. Le projet frontend Shopetic avec Origami commence le 28 mars. Il ne s’agit pas du même projet renommé : une nouvelle base prend en charge les contrats et les contraintes du nouveau moteur.

La génération suivante poursuivra bien plus longtemps la mise en œuvre : catalogue enrichi, variantes, SEO, contenus et exploitation quotidienne. La présente fiche reste celle du premier socle, construit sur Wizaplace et arrêté au moment où l’architecture avait déjà prouvé ses principes essentiels.

Le hub opérateur Shopetic complète ensuite l’histoire côté vendeurs et synchronisations. Le projet d’architecture SEO Shopetic traite pour sa part les enjeux de visibilité qui dépassent la construction de ce premier frontend.

Ces pages forment un maillage chronologique utile : construire l’expérience, changer de moteur, industrialiser les flux puis travailler la visibilité. Chacune répond à un problème distinct et conserve ses propres preuves au lieu de transformer Shopetic en un projet unique aux contours indémontrables.

23. Un premier frontend qui rend Shopetic maître de son parcours catalogue

La preuve tient dans les frontières construites, pas dans un indicateur inventé

En trente-et-un jours, Dawap a relié les objets Wizaplace à onze routes publiques, organisé la découverte autour des catégories, marques et Etictos, puis protégé les lectures répétées avec Redis et trois files spécialisées. Le catalogue devient un produit Shopetic plutôt qu’un simple reflet du moteur marketplace.

Cette première génération reste volontairement décrite avec ses limites : thème encore partiellement générique, tunnel d’achat incomplet et absence de mesure commerciale avant-après. Sa valeur n’en est pas moindre. Elle montre des décisions techniques précises, une progression datée et un passage cohérent vers la génération Origami.

Pour une marketplace qui doit reprendre la main sur son expérience sans réécrire son moteur, notre accompagnement en développement frontend marketplace et notre expertise Wizaplace opérateur relient contrats API, parcours, performance et capacité d’évolution.

Portrait de Jérémy Chomel
Cadrage projet

Vous avez un sujet proche de ce projet ?

On peut vous aider à qualifier le contexte, prioriser les risques, clarifier les flux ou cadrer une trajectoire réaliste autour de Création marketplace.

Cadrer votre projet Voir Création marketplace
Hub Shopetic reliant Origami aux boutiques Shopify, PrestaShop et WooCommerce Création marketplace Shopetic Hub : Origami et trois écosystèmes vendeurs Voir le projet
  • 21 juillet 2023
  • Lecture ~20 min

Pendant sept mois, Dawap transforme une première lecture Origami en hub multivendeur : catalogues Shopify, PrestaShop et WooCommerce, rapprochement des variantes, diffusion des offres et commandes réinjectées dans chaque boutique. Treize files spécialisées, des vues d’exception et 268 scénarios automatisés rendent chaque passage de relais vérifiable.

Frontend Shopetic reliant Origami, Algolia, SEO et parcours transactionnel Création marketplace Shopetic × Origami : 27 mois de marketplace Voir le projet
  • 2 juillet 2024
  • Lecture ~20 min

Pendant 27 mois, Dawap fait évoluer Shopetic d’un nouveau contrat Origami vers une marketplace transactionnelle : recherche Algolia, 29 parcours de découverte, variantes, panier multivendeur, LemonWay et espace client. CMS SEO, files de traitement et 244 scénarios automatisés maintiennent la continuité entre catalogue, contenu et exploitation.

Architecture SEO de la marketplace écoresponsable Shopetic SEO technique marketplace Shopetic : architecture SEO marketplace Voir le projet
  • 25 août 2023
  • Étude de cas · 24 min

Shopetic a intégré son SEO au produit entre Origami, Algolia et un CMS local : slugs, canoniques, facettes, pages combinées, index et sitemaps. Cette preuve isole le chantier de découverte de la marketplace, ses mécanismes vérifiables et les garanties restant à industrialiser.

Cadrage opérationnel

Identifions le premier lot utile, les risques et les dépendances avant de lancer.

Dawap peut relire votre contexte métier, vos outils en place, vos contraintes de production et les points de friction à traiter en priorité pour cadrer un sujet Création marketplace exploitable, testable et maintenable.