Buenos días
Cómo ya he comentado en distintas ocasiones, actualizamos diariamente mas de 17.000 productos y aumentando...
Nunca he tenido problema en hacerlo de una sólo importación via csv; pero desde que se actualizó wordpress y woocommerce, me es completamente imposible.
Lo que antes tardaba una hora aproximadamente, ahora tarda cinco horas; eso desactivando wp-rocket, con él activo ya ni lo intento.
Contacté con wp-rocket para ver cual era el problema con la actualización de productos y me indicaron que instalara Wp All Import
Instalado junto con el módulo dedicado woocommerce (un pastón).
Bien, ahora la pregunta o comentario del que necesitaría vuestra ayuda.
Para poder configurar correctamente WP All Import, necesitaría saber la estructura de campos que utiliza woocommerce.
En una ocasión, a través vuestro o del servicio en ticket, alguien me lo facilitó, pero no lo encuentro.
Me podríais enviar el enlace para averiguar los campos comunes de woocommerce?
Como siempre, agradecido por el servicio prestado.
Contenido solo visible a usuarios registrados
Hola, Antonio
No he podido localizar la lista que en su día te facilitaron mis compañeros, pero te hago un listado rápido de los 29 campos que conforman los productos en WooCommerce:
ID: Identificador único del producto en la base de datos.
post_title: Nombre o título del producto.
post_excerpt: Descripción corta del producto.
post_content: Descripción completa del producto.
post_name: Slug o URL amigable del producto.
_product_type: Tipo de producto (simple, variable, agrupado, etc.).
_sku: SKU o código de referencia del producto.
_regular_price: Precio regular del producto.
_sale_price: Precio de oferta del producto.
_sale_price_dates_from: Fecha de inicio de la oferta.
_sale_price_dates_to: Fecha de fin de la oferta.
_stock: Cantidad de unidades en inventario.
_manage_stock: Indicador de si el inventario es gestionado.
_stock_status: Estado del inventario (en stock, agotado).
_shipping_class: Clase de envío asignada al producto.
_weight: Peso del producto.
_length: Longitud del producto.
_width: Ancho del producto.
_height: Altura del producto.
_upsell_ids: IDs de productos recomendados (upsells).
_crosssell_ids: IDs de productos complementarios (cross-sells).
product_cat: Categorías del producto.
product_tag: Etiquetas del producto.
_thumbnail_id: ID de la imagen destacada del producto.
_product_image_gallery: IDs de la galería de imágenes del producto.
post_status: Estado del producto (publicado, borrador).
_visibility: Visibilidad del producto en el catálogo.
_product_attributes: Atributos personalizados del producto.
_downloadable_files: URLs de los archivos descargables del producto.
Aquí https://woocommerce.com/document/bundles/bundles-data-structures-storage/ puedes consultar información adicional de la estructura de campos de la tabla de productos en WooCommerce.
Si necesitas información específica no dudes en indicarlo.
Sobre WP All Import no puedo facilitarte más información de la que tú tengas, ya que se trata de un plugin comercial (de pago), al que desde este soporte no tenemos acceso.
Saludos
@alejo, muchas gracias por tu ayuda.
Al final he decidido no usar el plugin de WP All Import por su extrema complejidad de configuración; inclusive habría que hacer programación php para que reconozca campos tanto de woocommerce como de plugins de terceros.
Me gustaría saber, si conocéis otro plugin que me permita actualizar los 17.500 productos en una hora aproximadamente como hacía el importador que lleva el propio woocomerce, y no tener que dividirlos en unos 3000 registros para su actualización.
Hola antonio.
Puedes probar con una alternativa como puede ser Product Import Export for WooCommerce:
-> https://wordpress.org/plugins/product-import-export-for-woo/
Un Saludo
@pepesoler, gracias y buenos días
Lo he probado y me lo están revisando pues crea conflicto con wp-rocket
Por otro lado, parece que con la actualización de anoche el tema se ha solucionado, ahora va como anteriormente.
No obstante, cómo puedo averiguar los valores predeterminados para los distintos campos de woocomerce?
Hola Antonio, buenos días
cómo puedo averiguar los valores predeterminados para los distintos campos de woocomerce?
A que te refieres con campos ?
Adjunto tienes un archivo CSV de WooCommerce con todos los campos:
Sobre el tema de WPRocket, Cuando se actualiza el contenido de tu sitio, WP Rocket realiza una limpieza de caché. Por lo tanto, si importas una gran cantidad de datos que activan la actualización de publicaciones, productos, etc., la limpieza de caché se activará con frecuencia. Además, si has habilitado la precarga, esto también se activará. Esto puede generar lentitud y provocar que la importación tarde más tiempo.
Para solucionar puedes utilizar un filtro:
add_filter( 'rocket_is_importing', '__return_true' );
Este código lo puedes añadir en plugin Code Snippets y cada vez que tengas que realizar la importación lo activas, una vez que finalices la importación de productos, vuelve al listado de snippets y desactívalo para que WP Rocket vuelva a funcionar normalmente.
Un Saludo
@pepesoler, gracias por tu pronta respuesta
probaré el código y la importación o actualización de productos; ya comentaré
Por otro lado, a los valores me refiero:
- post_status (como ejemplo)
--> revisada la base de datos, observo que tenemos "publish, private, draft, pending,future"
Por lo que me pregunto en el resto de campos para actualizar productos woocommerce, sería mejor poner éstos valores que no "1,0,-1,-2, ..." en el csv cuando subimos?
Hola Antonio.
No, no tienes que hacer nada en la base de datos, simplemente utiliza el importador de WooCommerce con el archivo CSV y luego relacionar las tablas
La columna post_status es para indicarle si el producto es público, privado..... pero no hace falta esa columna, si estás actualizando los productos se puede omitir y si estas subiendo productos nuevos también lo puedes omitir, por defecto los productos seran publicos
Revisa esto:
-> https://www.webempresa.com/blog/importar-exportar-productos-woocommerce.html
La celda post_status en WordPress se utiliza tanto para paginas/entradas como para los productos y los valores son los siguiente:
publish: El contenido está publicado y visible para todos los usuarios.
Ejemplo: Entradas de blog, páginas, productos que ya han sido publicadas y están accesibles públicamente.
draft: El contenido está en estado borrador. Solo visible para administradores o editores, pero no está publicado.
Ejemplo: Un artículo que se está escribiendo y aún no está listo para ser publicado.
pending: El contenido está pendiente de revisión. Normalmente usado cuando los colaboradores crean un contenido que debe ser revisado por un editor o administrador antes de su publicación.
Ejemplo: Un colaborador envía un artículo para revisión por un editor.
future: El contenido está programado para publicarse en una fecha futura.
Ejemplo: Una entrada que está programada para publicarse automáticamente en una fecha y hora específica.
private: El contenido es privado y solo es accesible para usuarios con ciertos privilegios, como administradores o editores.
Ejemplo: Una página interna para un grupo específico de usuarios del sitio.
trash: El contenido ha sido movido a la papelera. El contenido sigue en la base de datos, pero no se muestra en el frontend.
Ejemplo: Una entrada o página que ha sido eliminada y se encuentra en la papelera.
auto-draft: WordPress guarda un borrador automático temporal cuando creas una nueva entrada o página, pero aún no la has guardado manualmente.
Ejemplo: Un estado intermedio cuando empiezas a escribir un nuevo contenido y WordPress guarda automáticamente.
inherit: Este estado es utilizado principalmente por los adjuntos (como imágenes, videos, archivos) para heredar el estado de la publicación principal.
Ejemplo: Un archivo adjunto que hereda el estado de la publicación a la que está relacionado.
archive: Se usa en algunos casos para publicaciones que se han archivado y ya no están activamente disponibles, aunque este estado no es utilizado en WordPress por defecto.
Son acciones que las haces editando el producto o en la columna Status que puedes omitir ya que por defecto asignará el estado "publish" al producto, lo que significa que será publicado y visible en la tienda automáticamente.
Un Saludo
@pepesoler, gracias por la pronta respuesta..., y decirte que el filtro
add_filter( 'rocket_is_importing', '__return_true' );
que me has indicado, val al pelo, funciona de maravilla.
Básicamente ya tenemos configurado el sistema para que una forma semi automática, ya nos dé los valores necesarios para actualizar precios, stocks, ofertas, ....; inclusive las notas u observaciones hacia el cliente desde el propio producto,
Cuando creamos nuevos, también tenemos ya preconfigurado el sistema, pero lo hacemos en 4 partes
1ª - Generamos el producto, como borrador (-1 + hidden) con la información principal (sin título), incluida la descripción.
2ª - Cuando ya tenemos subidas las imágenes de cada uno de ellos, agregamos el título, campos meta (yoast, fb, google, ...), forma de envío, ...
3ª - Productos o Ventas dirigidas y cruzadas
4ª - Atributos, éste es mas complejo debido a la gran cantidad de los mismos dependiendo de la categoría del producto (smartphone, notebook, macbook, tablet, ...) ya que nos indica desde la marca, pantallas, potencias hasta el color
Obviamente, cuando ya tenemos todo esto terminado, actualizamos precios indicándole ya que es visible (1 + visible)
Con todo ésto hacemos una importación diaria de unos 50 nuevos productos básicamente sin esfuerzo, y en pongamos 2 horas, todo arriba.
También, cuando el producto lo tenemos sin stock o sin actualizar precio mas de 30 días, lo ponemos como descatalogado (0 + hidden) y privado.
A los días, empezamos a eliminar dichos productos poniendo su slug dentro de redirección 410 para que el "santísimo sr. Google" no nos penalice.
Pero, debido al problema habido con la importación en woocommerce, he visto varios plugin para hacerla y por lo que he visto cambia totalmente el sistema, hay que darle otros parámetros y son los que están dentro de la base de datos de woocomerce; de ahí el comentario.
Si queréis, puedo subir ficheros de ejemplo de cómo hacemos el tema, teniendo en cuenta que son productos comparativos entre 10 proveedores o distribuidores de informática a nivel nacional y europeo, y todo depende de consultas ODBC a sus bases de datos.
Hola Antonio.
he visto varios plugin para hacerla y por lo que he visto cambia totalmente el sistema, hay que darle otros parámetros
Que plugin es el que vas a utilizar ? no creo que tenga nada que ver con las tablas de la base de datos.
Las tablas que utiliza WooCommerce son las siguiente:
Tablas Personalizadas de WooCommerce
wp_woocommerce_order_items
Propósito: Almacena los elementos individuales de cada pedido.
Ejemplo de datos: Nombres de los artículos (productos o servicios) en un pedido.
wp_woocommerce_order_itemmeta
Propósito: Guarda la información meta de cada artículo en wp_woocommerce_order_items.
Ejemplo de datos: Información como la cantidad del producto, el precio, y campos personalizados.
wp_woocommerce_sessions
Propósito: Almacena datos de sesión de los clientes, incluida la información del carrito.
Ejemplo de datos: Contenidos del carrito antes de que el cliente complete la compra.
wp_woocommerce_payment_tokens
Propósito: Gestiona los datos de los tokens de pago para los pedidos.
Ejemplo de datos: Métodos de pago tokenizados (como tokens de tarjetas de crédito).
wp_woocommerce_payment_tokenmeta
Propósito: Almacena los datos meta para cada token de pago.
Ejemplo de datos: Detalles del token, como el tipo de método de pago.
wp_woocommerce_shipping_zones
Propósito: Contiene información sobre las zonas de envío configuradas en WooCommerce.
Ejemplo de datos: Nombres y descripciones de las zonas.
wp_woocommerce_shipping_zone_locations
Propósito: Guarda las ubicaciones geográficas de cada zona de envío.
Ejemplo de datos: Códigos de país y estado.
wp_woocommerce_shipping_zone_methods
Propósito: Lista los métodos de envío disponibles para cada zona de envío.
Ejemplo de datos: Tipos de método, como tarifa plana o envío gratuito.
wp_woocommerce_tax_rates
Propósito: Almacena información sobre las tasas impositivas.
Ejemplo de datos: Porcentaje de impuestos y los países o estados asociados.
wp_woocommerce_tax_rate_locations
Propósito: Guarda los datos geográficos para las tasas impositivas.
Ejemplo de datos: Códigos de país o estado para aplicar la tasa correcta.
wp_woocommerce_downloadable_product_permissions
Propósito: Administra los permisos para productos descargables.
Ejemplo de datos: Direcciones de correo electrónico de los clientes y enlaces de descarga.
Tablas Estándar de WordPress Utilizadas por WooCommerce
wp_posts: Almacena los productos (como un tipo de entrada) y los pedidos (como otro tipo personalizado de entrada).
wp_postmeta: Guarda los datos de los productos, como precios y stock, así como los metadatos de los pedidos, como detalles de envío y facturación.
wp_users: Almacena la información de los clientes para los usuarios registrados.
wp_usermeta: Guarda información adicional del cliente, como direcciones.
WooCommerce ofrece una estructura de base de datos optimizada con tablas personalizadas para pedidos y productos, lo que incluye:
wp_wc_orders: Gestiona los detalles de los pedidos en una estructura más eficiente.
wp_wc_order_operational: Para administrar los datos operativos de los pedidos.
Tablas Estándar Utilizadas para Productos:
wp_posts
Propósito: Los productos se almacenan como un tipo de post personalizado (product).
Campos relevantes:
ID: El identificador único del producto.
post_title: El nombre del producto.
post_content: La descripción del producto.
post_status: El estado del producto (como publish o draft).
post_type: Tipo de post, que sería product para los productos.
wp_postmeta
Propósito: Guarda la información adicional o meta de los productos.
Campos relevantes:
meta_key: La clave del meta campo, como _price, _sku, _stock, etc.
meta_value: El valor correspondiente a la clave, como el precio del producto, SKU (código de producto), y stock.
Tablas Personalizadas de WooCommerce para Productos:
wp_wc_product_meta_lookup
Propósito: Optimiza las consultas de productos almacenando datos como el precio, la visibilidad y las calificaciones.
Campos relevantes:
product_id: El ID del producto.
sku: El SKU del producto.
stock_status: El estado del inventario.
price: El precio del producto.
rating_count: El número de calificaciones del producto.
wp_wc_product_download_rules
Propósito: Almacena reglas para productos descargables.
Campos relevantes:
product_id: El ID del producto.
download_id: El ID del archivo descargable.
access_granted: Si el acceso a la descarga ha sido concedido.
Otras Tablas Relacionadas:
wp_terms: Contiene términos usados para las categorías de productos, etiquetas y atributos.
Campos relevantes:
term_id: El ID del término (categoría, etiqueta, etc.).
name: El nombre del término (como el nombre de la categoría).
wp_term_taxonomy: Define el tipo de taxonomía, como product_cat para categorías de productos o product_tag para etiquetas de productos.
wp_term_relationships: Relaciona los productos con sus categorías, etiquetas o atributos.
Campos relevantes:
object_id: El ID del producto.
term_taxonomy_id: El ID de la taxonomía relacionada (como categoría o etiqueta).
Por ejemplo las relaciones para WP All Import:
ID: El identificador único del producto en WooCommerce (coincide con ID en la tabla wp_posts).
post_title: Nombre del producto (campo post_title en wp_posts).
post_content: Descripción completa del producto (campo post_content en wp_posts).
post_excerpt: Descripción corta o resumen del producto (campo post_excerpt en wp_posts).
_sku: SKU del producto (almacenado como _sku en wp_postmeta).
_regular_price: Precio regular del producto (_regular_price en wp_postmeta).
_sale_price: Precio en oferta, si aplica (meta key _sale_price).
_stock_status: Estado del inventario, por ejemplo, instock o outofstock (en wp_postmeta como _stock_status).
_stock: Cantidad disponible del producto (en _stock en wp_postmeta).
product_cat: Categoría del producto, relaciona con la taxonomía product_cat en WooCommerce.
product_tag: Etiquetas del producto (relacionado con la taxonomía product_tag).
Images: Imágenes del producto, donde se pueden incluir URLs o IDs de imágenes que se encuentran en la biblioteca de medios de WordPress.
_weight: Peso del producto (meta key _weight en wp_postmeta).
_length, _width, _height: Dimensiones del producto (longitud, ancho y altura).
_downloadable: Indica si el producto es descargable (yes o no).
_virtual: Indica si el producto es virtual (yes o no).
_tax_class: Clase de impuestos asignada al producto.
_featured: Si el producto es destacado.
Attributes (pa_color, pa_size, etc.): Atributos del producto, como color, talla, etc., que se mapean con las taxonomías de atributos (pa_color, pa_size).
Campos para Variaciones de Producto en WP All Import
parent_id: El ID del producto padre (para productos variables).
variation_sku: SKU para la variación.
variation_price: Precio de la variación.
Attributes (pa_color, pa_size, etc.): Atributos específicos que definen las variaciones (como color o tamaño), los cuales deben coincidir con los términos de las taxonomías de atributos.
Espero que esto te pueda ayudar 😉
Un saludo
Hola Antonio.
De nada! Me alegra que fuera lo que estabas buscando.
Si necesitas más información o ayuda con cualquier otro tema, no dudes en preguntarme. ¡Estoy aquí para ayudarte!
Un Saludo