Aller au contenu

Paramètres des cookies

Choisissez, par catégorie, les cookies que vous autorisez. Vous pouvez modifier votre choix à tout moment via Paramètres des cookies, en bas de chaque page. Politique de confidentialité

Nécessaires

Toujours activés

Indispensables pour vous connecter, conserver votre panier et mémoriser vos choix. Ils sont toujours activés.

Quels cookies ?
  • weboke_sessie, weboke_klant, weboke_remember: votre session et le maintien de la connexion
  • weboke_basket: votre panier
  • wkBtwIncl: l'affichage des prix TTC ou HT
  • wok_cookies: votre choix concernant les cookies, 12 mois

Mesure quelle publicité mène à une visite ou à une commande, pour que nous ne payions pas des publicités inefficaces.

Quels cookies ?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), jusqu'à 90 jours
  • OpenAI Ads, publicités dans ChatGPT
  • wok_aff: le partenaire qui vous a orienté vers nous (programme d'affiliation), 60 jours

4,6

Pays et langue

Chaque pays a son propre site, avec les prix et la TVA de ce pays.

Afficher

Module 1 · 1.2

Comment fonctionne WooCommerce

Module 1: Avant de commencer · Temps de lecture : 10 minutes

Objectif pédagogique : À l’issue de cette leçon, vous saurez expliquer comment WooCommerce fonctionne dans WordPress et où se trouvent les produits, les commandes, le panier et les tâches planifiées.

Notions clés : type de produit, type de publication product, commandes (HPOS), pages de la boutique, session et panier, Store API, REST API, Action Scheduler, e-mails transactionnels, extensions

Une extension qui transforme votre site en boutique

Dans la formation WordPress (leçons 1.2 et 1.3), vous avez vu comment une page est générée : le serveur web transmet la requête à PHP, PHP charge WordPress, les extensions et le thème, récupère les données dans la base de données et en fait du HTML. WooCommerce s’insère dans ce processus sous la forme d’une grande extension. Il apporte quatre choses :

  1. Des données : produits, commandes, clients, taux de taxe, zones d’expédition.
  2. Des pages : la boutique, le panier, la validation de commande et Mon compte.
  3. Des processus : un panier par visiteur, des paiements via un prestataire de paiement, des e-mails, la mise à jour du stock, des tâches planifiées.
  4. Des points d’accès pour les programmes : la Store API et la REST API.

Si vous savez où se trouvent ces éléments, vous trouverez une erreur beaucoup plus vite par la suite. C’est pourquoi nous les examinons maintenant un par un.

Les produits : un type de publication à part

WordPress connaît des types de publication : les pages et les articles en sont deux exemples (formation WordPress, leçon 4.2). WooCommerce ajoute le type de publication product. Un produit se trouve donc, comme une page, dans la table des publications, avec ses données supplémentaires (prix, UGS, stock, poids) sous forme de métadonnées. Les catégories et étiquettes de produits sont des taxonomies distinctes, séparées de celles de votre blog.

Chaque produit a un type de produit. De base, ce sont les produits simple, groupé, externe (un lien vers une autre boutique) et variable. Vous pouvez y ajouter les cases virtuel (rien à expédier) et téléchargeable (un fichier après paiement). Un produit variable a des variations, comme une théière en trois couleurs ; chaque variation est un élément à part, avec son propre prix et son propre stock. Le module 3 approfondit ce sujet.

Les commandes : des tables dédiées (HPOS)

Auparavant, WooCommerce enregistrait aussi les commandes comme des publications. Pour les boutiques très actives, cela devenait lent, car les commandes et les articles de blog partageaient la même grande table. D’où l’arrivée de HPOS (High-Performance Order Storage) : les commandes dans des tables dédiées, comme wc_orders, wc_order_addresses et wc_orders_meta (précédées du préfixe de table de votre site). Depuis WooCommerce 8.2 (octobre 2023), HPOS est activé pour chaque nouvelle installation. Une boutique plus ancienne conserve l’ancien stockage jusqu’à ce que vous basculiez vous-même dans WooCommerce > Réglages > Avancé > Fonctionnalités.

Pourquoi devez-vous le savoir ? Pour trois raisons :

  • Sauvegardes : les commandes ne se trouvent pas dans vos fichiers mais dans la base de données. Une sauvegarde sans base de données n’a aucune valeur pour une boutique (leçon 6.2).
  • Extensions : une extension plus ancienne qui lit encore les commandes comme des publications ne fonctionne pas correctement avec HPOS. WooCommerce affiche un avertissement à côté de l’extension si elle n’est pas compatible.
  • Restauration : si vous restaurez une sauvegarde d’hier, les commandes d’aujourd’hui disparaissent. Pour une boutique, c’est bien plus grave que pour un blog (leçon 6.2).

Le panier : différent pour chaque visiteur

Une page ordinaire est identique pour tous les visiteurs. Le panier, non. Dès qu’un visiteur ajoute quelque chose au panier, WooCommerce démarre une session : un cookie (wp_woocommerce_session_ suivi d’un code) dans le navigateur et une ligne dans une table de sessions de la base de données. Ainsi, lors de la requête suivante, la boutique sait quel panier appartient à ce visiteur.

Deux conséquences que vous retrouverez plus tard :

  • Le panier, la validation de commande et Mon compte ne doivent jamais se retrouver dans un cache de pages, sinon un visiteur verrait le panier d’un autre. WooCommerce envoie lui-même sur ces pages des en-têtes qui interdisent la mise en cache (leçon 6.4).
  • Une boutique qui démarre une session pour chaque visiteur, même sans panier, rend inutile le cache de pages de tout le site. C’est une erreur fréquente des thèmes et des extensions.

Les pages de la boutique et les blocs

Lors de l’installation, WooCommerce crée quatre pages : Boutique, Panier, Validation de commande et Mon compte. Depuis la version 8.3 (novembre 2023), les nouvelles installations utilisent des blocs pour le panier et la validation de commande ; les boutiques plus anciennes utilisent souvent encore des shortcodes. Les deux fonctionnent. La différence compte pour les extensions : une extension qui ajoute quelque chose à la validation de commande doit prendre en charge la variante que vous utilisez. La leçon 2.2 montre comment le vérifier.

Deux points d’accès pour les programmes : Store API et REST API

WooCommerce dispose de deux points d’accès programmables, et la différence est importante pour la sécurité :

Store APIREST API
Adresse/wp-json/wc/store/v1/.../wp-json/wc/v3/...
Pour quiLa boutique elle-même (les blocs dans le navigateur) et d’autres vitrinesLes connexions : comptabilité, stock, applications
Clé nécessaire ?Non, publique : tout le monde peut lire les produits et les prixOui, une clé de l’API avec des droits de lecture ou d’écriture
ContenuProduits, prix, état du stock, le panier du visiteur actuelAussi les commandes, les clients, les rapports

Le fait que la Store API soit publique n’est pas une fuite : c’est exactement ce que chaque visiteur voit dans la boutique, simplement sous une forme lisible par des programmes. Essayez avec votre propre boutique : ouvrez https://shop.example.com/wp-json/wc/store/v1/products dans votre navigateur (avec votre propre adresse) et vous verrez vos produits au format JSON. La REST API, en revanche, doit rester fermée sans clé. La leçon 2.4 contrôle les deux.

En coulisses : Action Scheduler et e-mails

Une grande partie du travail d’une boutique ne se fait pas pendant que le client attend, mais plus tard. WooCommerce utilise pour cela l’Action Scheduler : une file d’attente de tâches planifiées, comme l’annulation d’une commande impayée après le délai défini, l’envoi de webhooks ou la mise à jour des rapports. Vous voyez cette file dans WooCommerce > État > Actions planifiées. Ces tâches s’exécutent via WP-Cron, qui ne tourne que lorsqu’il y a des visiteurs. Dans une boutique peu fréquentée, du travail peut alors rester en attente ; la leçon 7.3 montre comment un vrai cron résout ce problème.

WooCommerce envoie en outre des e-mails transactionnels : un e-mail pour vous à chaque nouvelle commande, et des e-mails au client lors de la réception, de l’expédition, d’un remboursement ou de la création d’un compte. S’ils n’arrivent pas, le client pense que quelque chose ne va pas. La leçon 6.1 traite de la délivrabilité.

En pratique : voici à quoi cela ressemble dans WooCommerce

Dans l’administration WordPress de Theehuis Example, trois nouveaux menus apparaissent après l’installation : WooCommerce (commandes, clients, réglages, état), Produits et Statistiques et mesures d’audience (dans les versions récentes, parfois sous WooCommerce). Dans WooCommerce > État, vous trouvez l’environnement serveur, les tables de la base de données, les actions planifiées et les journaux. Vous aurez souvent besoin de cet écran. Les étapes sont les mêmes chez tous les hébergeurs, car elles se trouvent dans WordPress lui-même.

Résumé

  • WooCommerce apporte des données, des pages, des processus et deux points d’accès programmables.
  • Les produits sont un type de publication à part ; dans les nouvelles boutiques, les commandes se trouvent dans des tables dédiées (HPOS, par défaut depuis 8.2).
  • Le panier fonctionne avec une session par visiteur ; c’est pourquoi le panier, la validation de commande et Mon compte ne doivent pas être mis en cache.
  • La Store API est publique et montre ce que voit chaque visiteur ; la REST API doit rester fermée sans clé.
  • Les tâches planifiées passent par l’Action Scheduler et WP-Cron ; les e-mails font partie du processus de commande.

Quiz

1. Où se trouvent les commandes d’une nouvelle boutique WooCommerce avec HPOS ?



2. Pourquoi WooCommerce démarre-t-il une session lorsqu’un visiteur ajoute quelque chose au panier ?



3. Quelqu’un ouvre /wp-json/wc/store/v1/products de votre boutique sans se connecter et voit vos produits avec leurs prix. De quoi s’agit-il ?



4. Dans une boutique peu fréquentée, une commande impayée n’est annulée que des heures plus tard au lieu de l’être après le délai défini. Quelle est la cause probable ?



Exercice

Exercice A1.2 : Ce site fonctionne-t-il avec WooCommerce ? Saisissez un domaine, choisissez oui ou non, et notez la preuve que vous avez vue (par exemple « generator » ou « wc/store/v1 »). Le programme récupère la page d’accueil, lit l’index REST (/wp-json/, uniquement la liste des namespaces) et interroge /wp-json/wc/store/v1/products?per_page=1. Il reconnaît WooCommerce à une balise meta generator contenant WooCommerce, au namespace wc/store/v1 dans l’index REST, à une Store API qui fonctionne, à des fichiers provenant de /wp-content/plugins/woocommerce/ ou à la classe body woocommerce. Vert : votre choix est correct et votre preuve figure dans les en-têtes, le HTML, l’index REST ou la réponse de la Store API ; vous voyez alors aussi le nombre de produits et la devise. Orange : votre choix est correct, mais nous ne retrouvons pas votre preuve. Rouge : votre choix n’est pas correct. Essayez d’abord sur votre propre boutique, puis sur une boutique que vous connaissez. Rien n’est ajouté à un panier et rien n’est envoyé.

Exercice A1.2: Ce site fonctionne-t-il avec WooCommerce ?




Nous ne conservons pas ce que vous saisissez ni ce que nous trouvons. Votre navigateur mémorise vos réponses et si l'exercice est réussi. Si vous êtes connecté, nous enregistrons uniquement dans Mes formations que l'exercice était (presque) correct ; vous pouvez aussi le supprimer à cet endroit.

Pour aller plus loin

Lorsque des étapes se déroulent dans un panneau, elles s’appliquent à WebOké ; chez d’autres prestataires, le fonctionnement est comparable.

Un instant…

Configurez vos domaines

Pour chaque domaine, réglez les serveurs de noms, l'association à votre hébergement et le futur titulaire.

Chargement de vos domaines…