BEAR - WooCommerce Bulk Editor and Products Manager Professional

Crear variaciones en masa en WooCommerce para muchos productos a la vez

WooCommerce crea las variaciones producto a producto: abres el producto, eliges los atributos, pulsas Generar variaciones (Generate variations), guardas y pasas al siguiente. Para crear variaciones en masa en toda una categoría, o para añadir una talla nueva a cientos de productos que ya tienen variaciones, BEAR incluye un generador en Operaciones avanzadas en masa sobre variaciones (Variations Advanced Bulk Operations). A continuación verás qué necesita, cómo ejecutarlo, cómo mantener razonable el número de variaciones y qué hacer cuando una ejecución grande se detiene a la mitad.

Antes de empezar: qué necesita el generador

  • Productos variables. El generador omite todo producto que no sea de tipo Variable. Convierte primero los productos simples; el Tipo de producto (product type) es uno de los campos de la pestaña Edición masiva (Bulk Edit).
  • Atributos globales. Solo se pueden usar los atributos creados en Productos → Atributos, con sus términos. Los atributos escritos directamente en un producto son texto y no se ofrecen.
  • Los productos correctos seleccionados. La operación se ejecuta sobre todos los productos de la tienda, sobre los productos filtrados o sobre los marcados; los marcados tienen prioridad. La línea La operación avanzada en masa sobre variaciones se aplicará a (Variations Advanced Bulk Operation will be applied to) en la parte superior de la herramienta indica cuál de los tres es. Filtra por tipo de producto Variable más una categoría o una etiqueta.
  • Atributos que ya están en los productos. Cuando un atributo todavía no está en un producto, el generador lo añade con sus términos, visible y marcado como Usado para variaciones (Used for variations). Cuando ya está como atributo simple, el generador solo añade los términos que faltan y deja la casilla desactivada, y las variaciones nuevas reciben valores que WooCommerce no utiliza. Marca antes el atributo como Usado para variaciones con la pestaña Visibilidad (Visibility) de la misma herramienta, como se describe en añadir atributos a productos en masa.
  • Una copia de seguridad de la base de datos. Las operaciones avanzadas en masa sobre variaciones no se registran en el Historial (History); nada de esto se puede revertir con un clic.

Crear variaciones en masa a partir de atributos

  1. Filtra o marca los productos variables y abre Operaciones avanzadas en masa sobre variaciones desde el panel de herramientas. Primero se abre la pestaña Creando (Creating).
  2. En Seleccionar atributos (Select attributes) elige los atributos con los que construir las variaciones, por ejemplo Talla y Color, y selecciona los términos de cada uno que deben recibir los productos.
  3. Pulsa Generar combinaciones posibles (Generate possible combinations). Se lista cada combinación de los términos seleccionados con una casilla; desmarca las que no quieras y arrastra el resto al orden que prefieras.
  4. Pulsa ¡Iniciar adición en masa! (Start BULK Adding!) y mantén la página abierta hasta que termine la barra de progreso.

Las combinaciones que un producto ya tiene se omiten, de modo que ejecutar el generador dos veces nunca crea duplicados. Esa es también la forma de añadir un valor nuevo a productos que ya tienen variaciones: para añadir XXL, selecciona de nuevo Talla y Color con XXL y todos los colores, genera, y solo se crean las variaciones XXL. La página paso a paso con capturas de pantalla es la documentación de productos variables.

Dos pestañas contiguas cubren tareas relacionadas. Vinculando (Attaching) añade un atributo nuevo a variaciones que ya existen, con un término por variación, por ejemplo un material para cada talla y color existentes; consulta añadir términos de atributo a variaciones existentes. Intercambio (Swap) sustituye un término por otro en variaciones existentes sin recrearlas, de modo que los precios y el inventario se conservan.

Planifica las combinaciones: evita la explosión de variaciones

El número de variaciones por producto es el producto del número de términos: 100 tallas, 3 cajas de regalo y 4 colores dan 1.200 variaciones, cada una un post independiente con su propio precio e inventario. Antes de generar, pregúntate qué atributos cambian el precio, el inventario o el SKU. Solo esos necesitan variaciones.

Los demás atributos se pueden seguir ofreciendo al cliente:

  • Solo como información. Añade el atributo a los productos como atributo simple, visible pero no usado para variaciones. Aparece en Información adicional y en los filtros, pero el cliente no lo elige.
  • Como elección con variaciones "Cualquiera". Genera las variaciones solo con los atributos que influyen en el precio, añade después el atributo restante a los productos y márcalo como Usado para variaciones en la pestaña Visibilidad. Las variaciones existentes no tienen ningún valor para él, lo que WooCommerce trata como "Cualquier Color": el cliente elige un color, la línea del pedido lo registra y una variación por talla sirve para todos los colores. 300 variaciones en lugar de 1.200.

El propio generador siempre escribe un término concreto en cada variación; no crea valores "Cualquiera". El orden descrito arriba, primero las variaciones y después el atributo adicional, es la forma de obtenerlos.

Qué contiene una variación nueva

  • Estado: publicada. Para crearlas en cambio como privadas (desactivadas), por ejemplo para revisarlas antes de publicarlas, usa el 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';
    } );
    Para publicarlas más tarde en masa, activa variaciones (variations), establece el estado de la entrada en Publicado en la pestaña Edición masiva y ejecútalo; las preguntas frecuentes sobre activar y desactivar variaciones muestran los pasos.
  • Precio: normalmente ninguno. Una variación copia el precio normal y el de oferta solo si el producto padre aún guarda alguno, algo habitual en un producto convertido desde simple. En caso contrario no tiene precio, y WooCommerce no vende una variación sin precio. Fija los precios justo después de la ejecución, por talla si hace falta, como en filtrar variaciones por atributo.
  • SKU: el SKU del padre más un guion y el ID de la variación, o sku- más el ID cuando el padre no tiene SKU, de modo que WooCommerce nunca ve un SKU duplicado.
  • Inventario: no se gestiona. Activa Gestionar inventario (Manage stock) y fija las cantidades en la pestaña Edición masiva con el interruptor de variaciones activado.
  • Todo lo demás procede del padre hasta que lo fijes en la variación: WooCommerce usa la imagen, el peso, las dimensiones, la clase de envío y la clase de impuesto del padre para una variación que no tiene las suyas.

La variación preseleccionada en la página del producto se fija en la pestaña Combinación por defecto (Default combination) de la misma herramienta: selecciona los atributos y los términos y pulsa Aplicar combinación (Apply combination) para todos los productos seleccionados a la vez.

No es posible copiar una sola variación: una variación queda definida por sus valores de atributo, y una copia sería una segunda variación con los mismos valores, entre las que los clientes no podrían elegir. El botón de duplicar del panel de herramientas rechaza las variaciones por ese motivo. Duplica en su lugar el producto completo; la copia se crea como borrador con todas sus variaciones.

Ejecuciones grandes: límites, timeouts y errores que no son errores

El propio botón Generar variaciones de WooCommerce se detiene en 50 variaciones por clic; ese tope es la constante WC_MAX_LINKED_VARIATIONS. El generador de BEAR no lo aplica y crea todas las combinaciones marcadas. Sus límites son los del servidor: los productos se procesan de dos en dos por petición, y cada petición crea todas las combinaciones marcadas para ambos. Un producto con 1.500 combinaciones supone miles de escrituras en la base de datos en una sola petición.

  • Crea por lotes. Marca una parte de la lista de combinaciones, ejecuta, marca la siguiente parte. Como las combinaciones existentes se omiten, también puedes volver a ejecutar simplemente la misma selección tras una interrupción: solo se crea lo que falta.
  • Lee el texto del error. Allowed memory size exhausted en el registro de errores de PHP significa que la petición se quedó sin memoria; sube memory_limit o reduce el lote. Un 502 o un 504 significa que se quedó sin tiempo, a menudo mientras PHP seguía trabajando.
  • Un error no es prueba de fallo. Con cientos de combinaciones, el progreso puede detenerse con un error aunque las variaciones se hayan creado. Abre uno de los productos y cuenta sus variaciones antes de volver a ejecutar; una segunda ejecución solo añadirá las que falten de todos modos.
  • Plugins de caché y optimización. Los plugins que almacenan en caché o reescriben las peticiones de administración han roto antes la creación de variaciones, con SG Optimizer y RunCloud Hub como casos conocidos: las variaciones no se crearon o el producto volvió a ser simple. Excluye de ellos la página del editor y admin-ajax.php, o desactívalos durante la ejecución.

El lado de la tabla en productos grandes, las filas por página y la memoria para miles de variaciones, se trata en edición masiva de miles de productos.

Deshacer y solucionar problemas

No hay reversión para las variaciones creadas. Elimina las erróneas con la pestaña Eliminando (Deleting) de la misma herramienta: una combinación exacta por ejecución, o Eliminar todas las variaciones de los productos (Delete all products variations) para empezar de cero, como en eliminar todas las variaciones de una vez. La eliminación allí es permanente. Para unos pocos productos, marca las filas de variaciones con el interruptor de variaciones activado y usa el botón de eliminar del panel de herramientas.

  • No ocurrió nada. Los productos seleccionados no son de tipo Variable, o la línea de la parte superior de la herramienta muestra una selección distinta de la que esperabas, por ejemplo un producto marcado y olvidado.
  • Las variaciones nuevas muestran "Cualquiera" o no se pueden elegir. El atributo estaba en los productos antes de la ejecución, pero no marcado como Usado para variaciones. Activa la casilla en la pestaña Visibilidad; los valores ya están en las variaciones.
  • Nombres de variación sin valores de atributo. WooCommerce decide si el título de una variación incluye sus atributos, y los omite cuando el producto tiene tres o más atributos, o dos atributos y un guion en el nombre de uno de ellos. Las preguntas frecuentes sobre los títulos de variación incluyen el filtro de una línea que lo cambia.
  • Falta un término en la lista. Los términos deben existir en el atributo global antes de poder seleccionarse; añádelos en Productos → Atributos y vuelve a abrir la herramienta.

Si una ejecución sigue fallando, publica el número de productos y de combinaciones y el texto del error del registro de PHP en el foro de soporte de BEAR.