Jump to content

Minimum Order Value (Prestashop 1.7.2.4)


Bruno Martins

Recommended Posts

Hello,

I am trying define a minimum order value of 10€ without VAT (8.13) (would like for products only, not shipping fees), but PS 1.7.2.4 allow finish the order with 5€ (for example).

If I activate debug mode, Front Page don't work and shows the error below. I tryed with default template and with a purchased template on Prestashop Market Place (addons.prestashop.com)

Thansk in advance.

Error:

Whoops, looks like something went wrong.

1/1 ContextErrorException in CartPresenter.php line 445: Warning: sprintf(): Too few arguments

  1. in CartPresenter.php line 445
  2. at ErrorHandler->handleError('2', 'sprintf(): Too few arguments', '/home/printmix/public_html/loja/src/Adapter/Cart/CartPresenter.php', '445', array('cart' => object(Cart), 'shouldSeparateGifts' => false, 'rawProducts' => array(), 'products' => array(), 'this' => object(CartPresenter), 'subtotals' => array('products' => array('type' => 'products', 'label' => 'Subtotal', 'amount' => '0', 'value' => '0,00 €'), 'discounts' => null, 'shipping' => array('type' => 'shipping', 'label' => 'Envio', 'amount' => '0', 'value' => 'Grátis'), 'tax' => null), 'productsTotalExcludingTax' => '0', 'total_excluding_tax' => '0', 'total_including_tax' => '0', 'total_discount' => '0', 'totalCartAmount' => '0', 'shippingCost' => '0', 'totals' => array('total' => array('type' => 'total', 'label' => 'Total', 'amount' => '0', 'value' => '0,00 €'), 'total_including_tax' => array('type' => 'total', 'label' => 'Total (com IVA)', 'amount' => '0', 'value' => '0,00 €'), 'total_excluding_tax' => array('type' => 'total', 'label' => 'Total (sem IVA)', 'amount' => '0', 'value' => '0,00 €')), 'products_count' => '0', 'summary_string' => '0 artigos', 'minimalPurchase' => '8.13', 'labels' => array('tax_short' => '(com IVA)', 'tax_long' => '(com IVA)'), 'discounts' => array(), 'vouchers' => array('allowed' => '0', 'added' => array()), 'cartRulesIds' => array()))
  3. at sprintf('É necessária uma compra total mínima de %1s (sem IVA) para validar a sua encomenda. O total atual da compra é de %2s (sem IVA).') in CartPresenter.php line 445
  4. at CartPresenter->present(object(Cart)) in FrontController.php line 500
  5. at FrontControllerCore->assignGeneralPurposeVariables() in FrontController.php line 536
  6. at FrontControllerCore->initContent() in IndexController.php line 37
  7. at IndexControllerCore->initContent() in Controller.php line 205
  8. at ControllerCore->run() in Dispatcher.php line 379
  9. at DispatcherCore->dispatch() in index.php line 28
Link to comment
Share on other sites

  • 1 month later...

Hi Bruno,

I don't know if you already solved this issue, but i had the same problem and i found the following solution. Hope this works for you!

This error is caused by a bad translation of the variables %amount% and %total%

1. Go to BO-> International -> Translations
2. Choose CLASSIC Theme
3. Choose the Translation language
4. Search for "cart total" and replace the wrong translation text:

"É necessária uma compra total mínima de %1s (sem IVA) para validar a sua encomenda. O total atual da compra é de %2s (sem IVA)."

With for example:
É necessária uma compra total mínima de %amount% (sem IVA) para validar a sua encomenda. O total atual da compra é de %total% (sem IVA).

Espero ter ajudado :-)

Link to comment
Share on other sites

Hello JASG

I think so ... It help me.

One more question please: the %total% variable followed (sem IVA), show me the amount with VAT and not without VAT. I changed the text to "(com IVA)".

Exist any variable to show total without VAT ?

Thanks.

Best Regards.

 

---

Olá JASG,

Penso que falamos a mesma língua , pelo que vou escrever em português.

Antes de mais, o que sugeriste ajudou na resolução do problema, ou seja, colocando um valor para o valor minimo no BO, o FO já não rebenta!!!

O que pergunto é: existe alguma variável par amostrar o total sem IVA.

O que fiz, foi mudar o texto e onde aparece total (sem Iva) coloquei total (com IVA), pois no BO tenho de colocar o valor sem IVA e a mensagem diz isso mesmo ...

No nosso caso o que pretendemos é que não se consiga fechar nenhuma encomenda abaixo dos 10 € c/ Iva (8.13 s/ IVA), e os utilizadores a encomendarem encomendam C/ IVA.

 

No entanto a dica foi 5 *****, pelo que mais uma vez agradeço.

 

Cumprimentos

Bruno Martins

 

Link to comment
Share on other sites

Olá Bruno,

Por defeito o prestashop considera o valor total dos artigo sem IVA para o limite.

Se quiser que passa a considerar valores com IVA terá que fazer a seguinte alteração no ficheiro:
\src\Adapter\Cart\CartPresenter.php

Substituir a linha 435:

            'minimalPurchaseRequired' => ($this->priceFormatter->convertAmount($productsTotalExcludingTax) < $minimalPurchase) ?

Por:

            'minimalPurchaseRequired' => ($this->priceFormatter->convertAmount($totalCartAmount) < $minimalPurchase) ?


E substituir a linha  441 :

                            '%total%' => $this->priceFormatter->convertAndFormat($productsTotalExcludingTax),

Por:

                            '%total%' => $this->priceFormatter->convertAndFormat($totalCartAmount),

 

E no BO onde define o valor minimo por encomenda terá que colocar o valor com IVA em vez do valor sem IVA.

Penso que será isso que pretende!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...