Problem Statement
Obecnie, gdy dodajemy produkty do „koszyka” i przechodzimy do sekcji kasy, aby skorzystać z rabatu i wysyłki, widzimy, że rabat obowiązuje po wysyłce. Powiedzmy,
- Całkowita kwota koszyka wynosi 100 USD, co obejmuje bezpłatną wysyłkę, a także dodaje się pewną zniżkę w wysokości 5%
- Następnie, gdy zniżka Całkowita kwota koszyka zostanie ustawiona poniżej 100 USD, ale nadal obowiązuje bezpłatna wysyłka, co nie powinno mieć miejsca. Bezpłatna wysyłka musi odnosić się do łącznej końcowej kwoty koszyka po rabacie.
- Jest to domyślny proces Prestashop. Zapoznaj się z poniższym zrzutem ekranu, gdzie wysyłka musi być bezpłatna, jeśli suma zamówienia wynosi > 50, ale zastosowano bezpłatną wysyłkę, a suma zamówienia wynosi < 50 po rabacie –
Zalecane przeczytanie: Strategie bezpłatnej wysyłki: dlaczego warto oferować? Jak oferować? Kiedy oferować?
Dlaczego jest obecny problem?
Obecny problem występuje, ponieważ kwota wysyłki jest obliczana na podstawie Całkowitej kwoty zamówienia, która jest ustawiona w Koszyku przed zastosowaniem rabatu. Możesz sprawdzić poniższe wiersze kodu, gdzie suma zamówienia bez kwoty rabatu jest używana do obliczania kosztów wysyłki –
$shipping_cost += $carrier->getDeliveryPriceByPrice($the_total_price, $id_zone, (int)$this->id_currency);
Wymaganie
Musimy zmodyfikować�wymieniony poniżej�plik, aby to naprawić. Będziemy nadpisywać odpowiednie wiersze pliku class, aby uniknąć zmian w plikach Core.
Poniżej znajduje się lista plików klas, które zostaną nadpisane-
1. Katalog główny\klasy\Koszyk.PHP
Procedura rozwiązania problemu-
Wykonaj poniższe kroki –
1. Przepisz funkcję�GetPackageKosztWysyłki
2. Po linii podanej poniżej –
// Suma zamówienia w domyślnej walucie bez opłat $order_total = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, $product_list);
3. Dodaj następującą wypowiedź –
$listeDiscounts = $this->getCartRules(); $całkowite_rabaty = 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); Zalecana lektura: Najlepsze bezpłatne rozszerzenie menedżera wysyłki dla sklepu OpenCart
4. Zastąp wiersze wymienione poniżej –
Zastąp tę linię
$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);
————ORAZ—————–
Zastąp tę linię
$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.
Zapoznaj się z poniższym zrzutem ekranu po zastosowaniu zmian w kodzie –
Po wykonaniu powyższej procedury będziesz mógł obliczyć koszty wysyłki na końcową łączną kwotę koszyka.
Wnioski
Jeśli chodzi o zakupy online, cała struktura cenowa odgrywa kluczową rolę dla klientów. Jednym z czynników, które mogą spowodować lub przerwać konwersje, jest dostępność bezpłatnej wysyłki. Jedną z metod określania opcji i kosztów wysyłki w witrynie eCommerce jest Darmowy dodatek do menedżera wysyłki od Knowband. Jednym z najważniejszych wymagań zwiększania średniej sprzedaży jest zapewnienie otwartości w transakcji.
Sklepy, które korzystały z tego modułu bezpłatnej wysyłki, zwiększyły ruch w witrynie, przychody i współczynniki konwersji. Za pomocą tej wtyczki do bezpłatnej wysyłki administratorzy sklepów mogą zdefiniować wytyczne i warunki dotyczące kosztów wysyłki. Co więcej, tę funkcję może dodać lub usunąć ze strony administrator sklepu.
Próg, powyżej którego oferowana jest bezpłatna wysyłka, może ustalić sprzedawcy online. W rezultacie zachęca nawet klientów do dokonywania większych zakupów w celu zakwalifikowania się do bezpłatnej wysyłki. Aby dowiedzieć się więcej o funkcjonalności modułu bezpłatnej wysyłki, skontaktuj się z nami pod adresem support@knowband.com