Importe mínimo de compra en Woocommerce sin plugin

Las tiendas online que ofrecen productos con poco margen, productos pequeños o bien B2B en muchas ocasiones necesitan establecer un precio mínimo para que la venta les salga rentable. Es aquí donde entra la funcionalidad de establecer una compra mínima para que el cliente pueda comprar.

Como siempre en la sección de snippets no usaremos ningún plugin para aplicar esto en nuestra tienda, tan solo un código.

Snippet para establecer un pedido mínimo

Añade este código a tu functions.php o a tu plugin de funcionalidades como explico aquí.

// Establecer un importe minimo en la compra
function woocommerce_importe_minimo() {
  $minimum = 20;  // Debes cambiar el 20 por el importe mínimo que quieras establecer en tu pedido
  if ( WC()->cart->total < $minimum ) {
    if( is_cart() ) {
      wc_print_notice(
      sprintf( ' Debes realizar un pedido mínimo de %s para finalizar su compra.' , // Pon aquí el texto que quieras que se muestre en el carrito de compra.
        wc_price( $minimum ),
        wc_price( WC()->cart->total )
      ), 'error'
      );
    } else {
      wc_add_notice(
      sprintf( 'No puedes finalizar tu compra. Debes realizar un pedido mínimo de %s para finalizar su compra.' , // Pon aquí el texto que quieras que se muestre en la página de finalizar compra.
        wc_price( $minimum ), 
        wc_price( WC()->cart->total )
      ), 'error'
      );
    }
  }
}
add_action( 'woocommerce_checkout_process', 'woocommerce_importe_minimo' );
add_action( 'woocommerce_before_cart' , 'woocommerce_importe_minimo' );

Con esto no solo sale un aviso en la página de carrito y de finalizar compra avisando que el pedido mínimo en este caso es 20€(lo puedes modificar).

establecer un importe mínimo en woocommerce

Sino que también no te deja finalizar la compra hasta que no añadas dicho importe. Cumpliendo así su función principal.

importe minimo de compra en woocommerce sin plugin

Establecer un pedido mínimo sin Impuestos

Aviso de que para que este snippet funcione debes tener bien configurada los impuestos en tu WooCommerce dependiendo de la ciudad. Este ejemplo es para un pedido mínimo de 60€ IVA no incluído:

// Establecer un importe minimo en la compra sin Impuestos
function woocommerce_importe_minimo() {
  $minimum = 60;  // Debes cambiar el 60 por el importe mínimo que quieras establecer en tu pedido
  if ( (WC()->cart->subtotal - WC()->cart->tax_total) < $minimum ) {
    if( is_cart() ) {
      wc_print_notice(
      sprintf( ' Debes realizar un pedido mínimo de %s sin IVA para finalizar su compra.' , // Pon aquí el texto que quieras que se muestre en el carrito de compra.
        wc_price( $minimum ),
        wc_price( (WC()->cart->subtotal - WC()->cart->tax_total) )
      ), 'error'
      );
    } else {
      wc_add_notice(
      sprintf( 'No puedes finalizar tu compra. Debes realizar un pedido mínimo de %s sin IVA para finalizar su compra.' , // Pon aquí el texto que quieras que se muestre en la página de finalizar compra.
        wc_price( $minimum ), 
        wc_price( (WC()->cart->subtotal - WC()->cart->tax_total) )
      ), 'error'
      );
    }
  }
}
add_action( 'woocommerce_checkout_process', 'woocommerce_importe_minimo' );
add_action( 'woocommerce_before_cart' , 'woocommerce_importe_minimo' );

Consejos de aplicación

Una vez que establezcas esta función sería conveniente informar a los visitantes de tu sitio web que solo podrán hacer el pedido si compran mas de X€. Para que una vez que lleguen al carrito no se encuentren con la sorpresa y cause rechazo.

Sería bueno anunciar en la página de inicio o en la zona de ventajas competitivas que explicaba aquí. Cualquier duda o aplicación de este código dejármela en comentarios o en contactar. Recuerda que tienes mis servicios de desarrollo de tiendas online.

[ratings]

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)

Especialista en Comercio electrónico con Woocommerce. Te ayudo a crear, gestionar y publicitar tu Ecommerce en función de tu sector y público objetivo. Puedes encontrarme en Diegol.top

¿Necesitas ayuda con este tutorial?

Mándame un correo y te resuelvo todas las dudas!


Ver servicios Contactar

Interacciones del lector

Comentarios

  1. Anders dice

    Hola, gracias por el código, funciona en el carrito pero no en el checkout, pues no muestra el mensaje y el botón de pagar queda activo. Uso Woocommerce Versión 3.7.1

  2. Gerardo dice

    Hola Anders,

    El botón siempre te va a salir… pero cuando pulsas te sale el mensaje que hayas especificado en el código facilitado por Diego… es decir si que funciona sin problemas pero vengo a ver como se podría hacer sin que fuese muchas molestias.

    El código facilitado es para una cantidad especifica, pero habría posibilidad y por el tema del IVA , es decir si cuando llegue a la cantidad (No Incluido el 21% de IVA) debido a que los precios son sin IVA y no es lo mismo precio con iva que sin el iva.

    Gracias anticipadas.

    • Diegol dice

      Hola Gerardo,

      Gracias por tu comentario. Sería modificar la variable WC()->cart->subtotalde por esta: (WC()->cart->subtotal – WC()->cart->tax_total). por supuesto tener bien configurados los impuestos para que se aplique bien, ya que va con los impuestos del propio WooCommerce.

      Igualmente te he dejado el código en el artículo sin IVA.

      Cualquier duda aquí estoy,

      Un saludo!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *