Comment enclencher les soldes sur son woocommerce (en 1 ligne de commande)

Comment enclencher les soldes sur son WooCommerce (en 1 ligne de commande)

Le groupe Facebook ‘WordPress France Entraide‘ est bien pratique pour trouver de l’aide lorsqu’on est débutant, même s’il n’est parfois pas évident de bien comprendre le problème et donc de proposer les bonnes solutions1.

Depuis le Terminal

Pour notre mission du jour, si vous avez la chance d’être chez o2switch il vous suffira, depuis votre cPanel, d’ouvril le Terminal. Pour rappel tous les clients o2switch bénéficient déjà des commandes WP-CLI d’installées. Vous pouvez donc directement ouvrir le Terminal2.

Screen shot 2022 01 11 at 14. 41. 03

Récupérer la liste des produits à solder

Il est possible que vous ayez besoin que seulement certains produits de votre catalogue soient soldés, il va donc nous falloir apprendre à les sélectionner correctement.

Dans ma situation j’avais besoin de sélectionner uniquement les produits dits « simple » (Simple product). Voici la ligne de commande WP-CLI qui m’a servi pour ça :

wp wc --user=<admin_username> product list --field=id --status=publish --type='simple' --path='path/to/wordpress_folder'

Il vous faudra personnaliser l’argument user (avec prenom.nom par exemple, sans les chevrons) et le chemin absolu vers votre dossier WordPress, vous devriez avoir en sortie une suite de nombres (un par ligne) qui correspond aux id de vos produits filtrés/sélectionnés.

Vous pourriez avoir besoin d’autres types de produits, en voici quelques uns : simple, grouped, external, variable, subscription ou variable-subscription.

💡
Astuce

Si vous souhaitez obtenir la liste des types de produit de votre WooCommerce, vous pouvez soit provoquer une erreur en remplaçant ‘simple’ par ‘xxx’, et vous obtiendrez en sortie les types disponibles.
Soit vous pouvez lister le champ ‘type’ de chaque produit avec la commande suivante :

wp wc --user=<admin_username> product list --field=type --status=publish --path='path/to/wordpress_folder'

Changer le prix remisé (sale price) pour 1 produit

Une fois que vous avez obtenu l’id des produits qui vous intéressent grâce à la ligne de commande précédente, voici la ligne de commande qui vous permettra de renseigner le prix remisé :

wp wc --user=<admin_username> product update <PRODUCT_ID> --sale_price=<PRODUCT_SALE_PRICE> --date_on_sale_from=YYYY-MM-DDT00:00:00 --date_on_sale_to=YYYY-MM-DDT00:00:00 --path='path/to/wordpress_folder'

À personnaliser :

  • –user=votre.username
  • <PRODUCT_ID> le nombre correspond à l’id d’un de vos produits à solder
  • –sale_price=99 -> 99 étant le prix remisé (votre prix régulier doit être supérieur)
  • YYYY-MM-DDT00:00:00 YYYY étant l’année, MM le mois et DD le jour, puis après T l’heure où votre solde doit commencer (from) puis finir (to)
  • path/to/wordpress_folder‘ le chemin absolu vers votre dossier WordPress

Le tout dans une boucle (la fameuse 1 ligne de commande)

Je vais à présent utiliser une boucle pour récursivement venir remiser le prix de chaque produit filtré. Voici la commande magique :

for PRODUCT_ID in $(wp wc --user=<admin_username> product list --field=id --status=publish --type='simple' --path='path/to/wordpress_folder'); do wp wc --user=<admin_username> product update $PRODUCT_ID --sale_price=<PRODUCT_SALE_PRICE> --date_on_sale_from=YYYY-MM-DDT00:00:00 --date_on_sale_to=YYYY-MM-DDT00:00:00 --path=<admin_username>; done

Explication rapide : la commande après ‘do’ effectuera le travail pour chaque produit PRODUCT_ID de façon récursive.

Le live pour mieux comprendre :

Le live youtube
👆  cliquez sur l’image pour accéder au live youtube 👆 

Notes

  1. En effet, dans la majorité des cas, lorsqu’il s’agit de debug, il faudra de l’expérience et de l’intuition et toute une série de tests de solution, où chaque résultat de chaque test nous amènera vers une solution finale et définitive.
  2. Si vous devez installer les commandes WP-CLI parce que votre hébergeur ne les a pas fait, référez à ces instructions
Cet article vous a été utile ?
Oui 👍 Non 👎
Retour en haut