Oferta 2 x 1 en woocomerce
-
Hola, en mi sitio queremos poner ofertas del tipo compré dos productos de cierto tipo y llevalos por el precio de 1, me explico de otra manera si compro 2 productos el precio individual se reduce a la mitad si y sólo si son la misma referencia, me preguntó si esto se puede programar o hay algún plu gin gratuito que pueda hacerlo, de antemano gracias por su ayuda.
-
Hola @lordmahc
Bienvenido al foro de soporte, si buscas en el repositorio plugins calificados como BOGO (Buy One – Get One) encontrarás unos cuantos, por ejemplo:
Puedes comentarnos cuál te parece mejor, así tu consulta será útil a otros usuarios con el mismo problema. Recuerda cerrar el debate marcándolo como resuelto cuando lo tengas aclarado.
Hola Jose Luis, gracias por responder, ya he revisado ambos plugins, pero para lo que busco que es ofrecer un 2 x1 en mi tienda me piden caracteristicas premium, me pregunto si hya una opción por programación o plugin que me permita hacerlo de forma simple. gracias.
Hola @lordmahc
Quizá pueda servirte este plugin:
Buy one Get one Free – Other similar BOGO WooCommerce discount rule maker
Saludos.
gracias Javier Esteban, sucede lo mismo con este plugin, aplica la regla de bogo a toda la tienda y solo quiero aplicarla en 2 de 5 productos, esta opción pide premium, sin embargo muy buen plugin y gracias por la ayuda, seguiré buscando opciones.
Este snippet lo tenía guardado desde hace tiempo y no recuerdo de dónde lo saqué.
Concretamente es para ofertas 3×2.
Como digo, lo tengo hace mucho tiempo y no sé si seguirá funcionando correctamente.// SNIPPET DE OFERTA 3x2 EN UN PRODUCTO DETERMINADO add_filter( 'woocommerce_cart_item_subtotal', 'aplicar_oferta_3x2', 10, 3 ); function aplicar_oferta_3x2( $subtotal, $cart_item, $cart_item_key ){ $ofertaFinal = $subtotal; $cantidad = $cart_item[ 'quantity' ]; if ( ( $cart_item[ 'product_id' ] === TU-ID-DE-PRODUCTO ) && ( $cantidad >= 3 ) ) { $precioProducto = $cart_item[ 'data' ]->get_price(); $precioProductoImpuestoIncl = $cart_item[ 'data' ]->get_price_including_tax(); $descuento = floor( $cantidad / 3 ) * $precioProducto; $descuentoImpuestoIncl = floor( $cantidad / 3 ) * $precioProductoImpuestoIncl; // CÁLCULO DE LA OFERTA CON LOS AJUSTES DE IMPUESTOS ACTIVOS if ( WC()->cart->tax_display_cart == 'excl' ) { $oferta = $cart_item[ 'data' ]->get_price_excluding_tax( $cantidad ) - $descuento; $ofertaFinal = wc_price( $oferta ); if ( WC()->cart->prices_include_tax && WC()->cart->tax_total > 0 ) { $ofertaFinal .= ' <small class="tax_label">' . WC()->countries->ex_tax_or_vat() . '</small>'; } } else { $oferta = $cart_item[ 'data' ]->get_price_including_tax( $cantidad ) - $descuentoImpuestoIncl; $ofertaFinal = wc_price( $oferta ); if ( ! WC()->cart->prices_include_tax && WC()->cart->tax_total > 0 ) { $ofertaFinal .= ' <small class="tax_label">' . WC()->countries->inc_tax_or_vat() . '</small>'; } } // ACTUALIZACIÓN DEL SUBTOTAL DEL CARRITO if ( WC()->cart->tax_display_cart == 'excl' ) { WC()->cart->subtotal_ex_tax = WC()->cart->subtotal_ex_tax - $descuento; }else{ WC()->cart->subtotal = WC()->cart->subtotal - $descuentoImpuestoIncl; } // ACTUALIZACIÓN DEL TOTAL DEL CARRITO WC()->cart->total = WC()->cart->total - $descuentoImpuestoIncl; } return $ofertaFinal; } // ACTUALIZACIÓN DE LOS IMPUESTOS DESPUÉS DE LA APLICACIÓN DE LA OFERTA add_filter( 'woocommerce_cart_tax_totals', 'actualiza_impuestos_aplicados', 10, 2 ); function actualiza_impuestos_aplicados( $tax_totals, $cartObject ){ $impuestosDesc = 0; foreach ( $cartObject->get_cart() as $cart_item_key => $cart_item ){ if ( ( $cart_item[ 'product_id' ] === TU-ID-DE-PRODUCTO ) && ( $cart_item[ 'quantity' ] >= 3 ) ) { $impuestosDesc = ( $cart_item[ 'data' ]->get_price_including_tax() - $cart_item[ 'data' ]->get_price_excluding_tax() ) * floor( $cart_item[ 'quantity' ] / 3 ); } } // APLICACIÓN DEL DESCUENTO EN EL DESGLOSE DE IMPUESTO QUE SE MUESTRA DEBAJO DEL TOTAL DEL CARRITO $newTaxTotal = current( $tax_totals ); $clave = key( $tax_totals ); $newTaxTotal->amount -= $impuestosDesc; $newTaxTotal->formatted_amount = wc_price( $newTaxTotal->amount ); $tax_totals[ $clave ] = $newTaxTotal; return $tax_totals; }
Hay que cambiar
TU-ID-DE-PRODUCTO
, que aparece dos veces en el código, por el ID del producto al que quieras aplicar la oferta.- Esta respuesta fue modificada hace 4 años, 11 meses por Javier Esteban. Razón: Corrección en el código
- Esta respuesta fue modificada hace 4 años, 11 meses por Javier Esteban. Razón: Corrección en el código
- Esta respuesta fue modificada hace 4 años, 11 meses por Javier Esteban. Razón: Corrección en el código
Hola @lordmahc
Dentro del repositorio tienes esta opción que te permite hacer algo semejante:
Discount Rules for WooCommerce
Tienes que crear reglas de compra y aplicar descuentos porcentuales, yo lo usé para crear descuentos por docenas y funcionaba bien (siempre y cuando compraras por docenas)
- El debate ‘Oferta 2 x 1 en woocomerce’ está cerrado a nuevas respuestas.