Un développeur commercetools écrit rarement du code dans la plateforme elle-même. Il appelle ses API REST ou GraphQL depuis un front découplé, souvent Next.js ou Nuxt, et depuis des services qui font ce que l'API ne fait pas : contrôles du panier par des API Extensions, envoi des commandes à l'ERP par des subscriptions, paiement chez Adyen ou Stripe, contenu dans un CMS headless, recherche dans Algolia. Les questions d'entretien pour un développeur commercetools portent autant sur cet assemblage que sur l'API.
MACH et headless figurent sur beaucoup de CV après un projet où le front lisait une API de démonstration. Les profils qui ont tenu un site en production parlent d'autre chose : un numéro de version refusé avec une erreur ConcurrentModification, une recherche qui ne voit pas encore le produit publié, une extension qui ralentit chaque appel du panier, des messages reçus deux fois et dans le désordre.
Demandez aussi qui a fait quoi. Sur ces projets, plusieurs équipes se partagent le front, les services d'intégration et le paramétrage dans le Merchant Center, et un candidat peut n'avoir touché qu'une couche. Le PDF contient un cas de 20 minutes sur un panier relié à un ERP et à Adyen.
Les briques d'un projet commercetools et ce qu'elles demandent
API Composable Commerce (REST et GraphQL)
La base de la plateforme. Chaque ressource, produit, panier, commande ou client, se lit et se modifie par API et porte un numéro de version. Une mise à jour envoie la version attendue et une liste d'update actions, et échoue en ConcurrentModification si quelqu'un est passé avant. L'accès se fait en OAuth 2.0, avec des scopes par client API.
Modèle produit et prix
Types de produits, attributs, variantes, catégories, et des prix qui varient selon la devise, le pays, le canal ou le groupe de clients. Le modèle se décide au début du projet et coûte cher à changer ensuite. Un bon développeur le dessine à partir du catalogue réel et du PIM qui l'alimente.
Paniers, remises et commandes
Le panier calcule prix, taxes et remises (cart discounts, codes promo, remises produit) selon le pays et le mode de taxe choisi. La commande se crée à partir du panier. Le stock peut être réservé à la commande, au panier ou simplement suivi, et ce choix change le comportement lors d'un pic de ventes.
API Extensions
Des appels synchrones vers vos propres services, déclenchés à la création ou à la mise à jour d'un panier, d'une commande, d'un paiement ou d'un client. Elles valident ou ajoutent des update actions avant l'enregistrement, avec un délai de réponse de 2 secondes par défaut et 10 au maximum. Chaque extension s'ajoute à la durée de l'appel.
Subscriptions
L'envoi asynchrone des événements de la plateforme vers une file : SQS, SNS, EventBridge, Pub/Sub, Service Bus, Event Grid ou Confluent Cloud. La livraison se fait au moins une fois et sans garantie d'ordre. Le service qui consomme doit écarter les doublons et remettre les messages dans l'ordre.
Front Next.js ou Nuxt
Le storefront est une application à part, en React avec Next.js ou en Vue avec Nuxt, rendue côté serveur pour le référencement. Le développeur gère les jetons des clients anonymes et connectés, la reprise du panier à la connexion et le cache des pages catalogue. commercetools propose aussi son propre outil de front, commercetools Frontend.
CMS, recherche et paiement
Les autres briques d'une architecture MACH : un CMS headless (Contentful, Contentstack, Storyblok) pour les pages, un moteur de recherche (Algolia, Constructor ou la recherche produit de commercetools), un PSP comme Adyen ou Stripe relié à la ressource Payment. Chaque brique a son API, ses webhooks et ses pannes.
Merchant Center, Connect et outillage
Le Merchant Center est l'interface d'administration du métier. commercetools Connect héberge des extensions et des services de subscription. Côté code, les SDK officiels (TypeScript, Java, .NET, PHP), l'Import API pour les gros volumes et un provider Terraform pour décrire types, extensions et subscriptions.
Le développeur commercetools arrive soit sur une plateforme déjà en ligne, soit sur une migration depuis SAP Commerce, Salesforce Commerce Cloud ou Magento. Dans le premier cas, il fait évoluer des services et un front existants, et le run pèse lourd : file qui déborde, extension qui ralentit le panier, écarts avec l'ERP. Dans le second, il conçoit le modèle produit, les remises, l'import des données puis la bascule. La part de front et de back varie selon les équipes. Précisez dans l'offre si vous cherchez un développeur Next.js qui connaît l'API ou un développeur back qui écrit les services autour.
Ce que doit montrer un développeur e-commerce headless
- API commercetools et versions des ressources
- Modèle produit, prix et catalogue
- Panier, remises, stocks et commande
- API Extensions et subscriptions
- Front découplé Next.js ou Nuxt
- Intégration PSP, ERP, PIM et CMS
Des questions pour tester un développeur commercetools
Chaque question vient avec ce qu'une bonne réponse contient et le signal qui doit vous alerter. Pas besoin d'être technique pour les poser : écoutez si le candidat raconte du vécu.
Question 1 · confirmé
Deux services mettent à jour la même commande au même moment, et l'un reçoit une erreur ConcurrentModification. Que fait votre code ?
Une bonne réponseL'erreur vient du contrôle de version optimiste : la mise à jour a envoyé une version qui n'est plus la dernière. Le code relit la ressource, vérifie que l'action a encore un sens sur la nouvelle version, puis renvoie ses update actions avec la version à jour, avec un nombre de tentatives limité. Pour une action qui dépend de l'état, comme un changement de statut, il ne relance pas à l'aveugle.
Signal d'alerteIgnorer l'erreur, ou relancer en boucle avec la même version jusqu'à ce que ça passe.
Question 2 · confirmé
Le métier veut refuser un panier de plus de 30 kg et envoyer chaque commande à l'ERP. Qu'implémentez-vous pour chacun des deux besoins ?
Une bonne réponseUne API Extension sur les paniers pour le poids, déclenchée par une condition seulement quand les lignes changent, qui répond par une erreur de validation. Une subscription sur le message OrderCreated vers une file pour l'ERP, avec un consommateur qui supporte doublons et retards. Le principe : synchrone quand l'appel doit être bloqué, asynchrone sinon, parce qu'une extension ajoute sa latence à chaque appel concerné.
Signal d'alerteUne extension pour l'envoi à l'ERP, qui bloque la création de commande dès que l'ERP ralentit. Ou une règle de poids vérifiée uniquement dans le front.
Question 3 · senior
Votre service reçoit certains messages de commande deux fois, et parfois dans le désordre. Comment gardez-vous un état juste ?
Une bonne réponseLes subscriptions livrent au moins une fois et sans garantie d'ordre. Le service garde pour chaque ressource le dernier sequenceNumber traité, ignore ce qu'il a déjà vu et remet en file un message arrivé avant son prédécesseur. Il ajoute une réconciliation périodique qui relit les commandes récentes par l'API, pour rattraper un message perdu ou très en retard.
Signal d'alerte« La file garantit l'ordre », ou un traitement qui suppose que chaque message arrive une seule fois et à l'heure.
Question 4 · confirmé
Un produit a un prix différent en France et en Belgique, et un prix réservé aux clients professionnels. Comment le modélisez-vous, et comment le panier choisit-il ?
Une bonne réponseDes prix sur la variante avec une portée (devise, pays, groupe de clients, canal), ou des Standalone Prices quand le volume de prix est important. Le panier porte le pays, la devise et le groupe du client, et la sélection de prix retient le prix le plus précis. La recherche produit reçoit les mêmes paramètres de sélection, sinon la page liste n'affiche pas le prix du panier.
Signal d'alerteUn attribut prix_belgique sur le produit, lu par le front et recopié dans le panier.
Question 5 · confirmé
Un visiteur remplit son panier sans compte, puis se connecte. Que se passe-t-il dans votre front et dans l'API ?
Une bonne réponseLe front obtient un jeton de session anonyme, et le panier est rattaché à un anonymousId. À la connexion, l'appel de login transmet ce panier avec un mode : fusion avec le panier existant du client ou remplacement par le panier anonyme. Les jetons restent côté serveur ou dans un cookie httpOnly. Aucun client API avec des droits d'administration ne part dans le navigateur.
Signal d'alerteUn client API avec le scope manage_project utilisé depuis le navigateur, ou un panier perdu à la connexion.
Recevez la fiche d'entretien complète en PDF
La fiche pour mener l'entretien de bout en bout, prête à imprimer ou à partager avec le manager.
- 30 questions sur 6 axes, avec la bonne réponse, le signal d'alerte et la relance
- Le niveau visé pour chaque question
- Une mise en situation de 20 minutes et ce qu'on attend du candidat
- La grille d'évaluation de 1 à 4, axe par axe
Recrutement d'un développeur commercetools, questions fréquentes
Faut-il exiger l'architecture MACH sur le CV ?
MACH veut dire microservices, API-first, cloud-native et headless. Le terme vient de la MACH Alliance, dont commercetools est membre fondateur. Sur un CV, il dit peu de chose : un front branché sur une API suffit pour l'écrire. Demandez plutôt quelle brique la personne a construite elle-même, comment elle a relié la plateforme à l'ERP et au PSP, et ce qu'elle a dû corriger après la mise en ligne.
Un développeur React ou Vue peut-il prendre un poste commercetools ?
Pour la partie front, oui, s'il maîtrise le rendu serveur avec Next.js ou Nuxt et le cache. Il devra apprendre le modèle de commerce : sélection de prix, taxes, remises, stocks, cycle du panier jusqu'à la commande. Pour un poste qui inclut les extensions et les subscriptions, il faut en plus un vrai niveau back-end : files de messages, idempotence, traitement des erreurs, observabilité.
Quelle différence avec un développeur Shopify ou Salesforce Commerce Cloud ?
Shopify et Salesforce Commerce Cloud livrent une plateforme avec un storefront, des thèmes ou des cartridges, et un cadre de développement imposé. commercetools fournit des API et rien d'autre : le front, l'hébergement des services et les intégrations sont à la charge de l'équipe. Un développeur commercetools passe plus de temps sur l'architecture et le run, et moins sur la personnalisation d'un storefront existant.
Quel test technique proposer pour un poste commercetools ?
Un exercice court suffit. Demandez d'écrire les update actions d'un scénario de panier (ajout d'une ligne, adresse, code promo) avec la gestion d'un conflit de version, ou de relire le code d'une extension lente. Pour un profil plus senior, le cas du PDF se mène à l'oral : modèle de prix, choix entre extension et subscription, création de commande après paiement.
Pour structurer vos autres entretiens, consultez aussi nos pages sur les questions d'entretien de recrutement, la méthode de l'entretien structuré et la grille d'évaluation d'entretien.




