BEAR - WooCommerce Bulk Editor and Products Manager Professional

Créer des variations WooCommerce en masse pour de nombreux produits

WooCommerce crée les variations produit par produit : on ouvre le produit, on choisit les attributs, on appuie sur Générer les variations (Generate variations), on enregistre, puis on passe au suivant. Pour créer des variations WooCommerce en masse sur toute une catégorie, ou pour ajouter une nouvelle taille à des centaines de produits qui ont déjà des variations, BEAR propose un générateur dans Opérations groupées avancées sur les variations (Variations Advanced Bulk Operations). Voici ce dont il a besoin, comment le lancer, comment garder un nombre de variations raisonnable, et que faire quand un traitement volumineux s'arrête en cours de route.

Avant de commencer : ce dont le générateur a besoin

  • Des produits variables. Le générateur ignore tout produit qui n'est pas de type Variable. Convertissez d'abord les produits simples ; Type de produit (product type) fait partie des champs de l'onglet Modifier en bloc (Bulk Edit).
  • Des attributs globaux. Seuls les attributs créés sous Produits → Attributs peuvent être utilisés, avec leurs termes. Les attributs saisis directement sur un produit sont du simple texte et ne sont pas proposés.
  • Les bons produits sélectionnés. L'opération s'applique à tous les produits de la boutique, aux produits filtrés ou aux produits cochés ; les produits cochés ont la priorité. La ligne Les opérations groupées avancées sur les variations seront appliquées à (Variations Advanced Bulk Operation will be applied to), en haut de l'outil, indique laquelle de ces cibles est active. Filtrez par type de produit Variable, plus une catégorie ou une étiquette.
  • Les attributs déjà présents sur les produits. Quand un attribut n'est pas encore sur un produit, le générateur l'ajoute avec ses termes, visible et marqué Utilisé pour les variations (Used for variations). Quand il y est déjà comme simple attribut, le générateur n'ajoute que les termes manquants et laisse l'option désactivée, et les nouvelles variations reçoivent des valeurs que WooCommerce n'utilise pas. Cochez d'abord Utilisé pour les variations (Used for variations) avec l'onglet Visibilité (Visibility) du même outil, comme décrit dans ajouter des attributs à des produits en masse.
  • Une sauvegarde de la base de données. Les opérations groupées avancées sur les variations ne sont pas enregistrées dans l'Historique ; rien ici ne peut être annulé d'un clic.

Créer des variations en masse à partir des attributs

  1. Filtrez ou cochez les produits variables, puis ouvrez Opérations groupées avancées sur les variations (Variations Advanced Bulk Operations) depuis le panneau d'outils. L'onglet Création (Creating) s'ouvre en premier.
  2. Dans Sélectionner des attributs (Select attributes), choisissez les attributs à partir desquels construire les variations, par exemple Taille et Couleur, puis sélectionnez les termes de chacun que les produits doivent recevoir.
  3. Appuyez sur Générer les combinaisons possibles (Generate possible combinations). Chaque combinaison des termes sélectionnés est listée avec une case à cocher ; décochez celles dont vous ne voulez pas et faites glisser les autres dans l'ordre que vous préférez.
  4. Appuyez sur Démarrer l'ajout en masse ! (Start BULK Adding!) et gardez la page ouverte jusqu'à la fin de la barre de progression.

Les combinaisons qu'un produit possède déjà sont ignorées, donc lancer le générateur deux fois ne crée jamais de doublons. C'est aussi la façon d'ajouter une nouvelle valeur à des produits qui ont déjà des variations : pour ajouter XXL, sélectionnez de nouveau Taille et Couleur avec XXL et toutes les couleurs, générez, et seules les variations XXL sont créées. La page pas à pas avec captures d'écran est la documentation sur les produits variables.

Deux onglets voisins couvrent des tâches proches. Attachement (Attaching) ajoute un nouvel attribut à des variations qui existent déjà, avec un terme par variation, par exemple une matière pour chaque taille et chaque couleur existantes ; voir ajouter des termes d'attribut à des variations existantes. Échange (Swap) remplace un terme par un autre sur des variations existantes sans les recréer, de sorte que les prix et le stock sont conservés.

Planifier les combinaisons : éviter l'explosion du nombre de variations

Le nombre de variations par produit est le produit du nombre de termes de chaque attribut : 100 tailles, 3 coffrets cadeaux et 4 couleurs font 1 200 variations, chacune étant une entrée distincte (post) avec son propre prix et son propre stock. Avant de générer, demandez-vous quels attributs changent le prix, le stock ou l'UGS (SKU). Seuls ceux-là ont besoin de variations.

Les autres attributs peuvent tout de même être proposés au client :

  • À titre d'information uniquement. Ajoutez l'attribut aux produits comme simple attribut, visible mais non utilisé pour les variations. Il apparaît sous Informations complémentaires et dans les filtres, mais le client ne le choisit pas.
  • Comme un choix avec des variations « N'importe lequel ». Générez les variations uniquement à partir des attributs qui influent sur le prix, puis ajoutez l'attribut restant aux produits et cochez-le Utilisé pour les variations (Used for variations) dans l'onglet Visibilité (Visibility). Les variations existantes n'ont aucune valeur pour cet attribut, ce que WooCommerce interprète comme « N'importe quelle couleur » (Any Color) : le client choisit une couleur, la ligne de commande l'enregistre, et une seule variation par taille sert toutes les couleurs. 300 variations au lieu de 1 200.

Le générateur lui-même écrit toujours un terme précis dans chaque variation ; il ne crée pas de valeurs « N'importe lequel » (Any). L'ordre ci-dessus, les variations d'abord et l'attribut supplémentaire ensuite, est la façon de les obtenir.

Ce que contient une nouvelle variation

  • Statut : publié. Pour les créer plutôt en privé (désactivées), par exemple afin de les vérifier avant la mise en ligne, utilisez le hook :
    // Child theme functions.php or a code snippets plugin.
    // BEAR: variations created by Variations Advanced Bulk Operations start as private.
    add_filter( 'woobe_new_variation_product_status', function ( $status ) {
        return 'private';
    } );
    Pour les publier ensuite en masse, activez variations, réglez le statut de l'article sur Publié dans l'onglet Modifier en bloc et lancez l'opération ; la FAQ sur l'activation et la désactivation des variations montre les étapes.
  • Prix : en général aucun. Une variation ne copie le prix normal et le prix promotionnel que si le produit parent en conserve encore un, typiquement un produit converti depuis un produit simple. Sinon, elle n'a pas de prix, et WooCommerce ne vend pas une variation sans prix. Définissez les prix juste après le traitement, par taille si nécessaire, comme dans filtrer les variations par attribut.
  • UGS (SKU) : l'UGS du parent suivie d'un trait d'union et de l'ID de la variation, ou sku- suivi de l'ID quand le parent n'a pas d'UGS, de sorte que WooCommerce ne voit jamais d'UGS en double.
  • Stock : non géré. Activez Gérer le stock (Manage stock) et définissez les quantités dans l'onglet Modifier en bloc, interrupteur des variations activé.
  • Tout le reste vient du parent tant que vous ne le définissez pas sur la variation : WooCommerce utilise l'image, le poids, les dimensions, la classe d'expédition et la classe de taxe du parent pour une variation qui n'a pas les siens.

La variation présélectionnée sur la page produit se définit dans l'onglet Combinaison par défaut (Default combination) du même outil : sélectionnez les attributs et les termes, puis appuyez sur Appliquer la combinaison (Apply combination) pour tous les produits sélectionnés à la fois.

Copier une seule variation n'est pas possible : une variation est définie par ses valeurs d'attributs, et une copie serait une seconde variation avec les mêmes valeurs, entre lesquelles les clients ne pourraient pas choisir. Le bouton de duplication du panneau d'outils refuse les variations pour cette raison. Dupliquez plutôt le produit entier ; la copie est créée comme brouillon, avec toutes ses variations.

Traitements volumineux : limites, délais dépassés et erreurs qui n'en sont pas

Le bouton Générer les variations (Generate variations) de WooCommerce s'arrête à 50 variations par clic ; ce plafond est la constante WC_MAX_LINKED_VARIATIONS. Le générateur de BEAR ne l'applique pas et crée toutes les combinaisons cochées. Ses limites sont celles du serveur : les produits sont traités deux par requête, et chaque requête crée toutes les combinaisons cochées pour les deux. Un produit de 1 500 combinaisons représente des milliers d'écritures en base de données dans une seule requête.

  • Créez par lots. Cochez une partie de la liste des combinaisons, lancez, puis cochez la partie suivante. Comme les combinaisons existantes sont ignorées, vous pouvez aussi simplement relancer la même sélection après une interruption : seul ce qui manque est créé.
  • Lisez le texte de l'erreur. Allowed memory size exhausted dans le journal d'erreurs PHP signifie que la requête a manqué de mémoire ; augmentez memory_limit ou réduisez le lot. Une erreur 502 ou 504 signifie qu'elle a manqué de temps, souvent alors que PHP continuait de travailler.
  • Une erreur n'est pas la preuve d'un échec. Avec des centaines de combinaisons, la progression peut s'arrêter sur une erreur alors que les variations ont bien été créées. Ouvrez l'un des produits et comptez ses variations avant de relancer ; une seconde exécution n'ajoutera de toute façon que celles qui manquent.
  • Extensions de cache et d'optimisation. Les extensions qui mettent en cache ou réécrivent les requêtes d'administration ont déjà perturbé la création de variations, SG Optimizer et RunCloud Hub étant des cas connus : les variations n'étaient pas créées ou le produit redevenait simple. Excluez-en la page de l'éditeur et admin-ajax.php, ou désactivez-les le temps du traitement.

L'aspect tableau des catalogues volumineux, le nombre de lignes par page et la mémoire pour des milliers de variations, est traité dans modifier des milliers de produits en masse.

Annulation et dépannage

Il n'existe pas d'annulation pour les variations créées. Supprimez les mauvaises avec l'onglet Suppression (Deleting) du même outil : une combinaison exacte par exécution, ou Supprimer toutes les variations des produits (Delete all products variations) pour tout reprendre de zéro, comme dans supprimer toutes les variations d'un coup. La suppression y est définitive. Pour quelques produits, cochez les lignes de variations, interrupteur des variations activé, et utilisez le bouton de suppression du panneau d'outils.

  • Il ne s'est rien passé. Les produits sélectionnés ne sont pas de type Variable, ou la ligne en haut de l'outil affiche une autre sélection que celle attendue, par exemple un produit coché oublié.
  • Les nouvelles variations affichent « N'importe lequel » (Any) ou ne peuvent pas être choisies. L'attribut était sur les produits avant le traitement mais n'était pas coché Utilisé pour les variations (Used for variations). Activez l'option dans l'onglet Visibilité (Visibility) ; les valeurs sont déjà sur les variations.
  • Des noms de variations sans valeurs d'attributs. C'est WooCommerce qui décide si le titre d'une variation inclut ses attributs, et il les omet quand le produit a trois attributs ou plus, ou deux attributs et un trait d'union dans le nom de l'un d'eux. La FAQ sur les titres de variations donne le filtre d'une ligne qui change cela.
  • Un terme manque dans la liste. Les termes doivent exister dans l'attribut global avant de pouvoir être sélectionnés ; ajoutez-les sous Produits → Attributs, puis rouvrez l'outil.

Si un traitement échoue malgré tout, indiquez le nombre de produits et de combinaisons ainsi que le texte de l'erreur du journal PHP sur le forum d'assistance de BEAR.