Ya hemos visto en entradas anteriores lo fácil y a la vez completa que puede llegar a ser la configuración de las zonas y los métodos de envío en WooCommerce desde que cambió en su versión 2.6. Sin embargo, aún no hemos visto otro aspecto que la hace muy flexible: las clases de envío en WooCommerce.
Las clases de envío te permiten una mayor libertad al configurar los gastos de envío, al permitirte establecer unos costes extra para determinados productos que, por sus características, sean más costosos de enviar. Vamos a ver cómo funcionan con un par de ejemplos, que es como mejor se entienden las cosas.
Tabla de contenidos
En qué consisten las clases de envío
Quizá en un primer momento el concepto te suene un poco raro. Tenemos por un lado las zonas de envío, y por otro los métodos de envío, y ambos bien relacionados a través del configurador de envíos de WooCommerce. Si quieres ver esta parte en profundidad, tienes un artículo y un vídeo en los que puedes ver de forma detallada como se configura todo esto:
Sin embargo, a priori, parece que con eso es suficiente, y el concepto de clases de envío como que sobra. De hecho mucha gente aún confunde clases de envío con métodos de envío. Y no.
Ejemplos de clases de envío en WooCommerce
Clases de envío hace referencia a algo más relacionado con el tipo de producto o, mejor dicho, con las necesidades un producto o tipo de producto concreto crea respecto a su envío. Como decía más arriba, lo más fácil para entender esto es poner un par de ejemplos.
Ejemplo uno
Esther vende aparatos deportivos en su tienda online con WooCommerce. La mayor parte de sus productos son cosas como mancuernas, cuerdas para saltar, ejercitadores de mano, ligas de resistencia y cosas así. Sin embargo decide incorporar a su catálogo una gama de cintas de correr.
Pero resulta que son unos aparatos bastante voluminosos, incluso empaquetados. Enviarlos le cuesta el triple que enviar cualquiera de los demás artículos que tiene en la tienda. ¿Debería Esther subir los gastos de envío para toda la tienda, o perder dinero con el envío de las cintas de correr?
Ejemplo dos
Luis vende productos gourmet en su comercio electrónico. La inmensa mayoría de sus productos son no perecederos: patés, latas, etcétera. Sin embargo también tiene una línea de productos frescos, digamos carnes exóticas.
Carne de avestruz, de canguro, de bisonte, de cebra, de antílope y de gamusino. Por supuesto, las carnes deben entregarse en menos de 24 horas y con envío refrigerado, lo cual supone unos gastos de envío que superan ampliamente el doble de los gastos habituales. ¿Cómo puede hacer Luis para que WooCommerce sepa que, cuando alguien compra una carne, debe cobrar unos gastos extra en el envío?
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Las clases de envío: cómo configurarlas y aplicarlas
Como ves, con un par de ejemplos seguro que ya tienes claro qué son las clases de envío y que, efectivamente, la combinación de zona de envío + método de envío deja fuera estos «casos especiales». Bien, ahora que sabemos cuál es la solución, aprendamos a aplicarla.
Crear las clases de envío
Ante todo hay que decir que para esto no es necesario instalar ningún plugin: WooCommerce ya incluye la capacidad de establecer estas clases de envío especiales en la instalación por defecto. Para ello tienes que ir a WooCommerce > Ajustes > Envío > Clases de envío.
La forma de crearlas es muy similar en su interfaz a la de las zonas de envío: basta con pulsar el botón Añadir clase de envío y ponerle un nombre y, si quieres, una descripción. El slug, si no tienes manías al respecto, lo creará WooCommerce automáticamente a partir del nombre.
A continuación tenemos que configurar qué incremento supone esta clase de envío respecto al envío ordinario, con lo que hay que editar los métodos de envío disponibles para todas aquellas zonas a las que realizaremos envíos de esta clase. Tienes que tener dos cosas en cuenta:
- La clase de envío incrementa el coste del envío, por lo que no se puede aplicar en los envíos gratuitos. No tendría sentido ya que, de aplicarse un sobrecoste, dejaría de ser envío gratuito.
- El precio de la clase de envío se añade al coste base del envío, así que lo que hay que configurar no es el total de lo que cuesta la clase de envío, sino el incremento que supone respecto del envío al que se está aplicando.
- Por clase: se cobra el envío de cada clase individualmente
- Por pedido: se cobra solamente el envío de la clase más cara, de forma que un pedido no pague más de una clase de envío
Al configurar el coste de la clase de envío puedes también elegir cómo se aplicará este coste, en caso de que el cliente adquiera más de un producto de la misma clase de envío, o incluso productos de diferentes clases de envío:
También puedes en esta pantalla configurar en qué condiciones la clase de envío no se aplicará, por si quieres establecer unas condiciones de compra a partir de las cuales no se aplique este extra, como un número mínimo de unidades, un pedido mínimo, etcétera.
Clases de envío sobre envío gratuito
Y si no se puede aplicar la clase de envío sobre un envío gratuito, ¿cómo hago para ofrecer envío gratis en todos los productos excepto en aquellos que tienen una clase de envío concreta?
Muy fácil. WooCommerce no puede manejar un envío gratuito con coste, pero sí un envío único con coste cero. Es decir, la solución pasaría por crear un método de envío de Precio único, con un coste de cero euros y aplicándole el sobrecoste necesario para la clase de envío. Por supuesto, el nombre del envío lo cambiaríamos a Envío gratuito o similar, pero eso no haría que dejara de ser un envío de precio único.
Aplicar clases de envío
Como ya imaginarás, eso no es suficiente. Hay que indicarle a WooCommerce a qué productos se aplican las clases de envío. Eso no lo haremos en la configuración de WooCommerce, sino en la ficha de producto.
Puedes hacerlo de dos formas: dentro de la propia ficha de producto, en Datos del producto > Envío > Clase de envío, o bien en la pantalla de edición rápida, en el desplegable Clase de envío.
Vídeo: las clases de envío en WooCommerce
Si crees que con un vídeo te quedará más claro, tus deseos son órdenes: 😉
Melissa dice
Excelente Enrique! muchas gracias me ha ayudado mucho.
Enrique J. Ros dice
Gracias a ti por tu comentario, Melissa. Me alegra que te haya sido útil 🙂
JUAN dice
y se puede añadir una «clase de envío» dentro del envío gratuito?? Por defecto no se puede,
En mi tienda cualquier producto que pasa de 100€ el envío es gratuito. Pero si pesa mucho quiero que cueste 3€ en envío.
Lo ideal es que en el metodo de envío «envío gratuito» se pudiera añadir «Costes de la clase de envío» como en ocurre en » Precio fijo »
Quizás algún plugin o añadir código al function.php del theme??
Enrique J. Ros dice
Hola Juan
Echa un vistazo a WooCommerce Table Rate Shipping, es posible que te sirva para lo que necesitas.
Un saludo
Luis dice
Buenas Enrique:
Muy interesante todo el trabajo que vienes desarrollando aquí. Quisiera aprovechar la temática del post para plantearte una duda, a ver si te ha ocurrido también a ti.
Estoy configurando una tienda de woocommerce que vende productos voluminosos y/o pesados, lo que influye en unos costes de envío de hasta 39€ para España. Y me ocurre un problema, puedo poner dos artículos diferentes con la misma clase de envío, por ejemplo un mueble de salón y una mesa de comedor (me suma 39+39, que es el envío máximo), pero si en lugar de dos productos diferentes con la misma categoría (como el caso previo), me piden dos veces el mismo producto (por ejemplo dos mesas iguales) sólo me computa 39€ en lugar de sumar el envío de las dos mesas.
Conoces alguna solución para este problema?
Muchas gracias
Enrique J. Ros dice
Hola Luis
Sí, es como funciona WooCommerce por defecto. Soluciones hay de dos tipos: o estableces una clase de envío diferente para cada producto (si son muchos eso no es factible en la práctica) o recurres a algún plugin externo.
Un saludo.
Nacho dice
Hola
Me sucede también este problema
Qué plugin recomiendas para esto?
Enrique J. Ros dice
Hola Nacho
Si no me equivoco es posible hacerlo con este plugin, aunque no lo he probado. Te recomendaría antes consultarlo al autor.
Un saludo
rosa ester dice
Hola he visto el psot y la respuesta, he creado las clases de envío y en un producto grande se la he ingresado pero de igual forma me siguen apareciendo las clases por defecto de la zona del país.
XAVIER dice
Luis, bueno y también a todos.
En el importe hay que poner multiplicado por la cantidad por ejemplo: (8,18 * [qty] )
sinó te pasa esto que comentas que si es del mismo articulo lo toma como precio unico.
Pedro dice
Muy buen artículo, te felicito. He estado dando muchas vueltas buscando información sobre este tema y aquí he encontrado la solución. Muchas gracias por el trabajo.
Enrique dice
Muchas gracias a ti por tu comentario, Pedro, me alegra que te haya sido de utilidad 🙂
Un saludo
JESUS dice
Enrique como se elimina los gastos de envio fijo , cuando el pedido supera el limite para alcanzar los gastos de envios gratuitos , aparecen los dos tipos de envio y solo quiero que salgan el envio gratuito cuando se supere el limite para que no se cobren gastos de envio . sin tener que recurrir a pagar un pluggin .Saludos y muchas gracias por los post
Enrique dice
Hola Jesús
WooCommerce no hace eso, por defecto muestra todos los tipos de envío disponibles. Si lo que quieres es que cuando el envío gratuito esté disponible los demás no aparezcan tienes que utilizar este plugin.
Un saludo.
beesop dice
Hola, es una guía muy útil, gracias!! pero en mi caso no acabo de configurar correctamente, a ver si me puedes ayudar.
Yo lo que quiero en realidad es más bien lo contrario. Tengo productos grandes y pesados, el 90% de ellos. El envío es «Express 24h» y cuesta 15€. Pero si compran un accesorio (como un pendrive) se le aplica la misma tarifa, lo que implica que el envío cuesta más que el producto y resulta poco coherente. Lo que necesito es que estos artículos pequeños se puedan adquirir sueltos aplicando un envío postal de 1€ que tarda 2-4 días.
Ahora bien, Si añado un Método de envío nuevo llamado «sobre postal 2-4 días» y le aplico la clase que he creado y pongo «-14€», entonces se aplica pero el woocommerce hace cosas raras, como por ejemplo permitir que cuando compras un producto grande te aplique el envío de 1€ o viceversa.
¿Cómo debería de configurar esto? creo que el hecho de tener configurarlo con el incremento en negativo es lo que confunde al carrito porque independiente de lo que configure en «Tipo de cálculo» el resultado no es efectivo para todos los casos (o aplica envío barato cuando ha de ser caro o viceversa).
Muchas gracias de antemano
Enrique dice
Hola Beesop
Puedes usar este plugin. Tendrías que:
De esta forma si alguien compra productos pequeños sólo le aparecerá disponible el método de envío asignado a estos productos. Si compra productos grandes o grandes y pequeños en el mismo pedido, sólo tendrá disponible el método de envío habitual para los productos grandes.
Un saludo.
beesop dice
Genial Enrique! funciona muy bien, gracias por la ayuda, muy buen plugin 😉
Enrique Ros dice
Gracias a ti, me alegra que te haya sido útil 🙂
Un saludo
eva dice
Hola Enrique, muchas gracias por tu artículo, queda todo muy claro y fácil de realizar.
En mi caso tengo un problema y es que no me permite en «zona de envío» añadir la clase de envío que he creado para ciertos productos que tienen un coste de envío distinto. Tengo que crear un coste de envío distinto, pero claro en el carrito cuando gestiona la zona de envío se me colocan las dos opciones, una según peso y la otra como precio fijo. No sé cómo puedo hacer para que sólo se me incluya como lo tengo generalmente. Entiendo que es por la versión woocommerce que tengo?
Muchas gracias
un saludo,
Enrique J. Ros dice
Hola Eva
Es que en las zonas de envío sólo se pueden añadir métodos. Las clases de envío añaden un extra a ciertos productos en los métodos en que se configuren.
Un saludo.
ivan pozo dice
Hola enrique, ¿ como podría poner varias clases de envío en un solo producto?
por ejemplo hacer dos clases de envío, una por caja y otro por palet
en función a la cantidad, por ejemplo un palet con 20 cajas o envío de 1 o 2 cajas
Peter dice
Hola,
He creado una clase de envio con la siguiente formula 9 * [qty] pero quiero añadirle que si llega cierto importe, por ejemplo 90€ el costs de evio sea 0. Me interesa hacerlo en la misma formula, se puede hacer esto?
joseph dice
Buen video pero no es lo que busco, las clases de envío no me funcionan, les explico tengo un producto con 80 variaciones, se dividen en tamaño, cuando un cliente en el producto elige X medida el envio deberia costar un precio, y si el cliente elige otra medida el envio deberia costar otro precio distinto, en la clase de envio solo puedo asociar una sola clase…