Visser Labs – Plugins de WooCommerce

Cómo exportar datos de WooCommerce a JSON

Si estás introduciendo datos de la tienda en un script, una API o cualquier otro sistema, una hoja de cálculo plana se interpone en el camino. JSON te da cada registro como un objeto autocontenido que casi todos los lenguajes de programación y herramientas de integración pueden leer directamente. Store Exporter Deluxe puede exportar cualquier tipo de dato compatible como JSON a través de su URL de exportación CRON. A continuación, activarás las exportaciones CRON, construirás la URL que devuelve JSON y aprenderás a leer, abrir y personalizar la salida.

Prerrequisitos

RequisitoDetalles
ComplementoStore Exporter Deluxe instalado, activo y con licencia
WooCommerceActivo, con al menos un registro del tipo que deseas exportar
Acceso de administradorNecesitarás una cuenta con acceso al panel de administración de WordPress
Una forma de solicitar una URLUn navegador web es suficiente. Una herramienta como curl o wget también funciona si quieres automatizarlo

JSON no es una de las casillas de Formato de archivo en la pantalla de Exportación rápida, y no se ofrece en Plantillas de exportación. Lo solicitas a través de la URL de exportación CRON en su lugar, como se describe a continuación.

Paso 1: Activar exportaciones CRON

  1. Ve a WooCommerce → Store Export.
  2. En la barra lateral, haz clic en Ajustes.
  3. Haz clic en Exportaciones CRON.
  4. Activa Activar CRON.
  5. Introduce un valor largo y aleatorio en Clave secreta de exportación.
  6. En Campos de exportación, elige qué campos incluye una exportación CRON.
  7. Haga clic en Guardar cambios.

Activar CRON está desactivado por defecto. Mientras está desactivado, el plugin ignora la URL de exportación. También ignora cualquier solicitud cuya clave no coincida con Clave secreta de exportación, y cada solicitud mientras ese campo esté vacío. Trata la clave como una contraseña, porque cualquiera con la clave y tu URL puede descargar los datos de tu tienda.

Las opciones de Campos de exportación son:

  • Todos los campos de exportación: incluye todos los campos conocidos para el tipo de exportación que solicitas.
  • Usar plantilla de exportación: utiliza los campos de una Plantilla de exportación guardada.
  • Preferencias de campos guardados: utiliza los campos que guardaste en la pantalla de Exportación rápida para ese tipo de exportación.
La página de ajustes de Exportaciones CRON con el interruptor CRON activado, una Clave Secreta de Exportación introducida y Campos de exportación configurados como Todos los campos de exportación

Paso 2: Construir la URL de exportación

Empieza con la dirección de tu sitio y añade los parámetros a continuación. Reemplaza TU_CLAVE_SECRETA con la clave que estableciste en el Paso 1:

https://example.com/?action=woo_ce-cron&key=YOUR_SECRET_KEY&type=product&format=json&response=download
ParámetroQué hace
actionSiempre woo_ce-cron. Esto le dice al plugin que la solicitud es una exportación CRON.
keyTu clave secreta de exportación.
tipoLos datos a exportar: product, category, tag, brand, order, customer, user, review, coupon, subscription, product_vendor, commission, shipping_class, ticket o booking. Los tipos subscription, product_vendor, commission, ticket y booking necesitan que el plugin correspondiente esté activo. Sin él, la exportación no tiene registros.
formatoEstablecer a json. Si lo omites, la exportación se establece por defecto en CSV.
respuestadownload envía un archivo .json a tu navegador. raw imprime el JSON directamente en la página, lo que es útil para scripts y solicitudes tipo API.
límiteOpcional. El número máximo de registros a exportar. Déjalo vacío para exportar todo.
desplazamientoOpcional. El número de registros a omitir, lo que ayuda cuando exportas una tienda grande en partes.

Paso 3: Ejecutar la exportación

Abre la URL en tu navegador. Con response=download, tu navegador guarda un archivo llamado como mi-tienda-export_producto-2026_10_20-07_18_54-93680224.json. Con response=raw, el JSON aparece en la página en su lugar.

Para automatizarlo, solicita la misma URL desde un script o un trabajo programado en tu servidor:

curl -s "https://example.com/?action=woo_ce-cron&key=YOUR_SECRET_KEY&type=order&format=json&response=raw" -o orders.json

Cómo es la salida

El archivo es un único objeto JSON. Su única clave es el tipo de exportación y su valor es una lista de registros. Una exportación de Productos se ve así:

{
    "product": [
        {
            "productid": "15",
            "productsku": "HD-FLC-CLS",
            "productname": "Classic Fit Fleece Hoodie",
            "parentsku": {}
        }
    ]
}
El inicio de una exportación JSON de Productos, con la clave del tipo de exportación, un valor vacío escrito como {}, y un ID de producto escrito como texto, cada uno marcado con una llamada

Hay algunas cosas que vale la pena saber antes de construir algo sobre él:

  • Los nombres de los campos son simplificados: el nombre de cada campo es su etiqueta de columna en minúsculas, con espacios y la mayoría de los símbolos eliminados. Los guiones y guiones bajos se mantienen. Así, Nombre del producto se convierte en productname, y Correo electrónico se convierte en e-mail.
  • Todos los valores son texto: los números, precios e IDs se escriben como cadenas, como "15" en lugar de 15. Conviértelos en tu propio código si necesitas tipos numéricos.
  • Algunos valores se escriben como {}: un campo sin valor se escribe como {}, no como "" o null. El campo Categoría de una exportación de Productos, y el texto que contiene caracteres especiales como espacios de no separación, también se presentan como {}. Si necesitas esos valores, exporta los mismos datos como XML o CSV.
  • Los pedidos llevan una clave adicional: cada registro de pedido también incluye una entrada @attributes que contiene el ID del pedido.
  • Un solo registro no está envuelto en una lista: si tu exportación contiene exactamente un registro, la clave del tipo de exportación contiene ese registro directamente en lugar de una lista de un solo elemento. Si obtienes un registro a la vez usando limit=1, maneja ambas formas en tu código.
  • La salida está formateada de forma legible: el archivo utiliza indentación y saltos de línea para que sea fácil de leer.

Opciones específicas del formato

Las exportaciones JSON no tienen configuraciones propias. No hay opción de delimitador o estructura para elegir, y el archivo siempre es UTF-8. La configuración general todavía se aplica, por lo que Formato de fecha controla cómo aparecen las fechas en el JSON. La configuración que solo se aplica a otros formatos, como Delimitador de campos y Formato de fin de línea (CSV y TSV), no cambia un archivo JSON. Para cambiar el JSON en sí, usa los hooks en la sección de desarrollador a continuación.

Abrir tu archivo JSON

  • Navegador web o editor de código: abre el archivo en cualquier navegador moderno, VS Code o un editor de texto. La mayoría de los editores pueden colapsar y expandir cada objeto.
  • Línea de comandos: usa jq para filtrarla y darle forma, por ejemplo jq '.product[].productsku' products.json.
  • Herramientas de API: herramientas como Postman pueden cargar un archivo JSON como cuerpo de solicitud o como datos de ejemplo.
  • Hojas de cálculo: la opción de Excel Obtener datos → Desde archivo → Desde JSON (Power Query) puede aplanar los registros en filas. Si principalmente quieres una hoja de cálculo, una exportación CSV o Excel es más sencilla.
  • Tu propio código: todos los lenguajes principales pueden analizar JSON con una biblioteca integrada o estándar.

Personalización de la salida JSON con ganchos

Store Exporter Deluxe activa ganchos de filtro alrededor de la exportación JSON, para que un desarrollador pueda cambiar la salida sin editar los archivos del plugin. Estos ganchos se ejecutan para las exportaciones solicitadas a través de la URL CRON.

FiltroQué hace
woo_ce_export_json_constantsEstablece las opciones pasadas a wp_json_encode(). El valor predeterminado es JSON_PRETTY_PRINT.
woo_ce_export_json_before_datasetSe ejecuta antes de que se añadan los registros. Recibe el objeto de exportación vacío.
woo_ce_export_json_after_datasetSe ejecuta después de que se añadan los registros. Recibe el objeto de exportación terminado, antes de que se convierta a JSON.
woo_ce_cron_allowed_export_typesLimita qué tipos de exportación acepta la URL CRON.

Por ejemplo, para eliminar la indentación y mantener legibles las barras diagonales y los caracteres no ingleses, devuelve diferentes opciones de JSON:

add_filter( 'woo_ce_export_json_constants', function () {
    return JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
} );

La opción JSON_UNESCAPED_SLASHES evita que las URL se escriban como https:\/\/example.com. La opción JSON_UNESCAPED_UNICODE mantiene los caracteres como acentos y guiones no latinos tal como están en lugar de convertirlos en códigos \u.

Para ver la lista más amplia de ganchos que se ejecutan durante una exportación, consulta Ganchos y filtros disponibles para una mayor personalización.

Esta es una personalización para desarrolladores. Si no te sientes cómodo añadiendo código a través de un plugin personalizado o el archivo functions.php de tu tema, abre un ticket de soporte y nuestro equipo podrá ayudarte.

Solución de problemas

La URL de exportación muestra mi página de inicio normal
Comprueba que Habilitar CRON esté activado, que Clave secreta de exportación no esté vacía y que la key de tu URL coincida exactamente. Cuando alguna de estas condiciones no se cumple, el plugin ignora la solicitud y tu sitio se carga como de costumbre.
La URL de exportación muestra una página en blanco
El plugin aceptó tu clave, pero no reconoció el tipo de exportación ni el formato. Comprueba que type esté en la URL y sea uno de los valores listados en el Paso 2. También comprueba que format sea exactamente json. El plugin no reconoce ninguna otra ortografía y no devuelve nada.
La exportación solo muestra null
Tu tienda no tiene registros de ese tipo, por lo que no hay nada que exportar. Comprueba que type sea el dato que esperas.
La página muestra solo 1 o 0
Añade &response=download o &response=raw a la URL. Sin un valor response válido, el plugin devuelve solo un número de estado en lugar del archivo.
La URL de exportación muestra un error crítico
Establece Codificación de caracteres en Ajustes → General a UTF-8, o añade &encoding=UTF-8 a la URL de exportación. Las exportaciones JSON no funcionan con UTF-16.
El archivo se descarga como CSV en lugar de JSON
Falta el parámetro format. Sin él, la exportación CRON usa CSV por defecto. Añade &format=json a la URL.
Mi script falla porque un campo está {}
Haz que tu código acepte {} donde espere texto. Los campos vacíos se escriben como {}, al igual que el campo Categoría y el texto con caracteres especiales como los espacios de no separación. Si necesitas esos valores, exporta los mismos datos como XML o CSV.
El JSON tiene menos campos de los que esperaba
Las exportaciones CRON usan la selección de campos en Campos de exportación en Ajustes → Exportaciones CRON. Cámbiala a Todos los campos de exportación, o a la plantilla o selección guardada que contenga los campos que necesitas.

Preguntas frecuentes

¿Puedo elegir JSON en la pantalla de Exportación Rápida?
No. Las opciones de Formato de archivo en Opciones de exportación en Exportación Rápida son CSV, TSV, XLS, XLSX y XML. Usa la URL de exportación CRON para JSON.
¿Puedo cambiar la codificación de una exportación JSON?
No. El archivo JSON es siempre UTF-8. Si Codificación de caracteres en Ajustes → General está configurado como UTF-16, la exportación JSON falla con un error. Configúralo como UTF-8, o añade &encoding=UTF-8 a la URL de exportación. Para cambiar cómo se escriben los caracteres especiales, usa el filtro woo_ce_export_json_constants.
¿Funciona JSON para todos los tipos de exportación?
Sí. Cada tipo en la lista type del Paso 2 se puede solicitar con format=json.

¿Necesita ayuda?

Si tiene alguna pregunta o encuentra algún problema, estamos aquí para ayudarle.

¿Fue útil este artículo?

Artículos relacionados

Recursos y ayuda