L'une des questions que nous posent souvent les développeurs ou les responsables techniques est la suivante : qu'est-ce qu'une application Shopify exactement et quels outils sont nécessaires pour la créer ? Une autre question fréquente est : est-ce un problème si je n'ai aucune expérience dans ce domaine ?
Répondons à ces questions en détaillant les aspects technologiques du développement d'applications Shopify.
Si vous recherchez un développement Shopify sur mesure, vous pouvez contacter nos experts Shopify ou rechercher des spécialistes Shopify sur des plateformes de freelances.
Comparaison entre une application Shopify et une application web
Selon nous, une application Shopify fonctionne comme une application web standard, mais elle est étroitement liée à la plateforme Shopify via une API. Cela implique plusieurs points :
- Pour créer une application Shopify, vous pouvez utiliser les mêmes technologies que pour le web. Vous n'êtes pas limité à une technologie spécifique (bien que certaines facilitent la tâche, nous y reviendrons).
- En général, vous devez développer le backend et le frontend.
- Vous êtes responsable de l'hébergement et de l'exploitation.
- Une fois l'application approuvée par Shopify, le processus de publication est entièrement sous votre contrôle.
Du point de vue du marchand, Shopify est un SaaS, tout comme les applications Shopify. Cela signifie qu'un marchand n'a pas besoin de manipuler de code pour installer votre application.
Composants d'une application Shopify
Nous identifions trois composants logiques dans une application Shopify type :
- Interface d'administration marchand
- Traitement des webhooks
- Interface client (front-store)
Parmi ces trois, le dernier n'est pas toujours nécessaire. Cela dépend des fonctionnalités que vous souhaitez offrir. Par exemple, notre application Candy Rack comprend les trois composants, tandis que Loyal ne contient que les deux premiers.
Interface d'administration marchand
L'interface d'administration marchand est un tableau de bord où le marchand configure l'application. Shopify recommande de l'intégrer directement dans l'interface Shopify (application dite « embarquée »). Cela signifie que vous intégrez l'application dans l'administration Shopify via une iframe.
Les applications embarquées présentent certaines limites :
- En raison du fonctionnement de l'authentification, vous êtes plus ou moins limité à une architecture d'application monopage (bien que des solutions partielles existent avec Turbolinks ou Inertia.js).
- Il peut être efficace d'utiliser React pour le frontend, car Shopify fournit des bibliothèques : Polaris assure une expérience utilisateur cohérente avec le reste de l'administration Shopify, et App Bridge sert de pont pour transmettre les données de contexte Shopify à votre application dans l'iframe.
L'interface d'administration est aussi le premier point de contact entre votre application et le marchand, et c'est là que se déroule l'installation. L'installation consiste essentiellement à obtenir les autorisations d'accès aux données de la boutique via OAuth.
C'est également dans cette partie de l'application que vous gérez la facturation si votre application est payante.

Traitement des webhooks
Les webhooks permettent à Shopify d'informer votre application des divers événements survenant dans les boutiques où elle est installée : par exemple, la création d'une nouvelle commande ou la mise à jour d'un produit. Vous décidez des événements auxquels vous souhaitez vous abonner.
La logique métier devant être exécutée suite à un événement reçu doit impérativement être gérée par des processus en arrière-plan. Dans le cas contraire, vous risquez de surcharger votre application. Vous pouvez également envisager de déléguer la réception des événements en dehors de votre application.
Application côté client (interface de la boutique)
Si votre application étend la boutique Shopify (c'est-à-dire qu'elle apporte de nouvelles fonctionnalités aux clients), vous devez l'« insérer » dans l'interface de la boutique. Pour ce faire, vous devez demander à Shopify via une API d'injecter votre ressource JavaScript dans la boutique. Les deux méthodes les plus courantes sont : Script Tag et App Embed block. Il est également possible d'étendre le thème de la boutique directement avec des composants visuels en utilisant des App Blocks (aussi appelés sections d'application).
Le développement de l'application côté client est peut-être la partie la plus complexe du processus. En général, vous étendez ou remplacez le comportement par défaut de la boutique. Vous devez alors vous assurer que tout fonctionne sur différents thèmes Shopify, avec divers paramètres de boutique, et sans risque de dysfonctionnement imprévu. De plus, d'autres applications tierces peuvent interférer avec la vôtre.
L'interface de la boutique est également l'endroit où vous devez surveiller les performances et la taille de votre application.

L'évolution du développement d'applications Shopify
Bien que j'aie mentionné précédemment que créer une application Shopify revient essentiellement à développer une application web, cette affirmation n'est que partiellement vraie. En 2021, Shopify a introduit le concept d'extensions de paiement. Auparavant, il était impossible d'étendre les fonctionnalités de paiement avec une application Shopify. À cet égard, l'expérience développeur diffère du web classique, car elle se déroule dans un environnement très restreint (par exemple, vous ne pouvez utiliser qu'un ensemble spécifique de composants React prédéfinis), et les processus de build et de publication sont gérés par Shopify.
Il est possible qu'à l'avenir, Shopify adopte cette approche dans d'autres domaines afin de mieux contrôler les applications tierces. Par conséquent, le développement d'applications Shopify s'éloignera davantage du développement web traditionnel.
Stack technologique de Digismoothie
Découvrons les technologies que nous utilisons chez Digismoothie pour créer des applications Shopify.
Vous pouvez en apprendre davantage sur les technologies que nous utilisons dans notre base de connaissances.

Conclusion
J'espère que vous avez compris ce que signifie créer une application Shopify d'un point de vue technique et quelles technologies peuvent être utilisées.
Enfin, revenons à la question posée au début. Est-ce un problème pour un ingénieur spécialisé en développement web de rejoindre une équipe travaillant sur des applications Shopify ? Je dirais certainement pas. Si un ingénieur maîtrise les concepts et technologies du développement web moderne, il peut s'adapter très rapidement. La connaissance de l'écosystème et des API Shopify viendra progressivement.






