WooCommerce : modifier en masse le coût des marchandises et le prix d'achat
Pour modifier en masse le coût des marchandises dans WooCommerce, la première question n'est pas « comment » mais « où » : le coût d'un produit n'est pas une colonne standard de la liste des produits, et selon l'extension qui l'enregistre, il se trouve dans une clé meta différente ou dans une table à part. Une fois la clé connue, BEAR la modifie comme un prix : vous la définissez pour des centaines de produits à la fois, vous l'augmentez d'un pourcentage quand un fournisseur change ses tarifs, ou vous la calculez comme une part du tarif régulier. Voici où chaque source conserve le coût, comment le rattacher, la formule du coût à partir du tarif régulier, et ce qui ne peut pas être modifié de cette façon.
Où WooCommerce conserve le coût du produit
| Source du coût | Où il est stocké | Modifiable en masse dans BEAR |
|---|---|---|
| WooCommerce Cost of Goods Sold (intégré) | Clé meta _cogs_total_value sur les produits et les variations | Oui, comme champ meta de type nombre |
| L'extension WooCommerce Cost of Goods | Clé meta _wc_cog_cost | Oui, comme champ meta de type nombre |
| Autres extensions de coût ou de prix d'achat, champs personnalisés | En général une clé meta propre | Oui, s'il s'agit d'une meta d'article |
| Prix d'achat et données fournisseur d'ATUM | Table de base de données propre à ATUM, pas de meta d'article | Non |
Le champ propre à WooCommerce s'active sous WooCommerce → Réglages → Avancé → Fonctionnalités → Coût des marchandises vendues (Cost of Goods Sold). Un champ Coût des marchandises (Cost of goods) apparaît alors dans l'onglet Général de l'éditeur de produit et sur chaque variation. Une variation sans coût propre utilise le coût de son produit parent : un produit variable peut donc porter un coût par défaut pour toutes ses variations et le remplacer là où une variation coûte plus cher. WooCommerce enregistre le coût avec chaque commande quand il calcule ses totaux, normalement à la validation de la commande ; modifier les coûts plus tard affecte donc les nouvelles commandes et non les commandes passées.
Pour toute autre extension, trouvez la clé au lieu de la deviner. Dans l'onglet Champs meta de BEAR, Récupérer les clés meta d'un produit quelconque via son ID (Get meta keys from any product by its ID) charge toutes les clés meta d'un produit : saisissez l'ID d'un produit dont le coût est renseigné et cherchez la clé qui contient ce nombre. La documentation des champs meta montre les deux façons d'ajouter des clés.
Ajouter le champ de coût comme colonne
- Dans l'onglet Champs meta, utilisez Ajouter une clé personnalisée à la main (Add Custom key by hands) avec
_cogs_total_value(ou la clé de votre extension), ou choisissez la clé avec Récupérer les clés meta d'un produit quelconque via son ID. - Donnez-lui un titre court tel que Coût, choisissez le type nombre (number) et la vue champ texte (textinput), puis appuyez sur Enregistrer les champs meta (Save meta fields).
- Dans l'onglet Réglages, activez la nouvelle colonne Coût et enregistrez. Cette étape est obligatoire : un champ meta n'apparaît dans les onglets Filtres et Modification groupée que tant que sa colonne est activée.
La colonne affiche désormais le coût de chaque produit ; elle peut être modifiée cellule par cellule, triée et filtrée par une plage de/à. Saisir 0 dans les deux cases de son filtre liste les produits sans coût pour l'instant ; d'autres vérifications de ce type figurent dans trouver les produits aux données manquantes.
Modifier en masse le coût des marchandises de nombreux produits
Filtrez les produits, par exemple par étiquette de fournisseur ou par catégorie, vérifiez la ligne La modification groupée sera appliquée à (Bulk editing will be applied to) en haut de l'onglet Modification groupée, et utilisez la ligne Coût dans la section numérique :
- définir une nouvelle valeur (set new) donne le même coût à tous les produits sélectionnés.
- augmenter de % (increase by %) et diminuer de % (decrease by %) suivent un changement de tarif du fournisseur :
8avec augmenter de % relève chaque coût de 8 %. - augmenter de la valeur (increase by value) et diminuer de la valeur (decrease by value) ajoutent ou retranchent un montant fixe, par exemple un nouveau supplément de transport par unité.
Pour les produits variables, activez variations sur le panneau d'outils afin que l'exécution écrive le coût de chaque variation. Vous pouvez aussi écrire un seul coût sur les produits parents, interrupteur désactivé, et laisser les variations sans coût propre en hériter.
Le coût en pourcentage du tarif régulier
Quand vous connaissez votre marge plutôt que chaque prix d'achat, calculez le coût à partir du prix. Sous les lignes numériques se trouve un bloc appelé Champs numériques sélectionnés (Selected num fields) : un opérateur (+, -, *, /) et une liste de champs numériques. Après l'opération propre à la ligne, BEAR applique cet opérateur avec le champ choisi du même produit. Pour un coût égal à 30 % du tarif régulier :
- Filtrez les produits et écartez ceux qui n'ont pas de prix : tarif régulier de (regular price from)
0.01. - Cochez uniquement la ligne Coût, choisissez définir une nouvelle valeur et saisissez
0.3. - Dans Champs numériques sélectionnés, choisissez
*et tarif régulier (regular price). - Appuyez sur Effectuer la modification groupée (Do Bulk Edit). Un produit à 100 reçoit un coût de 30.
Deux règles gardent le résultat propre. La formule s'applique à chaque ligne numérique cochée : ne cochez donc rien d'autre dans la même exécution. Et exécutez les produits variables avec l'interrupteur variations activé : les produits parents n'ont pas de tarif régulier propre, donc sans l'interrupteur ils recevraient un coût de 0, que leurs variations hériteraient ensuite. Une marge de 70 % signifie un coût de 30 % du prix ; le facteur est 1 - marge.
Le même bloc copie un coût d'un champ à un autre, ce qui permet de passer d'une extension au champ propre de WooCommerce. Rattachez les deux clés comme champs meta de type nombre, filtrez par l'ancien champ à partir de 0.01 pour exclure les produits sans coût, cochez la nouvelle ligne Coût avec définir une nouvelle valeur et 0, puis choisissez + avec l'ancien champ : chaque produit reçoit 0 plus son ancien coût.
Arrondir le coût au centime
Les pourcentages produisent de longues fractions. La liste déroulante d'arrondi sous les lignes numériques arrondit à l'entier, au 0,05 ou au 0,10 supérieur, ou à des terminaisons de prix comme .99, comme décrit dans l'arrondi des prix ; elle n'a pas d'option « deux décimales ». Pour arrondir le coût au centime, laissez la liste déroulante sur « pas d'arrondi » et ajoutez ce filtre, qui reçoit la valeur après la formule :
/*
* BEAR: round the cost to whole cents when a bulk edit or a cell edit writes it.
* Child theme functions.php or a code snippets plugin.
* Use the meta key of your cost field.
*/
add_filter('woobe_number_field_manipulation', function ($value, $field_key, $product_id) {
if ('_cogs_total_value' === $field_key && is_numeric($value)) {
return round((float) $value, 2);
}
return $value;
}, 10, 3);
L'export et l'import CSV propres à WooCommerce comportent aussi une colonne Coût des marchandises quand la fonctionnalité est activée, ce qui convient aux coûts issus d'un tableur de fournisseur. Les modifications faites avec BEAR sont enregistrées dans l'onglet Historique et peuvent être annulées exécution par exécution ; un import CSV ne le permet pas.
Ce qui ne peut pas être modifié de cette façon
Les champs meta de BEAR fonctionnent avec les données stockées comme meta de produit. ATUM conserve son prix d'achat, son fournisseur et la référence fournisseur dans sa propre table : Récupérer les clés meta d'un produit quelconque via son ID ne les liste donc pas, et aucune clé meta ne permet de les atteindre ; modifiez-les avec les écrans propres à ATUM. Il en va de même pour toute extension qui stocke les données de produit dans une table personnalisée.
Du coût à la marge
BEAR n'a pas de colonne de marge intégrée, car une marge dépend du prix au moment de la vente. Deux façons d'en obtenir une :
- Un champ de marge stocké. Rattachez un champ meta de type nombre tel que
_margin. Exécution 1 : cochez-le, définir une nouvelle valeur0, Champs numériques sélectionnés+tarif régulier. Exécution 2 : cochez-le, augmenter de la valeur0,-Coût. Le champ contient alors le prix moins le coût par unité, et trier sa colonne place les produits les plus faibles en premier. C'est un instantané : relancez les deux étapes après un changement de prix ou de coût. - Un rapport de marge à partir des ventes réelles. Avec le serveur MCP connecté, un assistant IA peut produire la marge par produit pour une période : chiffre d'affaires moins le Cost of Goods Sold de WooCommerce, la plus mauvaise marge en premier, avec le nombre de produits sans coût enregistré. Il lit le champ de coût propre à WooCommerce et, pour les variations, le coût enregistré sur la variation elle-même ; renseignez donc les coûts sur les variations si vous voulez les voir dans ce rapport.
Avant la première exécution
- La clé de coût est connue et rattachée comme champ meta de type nombre, et sa colonne est activée.
- Seule la ligne Coût est cochée quand Champs numériques sélectionnés est utilisé.
- Les produits variables sont exécutés avec variations activé, ou le coût du parent est défini volontairement.
- Les produits sans tarif régulier sont écartés par le filtre avant une exécution avec formule.
- Un essai sur deux ou trois produits donne un résultat correct dans l'éditeur de produit.
Si votre extension de coût stocke sa valeur à un endroit introuvable, indiquez le nom de l'extension et l'ID d'un produit sur le forum de support de BEAR.