Como definir valor mínimo para pedidos no Woocommerce

Atualizado para a versão 1.2.1 – Tradução em espanhol.

 

woocommerce-pedido-valor-minimo

O objetivo é “impedir” que o cliente finalize o pedido sem atingir um valor mínimo para o pedido, um caso muito comum é quando os produtos vendidos possuem um valor muito baixo, o que muitas vezes torna o custo de processamento do pedido superior ao valor da venda.

Esse tipo de modificação pode ser feita de diversas maneiras, inclusive com o plugin Minimum Purchase for WooCommerce mas para controlar essa regra no exemplo abaixo, foi utilizado um gancho do Woocommerce diretamente no arquivo functions.php do tema utilizado.

O código foi baseado num artigo da artigo da Sitepoint bem mais completo para outras situações como peso mínimo no pedido ou quantidade mínima de um determinado produto ou de itens no carrinho.

As modificaçõese no código original foram para colocar o R$, casas decimais, exibição de mensagem com o valor que falta para atingir o valor mínimo para a compra e mensagens diferenciadas para valores no singular e plural.

woocommerce-pedido-valor-minimo-2

Nesse caso, o valor mínimo (R$31,00) foi inserido diretamente no código mas se tratando de WordPress, as possibilidades são infinitas e caso o administrado da loja precise atualizar o valor sem intervenção de um programador, é possível utilizar campos personalizados para implementar uma solução mais amigável.

 

[pastacode lang=”php” message=”Valor mínimo para pedido no Woocommerce” highlight=”” provider=”manual” manual=”add_action(%20’woocommerce_check_cart_items’%2C%20’spyr_set_min_total’%20)%3B%0Afunction%20spyr_set_min_total()%20%7B%0A%20%20%20%20if(%20is_cart()%20%7C%7C%20is_checkout()%20)%20%7B%0A%20%20%20%20%20%20%20%20global%20%24woocommerce%3B%0A%20%0A%20%20%20%20%20%20%20%20%24minimum_cart_total%20%3D%2031%3B%0A%20%0A%20%20%20%20%20%20%20%20%24total%20%3D%20WC()-%3Ecart-%3Esubtotal%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20if(%20%24total%20%3C%3D%20%24minimum_cart_total%20)%20%7B%0A%09%09%09%24saldo%20%3D%20%24minimum_cart_total%20-%20%24total%3B%0A%09%09%09%24saldo_dec%20%3D%20number_format((float)%24saldo%2C%202%2C%20’%2C’%2C%20”)%3B%0A%09%09%09%24singular%20%3D%20’%3Cbr%20%2F%3EFalta%20%3Cstrong%3ER%24%20%25s%3C%2Fstrong%3E%20para%20atingir%20o%20valor%20m%C3%ADnimo.%3C%2Fdiv%3E’%3B%0A%09%09%09%24plural%20%3D%20’%3Cbr%20%2F%3EFaltam%20%3Cstrong%3ER%24%20%25s%3C%2Fstrong%3E%20para%20atingir%20o%20valor%20m%C3%ADnimo.%3C%2Fdiv%3E’%3B%0A%09%09%09if%20(%20%24saldo%20%3E%201%20%7C%7C%20%24saldo%20%3C%201%20)%20%7B%0A%09%09%09%09%24msg%20%3D%20%24plural%3B%0A%09%09%09%7D%20else%20%7B%0A%09%09%09%09%24msg%20%3D%20%24singular%3B%0A%09%09%09%7D%0A%0A%09if%20(%20%24total%20!%3D%200%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20wc_add_notice(%20sprintf(%20’%3Cdiv%20style%3D%22font-size%3A%2015px%3B%22%3E%3Cstrong%3EO%20Pedido%20deve%20ter%20o%20valor%20m%C3%ADnimo%20de%20R%24%20%25s.%3C%2Fstrong%3E’%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.’%3Cbr%20%2F%3EO%20Valor%20total%20do%20seu%20pedido%20agora%20%C3%A9%20de%20%3Cstrong%3ER%24%20%25s%3C%2Fstrong%3E.’%0A%09%09%09%09.%24msg%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20number_format((float)%24minimum_cart_total%2C%202%2C%20’%2C’%2C%20”)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20number_format((float)%24total%2C%202%2C%20’%2C’%2C%20”)%2C%0A%09%09%09%09%24saldo_dec%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20’error’%20)%3B%0A%09%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D%0A”/]

 

Atualizado em 14/01/2018

O Plugin WooCommerce Pedido Mínimo vai efetuar a modificação abaixo sem a necessidade de editar nenhum arquivo no tema do WordPress.

Clique na imagem abaixo e saiba mais!

Caso tenha alguma sugestão ou dúvida, deixe um comentário ou se preferir, entre em contato.

38 thoughts on “Como definir valor mínimo para pedidos no Woocommerce

  1. Opá, beleza?
    Estou com um problemao talvez você consiga me ajudar. Estou desenvolvendo uma loja de calçados para uma cliente na qual vão ter duas opções de compra varejo(1 calçado), atacado(no minimo 6 do mesmo produto). Gostaria de fazer um bloqueio caso a pessoa escolhesse atacado e selecionasse menos que 6 pares do mesmo produto. Pra comprar atacado a pessoa deve comprar obrigatoriamente 6 peças do mesmo produto. Voce consegue me ajudar?

  2. Alguém conhece um plugin para definir quantidade minima no produto e não na configuração geral?

    Ou também poderia ser um plugin para definir quantidade minima por categoria…

    Desde já agradeço

  3. Boa tarde amigo, se fosse para fazer dessa forma aqui, os produtos da loja do meu cliente são vendidos em grama, então ele quer que o pedido mínimo seja de 1 KG, como eu faria um código para essa regra? Abraço.

    1. Olá Victor, usando o meu plugin tem como colocar por quantidade. Se a unidade de medida é em gramas e a quantidade mínima é 1Kg, seria só colocar 1000 na quantidade mínima.

  4. Carissimo,
    Obrigado pelo artigo me ajudou bastante .
    uma pergunta eu consigo definir um pedido minimo por região ?
    tipo pra sao paulo o valor minimo é 200 , pra SBCampo o valor minimo é 100 ….
    como fazer?

  5. Hola que tal, soy de Argentina y quiero agradecerte ya que me sirvio el codigo que has compartido. Mi version de WordPress es la 4.8 y de Woocommerce 3.1.0. Utilizo el theme The Shopier”

    Muchas gracias.

    Saludos.

  6. Como posso fazer isso .. mais na quantidade de produtos em vez de valor… ex: quero definir o minimo de 4 itens para cada produto e ter no final um limite total minimo para todos os produtos ? entendeu?

  7. Bom dia, Precisa dessa função porem para quantidade Minimo de Peças, trabalho com sapatos e quero colocar minimo de peças para liberar carrinho. ex: vender no atacado pedido Minimo de 6 Pares.

    se puder me ajudar já com codigo eu agradeço e vai ajudar muitos tbm.

    Obrigado

  8. Como faço para não enganar o sistema… tenho um produto que quando utilizo um cupom de desconto ele fica com o valor meno que o estipulado como mínimo. só que se eu colocar um outro produto, afim de ultrapassar o valor mínimo e depois retirar o produto o sistema permite a compra normalmente.

    pedido mínimo R$100.
    Produto custa R$130,00
    Adicionando um cupom de desconto para o produto especifico ele fica abaixo dos R$100.00
    o sistema não permite a compra.
    adiciono um outro produto.. o sistema deixa de exibir a mensagem
    excluo um produto e o valor de carrinho fica abaixo do mínimo e mesmo assim ele finaliza a compra como resolver.?

    envie solução no meu email [email protected]

  9. Muito bacana seu artigo!
    Tenho uma dúvida, tem como colocar uma exceção para alguns produtos? Ou determinar esse valor mínimo para apenas alguns produtos?

    1. Oi Arthur, obrigado. É preciso criar um campo personalizado no produto e adaptar o código para aplicar a regra de acordo com os produtos que estão marcados com esse campo.

  10. Buen día, no soy programador y estoy insertando el código en functions.php pero me da error en la línea siguiente:
    $ Minimum_cart_total = 35 ;

    La pantalla que aparece es

    Parse error: syntax error, unexpected ‘Minimum_cart_total’ (T_STRING), expecting variable (T_VARIABLE) or ‘$’ in /home2/idearte/public_html/babolaturuguay.uy/wp-content/themes/woopress/functions.php on line 11

    Cual puede ser el problema?
    Muchas gracias

  11. Eu sabia programar em vb
    deu uma fuçada e alterei para qtd maxima de intens no carrinho, ficou muito legal, obrigado

    add_action( ‘woocommerce_check_cart_items’, ‘spyr_set_min_total’ );
    function spyr_set_min_total() {
    if( is_cart() || is_checkout() ) {
    global $woocommerce;

    $minimum_cart_total = 6;

    $total = WC()->cart->cart_contents_count;

    if( $total > $minimum_cart_total ) {
    $saldo = $minimum_cart_total – $total;
    $saldo_dec = number_format((integer)$saldo, 0, ‘,’, ”);
    $singular = ‘Retire a quantidade de %s itens do seu carrinho.’;
    $plural = ‘Retire a quantidade de %s itens do seu carrinho.’;
    if ( $saldo > 1 || $saldo < 1 ) {
    $msg = $plural;
    } else {
    $msg = $singular;
    }

    if ( $total != 0 ) {
    wc_add_notice( sprintf( 'O Pedido deve ter no máximo %s itens.‘
    .’A quantidade de itens no seu pedido agora é de %s itens.’
    .$msg,
    number_format((integer)$minimum_cart_total, 0, ‘,’, ”),
    number_format((integer)$total, 0, ‘,’, ”),
    $saldo_dec ),
    ‘error’ );
    }
    }
    }
    }

    1. O meu código está dando erro:

      Parse error: syntax error, unexpected T_STRING in /home/palmaplast/www/loja/wp-content/themes/Divi/core/functions.php on line 9

      o que será?

      1. Você está inserindo no /wp-content/themes/Divi/functions.php? Tem como postar aqui ou me enviar o código? No caso do tema Divi, o mais correto seria fazer qualquer alteração através de um tema filho.
        Mesmo assim deveria funcionar no functions.php do tema principal.

  12. oi voce teria essa função so que para qtd maxima no carinho
    so quero que ele coloque no maximo 10 itens no carrinho
    se passar de 10 avisa que excedeu e fala para ele tirar
    diminuir o carrinho

  13. No meu caso está dando o mesmo erro da Gil Sanches Torres; escolhi o pedido mínimo de R$30,00 e qdo tenta-se comprar R$30,00 da o erro!

    1. Olá Adriana, entre em contato para verificar o que está acontecendo. Na maioria das vezes o código é inserido no functions.php do tema no local errado, por exemplo, dentro de uma função.

  14. Bom no meu site coloquei um valor minimo de 15 reais só que se o cliente escolhe apenas 15 reais da o erro para voltar pro carrinho …. e se o cliente escolher 17 ai sim não da o erro

  15. Ola, eu copiei e colei o codigo no arquivo que você disse porém não esta funcionando. Ele nao deixa fazer a compra nem quando atinge o valor que eu configurei.

      1. O problema da Giovanna foi resolvido. Ela estava colocando o código dentro de uma função do tema dela. É importante que o código seja colocado no final do arquivo functions.php para evitar o mesmo problema.

  16. Poderia me dizer em que página implemento esses códigos? estou começando com wordpress/woocommerce mas já tenho uma noção de programação

    1. Olá Caio, todo tema do WordPress tem um arquivo chamado functions.php. É só inserir essas linhas no arquivo e personalizar o valor de acordo com a sua necessidade.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *