Aller au contenu
Toutes les réalisations

Étude de cas 04 / 06

Purely White Deluxe

Hygiène bucco-dentaire · Marketplaces

Target Plus, branché directement sur Shopify et Flexport

  • Ingénierie des données
  • Ingénierie logicielle
  • Cloud et infrastructure
purelywhitedeluxe.com
Middleware Target PlusDonnées démo
Tableau de bord d’exploitation du middleware Target Plus

Chiffres clés

Entre deux relevés des nouvelles commandes Target
5 min
Rapprochement en filet de sécurité
15 min

En bref

  • L’enjeu

    Vendre sur Target Plus, la marketplace de l’enseigne américaine Target, impose de respecter ses règles sur chaque fiche produit et chaque commande (accusés de réception, modes d’expédition exacts, motifs d’annulation, stock par centre de distribution), alors que le catalogue est géré dans Shopify, le stock et les expéditions chez Flexport.

  • Notre réalisation

    Une intégration Target Plus directe, dans le projet Google Cloud du client : fiches produits publiées depuis Shopify selon la taxonomie de Target ; commandes confirmées à Target puis transmises à Flexport ; suivi, annulations et stock remontés à Target, et retours enregistrés chez Flexport, le tout piloté depuis une console dédiée. En parallèle, un entrepôt de données DataSync réunit dans BigQuery les données marketplaces et commandes.

  • Le résultat

    Une intégration marketplace construite dans le projet Google Cloud de la marque : tests automatisés, contrats d’API validés par rapport aux spécifications publiées par Target et Flexport, et un pipeline unique qui produit, à partir du même code, des applications distinctes pour le bac à sable et la production.

Services associés : Intégration de plateformesInfrastructure cloud

Savoir-faire

Ce qu’il a fallu.

  • Ingénierie des données

    • Synchronisations incrémentales du catalogue Shopify, ainsi que des fiches et des retours Target, avec curseurs et fenêtres de chevauchement.
    • Une outbox transactionnelle avec priorités, backoff et détection des blocages : les appels de commande, de stock, de prix, de fiche produit et de retour survivent à une panne, et des clés d’idempotence empêchent qu’une nouvelle tentative s’applique deux fois.
    • Des webhooks stockés puis traités, avec dédoublonnage, un rapprochement toutes les 15 minutes en filet de sécurité, et des instantanés de stock enregistrés seulement en cas de changement, avec un registre complet.
    • DataSync : données marketplaces et commandes chargées dans le BigQuery de la marque, y compris les webhooks de commande vérifiés par HMAC, stockés comme événements en ajout seul.
  • Ingénierie logicielle

    • Un back-end FastAPI avec une machine à états des commandes, des clés d’idempotence et un disjoncteur (circuit breaker) sur les annulations automatiques.
    • Un module de publication des fiches bâti sur le modèle de données de Target : familles de variantes, attributs dictés par la taxonomie et validation avant envoi.
    • Des tests automatisés, dont des simulations (mocks) des API de Target et de Flexport, validées par rapport à leurs spécifications OpenAPI publiées.
    • Une console d’exploitation avec aide intégrée et schémas dessinés à la main, de la carte du système aux cycles de vie des commandes, des fiches et des retours.
  • Cloud et infrastructure

    • Un pipeline Cloud Build unique qui provisionne et déploie trois services Cloud Run par application : l’interface derrière Identity-Aware Proxy, les jobs accessibles uniquement via IAM, le récepteur de webhooks public.
    • Cloud SQL Postgres derrière une VM PgBouncer dans un VPC privé, Cloud Scheduler avec OIDC, et rotation des clés dans Secret Manager sans redéploiement.
    • Règles d’alerte Cloud Monitoring, alertes dans l’application et rôle de base de données limité à l’insertion pour le webhook public.

Projet 01

Middleware Target Plus

FastAPI · React 19 · Cloud SQL · Cloud Run

Il publie le catalogue Shopify sur Target Plus (familles de variantes, taxonomie de Target, prix catalogue, prix de l’offre et prix minimum annoncé (MAP), stock par centre de distribution), puis interroge Target toutes les cinq minutes pour récupérer les nouvelles commandes, en accuse réception, les transmet à Flexport, remonte à Target le suivi, les annulations et le stock, et enregistre les retours Target chez Flexport pour contrôle et remise en stock. Tout se pilote depuis une console, avec une file des points d’attention et une piste d’audit complète.

Objectif
Respecter automatiquement les règles opérationnelles de Target sur chaque fiche et chaque commande, sans jamais perdre ni dupliquer une commande quand l’API d’un partenaire ne répond pas à temps.
Points clés
  • Outbox transactionnelle avec priorités, backoff et détection des blocages
  • Webhooks stockés puis traités, plus un rapprochement toutes les 15 minutes
  • Disjoncteur sur les annulations automatiques
  • Simulations des API de Target et de Flexport validées par rapport à leurs spécifications
Technologies
  • Python
  • FastAPI
  • React 19
  • PostgreSQL
  • Cloud Run
  • Cloud SQL
  • Cloud Build
Middleware Target PlusDonnées démo
Tableau de bord du middleware Target Plus
(taille réelle, dans un nouvel onglet)
Tableau de bord d’exploitation : commandes par état, et file des points d’attention avec les échéances d’annulation automatique.
Middleware Target PlusDonnées démo
Détail d’une commande entre Target et Flexport
(taille réelle, dans un nouvel onglet)
Une même commande, côté Target et côté Flexport : révisions, quantités par ligne et numéros de suivi.
Middleware Target PlusDonnées démo
Chronologie des événements d’une commande
(taille réelle, dans un nouvel onglet)
La chronologie d’audit de la même commande : réception, routage partiel, annulation d’une ligne et transmission pour expédition.
Middleware Target PlusDonnées démo
Éditeur de fiches produits Target Plus
(taille réelle, dans un nouvel onglet)
Éditeur de fiches bâti sur la taxonomie de Target : les valeurs Shopify à côté des attributs Target, avec les contrôles du serveur avant envoi.
Middleware Target PlusDonnées démo
Page de stock avec le panneau du registre
(taille réelle, dans un nouvel onglet)
Stock par centre de distribution, avec le registre des mouvements derrière chaque chiffre.
Middleware Target PlusDonnées démo
Page des jobs montrant l’outbox
(taille réelle, dans un nouvel onglet)
L’outbox : appels aux API partenaires en file d’attente, relancés avec backoff ou signalés comme bloqués.
Middleware Target PlusDonnées démo
Carte du système dans l’aide intégrée
(taille réelle, dans un nouvel onglet)
Aide intégrée : comment Shopify, Target Plus, Flexport et les trois services s’articulent.

Projet 02

Entrepôt de données marketplaces

DataSync · BigQuery · Cloud Run

Les données marketplaces et commandes de la marque arrivent dans son propre projet Google Cloud via DataSync : un connecteur TikTok Shop planifié et signé, activé par un lien vendeur à usage unique, et un récepteur de webhooks de commande vérifiés par HMAC qui ajoute chaque événement à BigQuery, avec une vue du dernier état.

Objectif
Réunir les données marketplaces et commandes de la marque dans un entrepôt de données dont elle est propriétaire et qu’elle paie elle-même.
Points clés
  • Configuration de synchronisation par ressource : table intermédiaire, table cible de fusion et clés
  • Événements de webhook stockés en ajout seul : un changement de schéma ne casse jamais l’ingestion
Technologies
  • DataSync
  • BigQuery
  • Cloud Run
  • Cloud Scheduler
  • Webhooks
Console DataSyncDonnées démo
Inventaire des connecteurs DataSync
(taille réelle, dans un nouvel onglet)
DataSync (espace de démo) : connecteurs marketplaces, centres de distribution et publicité, avec leur état de connexion.
Console DataSyncDonnées démo
Configuration de synchronisation DataSync
(taille réelle, dans un nouvel onglet)
DataSync (espace de démo) : configuration de synchronisation par ressource, avec des tables intermédiaires fusionnées dans l’historique par clé.
Schéma de l’architecture DataSync
(taille réelle, dans un nouvel onglet)
DataSync : une seule plateforme d’ingestion, chaque client dans son propre cloud.

Et maintenant, à vous.