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
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 –
Podsumowanie
Po wykonaniu powyższej procedury będziesz w stanie obliczyć koszty wysyłki na Ostatecznej Łącznej ilości Koszyka.