Projet Intégration API

Shopetic × Origami : encapsuler 24 adaptateurs API pour relier catalogue, panier et commandes

Jérémy Chomel Dawap
  • Publié le : 19 juillet 2023
  • Temps de lecture : Étude de cas · 21 min
  1. Le projet en un coup d’œil
  2. Shopetic, une marketplace écoresponsable branchée sur un moteur transactionnel
  3. Faire descendre la complexité distante dans des adaptateurs nommés par le métier
  4. Frontière API
  5. Architecture
  6. Contexte opérateur
  7. 24 adaptateurs
  8. 65 opérations
  9. 21 mappers
  10. Catalogue
  11. Graphe produit
  12. Recherche et pagination
  13. Client
  14. Panier
  15. Livraison
  16. Paiement
  17. Commandes
  18. Avis et support
  19. Traçabilité
  20. Statuts HTTP
  21. Tests
  22. Chronologie
  23. Cartes cadeaux
  24. Scénario
  25. Gains
  26. Limites
  27. Prolongements
  28. Conclusion
Cas client

Le projet en un coup d’œil

Système audité
01 / Point de départ
Une nouvelle API derrière un parcours marchand déjà ambitieux

Shopetic devait reconstruire sur Origami la lecture du catalogue, le compte client et un tunnel multivendeur sans laisser les formats distants envahir toute l’application.

02 / Réponse
Un contrat métier devant chaque famille d’échanges

Dawap a séparé le domaine des appels HTTP, puis réparti la connexion dans 24 adaptateurs et 21 mappers couvrant recherche, collecte et mutations.

03 / Résultat
Une intégration lisible jusque dans les opérations critiques

Soixante-cinq opérations publiques alimentent les parcours Shopetic. Quatorze mutations client, panier, paiement et commande ajoutent une trace de requête et de réponse.

Signal / 01 24 Adaptateurs Origami Répartis dans douze domaines fonctionnels
Signal / 02 65 Opérations exposées Recherche, collecte, création et mise à jour
Signal / 03 21 Mappers dédiés Des réponses distantes vers le domaine Shopetic
Signal / 04 14 Mutations tracées Client, panier, paiement et commandes vendeurs
Architecture des adaptateurs API Origami reliant le catalogue le panier et les commandes de Shopetic
La couche d’intégration isole les contrats métier de Shopetic, prépare les requêtes Origami, transforme les réponses et trace les mutations transactionnelles les plus sensibles.

Une marketplace peut présenter un catalogue élégant et un tunnel rassurant tout en restant fragile à un endroit invisible : la frontière avec son moteur de commerce. Si chaque contrôleur interprète directement une réponse distante, un changement de relation, de pagination ou de statut HTTP se diffuse rapidement dans les pages, les formulaires et les règles métier.

Pour Shopetic, la connexion à Origami ne se limitait pas à afficher des produits. Elle devait traverser la création du client, la gestion des adresses, le panier multivendeur, le choix de livraison, les coupons, le paiement, la création des commandes vendeurs, les avis et les échanges de support. Chacun de ces gestes possède un vocabulaire, des relations et des réponses différents.

Dawap a construit une couche d’adaptation qui place les contrats du domaine Shopetic devant le client HTTP. Vingt-quatre adaptateurs Origami exposent soixante-cinq opérations publiques ; vingt-et-un mappers transforment les réponses en entités et collections internes. Les mutations les plus sensibles ajoutent une trace exploitable de la requête et de la réponse.

Le projet montre ainsi ce que signifie réellement une mission d’intégration API Origami : ne pas seulement appeler des endpoints, mais donner à chaque échange une frontière, une responsabilité et un comportement que le reste de l’application peut comprendre.

1. Shopetic, une marketplace écoresponsable branchée sur un moteur transactionnel

Le catalogue visible et les décisions de commerce devaient rester cohérents malgré plusieurs profondeurs de données

Shopetic rassemble des produits, variantes, offres vendeurs, attributs, catégories, caractéristiques, images et informations de disponibilité. Une fiche produit ne correspond donc pas à une seule ressource distante : elle assemble un graphe dont chaque relation sert une décision d’affichage ou d’achat.

Le tunnel ajoute une autre profondeur. Un panier contient des lignes rattachées à des produits et des vendeurs, puis des adresses, des modes de livraison, des avantages et un client. La création des commandes vendeurs intervient après le paiement et doit conserver le lien avec le panier qui a servi de point de départ.

L’intégration devait également supporter les fonctions qui entourent la vente : authentification, réinitialisation de mot de passe, avis, tickets, messages, tableau de bord, cartes cadeaux et récupération d’utilisateurs. Le périmètre dépasse donc largement un connecteur catalogue.

Ce volet se concentre sur la mécanique API. La réalisation frontend Shopetic sur Origami prolonge l’histoire avec le parcours public, la recherche Algolia, le CMS, le SEO, le cache et la vie du produit sur vingt-sept mois.

2. Faire descendre la complexité distante dans des adaptateurs nommés par le métier

Contrat, requête, mapping et contrôle de résultat forment une chaîne explicite

Chaque famille fonctionnelle possède d’abord des interfaces dans le domaine : rechercher un produit, collecter une catégorie, créer un panier, modifier une adresse ou récupérer une commande. L’application dépend de ces intentions et non d’un tableau JSON construit au fil des contrôleurs.

L’implémentation Origami prépare ensuite l’URL, la méthode, les paramètres, les relations à inclure et les en-têtes. Elle connaît les conventions de la plateforme, tandis que le cas d’usage reste centré sur ce que Shopetic veut obtenir ou modifier.

À la réception, un mapper transforme la structure distante en objet de lecture interne. Les collections, la pagination et les objets imbriqués deviennent ainsi des résultats cohérents avant de rejoindre les presenters ou les écrans.

Pour les créations et mises à jour les plus critiques, la chaîne conserve aussi l’opération, sa méthode, sa cible, son résultat HTTP et le détail de la réponse. Le suivi se concentre sur les mutations client, panier, paiement et commandes vendeurs, là où un diagnostic doit rester possible.

3. Traiter Origami comme une frontière, pas comme un format interne

Les pages Shopetic n’ont pas à connaître la forme brute des réponses distantes

Le risque d’une intégration rapide est de faire remonter les noms de champs, les relations et les codes de réponse jusque dans l’interface. Une modification côté plateforme oblige alors à rechercher la même convention dans plusieurs contrôleurs, commandes et gabarits. Le coût ne vient plus seulement de l’API ; il vient de sa dispersion.

Shopetic place une frontière nette autour d’Origami. Le domaine décrit les objets et les actions attendus. L’infrastructure est la seule couche qui sait comment l’opérateur distant expose un produit, une offre, un panier ou une commande vendeur. La présentation reçoit ensuite un résultat déjà traduit.

Cette séparation est concrète : le domaine contient soixante-treize interfaces de données, dont une partie est implémentée par les vingt-quatre adaptateurs opérateur. Les autres couvrent notamment les données locales, le CMS, Algolia et les mécanismes de suivi. L’application peut donc distinguer chaque source au lieu de les fondre dans un même client générique.

La décision protège aussi le récit fonctionnel. « Ajouter une ligne au panier » reste une action Shopetic, même si l’endpoint, le verbe HTTP ou le corps attendu évoluent. L’intention métier ne devient pas le nom technique choisi par un fournisseur.

4. Faire circuler chaque échange dans quatre responsabilités

Le cas d’usage appelle un contrat, l’adaptateur interroge Origami et le mapper rend un objet métier

Un parcours commence dans l’application par un cas d’usage. Celui-ci formule une lecture ou une écriture à travers une interface du domaine. Il ne construit ni URL, ni jeton, ni paramètre include. Cette première séparation garde les règles du parcours testables sans dépendre d’une session HTTP réelle.

L’adaptateur APIOperator prend ensuite la responsabilité de l’échange. Il récupère la configuration courante, assemble la route, choisit GET, POST, PATCH ou DELETE, transmet les données et reçoit la réponse. Le détail de la plateforme reste concentré dans une classe nommée par le domaine concerné.

Le mapper lit enfin la réponse et construit les entités de lecture. Lorsqu’une recherche renvoie plusieurs résultats, il fabrique aussi la collection et les informations de pagination attendues. Les contrôleurs et les presenters manipulent ainsi le langage Shopetic au lieu de relire partout la même structure externe.

La chaîne peut se résumer ainsi : parcours Shopetic → cas d’usage → contrat du domaine → adaptateur Origami → client HTTP → mapper → entité ou collection Shopetic. Cette succession n’ajoute pas une abstraction décorative ; elle attribue un propriétaire clair à chaque transformation.

5. Centraliser le contexte opérateur avant chaque appel

Une URL de plateforme, un jeton actif et un contexte commun alimentent les adaptateurs

Les adaptateurs ne portent pas chacun leur propre configuration. Un composant commun fournit l’URL de base de la plateforme et charge le jeton opérateur depuis la configuration la plus récente de l’application. Si ce jeton manque, la requête ne poursuit pas silencieusement son chemin.

L’autorisation est transmise sous forme de jeton Bearer. Un en-tête de contexte opérateur accompagne également les appels concernés. Ces conventions sont préparées dans la couche d’infrastructure et ne contaminent pas les objets du catalogue ou du panier.

Cette centralisation évite qu’un changement de jeton impose une modification de vingt-quatre classes ou, pire, que plusieurs versions de la même information coexistent. Elle rend aussi explicite la différence entre la connexion de Shopetic à Origami et la session du visiteur qui navigue sur la marketplace.

Le dispositif décrit un comportement applicatif, pas une certification. Il garantit surtout une source unique de configuration au moment de l’appel. La rotation, la gouvernance et la durée de vie du secret restent des responsabilités d’exploitation à traiter autour de l’application.

6. Répartir 24 adaptateurs dans douze domaines fonctionnels

Une classe par famille de ressources plutôt qu’un client universel difficile à faire évoluer

Le catalogue constitue le groupe le plus profond avec huit adaptateurs : types et valeurs d’attribut, catégories, types et valeurs de caractéristiques, cartes cadeaux, produits et offres produit. Cette granularité suit les objets nécessaires pour reconstruire une fiche et ses variantes.

La commande en rassemble trois pour le panier, les lignes de commande et les commandes vendeurs. Le client en compte deux, dédiés au profil et aux avis. La livraison en compte deux pour les offres et les types de transport ; le support en compte deux pour les tickets et leurs messages.

Les domaines authentification, configuration, contexte opérateur, tableau de bord, finance, vendeur et utilisateur disposent chacun de leur point d’entrée. Au total, douze zones fonctionnelles utilisent vingt-quatre classes APIOperator distinctes.

Cette distribution donne un vocabulaire à la maintenance. Une évolution du panier n’oblige pas à ouvrir un client Origami monolithique où se mêleraient mot de passe, avis et catégories. L’équipe peut suivre le domaine affecté, son mapper et ses tests associés.

7. Exposer 65 opérations publiques sans réduire l’intégration à un CRUD

Search et collect côtoient les gestes transactionnels propres au parcours

Les adaptateurs totalisent soixante-cinq opérations publiques hors construction des objets. Certaines recherchent une ressource selon des critères ; d’autres collectent une ressource connue par son identifiant. Cette distinction évite de traiter une liste paginée comme une fiche complète.

Le catalogue fournit surtout des recherches et des collectes. Le client ajoute la création, la mise à jour complète ou légère, la gestion d’adresse et le rattachement d’un identifiant de session partenaire. Le ticket et son message possèdent leurs propres créations.

Le panier concentre le plus grand nombre de gestes : créer, ajouter une ligne, changer une quantité, rattacher un client, supprimer une ligne, enregistrer les adresses, sélectionner la livraison, ajouter ou retirer un avantage et collecter les options de transport. Chaque geste correspond à une étape visible du tunnel.

La finance crée et collecte des transactions, y compris le chemin qui a servi aux cartes cadeaux. Les commandes vendeurs peuvent être créées puis relues. L’inventaire des opérations révèle ainsi un raccordement transactionnel complet, pas une simple synchronisation nocturne de produits.

8. Transformer 21 familles de réponses avant de les présenter

Chaque mapper protège le domaine d’une structure distante particulière

Vingt-et-un mappers spécialisés reconstruisent les objets Shopetic. Ils couvrent notamment catégories, attributs, caractéristiques, cartes cadeaux, produits, offres, champs personnalisés, clients, avis, paiements, paniers, lignes de commande, commandes vendeurs, vendeurs, livraisons, tickets et messages.

Le produit illustre l’enjeu : son mapping doit conserver les variantes, leurs attributs, les catégories, les offres de vendeurs, les caractéristiques et les images. Une simple copie clé-valeur ne suffirait pas à produire l’objet attendu par le choix de variante ou l’ajout au panier.

Le panier possède son propre mapper parce qu’il agrège une autre forme de graphe : lignes, vendeurs, produits, options, client, adresses, modes de livraison et avantages. Un objet produit imbriqué dans le panier n’est pas interprété sans son contexte transactionnel.

Ce passage systématique par des objets internes crée une place unique pour convertir un type, accepter une relation absente ou construire une collection. Il réduit surtout la tentation de corriger un format directement dans une page, correction rapide qui deviendrait invisible pour les autres parcours.

9. Décomposer le catalogue jusqu’aux attributs et caractéristiques

Les filtres et les variantes reposent sur plusieurs ressources Origami reliées

Une catégorie peut être collectée individuellement, recherchée ou chargée sous forme d’arbre. Les attributs possèdent des types et des valeurs distincts. Les caractéristiques suivent la même séparation. Ces ressources donnent à Shopetic les éléments nécessaires pour classer, filtrer et décrire un produit.

L’adaptateur produit accepte des filtres qui correspondent aux usages de la marketplace : identifiant de produit, date de mise à jour, marque représentée par une valeur de caractéristique, ou encore qualification Etictos. La requête distante reste alignée sur la question posée par le parcours.

Les offres produit sont collectées séparément. Ce choix évite de confondre la fiche de référence avec les conditions proposées par un vendeur. Prix, disponibilité et vendeur gardent ainsi une place propre dans la lecture commerciale.

La carte cadeau constitue aussi un objet de catalogue dans cette génération. Elle peut être recherchée, collectée ou retrouvée par code. Son usage transactionnel arrive plus tard dans le panier et le paiement, mais sa reconnaissance commence par une ressource dédiée plutôt que par une chaîne libre interprétée au dernier moment.

10. Demander le graphe produit utile en une lecture cohérente

Variantes, offres, vendeurs, images et catégories sont inclus selon le parcours

La collecte d’un produit demande explicitement les relations nécessaires à sa présentation : attributs des variantes, catégories, offres, types et valeurs de caractéristiques, vendeur de l’offre, images du produit et images de variantes. L’adaptateur décrit donc la profondeur réellement consommée par Shopetic.

Les offres peuvent elles-mêmes embarquer des informations de variante, leurs attributs et leurs images. Cette précision est essentielle lorsqu’un choix de couleur ou d’option détermine l’offre qui sera ajoutée au panier.

L’usage du paramètre include répond à un compromis. Il évite une succession d’appels pour recomposer une même fiche, mais augmente la densité de la réponse. La liste de relations est donc rattachée à l’adaptateur produit au lieu d’être improvisée par chaque page.

Une fiche peut ainsi recevoir un objet cohérent où la relation entre produit, variante et offre a déjà été reconstruite. L’interface conserve sa responsabilité : présenter et faire choisir. Elle n’a pas à deviner quel identifiant externe relie les trois niveaux.

11. Conserver la pagination et les critères dans les lectures de collection

Search ne renvoie pas seulement une liste, mais le contexte pour continuer à naviguer

Une recherche distante possède une page, une taille et des métadonnées. L’adaptateur transmet les critères compatibles avec Origami puis le mapper construit la collection et les informations de pagination attendues. La présentation sait donc où elle se trouve sans relire les conventions de la réponse brute.

Les méthodes collect répondent à un autre besoin : récupérer un objet identifié avec la profondeur relationnelle adaptée. Cette distinction évite de charger une collection complète lorsqu’un parcours ne demande qu’un vendeur, un ticket ou une option de transport.

La recherche et la collecte sont répétées dans plusieurs domaines parce que la forme des filtres n’est pas universelle. Un produit se filtre par catalogue et date de mise à jour ; une commande, un utilisateur ou un avis portent d’autres critères. Le nom commun ne masque pas ces différences.

Shopetic utilise par ailleurs Algolia pour la découverte publique. L’adaptateur Origami reste néanmoins indispensable pour obtenir la source transactionnelle et les objets complets. La fiche frontend Shopetic détaille cette répartition entre index de recherche et moteur de commerce.

12. Relier le compte client sans mêler session locale et profil distant

Création, mise à jour, adresse et rattachement de session disposent de gestes distincts

Le client peut être créé puis recherché ou collecté. Deux formes de mise à jour existent : une modification complète et une modification légère. L’adresse possède également une opération dédiée. Ces différences empêchent un petit changement de profil d’envoyer par réflexe un document beaucoup plus large.

Une opération supplémentaire rattache au client un identifiant de session partenaire. Elle a notamment servi au parcours Lilo introduit en 2023. Le raccordement ne se réduit donc pas aux champs classiques de civilité et d’adresse ; il sait transmettre un contexte d’affiliation lorsque le parcours le demande.

L’authentification du visiteur reste distincte du jeton opérateur utilisé par les adaptateurs. Shopetic peut rechercher un utilisateur par son adresse électronique et collecter son profil sans confondre les droits du compte marchand avec ceux du connecteur serveur.

Les mutations client appartiennent aux appels suivis par le dispositif de monitoring. Lorsqu’une création ou une modification échoue, l’équipe peut retrouver l’opération et son résultat au lieu de déduire le problème uniquement depuis le formulaire visible.

13. Faire du panier une orchestration explicite de gestes

Créer, enrichir et corriger le panier sans envoyer un état opaque à chaque étape

Le panier possède sa recherche et sa collecte, mais surtout neuf familles de mutations. Une première opération le crée. D’autres ajoutent une ligne, modifient sa quantité ou la suppriment. Le client peut ensuite être rattaché au panier commencé durant une session invitée.

Les adresses sont transmises avant le mode de livraison. Les options disponibles peuvent être collectées pour le panier courant, puis la méthode choisie est enregistrée. Les avantages suivent deux gestes distincts : ajouter un voucher ou le retirer.

Cette décomposition donne un point de diagnostic à chaque étape. Une erreur de quantité ne se confond pas avec un refus de code avantage ; une adresse invalide ne devient pas un échec générique de sauvegarde du panier. L’interface peut réagir au geste qui vient réellement d’être demandé.

Le détail du panier demande un graphe riche : vendeurs et avis, lignes avec leurs produits, catégories, offres, caractéristiques, variantes et images, puis client, adresses, livraisons et avantages. Le mapper rassemble ce contexte afin que le tunnel dispose d’un état cohérent après chaque mutation.

14. Séparer les types de transport des offres applicables

La promesse affichée dépend du panier et du vendeur, pas d’une liste statique

Deux adaptateurs sont consacrés à la livraison. Le premier recherche et collecte les types de transport. Le second recherche et collecte les offres de livraison. Cette séparation conserve la différence entre la nature d’un service et sa proposition dans un contexte donné.

Le panier demande ensuite sa propre collection de méthodes disponibles. La sélection est renvoyée à Origami par une mutation dédiée. Le tunnel ne choisit donc pas un libellé local sans rattachement au calcul du moteur transactionnel.

Dans une marketplace multivendeur, ce point est structurant : les lignes n’appartiennent pas toutes au même vendeur et ne partagent pas nécessairement la même solution logistique. Le modèle de panier doit conserver cette composition avant la commande.

L’évolution de janvier 2023 a notamment accompagné une mise à jour de l’API Origami 2.12 et l’ajout du téléphone aux informations de livraison. Cette correction montre pourquoi la frontière mérite une classe dédiée : un besoin de transport peut évoluer sans réécrire toute la présentation du panier.

15. Créer la transaction puis relire son état avant la commande

Le paiement possède son propre adaptateur et sa propre représentation

L’adaptateur financier expose la création et la collecte d’une transaction de paiement. Une troisième opération a servi au paiement intégral par carte cadeau. Le domaine finance reste ainsi séparé du panier, même si les deux se succèdent dans le tunnel.

La création transmet à Origami les éléments attendus par le parcours, puis le mapper construit l’objet de paiement compris par Shopetic. La redirection vers le prestataire et le retour ne sont pas traités comme une simple propriété arbitraire du panier.

Les créations de transaction font partie des mutations tracées. Méthode, cible, charge utile, statut et réponse peuvent être rapprochés. Cette trace sert à comprendre ce que l’application a réellement envoyé et reçu ; elle ne constitue pas à elle seule une preuve bancaire ou un rapprochement comptable.

Le paiement du frontend Shopetic s’appuie sur LemonWay et déclenche ensuite les commandes vendeurs lorsque le retour réussi est traité. Cette étude reste centrée sur le passage API ; la chronologie complète du tunnel est présentée dans la réalisation marketplace Shopetic.

16. Créer des commandes vendeurs à partir du panier validé

Le multivendeur reste visible après le paiement

La couche Order distingue la ligne de commande, la commande vendeur et le panier. Une ligne peut être recherchée ou collectée. Une commande vendeur peut être créée, recherchée, collectée ou relue depuis le point de vue du client.

Cette structure préserve la nature marketplace du parcours. Le client paie une expérience unifiée, tandis que l’exécution commerciale se répartit entre plusieurs vendeurs. Une commande globale ne doit pas effacer les unités qui devront ensuite être suivies, expédiées ou présentées dans l’espace client.

La création des commandes vendeurs intervient dans la zone de mutations suivies. L’opération reçoit un identifiant externe lorsque celui-ci est disponible, ce qui facilite le rapprochement entre la trace technique et l’objet de commerce concerné.

Une réponse réussie confirme le comportement attendu par l’adaptateur ; elle ne prouve pas encore que chaque événement logistique futur aura abouti. La frontière garde donc une responsabilité précise : demander la création, interpréter la réponse et fournir l’objet obtenu au reste du parcours.

17. Prolonger la vente par les avis, tickets et messages

L’intégration couvre aussi la relation après l’achat

Un adaptateur client permet de créer, collecter et rechercher des avis. Le vendeur peut être collecté ou recherché séparément. Ces deux familles alimentent la confiance et la lecture du contexte vendeur sans être enfouies dans l’objet produit.

Le support possède un adaptateur de ticket et un adaptateur de message. Un ticket peut être créé, collecté ou recherché ; un message peut être créé ou collecté. L’espace client dispose ainsi de primitives distinctes pour ouvrir une conversation puis la poursuivre.

Cette séparation évite de représenter une relation de support comme une simple note libre attachée à une commande. Le ticket possède son identité et le message sa propre chronologie. L’interface peut construire un suivi lisible autour de ces objets.

Le périmètre rappelle qu’une intégration marketplace ne s’arrête pas lorsque le paiement est accepté. Le client doit retrouver ses commandes, donner un avis et échanger sur un problème. Les adaptateurs offrent ces points de passage au même niveau de rigueur que le catalogue ou le panier.

18. Tracer 14 mutations là où une écriture mérite une preuve technique

Client, panier, paiement et commandes vendeurs constituent le périmètre observé

Quatorze interactions créent explicitement une entrée de suivi dans quatre adaptateurs : client, panier, paiement et commande vendeur. Le choix se concentre sur les opérations qui modifient un état ou engagent une étape transactionnelle, plutôt que sur chaque lecture de catalogue.

La trace possède un identifiant, un nom, un type, une URL, une méthode HTTP et une date. Elle peut conserver la charge utile et un identifiant externe. Après la réponse, elle reçoit le statut HTTP et un indicateur de réussite.

Un détail séparé conserve la réponse interprétée. Cette structure permet de consulter le résumé d’une opération puis son contenu lorsque le diagnostic le demande, sans confondre le journal principal et le document retourné.

Le bénéfice est particulièrement concret dans le panier : ajout ou suppression de ligne, rattachement du client, adresse, livraison ou avantage laissent chacun un point d’observation. L’équipe ne dépend pas seulement du message final montré au visiteur pour comprendre l’étape qui a rompu la chaîne.

19. Vérifier le résultat attendu selon le geste exécuté

Une suppression et une mise à jour ne partagent pas nécessairement le même succès HTTP

Les adaptateurs utilisent GET, POST, PATCH et DELETE selon l’intention. Ils ne réduisent pas la réussite à « aucune exception levée ». Plusieurs mutations comparent le statut obtenu au statut attendu pour le geste concerné.

La suppression d’une ligne de panier attend par exemple une réponse sans contenu, tandis que de nombreuses créations ou mises à jour attendent une réponse exploitable. Cette distinction empêche d’interpréter de la même manière deux conventions HTTP différentes.

Le booléen de réussite ajouté au suivi rend ce contrôle consultable avec le statut reçu. La réponse détaillée aide ensuite à comprendre un refus fonctionnel ou une divergence de contrat lorsque le contenu est disponible.

Le comportement n’est pas présenté comme une politique universelle de reprise. Aucun mécanisme générique de retry ou de garantie d’idempotence n’est attribué à toute la couche. L’intérêt prouvé est plus précis : l’adaptateur sait quel résultat il attend et le journalise pour les mutations ciblées.

20. Vérifier les contrats sur trois niveaux de tests

Le domaine Origami compte 80 fichiers unitaires, 56 d’intégration et 28 applicatifs

La suite liée au domaine Origami se répartit entre quatre-vingts fichiers de tests unitaires, cinquante-six fichiers d’intégration et vingt-huit fichiers applicatifs. Ces nombres décrivent les fichiers présents dans chaque niveau, pas un pourcentage de couverture.

Les tests unitaires peuvent contrôler un mapper, une entité ou une règle sans dépendre d’une réponse réelle. Les tests d’intégration vérifient le raccordement entre plusieurs composants, notamment dans le catalogue, la finance, les commandes, les vendeurs et la livraison.

Les tests applicatifs ouvrent des parcours plus larges. Ensemble, les trois niveaux évitent de demander à un seul type de scénario de prouver à la fois une conversion de champ, une requête et un écran complet.

Cette profondeur accompagne la taille du produit, mais elle ne garantit pas que chaque réponse possible d’Origami soit couverte. La valeur tient à l’existence de frontières contrôlables : contrat, adaptateur, mapper et parcours peuvent être vérifiés au niveau où leur responsabilité apparaît.

21. Étendre la connexion au rythme des parcours entre 2022 et 2023

Le catalogue arrive d’abord, puis le tunnel, le support et les enrichissements transactionnels

La couche commence fin mars 2022. En avril, les premiers travaux portent sur les attributs, catégories, caractéristiques, cartes cadeaux, produits et leurs mappings. Cette séquence installe le vocabulaire du catalogue avant de construire le tunnel complet.

En juin 2022 arrivent les types et offres de livraison, l’authentification, le panier, les lignes de commande, le client et les adresses. Le paiement suit à la fin du mois. Début juillet, les tickets, avis et vouchers complètent la relation après et autour de la vente.

L’automne 2022 enrichit les produits, le tableau de bord, les commandes et leur suivi. En janvier 2023, l’intégration s’ajuste à la version 2.12 de l’API, aux informations de transport et aux journaux de transaction. En mai, le parcours Lilo ajoute le rattachement de session au client et à la commande.

Les derniers changements de cette frontière, les 18 et 19 juillet 2023, concernent les cartes cadeaux, les coupons et la recommandation après commande. Cette dernière extension donne sa date à la réalisation présentée ici.

22. Faire évoluer le paiement avec les cartes cadeaux et les coupons

Un cas transversal mobilise catalogue, panier et finance

La carte cadeau illustre la raison d’être des frontières. Elle est d’abord une ressource que le catalogue peut retrouver par code. Elle intervient ensuite dans le résumé du panier, puis dans la création d’une transaction lorsqu’elle couvre tout ou partie du montant.

En juillet 2023, plusieurs changements rapprochés ajoutent l’import, la collecte par code, le travail côté panier et la création d’une transaction spécifique. Le lendemain, l’intégration est ajustée pour les cartes cadeaux et les coupons, puis pour la recommandation qui suit la commande.

Le cas traverse donc plusieurs domaines sans les fusionner. Le catalogue reconnaît la valeur, le panier l’applique à son état et la finance porte la transaction. Chaque responsabilité conserve son adaptateur et ses objets.

Cette fonctionnalité sera retirée du frontend en février 2024. Son arrêt ultérieur n’efface pas la réalisation de 2023 ; il montre qu’une architecture doit aussi permettre de faire évoluer ou de retirer un parcours sans réécrire toutes les autres interactions Origami.

23. Suivre une commande multivendeur depuis une variante jusqu’aux commandes vendeurs

Chaque étape franchit la même frontière avec une intention différente

Un visiteur ouvre une fiche. L’adaptateur produit collecte les variantes, leurs attributs, les offres, les vendeurs et les images. Le mapper reconstruit l’objet Shopetic ; l’interface peut alors présenter la bonne combinaison sans parcourir elle-même la réponse Origami.

Le visiteur choisit une variante et une offre. Le panier est créé ou retrouvé, puis une ligne est ajoutée. La mutation est tracée avec sa méthode, sa cible et son résultat. Le panier relu contient désormais la ligne, le produit, l’offre et le vendeur associés.

Le compte client est rattaché, les adresses sont enregistrées et les offres de livraison disponibles sont collectées. Le choix du transport devient une mutation distincte. Un coupon éventuel suit son propre geste, de sorte qu’un refus ne soit pas confondu avec la livraison.

La transaction de paiement est créée puis collectée. Après son succès, l’application demande les commandes vendeurs issues du panier. Chacune peut ensuite être relue dans l’espace client. Du produit à la commande, le parcours mobilise plusieurs adaptateurs sans laisser leurs contrats techniques se mélanger dans une page unique.

24. Ce que la couche d’intégration change concrètement

La progression se lit dans la maîtrise du parcours et la qualité du diagnostic

Avant cette couche, le nouveau raccordement Origami était un ensemble de contrats à apprivoiser. Après les premières semaines, Shopetic pouvait déjà collecter les structures du catalogue ; en juin 2022, le même socle portait le compte, le panier, la livraison et le paiement.

Les vingt-quatre adaptateurs donnent un emplacement stable aux soixante-cinq opérations. Les vingt-et-un mappers empêchent les réponses brutes de devenir le modèle interne de l’application. Une évolution distante peut ainsi être examinée à la frontière concernée.

La traçabilité ciblée rend les écritures sensibles plus explicables. Lorsqu’une ligne, une adresse, une livraison, une transaction ou une commande vendeur échoue, l’équipe dispose du geste, du statut et de la réponse enregistrés pour instruire le problème.

Les effets directement observables sont fonctionnels : couverture d’un tunnel complet, responsabilités séparées, résultats transformés avant présentation et mutations critiques consultables. Les résultats commerciaux et le temps gagné en support demanderaient une mesure distincte du fonctionnement de la couche API.

25. Les limites qui gardent cette preuve crédible

Une intégration structurée ne devient pas automatiquement une garantie de service

Le suivi explicite concerne quatorze mutations dans quatre adaptateurs. Il ne couvre pas chaque lecture de catalogue, avis, ticket ou livraison. Présenter toute la couche comme intégralement monitorée dépasserait donc le périmètre construit.

Les statuts attendus rendent les résultats lisibles, mais aucun mécanisme universel de retry, de rejeu ou d’idempotence n’est revendiqué pour l’ensemble des soixante-cinq opérations. Ces propriétés doivent être examinées geste par geste lorsque le besoin les exige.

Les fichiers de tests montrent trois niveaux de contrôle, sans fournir un taux de couverture ni une certification face à toutes les versions de l’API. La mise à jour de janvier 2023 rappelle au contraire qu’un contrat distant continue d’évoluer.

Enfin, cette couche n’est ni Algolia, ni le CMS, ni le frontend complet, ni le hub opérateur qui synchronise d’autres écosystèmes vendeurs. Sa valeur tient à une responsabilité volontairement bornée : traduire les échanges Origami nécessaires aux parcours Shopetic.

26. Relier cette frontière aux autres responsabilités Shopetic

Frontend, SEO et hub opérateur prolongent le projet sans se confondre avec lui

La marketplace Shopetic sur Origami montre comment les objets issus de cette intégration alimentent vingt-neuf routes de découverte, onze routes de panier, le CMS, Algolia, le paiement et les traitements d’exploitation.

Le hub opérateur Shopetic porte une autre responsabilité : relier Origami à trois écosystèmes vendeurs. Il travaille sur les synchronisations opérateur, tandis que la présente couche alimente les parcours du site marchand.

Le projet SEO technique Shopetic traite les adresses, contenus et signaux d’indexation de la marketplace. Il dépend de données cohérentes, mais ne remplace ni le moteur transactionnel ni ses adaptateurs.

Pour un besoin comparable, notre accompagnement d’intégrateur Origami commence par cette même clarification : quelles sources font autorité, quelles opérations doivent être exposées au domaine, quelles réponses doivent être transformées et quelles écritures exigent une trace exploitable.

27. Conclusion

Une API marketplace devient fiable lorsqu’elle parle le langage du parcours qui l’utilise

L’intégration Origami de Shopetic ne tient pas dans un client HTTP générique. Elle répartit vingt-quatre adaptateurs dans douze domaines, expose soixante-cinq opérations et confie à vingt-et-un mappers la transformation des réponses. Le catalogue, le client, le panier, la livraison, le paiement et les commandes conservent ainsi leurs responsabilités.

Les quatorze mutations suivies ajoutent un point de contrôle là où le parcours change un état. Elles rendent les créations et mises à jour plus faciles à instruire. Les trois niveaux de tests complètent cette frontière avec des contrôles adaptés à chaque responsabilité.

Cette réalisation constitue une preuve client distincte du frontend Shopetic : elle montre comment bâtir la couture entre une marketplace et Origami. C’est précisément le rôle de notre expertise d’intégration API Origami : transformer des contrats distants en parcours métier lisibles, évolutifs et vérifiables.

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 Intégration API.

Cadrer votre projet Voir Intégration API
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.

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.

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 Intégration API exploitable, testable et maintenable.