Polskie wsparcie PrestaShop

PrestaShop => Konfiguracja => Wątek zaczęty przez: pzw w Marzec 19, 2015, 10:40:16 am

Tytuł: Jak dodać stałą kwotę wysyłki do każdego produktu?
Wiadomość wysłana przez: pzw w Marzec 19, 2015, 10:40:16 am
Witam serdecznie,

Konfiguruję sklep dla klienta, gdzie występują przesyłki gabarytowe. W sklepie skonfigurowane jest kilku przewoźników. Ze względu na to, że większość produktów jest dostępna na zamówienie nie można ustalić wagi przesyłki.

Co potrzebuję? Dla jednego z kurierów muszę ustawić stałą kwotę (np. 30zł) dodawaną do kwoty wysyłki każdego produktu z osobna. Musiałoby to działać na zasadzie: jeśli id_kuriera = x to dodaj 30*ilość_produktów w koszyku.

Presta 1.6.0.9

Ma ktoś pomysł jak takie coś wykonać?

Proszę o pomoc i z góry dziękuję.
Tytuł: Odp: Jak dodać stałą kwotę wysyłki do każdego produktu?
Wiadomość wysłana przez: design4VIP w Marzec 19, 2015, 12:01:44 pm
do kazdego produktu mzoesz dodac zw 'dodatkowe koszty wysylki' beda sie one sumwoaly jak powyzej.
Tytuł: Odp: Jak dodać stałą kwotę wysyłki do każdego produktu?
Wiadomość wysłana przez: pzw w Marzec 19, 2015, 12:59:05 pm
To nie działa w ten sposób.
Dodatkowe koszty wysyłki będą się naliczać dla każdego przewoźnika, a mnie zależy tylko na jednym.
Tytuł: Odp: Jak dodać stałą kwotę wysyłki do każdego produktu?
Wiadomość wysłana przez: design4VIP w Marzec 19, 2015, 01:22:27 pm
mzoesz wylaczyc w przewoniku doliczanie kosztow dodatkowych. chyba te tez beda niedoliczane... nei wiem nie sprawdzalem, nie bylo okazji ;)
Tytuł: Odp: Jak dodać stałą kwotę wysyłki do każdego produktu?
Wiadomość wysłana przez: west w Marzec 20, 2015, 06:38:35 am
Musiałbyś np przerobić moduł płatności podobnie jak ten
http://europasaz.pl/moduly-prestashop/62-platnosc-przy-odbiorze-dodatkowy-koszt.html
i wtedy powiązać kuriera z ta metodą płatności
Tytuł: Odp: Jak dodać stałą kwotę wysyłki do każdego produktu?
Wiadomość wysłana przez: pzw w Marzec 20, 2015, 07:42:15 am
Dzięki za podpowiedzi.

Zacząłem grzebać w classes/cart.php

Znalazłem funkcję getPackageShippingCost zwracającą koszt dostawy. Dodałem w niej warunek, że jeśli jest odpowiednie $carrier->id to zwróć koszt dostawy+odpowiedni warunek.

Brakuje mi tylko zmiennej, w której zawarta jest ilość przedmiotów w koszyku. Nie chodzi mi o ilość różnych artykułów tylko ogólną ilość (quantity)

Wie ktoś która to?
Tytuł: Odp: Jak dodać stałą kwotę wysyłki do każdego produktu?
Wiadomość wysłana przez: pzw w Marzec 20, 2015, 09:39:00 am
Ok, rozwiązałem sprawę.

Dla przyszłych pokoleń:
Modyfikacja na końcu funkcji getPackageShippingCost() w pliku classes/Cart.php

zamień:
return $shipping_cost; na:
if ($carrier->id == 146){
    $ilosc = $this->NbProducts();   
    return $shipping_cost+30*$ilosc; }
    else {
    return $shipping_cost;
    }

Czyli: jeśli id kuriera ma wartość 146 - wykonaj:
zmiennej $ilość nadałem wartość funkcji NbProducts() - zwraca ona ilość sztuk w koszyku;
i zwróć wartość kosztów przesyłki+30*$ilosc

w przeciwnym wypadku
zwróć wartość kosztów wysyłki niezmienioną.

Działa to też w przypadku, gdy w koszyku jest więcej produktów a któryś z nich nie ma ustawionego kuriera od id = 146. W taki przypadku zwiększa kwotę przesyłki tylko dla produktów, które ten kurier może przewozić.