WooCommerce 3.0 está aquí … y merece la pena

Cuando hay actualizaciones importantes siempre nos entra el sudor frío, y las dudas de si merecerá la pena, y con WooCommerce 3.0, conocida como la “mariposa biónica” (bionic butterfly) merece la pena, aunque como toda nueva versión tiene sus cosas.

Para empezar conozcamos las novedades de WooCommerce 3.0 ¿te parece?

Todas las novedades de WooCommerce 3.0

Como son muchas las mejoras vamos a verlas por partes, destacando las más relevantes…

Objetos y data-stores CRUD (Crea, Lee, Actualiza, Borra)

Las clases CRUD en WooCommerce 3.0 representan un cambio fundamental en cómo trabajar con objetos de datos en el núcleo del plugin, o sea, en productos, pedidos, cupones, clientes, etc.

Tradicionalmente en WordPress, al trabajar con, por ejemplo, entradas y datos de entradas, puedes fácilmente actualizar/obtener/crear cualquier metadato que quieras por cualquier método, directamente de la base de datos.

El nuevo sistema CRUD por el contrario introduce otra capa entre la base de datos y tu código, lo que añade estructura, validación y control.

Por ejemplo, imagina que tienes un producto y este producto tiene precio (raro ¿verdad?). Con el método antiguo si querías actualizar el precio de este producto …

  1. necesitas saber dónde está almacenado el precio (meta key)
  2. necesitas saber en qué formato están almacenados los datos (¿cadena? ¿2 decimales?)
  3. necesitas saber cómo actualizar esos datos (update_post_meta).

Con CRUD, en vez de tener una lista de propiedades de producto, uno de los cuales será el precio, puedes hacer una llamada ->set_regular_price() para definir los datos, seguido de ->save() para hacer que esos datos permanezcan en la base de datos. No importa dónde estén almacenados, y el formato lo gestionas tú mismo. Un ejemplo:

¿Beneficios?

  • Definimos los datos estructurados para cada recurso, y puedes revisarlos fácilmente.
  • Controlaos el flujo de los datos, y cualquier validación necesaria.
  • No necesitas saber las peculiaridades internas de los datos en los que estés trabajando.
  • Internamente los datos pueden moverse a cualquier parte, p.ej. a tablas personalizadas, sin que afecte al código existente.
  • Son reutilizables (API, CLI, WP Admin) y tienen más de una unidad de prueba.

Este cambio es especialmente importante, porque realmente abre el camino para mejorar el rendimiento en el futuro.

Nueva galería de imágenes de producto

Como ya hablamos el otro día, WooCommerce incorpora una nueva galería de producto que incluye las siguientes mejoras:

  • Ahora los visitantes tienen tanto el efecto de zoom (lightbox) como el de magnificación (como en Amazon)
  • El comportamiento de la galería es más intuitivo, pues al hacer clic en una miniatura se actualiza la imagen principal env ez de abrirse en zoom (lightbox)
  • Enormes mejoras para móviles, en concreto en los gestos de toques, pudiendo deslizar para navegar por la galería, pulsar para hacer zoom, deslizar para cerrar y más.
  • Al abrir el zoom en móviles ahora se muestra la imagen en su tamaño real, más grande que en la visualización de página.

Para evitar conflictos con los efectos zoom (lightbox) de los temas todos los temas tendrán que activar la nueva funcionalidad usando add_theme_support() como expliqué el otro día.

Nueva CLI y la Rest API v2

Las versiones 2.6.x tenían ya CLI, pero era una interfaz a medida y no compartía código con el resto del código base.

Era bastante inútil y difícil de mantener, por ello se ha adaptado totalmente a la REST API. A partir de la versión 3.0.x, WooCommerce incorpora una nueva CLI que se integra directamente con la REST API y tiene sus mismas funcionalidades.

Los nuevos comandos los tienes a continuación:

También se ha introducido una nueva versión de la API con diversas mejoras sobre la versión 1. Por resumir las novedades aquí tienes una lista:

  • Compatibilidad con metadatos en la mayoría de los endpoints.
  • Nuevo endpoint de variaciones para crear y actualizar variaciones. Además, ahora se impide la posibilidad (rota) de manipular directamente variaciones en los endpoints de los productos.
  • Ajustes de cada endpoint (actualizar/ver ajustes de la tienda).
  • Endpoints de zonas de envío.
  • Endpoints de métodos de pago y envío, ajustes incluidos.
  • Añadida compatibilidad con la identificación mediante oAuth1.0a usando cabeceras.
  • Cacheo y retirada de queries lentas.

Nuevo sistema de registros

El nuevo sistema de registros, que pueden usarlo las extensiones para registrar eventos, errores y avisos, soluciona las limitaciones del anterior sistema de registros. Incluye gestión de registros e implementa un método nuevo para su interfaz, mucho más ampliable.

El nuevo sistema de registros incluye 2 gestores: archivo y base de datos, y puede activarse así:

Mejoras de rendimiento

Las principales mejoras de rendimiento en WooCommerce 3.0 son las siguientes:

  • Se ha mejorado la sincronización de productos variables. Los metadatos de precio superior/inferior ya no se almacenan, solo los precios principales, si un precio hijo tiene peso o dimensiones.
  • En los archivos de plantilla se ha eliminado WP_Query de up-sells.php y de related.php, y se han reemplazado con el loop PHP foreach (puesto que ya tiene los IDs de producto). Esto implica una query mucho más corta en las páginas de producto y de carrito.
  • Se ha eliminado la característica de acceder a las nuevas descargas al editar un producto. Al mostrar miles de pedidos con este tipo de modificaciones se comprometía enormemente el rendimiento en algunas tiendas, y también podía provocar otro tipo de problemas. A partir de ahora al editar un archivo no se evitará que los compradores lo descarguen.
  • Se ha eliminado la columna de ‘ordenar productos’ de la página de pedidos. Aunque podía ser útil, cargar todos los productos de todos los pedidos en la página era una pesadilla para el rendimiento. Esto podría volver en un futuro pero tendrá que ser de un modo más dinámico, así que se dejará para un futuro rediseño.
  • En vez de enviar emails en una petición grande al hacer un pedido en el p ago, ahora se ha incluido un evento de CRON con retardo para enviar los emails. Este nuevo proceso envía los emails más tarde, con un pequeño retardo y en peticiones separadas, lo que acelera el proceso del pago en un 50%.

Además, como unificar la tabla de metadatos de publicación podría provocar una reducción de velocidad cuando hay un catálogo con muchos productos, se han realizado algunas optimizaciones para utilizar taxonomías en los filtros de la tienda.

  • La visibilidad del producto (que controla si los productos son visibles en el catálogo, búsqueda o ambos) anteriormente era un dato meta de la publicación y se usaba en las queries de producto de WooCommerce. A partir de la versión 3.0 se ha introducido una nueva taxonomía product_visibility. Las mejoras de rendimiento en algunas pruebas han llegado hasta el 94%.
  • Los productos destacados también usa la nueva taxonomía new product_visibility en vez de los datos meta, lo que también mejora el rendimiento en su queries.
  • Y lo mismo para los productos agotados. Si estás ocultando los productos agotados del catálogo notarás mejoras notables.

Más mejoras a destacar

Son muchos los cambios pero estos merece la pena citarlos también:

  • Ordenar tasas de impuestos antes era un proceso manual. A partir de WooCommerce 3.0.x las tasas de impuestos se ordenan automáticamente, colocando las reglas más específicas sobre las reglas generales (como tienen que ordenarse).
  • En la tienda se puede quitar el aviso global, evitando de este modo que sea un problema especialmente en dispositivos móviles.
  • En WordPress multisitio cuando un usuario se registra pero no tiene cuenta en la tienda WooCommerce añade los usuarios existentes a la tienda en vez de mostrar un error, como hacía en las versiones anteriores.
  • Anteriormente, los datos estructurados se generaban insertados en los archivos de plantilla. Desde la versión 3.0 se ha cambiado al formato JSON-LD, que mantiene intactos los archivos de plantilla y los datos si se han hecho personalizaciones en el tema.
  • Al autorizar pagos con PayPal Standard los fondos ahora se capturan automáticamente cuando el pedido cambia de procesando a completado, algo que antes era un proceso manual ¡Bien, un plugin menos!
  • Se han fusionado los tipos de cupón de porcentaje en el carro y porcentaje en el producto en uno solo y se han quitado los descuentos de product_cart. Los descuentos que ofrecían estos descuentos eran idénticos y, sin embargo, la validación basada en el carrito podía evitar que se aplicas el cupón si había algún producto no-elegible en el carrito, en vez de simplemente hacer el descuento en los productos elegibles por el cupón. Esto no era nada intuitivo, provocaba confusión tanto a los clientes como al gestor de la tienda y, lo más importante, provocaba que los clientes tuviesen que acceder al pago dos veces para usar estos cupones.
  • Los precios de productos variables que contengan productos en oferta ya no estarán tachados. Ahora mostrarán un rango tachado seguido de un rango no tachado, especialmente si los precios se solapaban, lo que era realmente confuso, mostrando un enorme rango de precios. Ahora solo se muestra un rango de precios. Los precios en oferta se seguirán mostrando al seleccionar una variación
  • Los productos agrupados ahora se eligen en el producto agrupado en vez de agrupar los productos simples al agrupado, y los productos hijos del agrupado pueden estar en más de una agrupación. O sea, si antes tenías que crear el producto agrupado y luego editar cada producto a agrupar para añadirle el agrupado, ahora simplemente al crear el producto agrupado – desde “Productos vinculados” – añades los productos de la agrupación, mucho más lógico y rápido.
  • Ahora las zonas de envío y métodos de envío se crean en un mismo proceso en vez de en dos procesos separados.

Como ves, las novedades de WooCommerce 3.0 merecen la pena y mucho, no solo introduciendo lógica en partes que no la tenían como los productos agrupados, o incorporando mejoras que vemos en las tiendas más populares como la magnificación, sino introduciendo mejoras de rendimiento cada vez más necesarias.

Ahora bien, ¿tiene algún problema? Pues como todas las nuevas versiones, no debes actualizar sin hacer antes pruebas de compatibilidad con otros plugins o tu tema, al menos en una tienda activa.

Hay temas como Divi que ya se han actualizado para adaptarse a WooCommerce 3.0 pero otros no lo han hecho y algunos tendrás que hacerlo tú mismo.

Y con respecto a los plugins, algunos ya se están actualizando pero otros son totalmente incompatibles de momento, como el mismo Bookings de la misma gente de WooCommerce,  y otros muchos de los que se está informando en los foros, así que templanza y relax. Crea una copia de tu tienda y prueba ahí antes de actualizar en la tienda activa.

Valora este artículo para mejorar la calidad del blog ...

PobreRegularEstá bienMuy buenoExcelente (7 votos, promedio: 5,00 de 5)
Cargando…

Autor: Fernando

Fernando Tellado, apasionado de WordPress, profesor, consultor y ponente. Maquero cansino, padre de tres hijos y de una perrita Beagle, Bilbaíno de nacimiento, Español de corazón y ciudadano de donde me quieran.Autor del libro WordPress - La tela de la araña. Mi blog personal es Navegando con red, donde he crecido como escritor en la red y ofrezco mis visiones acerca de la Web 2.0 y la blogosfera.

Comparte esta entrada en
468 ad

ESTA WEB UTILIZA COOKIES PARA OFRECER LA MEJOR EXPERIENCIA POSIBLE. SI SIGUES NAVEGANDO DAS TU CONSENTIMIENTO PARA LA ACEPTACIÓN DE COOKIES Y NUESTRA POLÍTICA DE PRIVACIDAD más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar