Objetivos do blog
Depois de ler este blog, poderemos calcular o frete grátis com base no preço total final do carrinho.
Problema Declaração
Atualmente, quando adicionamos produtos
- O valor total do carrinho é de $ 100, que também oferece frete grátis e desconto de 5%.
- Em seguida, após o desconto, o total do carrinho definido abaixo de US $ 100, mas ainda assim o frete grátis, aplica-se, o que não deve acontecer. O frete grátis deve ser aplicado no valor total final do carrinho após o desconto.
- Isto é
Por que o problema atual está lá:
Atual
$ shipping_cost + = $ carrier-> getDeliveryPriceByPrice ($ the_total_price, $ id_zone, (int) $ this-> id_currency);
Exigência
Precisamos modificar o Raiz dir \ classes \ Cart.php
Procedimento para resolver o problema
Siga os passos abaixo mencionados –
1. Função de reescritagetPackageShippingCost
2. Depois da linha abaixo –
// Total do pedido na moeda padrão sem taxas $ order_total = $ this-> getOrderTotal (true, Carrinho :: BOTH_WITHOUT_SHIPPING, $ product_list);
3. Adicione a seguinte declaração –
$ listeDiscounts = $ this-> getCartRules (); $ total_discounts = 0; if (is_array ($ listeDiscounts)) {se (isset ($ listeDiscounts [0] ['valor_real'])) $ total_discounts = $ listeDiscounts [0] ['valor_real']; } $ price_to_apply_shipment = floatval ($ order_total) - floatval ($ total_discounts);
4. Substitua as linhas mencionadas abaixo – Substitua esta linha
$ check_delivery_price_by_price = Transportadora :: checkDeliveryPriceByPrice ($ row ['id_carrier'], $ total_order, (int) $ id_zone, (int) $ this-> id_currency);
Com
$ check_delivery_price_by_price = Transportadora :: checkDeliveryPriceByPrice ($ row ['id_carrier'], $ price_to_apply_shipment, (int) $ id_zone, (int) $ this-> id_currency);
———— AND —————– Substitua esta linha
$ shipping_cost + = $ carrier-> getDeliveryPriceByPrice ($ the_total_price, $ id_zone, (int) $ this-> id_currency);
Com
$ shipping_cost + = $ carrier-> getDeliveryPriceByPrice ($ price_to_apply_shipment, $ id_zone, (int) $ this-> id_currency);
5. Limpe o cache e execute. Consulte a imagem abaixo depois de aplicar as alterações no código –
Resumo
Após seguir o procedimento acima, você poderá calcular o frete no valor total final do carrinho.