Dominar por completo la importación de productos en WooCommerce: La guía definitiva para pasar de archivos CSV a productos personalizados

Lectura en 3 minutos
2026-03-13
2026-06-03
2,626
Gano comisiones cuando compras a través de los enlaces de abajo, sin coste adicional para ti.

¿Por qué se necesita una herramienta profesional para importar productos en WooCommerce?

A medida que los comercios en línea crecen en tamaño, agregar productos uno por uno de forma manual se vuelve cada vez menos práctico. Ya sea para migrar datos de tiendas existentes, actualizar precios de inventario en masa o obtener listas de productos de proveedores, funciones de importación de datos eficientes son de vital importancia. Las herramientas de importación básicas proporcionadas por WooCommerce son suficientes para casos sencillos, pero al lidiar con tipos de productos complejos, campos personalizados y grandes volúmenes de datos, los desarrolladores necesitan dominar métodos más sistemáticos y potentes.

Utilizar las herramientas y métodos adecuados para la importación de productos no solo ahorra mucho tiempo, sino que también ayuda a evitar errores humanos al máximo y asegura la coherencia de los datos. Ya sea que se trate de productos sencillos y estándar, productos variables, o tipos de productos más avanzados como los de suscripción o los vendidos en paquetes, un proceso de importación bien estructurado es la base de la automatización de las operaciones de comercio electrónico. Este artículo explorará en profundidad el proceso completo, desde la preparación de archivos CSV estándar hasta el manejo de productos personalizados a través de programación.

Preparar un archivo CSV estándar para la importación en masa.

WooCommerce incorpora la función de importar productos a través de archivos CSV, que es el método más común y directo para realizar operaciones en masa. Lo esencial es preparar un archivo CSV que cumpla con el formato esperado por WooCommerce.

Lecturas recomendadas Desarrollo de sitios web de comercio electrónico con WooCommerce: construye tu tienda en línea desde cero.

Comprender las columnas de datos del producto principal.

Un archivo CSV básico para importar debe contener algunas columnas clave. Entre ellas,IDYTypeLa columna es la más importante.IDSe utiliza para coincidir con productos existentes y realizar actualizaciones; si se deja en blanco, se creará un nuevo producto.TypeEntonces se definen los tipos de productos, por ejemplo…simple(Producto simple)variable(Productos variables)grouped(Productos agrupados), etc. Otras columnas básicas incluyen…SKU(Unidad de inventario)Name(Nombre del producto)Published(Estado de publicación: 1 indica que está publicado.)Description(Descripción)Regular price(precio regular) y tambiénStock(Cantidad en stock).

Servidor de WordPress de UltaHost
Garantía de reembolso en 30 días, ancho de banda ilimitado y bases de datos, protección gratuita contra ataques DDoS; descuento del 50% al comprar por 3 años (versiones de 4 TB y 5 TB).

Para los productos variables, el proceso de importación se divide en dos pasos: primero se importa el producto padre y luego se importan sus variantes.TypeListado comovariablesubvarianteTypeListado comovariationY a través de…ParentLa columna especifica el SKU del producto padre para establecer la asociación.

Tratamiento de categorías, etiquetas e imágenes

La importación de categorías y etiquetas debe seguir un formato específico. En el caso de las categorías de productos, se puede…CategoriesEn la columna, se utiliza el formato “Categoría principal > Subcategoría”; las múltiples categorías se separan con puntos y comas. Por ejemplo: “Ropa > Camisas; Nuevos productos de verano”. Las etiquetas, por su parte, se…TagsLos elementos en la columna están separados por comas en inglés.

La importación de imágenes de productos es bastante flexible. Se puede hacer a través de…ImagesIndique las URL de las imágenes en una lista; separen múltiples URL con comas. La primera URL se utilizará como imagen principal. Al importar los datos, WooCommerce intentará descargar estas imágenes y guardarlas en la biblioteca de medios. Otra opción es subir las imágenes previamente a un directorio específico del servidor mediante FTP y luego referirse a ellas mediante rutas relativas en el archivo CSV.

Un ejemplo de archivo CSV para un producto estándar y sencillo es el siguiente:

Lecturas recomendadas Guía completa para WooCommerce: Cómo crear un sitio web de comercio electrónico profesional desde cero

ID,Type,SKU,Name,Published,Description,Regular price,Stock,Categories,Images
,simple,T-SHIRT-SM,纯棉简约T恤,1,这是一件舒适的纯棉T恤。,29.99,100,服饰 > 上衣,https://example.com/tshirt.jpg

Implementar la automatización de importaciones avanzadas utilizando WP CLI

Para desarrolladores y usuarios avanzados, las herramientas de línea de comandos de WordPressWP-CLISe ofrece un método de importación más potente y scriptable. Es especialmente adecuado para su integración en procesos de despliegue o para el manejo de conjuntos de datos de muy gran tamaño.

Un enfoque básico para lograrlo…wp-cliLa comando para importar un archivo CSV es la siguiente:

wp import products.csv --authors=skip

Pero la práctica más común es utilizar scripts personalizados. Podemos escribir un script en PHP que aproveche estas posibilidades.WP-CLI¿Dónde está el baño?wp eval-fileSe utiliza una orden para ejecutarlo. El núcleo de la script es el uso de…wc_get_product_objectLa función crea un objeto de producto y le establece sus propiedades.

hosting.com Alojamiento compartido
Alto rendimiento con CPU AMD EPYC, almacenamiento SSD NVMe y LiteSpeed, asistencia interna de expertos 24 horas al día, 7 días a la semana, medidas de seguridad avanzadas como SSL, fuerza bruta, protección contra malware y DDoS, ahorro de hasta 73%.

A continuación, se muestra un ejemplo de script PHP que utiliza métodos de programación para crear un producto sencillo:

<?php
// 读取CSV数据
$csvFile = 'products.csv';
if (($handle = fopen($csvFile, 'r')) !== FALSE) {
    $header = fgetcsv($handle); // 读取标题行
    while (($data = fgetcsv($handle)) !== FALSE) {
        $productData = array_combine($header, $data);

// 创建产品对象
        $product = new WC_Product_Simple();
        $product->set_name($productData['Name']);
        $product->set_sku($productData['SKU']);
        $product->set_regular_price($productData['Regular price']);
        $product->set_description($productData['Description']);
        $product->set_stock_quantity($productData['Stock']);
        $product->set_status($productData['Published'] == 1 ? 'publish' : 'draft');

// 处理分类
        $categoryNames = explode(';', $productData['Categories']);
        $categoryIds = [];
        foreach ($categoryNames as $catName) {
            $term = term_exists(trim($catName), 'product_cat');
            if (!$term) {
                $term = wp_insert_term(trim($catName), 'product_cat');
            }
            if (!is_wp_error($term)) {
                $categoryIds[] = (int)$term['term_id'];
            }
        }
        $product->set_category_ids($categoryIds);

$product->save();
        echo "产品已创建/更新: " . $productData['Name'] . " (ID: " . $product->get_id() . ")n";
    }
    fclose($handle);
}
?>

Guarde el script anterior como un archivo con una extensión adecuada, por ejemplo `.txt`, `.js` o `.php`.import_products.phpDespués, se puede utilizar un comando para continuar con el proceso.wp eval-file import_products.phpEjecutar.

Utilizar WP CLI para manejar relaciones complejas

WP-CLILa gran ventaja de este sistema radica en su capacidad para manejar lógicas complejas. Por ejemplo, al importar productos variables y sus atributos, se pueden crear atributos globales primero, luego asignarlos a los productos y generar sus variantes. Al escribir scripts, es posible controlar de manera precisa el manejo de errores y el registro de logs en cada paso, lo que permite lograr un proceso de importación completamente automatizado. En escenarios que requieren sincronización con API externas (como sistemas ERP o de proveedores), esto se puede combinar para garantizar una integración fluida y fiable.WP-CLIEs la solución ideal en comparación con las tareas programadas (Cron Jobs).

Procesamiento de programación para productos personalizados y metadatos

Cuando las columnas estándar de un archivo CSV no son suficientes para satisfacer las necesidades, por ejemplo cuando se requiere importar campos personalizados, tipos de productos creados por plugins de terceros (como productos reservados) o metadatos complejos, es necesario recurrir a un enfoque programático.

Creación y actualización de productos con campos personalizados

Todos los datos estándar de los productos de WooCommerce (como precios e inventario), así como los datos personalizados (añadidos a través de ACF u otros métodos), se almacenan finalmente como metadatos (Post Meta). El aspecto central de la importación por programación es utilizar estos datos de manera correcta.set_Métodos en serie y…update_post_metaFunción.

Supongamos que tenemos algo llamado…custom_batch_numberEl siguiente código muestra cómo configurar un campo personalizado al crear un producto:

Alojamiento compartido InterServer
Alojamiento compartido $2.50 USD al mes , primer mes $0.1 USD código promocional tryinterserver, 461 scripts de aplicaciones en la nube, instalación en un clic.
// 假设 $product 是一个 WC_Product 对象
$product->set_name('高级定制产品');
$product->set_regular_price(99.99);
$product->save(); // 必须先保存产品以获得ID

// 更新自定义字段(产品元数据)
$product_id = $product->get_id();
update_post_meta($product_id, 'custom_batch_number', 'BATCH-2026-001');
update_post_meta($product_id, '_custom_field', 'value'); // 下划线开头表示隐藏的元数据

Cabe tener en cuenta que algunos complementos de terceros definen sus propios tipos de productos. Al crear productos de este tipo, se debe utilizar la clase correspondiente.new WC_Product_Booking()Y se llama al método específico proporcionado por el plugin.

Utilizar los ganchos (hooks) de WooCommerce para expandir las funciones de importación

Para insertar lógica personalizada durante el proceso de importación, WooCommerce ofrece una gran cantidad de ganchos (hooks). Dos de los ganchos de acción clave son…woocommerce_new_productYwoocommerce_update_productSe activan respectivamente al crear un producto y al actualizarlo.

Por ejemplo, después de importar un producto, podemos asignarle automáticamente un estado de revisión interna.

add_action('woocommerce_new_product', 'my_post_import_actions', 10, 2);
add_action('woocommerce_update_product', 'my_post_import_actions', 10, 2);

function my_post_import_actions($product_id, $product) {
    // 自动为所有新导入的产品添加“待审核”标记
    update_post_meta($product_id, '_internal_review_status', 'pending');

// 或者根据特定条件进行处理
    if (strpos($product->get_sku(), 'PREMIUM') !== false) {
        wp_set_object_terms($product_id, 'premium', 'product_tag', true);
    }
}

Además, los ganchos de filtro (filter hooks).woocommerce_product_import_pre_insert_product_objectTambién es extremadamente útil, ya que nos permite modificar los datos de los objetos del producto antes de que sean insertados en la base de datos. Esto resulta especialmente práctico para formatar los precios de manera uniforme, convertir las unidades de medida o verificar la conformidad de los datos.

resúmenes

La importación de productos en WooCommerce es una habilidad que puede variar en complejidad, desde lo más simple hasta lo más avanzado. Dominar el proceso de importación mediante archivos CSV estándar es esencial, ya que es adecuado para la mayoría de las situaciones de actualización masiva y migración de datos. Sin embargo, cuando se enfrentan tareas repetitivas o es necesario integrar este proceso con los flujos de trabajo de desarrollo, las opciones se vuelven más variadas y requieren un conocimiento más profundo.WP-CLILa automatización desde la línea de comandos demuestra su gran potencia. En el caso de tiendas altamente personalizadas, que involucran campos definidos por el usuario, datos de plugins de terceros o lógicas comerciales complejas, la combinación de métodos de programación con los ganchos (hooks) de WooCommerce ofrece la máxima flexibilidad y control. Una estrategia de importación exitosa suele utilizar una combinación de estos herramientas: archivos CSV para tareas masivas diarias, y scripts para atender necesidades complejas y personalizadas. Lo esencial es comprender en profundidad la estructura de datos de WooCommerce y realizar siempre una copia de seguridad completa de los datos existentes antes de realizar cualquier operación.

FAQ Preguntas más frecuentes

¿Cómo manejar los caracteres especiales y los problemas de codificación en un archivo CSV?

Asegúrese de que el archivo CSV se guarde en formato UTF-8, ya que este es el único formato completamente compatible con el importador oficial de WooCommerce. Si los datos contienen caracteres especiales como comas, comillas o saltos de línea, es necesario encerrar el valor completo de cada campo entre comillas dobles en inglés.

Por ejemplo, cuando la descripción contiene comas, debe escribirse de la siguiente manera:“这是一件优质,舒适的产品”Se recomienda verificar en un editor de texto que los comillas de todos los campos aparezcan en pares, ya que este es un paso clave para evitar errores al importar o exportar datos.

¿Qué hago si, al importar productos variables, los atributos no se muestran o la creación de las variantes falla?

Generalmente, el problema radica en el formato CSV o en el orden de importación. Primero, asegúrese de que ha configurado correctamente los atributos globales. Al importar el producto padre…Type: variableCuando se trata de hacer algo así, es necesario…Attribute 1 nameYAttribute 1 value(s)Definir atributos en columnas, por ejemplo…颜色Y红色,蓝色

En segundo lugar, se importan las variantes…Type: variationCuando se trata de esto, es necesario proceder a través de…ParentCite con precisión el SKU del producto padre y, además,Attribute: 颜色En una columna de este tipo, se especifican los valores concretos de los atributos de esa variante (por ejemplo…).红色Finalmente, una vez que se haya completado la importación, es necesario acceder a la pestaña “Variantes” del producto y hacer clic en “Crear Variante” o “Guardar Cambios”. Solo entonces el sistema generará todas las combinaciones posibles de variantes basadas en los atributos especificados.

¿Cómo configurar correctamente las imágenes de los productos a través de la programación?

Configurar las imágenes de los productos mediante programación es un proceso un poco más complejo que simplemente especificar los URLs en un archivo CSV. Los pasos clave son los siguientes: primero, se debe cargar el archivo de imagen a la biblioteca de medios de WordPress para obtener su ID de archivo adjunto; luego, ese ID se asigna al producto correspondiente.

Se puede utilizar.media_sideload_imageLa función descarga una imagen desde una URL y la crea como un archivo adjunto. El código de ejemplo es el siguiente:

$image_url = 'https://example.com/product.jpg';
$attach_id = media_sideload_image($image_url, $product_id, '产品图片描述', 'id');
if (!is_wp_error($attach_id)) {
    // 设置为主图
    set_post_thumbnail($product_id, $attach_id);
    // 如需加入产品图库
    // $gallery_ids = array($attach_id);
    // update_post_meta($product_id, '_product_image_gallery', implode(',', $gallery_ids));
}

¿Cómo manejar el cierre del sitio web o el agotamiento de la memoria al importar una gran cantidad de productos?

Esto se debe a los límites de tiempo de ejecución y a los límites de memoria del servidor. Para importaciones a gran escala, es esencial no realizar las operaciones a través de la interfaz administrativa de WordPress, sino utilizar otros métodos adecuados.WP-CLIEs una herramienta de línea de comandos, ya que no está sujeta a los ajustes de tiempo de espera (timeout) de PHP.

A nivel de script, se puede adoptar una estrategia de procesamiento por lotes. Por ejemplo, se pueden leer y procesar 100 registros CSV cada vez, y luego, una vez completado el proceso, se procede con el siguiente lote.sleep(1)Haga una breve pausa y luego continúe de manera coordinada.wp_cache_flush()Limpie el caché para liberar memoria. Además, antes de ejecutar el script de importación, se puede…wp-config.phpSe ha aumentado temporalmente el límite de memoria:define('WP_MEMORY_LIMIT', '512M');Para la importación de productos en cantidades de decenas de miles o incluso cientos de miles, se recomienda operar directamente la base de datos o buscar herramientas de migración de datos más especializadas.