Jump to content
  • 0

Dodatkowe koszty wysyłki a darmowa wysyłka od kwoty [rozwiązany]


And63

Question

Sytuacja ma się tak - w sklepie (prestashop 1.4.4.1) jest jeden przewoźnik, obowiązuje darmowa wysyłka powyżej kwoty zakupu np. 200 zł.

Niemniej jednak istnieją produkty, które miały by być wysłane z dodatkowym kosztem wysyłki bez względu na jego cenę (ustawiony dodatkowy koszt wysyłki w PA + 100zł)

Kupuję produkt za 1000 zł, który ma ustawiony dodatkowy koszt przesyłki +100zł.

W koszyku nie ma informacji o dodatkowym koszcie, ani nie jest on doliczany do podsumowania zakupów.

Jeśli wartość zamówienia jest poniżej 200 zł - wszystko jest ok. Jest cena, jest info o dodatkowym koszcie i jest on doliczony w podsumowaniu.

 

Wychodzi mi na to, że najpierw jest sprawdzany warunek o darmowej wysyłce od danej kwoty i jeśli ją przewyższa nie jest sprawdzane dalej czy jest dodatkowy koszt przesyłki dla produktu.

 

Pytanie jak to ograć - pomysły mi się skończyły gdzie szukać tego warunku i jak to zmienić :(

 

Rozwiązałem problem :)

Edited by And63 (see edit history)
Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Sytuacja ma się tak - w sklepie (prestashop 1.4.4.1) jest jeden przewoźnik, obowiązuje darmowa wysyłka powyżej kwoty zakupu np. 200 zł.

Niemniej jednak istnieją produkty, które miały by być wysłane z dodatkowym kosztem wysyłki bez względu na jego cenę (ustawiony dodatkowy koszt wysyłki w PA + 100zł)

Kupuję produkt za 1000 zł, który ma ustawiony dodatkowy koszt przesyłki +100zł.

W koszyku nie ma informacji o dodatkowym koszcie, ani nie jest on doliczany do podsumowania zakupów.

Jeśli wartość zamówienia jest poniżej 200 zł - wszystko jest ok. Jest cena, jest info o dodatkowym koszcie i jest on doliczony w podsumowaniu.

 

Wychodzi mi na to, że najpierw jest sprawdzany warunek o darmowej wysyłce od danej kwoty i jeśli ją przewyższa nie jest sprawdzane dalej czy jest dodatkowy koszt przesyłki dla produktu.

 

Pytanie jak to ograć - pomysły mi się skończyły gdzie szukać tego warunku i jak to zmienić :(

 

Rozwiązałem problem :)

 

Miło by było abyś oświecił resztę użytkowników, tak na przyszłość.

Link to comment
Share on other sites

  • 0

Jasne :)

Otóż w /classes/cart.php

Zamiast:

// Free fees if free carrier
if ($carrier->is_free==0)
 return 0;

 

Wstawiłem:

// Free fees if free carrier
 if ($carrier->is_free == 0)
foreach($products AS $product)
  $shipping_cost += $product['additional_shipping_cost'] * $product['cart_quantity'];

 

Efekt jest taki, że jeśli produkt ma ustawione dodatkowe koszty przesyłki - nie obowiązuje przesyłka darmowa ustawiona w PA

Edited by And63 (see edit history)
Link to comment
Share on other sites

  • 0

Tak mi przyszło do głowy że jak ktoś potrafi to mógłby dopisać do powyższego rozwiązania taką opcję że:

 

Klient kupuje coś za 150zł, dodatkowo kolejny produkt za 60zł i wtedy powinien mieć darmową wysyłkę ale w tym drugim produkcie jest dodatkowy koszt wysyłki. I w takim wypadku dolicza jako koszt wysyłki tylko tą kwotę dodatkowego kosztu wysłania a nie całość.

W takim rozwiązaniu obowiązywałaby darmowa wysyłka = ewentualne dodatkowe koszty doliczane do poszczególnych produktów.

Link to comment
Share on other sites

  • 0

Tak mi przyszło do głowy że jak ktoś potrafi to mógłby dopisać do powyższego rozwiązania taką opcję że:

 

Klient kupuje coś za 150zł, dodatkowo kolejny produkt za 60zł i wtedy powinien mieć darmową wysyłkę ale w tym drugim produkcie jest dodatkowy koszt wysyłki. I w takim wypadku dolicza jako koszt wysyłki tylko tą kwotę dodatkowego kosztu wysłania a nie całość.

W takim rozwiązaniu obowiązywałaby darmowa wysyłka = ewentualne dodatkowe koszty doliczane do poszczególnych produktów.

Pomyślę o tym w wolnej chwili :)

Edited by And63 (see edit history)
Link to comment
Share on other sites

  • 0

Jasne :)

Otóż w /classes/cart.php

Zamiast:

// Free fees if free carrier
 if ($carrier->is_free==0)
  return 0;
Wstawiłem:

// Free fees if free carrier
  if ($carrier->is_free == 0)
	foreach($products AS $product)
   $shipping_cost += $product['additional_shipping_cost'] * $product['cart_quantity'];
Efekt jest taki, że jeśli produkt ma ustawione dodatkowe koszty przesyłki - nie obowiązuje przesyłka darmowa ustawiona w PA

 

 

Witam,

Wrzuciłem poprawkę do systemu, moja darmowa przesyłka to 500 zł.

Do tej kwoty "dodatkowy koszt wysyłki" mnoży się razy dwa tzn gdy ustawię 50 zł, to w koszyku mam 50 x 2 + koszt przesyłki ze sklepu = 116 zł.

Gdy w koszyku jest powyżej 500 zł działa wszystko poprawnie.

Dlaczego tak jest ? Gdzie można to poprawić.

Pozdrawiam.

Link to comment
Share on other sites

  • 0

Modyfikacja działa w ten sposób - jeśli dla produktu jest ustawiony dodatkowy koszt przesyłki - nie obowiązuje zasada darmowej wysyłki tylko doliczany jest dodatkowy koszt przesyłki x ilość produktu.

Dlaczego tak jest? - tłumaczenie logiki:

if ($carrier->is_free == 0)

oznacza ---> jeśli przesyłka jest za darmo

 

 

    foreach($products AS $product)

oznacza ---> znajdż produkty

 

 

$shipping_cost += $product['additional_shipping_cost'] * $product['cart_quantity'];

oznacza ---> koszty wysyłki produktów  znalezionych powyżej wynoszą : dodatkowy koszt wysyłki * ilość

 

 

 

Prościej tego nie potrafię wytłumaczyć...

 

Czytanie ze zrozumieniem postu 1 - podstawa po co taki mod.

Edited by And63 (see edit history)
Link to comment
Share on other sites

  • 0

Modyfikacja działa w ten sposób - jeśli dla produktu jest ustawiony dodatkowy koszt przesyłki - nie obowiązuje zasada darmowej wysyłki tylko doliczany jest dodatkowy koszt przesyłki x ilość produktu.

Dlaczego tak jest? - tłumaczenie logiki:

if ($carrier->is_free == 0)

oznacza ---> jeśli przesyłka jest za darmo

 

 

    foreach($products AS $product)

oznacza ---> znajdż produkty

 

 

$shipping_cost += $product['additional_shipping_cost'] * $product['cart_quantity'];

oznacza ---> koszty wysyłki produktów  znalezionych powyżej wynoszą : dodatkowy koszt wysyłki * ilość

 

 

 

Prościej tego nie potrafię wytłumaczyć...

 

Czytanie ze zrozumieniem postu 1 - podstawa po co taki mod.

 

Jeśli w koszyku jest kwota powyżej darmowej przesyłki wszytko jest OK.

Problem jest gdy kwota jest niższa.

Dodaje 1 produkt do koszyka, ustawiam dodatkowy koszt wysyłki przy tym produkcie 100 zł, a w koszyku mam 200 zł (powinno być 100 zł) + mój stały koszt przesyłki. Wrzucam dwa produkty, w koszyku mam 400 zł + stały koszt przesyłki. 

Gdy koszyk przekracza sumę darmową jest 100 zł + koszt wysyłki, 200 zł ...itd.

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...