Categories
Optimización del rendimiento de CMS

Almacenamiento de pedidos de alto rendimiento (HPOS) de WooCommerce: Una solución optimizada para el comercio electrónico

October 09, 2023

El Almacenamiento de Pedidos de Alto Rendimiento (HPOS) de WooCommerce, conocido anteriormente como “Tablas de Pedidos Personalizadas”, es una innovadora solución diseñada específicamente para satisfacer las necesidades del comercio electrónico. Empleando el diseño CRUD de WooCommerce, organiza los datos de pedidos en tablas personalizadas, lo que se traduce en consultas más eficientes y un impacto mínimo en el rendimiento de la tienda.

En enero de 2022, presentamos el plan inicial para la característica de Tablas de Pedidos Personalizadas. Desde entonces, hemos trabajado incansablemente para incorporar el Almacenamiento de Pedidos de Alto Rendimiento (HPOS) al núcleo de WooCommerce. En mayo de 2022, te invitamos a probar el proceso de migración de pedidos y a brindarnos tu opinión sobre el rendimiento de nuestro trabajo en tiendas reales con diversas configuraciones.

A partir de la versión 8.2 de WooCommerce, lanzada en octubre de 2023, el Almacenamiento de Pedidos de Alto Rendimiento (HPOS) se encuentra oficialmente bajo la bandera de estabilidad y se habilitará por defecto en nuevas instalaciones.

Novedades con el Almacenamiento de Pedidos de Alto Rendimiento

La implementación del HPOS en WooCommerce mejora tres propiedades esenciales para las tiendas de comercio electrónico.

Escalabilidad

El aumento en el número de clientes y pedidos conlleva una mayor carga en la base de datos de la tienda, lo que puede dificultar la gestión de las solicitudes de pedidos y brindar una experiencia de usuario fluida.

Con el Almacenamiento de Pedidos de Alto Rendimiento, se disponen de tablas dedicadas para datos como pedidos y direcciones de pedido, lo que se traduce en menos operaciones de lectura/escritura y menos tablas ocupadas. Esta característica permite a las tiendas de comercio electrónico, independientemente de su tamaño, escalar su negocio al máximo potencial sin necesidad de intervención experta.

Fiabilidad

El HPOS facilita la implementación y restauración de copias de seguridad de datos específicos. Ya no tendrás que preocuparte por la pérdida de pedidos, números de inventario o información de clientes, gracias a la confiable copia de seguridad en estas tablas de pedidos personalizadas. Además, se facilita la implementación de bloqueos de lectura/escritura y se previenen condiciones de carrera.

Simplicidad

Ya no será necesario navegar por una única y extensa base de datos para localizar datos subyacentes y entradas de WooCommerce.

Con el Almacenamiento de Pedidos de Alto Rendimiento, podrás explorar fácilmente las tablas independientes y las entradas fáciles de manejar, sin depender de la tabla _posts, para encontrar datos o comprender la estructura de la tabla. También te permitirá desarrollar nuevos complementos, implementar diseños para tiendas y productos, y modificar WooCommerce con mayor flexibilidad.

Antecedentes

Antes del lanzamiento de la versión 8.2, WooCommerce se apoyaba en las estructuras de tablas _post y _postmeta para almacenar información de pedidos, lo cual funcionó adecuadamente a lo largo de los años.

Sin embargo, el Almacenamiento de Pedidos de Alto Rendimiento introduce tablas dedicadas para datos como pedidos y direcciones de pedido, junto con índices específicos, lo que se traduce en menos operaciones de lectura/escritura y menos tablas ocupadas. Esta característica permite a las tiendas de comercio electrónico de cualquier tamaño escalar su negocio al máximo potencial sin necesidad de intervención experta.

Cómo Habilitar el Almacenamiento de Pedidos de Alto Rendimiento

A partir de WooCommerce 8.2, lanzado en octubre de 2023, HPOS está habilitado por defecto para nuevas instalaciones. Las tiendas existentes pueden cambiar a “Almacenamiento de Pedidos de Alto Rendimiento” desde “Almacenamiento de Publicaciones de WordPress” siguiendo los siguientes pasos:

  1. Activar el modo de compatibilidad (sincroniza pedidos con la tabla de publicaciones).
    • Navega a WooCommerce > Configuración > Avanzado > Funciones
    • Activa la opción “Activar modo de compatibilidad (sincroniza pedidos con la tabla de publicaciones)”.
  2. Una vez activada esta configuración, se programarán acciones en segundo plano.
    • La acción wc_schedule_pending_batch_process verifica si hay pedidos que deben ser retroalimentados.
    • Si los hay, programa otra acción wc_run_batch_process que efectivamente retroalimenta los pedidos al almacenamiento de publicaciones.
  3. La acción retroalimentará 25 pedidos a la vez, si hay más pedidos por sincronizar, se programarán más acciones tan pronto como se completen las acciones anteriores.
  4. Después de que ambas tablas se sincronicen con éxito, podrás seleccionar la opción para cambiar a Almacenamiento de Pedidos de Alto Rendimiento (HPOS).

Se recomienda mantener el modo de compatibilidad durante algún tiempo para garantizar una transición sin problemas. En caso de problemas, revertir a la tabla de publicaciones se puede hacer al instante.

Proceso por Línea de Comandos (CLI):

wp wc cot sync

Nota: Desactivar y volver a activar el modo de compatibilidad también programará el proceso de retroalimentación si es necesario.

Almacenamiento de Datos de Pedidos

Puedes alternar libremente entre los almacenes de datos para sincronizar la información entre las tablas.

  • Si seleccionas “Tablas de Publicaciones de WordPress”, el sistema guardará los datos de pedidos en las tablas _post y _postmeta. Las tablas de pedidos no se utilizan en este escenario.
  • Si seleccionas “Almacenamiento de Pedidos de Alto Rendimiento”, el sistema guardará los datos de pedidos en las nuevas tablas de pedidos de WooCommerce.
  • Si seleccionas “Tablas de Publicaciones de WordPress” y “Activar modo de compatibilidad”, el sistema sincronizará los datos de pedidos entre las tablas de publicaciones/postmeta y las tablas de pedidos de WooCommerce.

Sincronización

Cuando se habilitan el “Almacenamiento de Pedidos de Alto Rendimiento” y el “Modo de Compatibilidad”, WooCommerce poblara las tablas HPOS con datos de las tablas de publicaciones y postmeta. La sincronización entre las tablas se explica detalladamente en este documento.

Plugins Incompatibles

Si estás utilizando un plugin que no es compatible con el Almacenamiento de Pedidos de Alto Rendimiento, la opción HPOS se deshabilitará en WooCommerce > Configuración > Avanzado > Funciones.

Puedes hacer clic en “Ver y Gestionar” para revisar la lista de plugins incompatibles, o visitar https://tudominio.com/wp-admin/plugins.php?plugin_status=incompatible_with_feature&feature_id=custom_order_tables para consultar la lista (por favor, sustituye “tudominio.com” por tu dominio).

Desactivar HPOS

Si encuentras problemas o necesitas seguir utilizando plugins que aún no son compatibles con HPOS, te recomendamos cambiar temporalmente al almacenamiento de publicaciones de WordPress.

Para hacerlo, dirígete a WooCommerce > Configuración > Avanzado > Funciones y asegúrate de que el modo de compatibilidad esté habilitado. Si no lo estaba, es posible que necesites esperar un tiempo mientras los datos de pedidos se sincronizan entre almacenes de datos.

Una vez completada la sincronización, puedes seleccionar el almacenamiento de publicaciones de WordPress (antiguo) como tu opción preferida. También puedes desactivar el modo de compatibilidad en este punto. Cuando estés listo para volver a habilitar HPOS, simplemente sigue las instrucciones al inicio de este documento. ¡No olvides guardar los cambios!

Como se mencionó anteriormente, te recomendamos encarecidamente que te pongas en contacto con los equipos de soporte de cualquier plugin que sea incompatible, para que puedan tomar las medidas correctivas.

Actualización para Desarrolladores

Si tú o tu equipo necesitan actualizar el código personalizado de tu tienda, extensión o cualquier elemento relacionado con HPOS, consulta nuestro Libro de Recetas de Actualización para encontrar todos los detalles técnicos.

Preguntas Frecuentes

  1. ¿Tengo una tienda existente pero no quiero habilitar HPOS. ¿Es obligatorio?No hay problema. Aunque alentamos a todos a cambiar a HPOS para disfrutar de los beneficios de un proceso de compra más rápido para tus clientes, entendemos que no todos querrán probarlo de inmediato. La función es completamente opcional y podrás cambiar en cualquier momento.
  2. Mi extensión favorita no es compatible con HPOS, ¿qué debo hacer? Hemos estado comunicando activamente sobre el próximo cambio a HPOS con nuestra comunidad de desarrolladores. Tenemos varias publicaciones de blog, guías sobre cómo actualizar extensiones en GitHub y documentación completa. A pesar de nuestros mejores esfuerzos para alentar a los desarrolladores de extensiones a realizar el cambio, algunos podrían no adaptarse a HPOS. Si una de tus extensiones no es compatible, te recomendamos encarecidamente que te pongas en contacto con el equipo de soporte del desarrollador y les pidas que realicen la actualización. Podrás seguir utilizando la extensión sin HPOS si ya la tienes instalada.
  3. ¿Las pequeñas empresas pueden usar HPOS o está destinado solo para empresas más grandes? Empresas de todos los tamaños se beneficiarán del Almacenamiento de Pedidos de Alto Rendimiento.
  4. Tengo una tienda con alto volumen de ventas en WooCommerce. ¿Cómo afecta esto a mi tienda? Las tiendas existentes no se migrarán automáticamente a HPOS. La función es completamente opcional. Puedes habilitar HPOS siguiendo los pasos mencionados anteriormente.
  5. ¿Existen requisitos o limitaciones de alojamiento específicos para usar HPOS en WooCommerce? No hay restricciones de alojamiento. Cualquier alojamiento capaz de ejecutar WordPress y WooCommerce no debería tener problemas para ejecutar HPOS, e incluso podría mejorar el rendimiento de varias maneras una vez habilitado. Puedes visitar este enlace para obtener detalles sobre los requisitos del servidor necesarios para WooCommerce.

Para obtener información técnica adicional, echa un vistazo a nuestras preguntas frecuentes en el blog de desarrolladores de Woocommerce.

¡Esperamos que esta nueva característica impulse tu tienda de comercio electrónico hacia un rendimiento excepcional!


Tags:
GM Coders
Blog sobre el desarrollo de sitios web rápidos y optimizados