Jak obliczyć bezpłatną wysyłkę na podstawie ostatecznej ceny całkowitej w Prestashop?

Cele bloga

Po przeczytaniu tego bloga będziemy mogli obliczyć bezpłatną wysyłkę w oparciu o ostateczną cenę końcową koszyka.

Problem Statement

Obecnie, gdy dodajemy produkty do

  • Łączna kwota koszyka to $ 100, z czego dostępna jest bezpłatna dostawa i zniżka w wysokości 5%
  • Następnie po rabacie Suma w koszyku ustawiona poniżej $ 100, ale nadal obowiązuje bezpłatna dostawa, która nie powinna mieć miejsca. Bezpłatna dostawa musi obowiązywać w ostatecznej całkowitej kwocie koszyka po rabacie.
  • To jest

Problem Statement

Dlaczego obecny jest problem:

obecny

$ shipping_cost + = $ carrier-> getDeliveryPriceByPrice ($ the_total_price, $ id_zone, (int) $ this-> id_currency);

Wymaganie

Musimy zmodyfikować Katalog główny \ classes \ Cart.php

Procedura rozwiązania problemu

Wykonaj poniższe kroki –

1. Funkcja przepraszaniagetPackageShippingCost

2. Po linii podanej poniżej –

// Zamów sumę w domyślnej walucie bez opłat $ order_total = $ this-> getOrderTotal (true, Cart :: BOTH_WITHOUT_SHIPPING, $ product_list);

3. Dodaj następującą instrukcję –

$ listeDiscounts = $ this-> getCartRules (); $ total_discounts = 0; if (is_array ($ listeDiscounts)) {if (isset ($ listeDiscounts [0] ['value_real'])) $ total_discounts = $ listeDiscounts [0] ['value_real']; } $ price_to_apply_shipment = floatval ($ order_total) - floatval ($ total_discounts);

4. Wymień wymienione poniżej linie – Zamień ten wiersz

$ check_delivery_price_by_price = Carrier :: checkDeliveryPriceByPrice ($ row ['id_carrier'], $ total_order, (int) $ id_zone, (int) $ this-> id_currency);

Z

$ check_delivery_price_by_price = Carrier :: checkDeliveryPriceByPrice ($ row ['id_carrier'], $ price_to_apply_shipment, (int) $ id_zone, (int) $ this-> id_currency);

———— AND —————– Zastąp ten wiersz

$ shipping_cost + = $ carrier-> getDeliveryPriceByPrice ($ the_total_price, $ id_zone, (int) $ this-> id_currency);

Z

$ shipping_cost + = $ carrier-> getDeliveryPriceByPrice ($ price_to_apply_shipment, $ id_zone, (int) $ this-> id_currency);

5. Wyczyść pamięć podręczną i uruchom. Zobacz poniższy zrzut ekranu po wprowadzeniu zmian w kodzie –

front-end

Podsumowanie

Po wykonaniu powyższej procedury będziesz w stanie obliczyć koszty wysyłki na Ostatecznej Łącznej ilości Koszyka.


Leave a Reply

Your email address will not be published. Required fields are marked *