Cette catégorie change à nouveau de terrain : vous ne développez plus un thème complet, ni une application autonome, mais des extensions, des morceaux de code qui s'insèrent dans un emplacement précis et contrôlé de Shopify. Ce guide couvre la première d'entre elles, pensée spécifiquement pour les thèmes.

La mauvaise méthode, historique

Par le passé, une application qui voulait ajouter un élément visuel à la boutique d'un marchand (un widget d'avis clients, une bannière promotionnelle) devait souvent modifier directement les fichiers du thème du marchand, en y insérant du code Liquid. Cette approche posait un vrai problème : si le marchand mettait à jour son thème, ou en changeait, ce code inséré manuellement pouvait disparaître ou entrer en conflit avec la nouvelle version. Désinstaller l'application ne nettoyait pas non plus proprement ce qui avait été ajouté.

La bonne méthode actuelle : les Theme App Extensions

Shopify exige désormais que toute nouvelle application distribuée sur l'App Store utilise les Theme App Extensions pour ce type de besoin, plutôt que de toucher directement au code du marchand. Une Theme App Extension définit un ou plusieurs app blocks, que le marchand peut ensuite ajouter lui-même à son thème, depuis l'éditeur de thème déjà pratiqué au guide 12 du parcours Shopify : les bases, exactement comme il ajouterait n'importe quelle autre section ou block natif du thème.

L'avantage est direct : le code du thème du marchand n'est jamais modifié par votre application. Si le marchand désinstalle votre application, l'app block disparaît proprement, sans laisser de code orphelin derrière lui. Si le marchand change de thème, il lui suffit de rajouter l'app block dans le nouveau thème, sans dépendre d'une modification qui aurait pu se perdre dans la migration.

Où vit une Theme App Extension

Une Theme App Extension se développe à l'intérieur d'un projet d'application, comme celui créé au guide 22 de ce parcours, dans un dossier dédié aux extensions. Elle est ensuite publiée en même temps que l'application, et devient disponible dans l'éditeur de thème de toute boutique où l'application est installée, à condition que le thème actif soit un thème Online Store 2.0, capable d'accueillir des app blocks.

Ce que voit le marchand

Depuis l'éditeur de thème, après avoir installé votre application, le marchand voit apparaître votre app block dans la liste des éléments ajoutables, au même endroit que les sections et blocks natifs du thème. Il peut le glisser à l'endroit voulu, le configurer via ses propres réglages définis par vous, et le retirer à tout moment, exactement comme n'importe quel autre élément de son thème.

Un choix qui rejoint le guide 2 de ce parcours

C'est exactement la réponse au deuxième cas présenté au guide 2 : un bloc réutilisable, destiné à être distribué à d'autres marchands, relève d'une Theme App Extension développée depuis une application, et non d'une simple section de thème propre à une seule boutique.

Vérifiez que vous avez compris

Un marchand qui utilise votre application désinstalle celle-ci un jour. Le code de son thème conserve-t-il des traces de l'app block que votre application y avait ajouté ?

Non, normalement pas. C'est précisément l'intérêt des Theme App Extensions par rapport à l'ancienne méthode de modification directe du thème : la désinstallation retire proprement l'app block, sans laisser de code résiduel dans les fichiers du thème du marchand.