Envío de WooCommerce por peso: fragmento de código + complementos
Publicado: 2022-09-15WooCommerce es bastante flexible cuando se trata de configurar zonas y clases de envío. También le permite configurar una tarifa plana, envío gratuito y recogida local como tipos de tarifa de envío.
Algunas tiendas cobran una tarifa fija por el envío, algunas varían sus costos de entrega según la ubicación del cliente. Sin embargo, para productos que varían considerablemente en tamaño y peso, no puede tener una tarifa fija única para el envío.
Es posible que desee optar por una solución o agregar algún código a las zonas de envío para configurar el envío de WooCommerce por peso y otras reglas de envío avanzadas.
Porque no hay ninguna disposición con WooCommerce predeterminado para configurar el envío basado en el peso.
En este artículo, revelaremos el código que puede usar para configurar el envío basado en el peso y también algunos complementos de envío de WooCommerce para reglas avanzadas.
¿Qué es el envío de WooCommerce por peso?
El envío basado en el peso le permite establecer tarifas según el peso de un producto. Los clientes que compran artículos pesados pagarán más por el envío que aquellos que compran productos más pequeños.
Además, los clientes que compren artículos a granel también esperarán un cargo nominal por el envío. Tampoco es aconsejable cobrar el envío por cantidad de producto o por diferentes productos en un pedido.
Con el envío basado en el peso, puede cobrar un precio justo por pedidos grandes y pequeños por igual. Además, puede evitar cobrar de menos o de más a sus clientes con los costos de envío.
¿Cómo configurar el envío de WooCommerce por peso sin un complemento?
Antes de saltar al código, asegúrese de que se cumplan estos requisitos.
- Sus productos deben tener un peso. Todos sus productos simples y/o variaciones individuales deben tener un
weight > 0
. En WooCommerce > Configuración > Productos, asegúrese de seleccionar la 'Unidad de peso' correcta (el valor predeterminado es kg). - La primera zona de envío se aplica en caso de que tengas varias zonas de envío. Considere que tiene dos zonas de envío, una para Australia y otra para Oceanía. Se aplicará la zona de envío para Oceanía ya que está en la primera posición. Para solicitar una zona de envío para Australia, debe mantener presionado el ícono de la hamburguesa y arrastrarlo sobre Oceanía.
Configuración de envío por peso
En nuestro ejemplo, vamos a tener tres niveles de envío basados en el peso:
- $10 para pedidos de menos de 3 kg
- $15 para pedidos de menos de 5 kg (pero más de 3 kg)
- $20 para pedidos superiores a 5 kg
Puede establecer niveles ilimitados y tarifas planas ilimitadas para cada zona de envío. Todo depende de ti.
Además, puede cambiar el nombre de cada tarifa plana a algo así como 'Pedidos de menos de 3 kg', 'Pedidos de más de 5 kg', etc. para que la etiqueta de pago sea más fácil de usar.
Configure métodos de envío para los tres como estos:
- Tarifa plana n.° 1 > cambie el nombre a 'Pedidos de menos de 3 kg' y asigne un costo = $10
- Tarifa plana n.° 2 > cambie el nombre a 'Pedidos de menos de 5 kg' y asigne un costo = $15
- Tarifa plana n.° 3 > cambie el nombre a 'Pedidos superiores a 5 kg' y asigne un costo = $20
Si necesita ayuda, consulte este blog sobre cómo configurar tarifas y zonas de envío.
Código de envío por peso
Ahora, en función del peso del carrito, se debe utilizar una tarifa plana en lugar de otra. Esta es la única manera de mostrar la tarifa plana correcta al usuario final.
Antes de continuar, toma nota del ID único de las tres tarifas planas . Deberían tener un aspecto similar a ' tarifa_plana:9 '.
En nuestro ejemplo, estos son los siguientes ID de tasa:
- Tarifa Plana #1 > tarifa_plana:6
- Tarifa Plana #2 > tarifa_plana:7
- Tarifa Plana #3 > tarifa_plana:8
Tendremos que desactivar las tarifas en función del peso total, por lo que, en total, necesitaremos tres condiciones: cuando el peso sea inferior a 3 kg, inferior a 5 kg y superior a 5 kg. Aquí está el fragmento de código:
add_filter('woocommerce_package_rates', 'storeapps_woocommerce_tiered_shipping', 9999, 2); función storeapps_woocommerce_tiered_shipping( $tarifas, $paquete) { if ( WC()->carrito->get_cart_contents_weight() < 3 ) { if ( isset( $tarifas['tarifa_plana:7'] ) && isset( $tarifas['tarifa_plana:8'] ) ) unset( $tarifas['tarifa_plana:7'], $tarifas['tarifa_plana:8'] ) ; } elseif ( WC()->carrito->get_cart_contents_weight() < 5 ) { if ( isset( $tarifas['tarifa_plana:6'] ) && isset( $tarifas['tarifa_plana:8'] ) ) unset( $tarifas['tarifa_plana:6'], $tarifas['tarifa_plana:8'] ) ; } más { if ( isset( $tarifas['tarifa_plana:6'] ) && isset( $tarifas['tarifa_plana:7'] ) ) unset( $tarifas['tarifa_plana:6'], $tarifas['tarifa_plana:7'] ) ; } devolver $tasas; }
Consulte este documento sobre cómo agregar fragmentos de código de manera segura.
Envío de WooCommerce por peso con recogida local
En lugar de un método de envío de tarifa plana, es posible que desee agregar la recolección local, por ejemplo. Luego, puede reemplazar el código anterior con esto:
add_filter('woocommerce_package_rates', 'storeapps_woocommerce_tiered_shipping', 9999, 2); función storeapps_woocommerce_tiered_shipping( $tarifas, $paquete) { if ( WC()->carrito->get_cart_contents_weight() < 3 ) { if ( ( isset( $tarifas['tarifa_plana:7'] ) && 'recogida_local' !== $tarifas['tarifa_plana:7']->get_method_id() ) && (isset( $tarifas['tarifa_plana:8'] ) && 'recogida_local' !== $tarifas['tarifa_plana:8']->get_method_id() ) ) { unset( $tarifas['tarifa_plana:7'], $tarifas['tarifa_plana:8'] ); } } elseif ( WC()->carrito->get_cart_contents_weight() < 5 ) { if ( ( isset( $tarifas['tarifa_plana:6'] ) && 'recogida_local' !== $tarifas['tarifa_plana:6']->get_method_id() ) && (isset( $tarifas['tarifa_plana:8'] ) && 'recogida_local' !== $tarifas['tarifa_plana:8']->get_method_id() ) ) { unset( $tarifas['tarifa_plana:6'], $tarifas['tarifa_plana:8'] ); } } más { if ( ( isset( $tarifas['tarifa_plana:6'] ) && 'recogida_local' !== $tarifas['tarifa_plana:6']->get_method_id() ) && (isset( $tarifas['tarifa_plana:7'] ) && 'recogida_local' !== $tarifas['tarifa_plana:7']->get_method_id() ) ) { unset( $tarifas['tarifa_plana:6'], $tarifas['tarifa_plana:7'] ); } devolver $tasas; }
Complementos de envío basados en el peso de WooCommerce
Si no quiere quedarse atascado con el código, hay algunos poderosos complementos de envío por peso de WooCommerce.
Estos complementos le permiten crear diferentes tarifas y condiciones de envío para sus clientes según el peso del producto. Veamos algunos de ellos:
Envío basado en el peso de WooCommerce
Este es un complemento de envío gratuito en el repositorio de WordPress. Le permite agregar múltiples reglas basadas en varias condiciones.
Puede crear tantas reglas de envío como necesite para diferentes destinos de pedidos, rangos de peso y subtotales y configurar un umbral de envío gratuito.
También puede establecer los costos de envío por clase de envío específica individualmente.
La versión pro de este complemento cuesta $19 .
Obtenga el envío basado en el peso de WooCommerce
Tabla Tarifa Envío
Este complemento le brinda opciones de envío altamente personalizables.
Puede definir varias tarifas de envío según el peso, el precio, la ubicación o el recuento de artículos.
También puede agregar reglas basadas en el peso y agregar costos por unidad de peso. La interfaz intuitiva del complemento facilita a los usuarios la gestión de sus estrategias de envío.
Puede comprar este complemento por $ 99 en el mercado de WooCommerce.
Obtener tarifa de tabla de envío
Envíos y pagos condicionales
Otra extensión de envío en WooCommerce que le permite restringir las opciones de envío, las opciones de pago y los destinos de envío disponibles para sus clientes.
Puede restringir los métodos de envío y las tarifas en vivo según el peso del paquete, el número de artículos o el total del carrito.
También puede ofrecer envío gratuito con renovaciones de suscripción utilizando el complemento.
Este plugin es bastante popular y puedes comprarlo por $79 .
Obtenga envíos y pagos condicionales
Envío de caja de tarifa plana
Este plugin te permite definir costos por cajas a diferentes destinos. Puede empaquetar artículos en cajas según el tamaño y el volumen del artículo, y luego esa caja utiliza los costos fijos que defina por destino.
Puede agregar varios tamaños de caja por zona de envío, agregar costos por caja y por unidad de peso y también puede definir un costo para los artículos que no caben en la caja.
Este complemento está disponible para comprar en el mercado de WooCommerce por $ 49 .
Obtener envío de caja de tarifa plana
Gestión de pedidos y productos desde un solo lugar en función de los campos de envío
El complemento Smart Manager le permite administrar cientos y miles de pedidos desde un solo lugar utilizando un editor de hojas similar a Excel.
Puede ver y administrar todos sus pedidos junto con sus detalles de envío, como el método de envío, el estado de envío, el país de envío, el impuesto de envío del pedido y otros detalles.
Cuando desee localizar algunos pedidos basados en un método de envío como 'Tarifa plana' entre miles de pedidos, utilice la opción de Búsqueda avanzada. Smart Manager obtendrá rápidamente los resultados exactos para usted.
También puede agregar nuevos pedidos y pedidos personalizados directamente al editor de hojas, establecer el estado del pedido y también establecer el método de envío.
Otro beneficio adicional es exportar pedidos según los métodos de envío y otros detalles.
Ahora, además de los pedidos, Smart Manager también le permite filtrar productos por peso, agregar peso a productos a granel, establecer y editar precios a granel para ellos también.
También puede aplicar un filtro que enumere todos sus productos que pesen más de X kg, luego actualice el campo de producto de precio regular/precio de venta y todos los cambios se aplicarán instantáneamente.
Además, con Smart Manager, puedes:
- Administre y edite en masa cualquier tipo de publicación : cupones, suscripciones, reservas, usuarios, complementos de productos, dropshipping, publicaciones de blog, páginas, etc.
- Elimine registros de forma permanente o muévalos a la papelera: productos de prueba, pedidos de prueba, cupones de prueba...
- Duplicar los registros seleccionados o todos para un tipo de publicación específico
- Exporte a CSV todos los registros o en función de los filtros para cualquier tipo de publicación
- Configure vistas personalizadas (conjuntos de columnas), proporcione paneles de acceso restringido...
Pruebe la demostración en vivo
Conclusión
Configurar el envío basado en el peso de WooCommerce es simple con algunos ajustes de codificación.
Y una forma más sencilla es obtener un complemento de la lista anterior para ahorrar tiempo y molestias. Todos ellos son populares y valen su dinero.
Espero que encuentres útil esta publicación. Cualquier pregunta o sugerencia, escriba una línea a continuación.