wdrożenia PrestaShop

Jak dodać stałą kwotę wysyłki do każdego produktu?

  • 6 Odpowiedzi
  • 1416 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline pzw

  • Nowy
  • *
  • 4
  • 0
  • prestashop
  • PrestaShop: 1.6
  • Status: Programista
Jak dodać stałą kwotę wysyłki do każdego produktu?
« dnia: 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ę.

*

Offline design4VIP

  • user
  • Mieszkaniec
  • *****
  • 3,866
  • 131
    • design4VIP z innej strony...
  • PrestaShop: PS
  • Status: Programista
Odp: Jak dodać stałą kwotę wysyłki do każdego produktu?
« Odpowiedź #1 dnia: Marzec 19, 2015, 12:01:44 pm »
do kazdego produktu mzoesz dodac zw 'dodatkowe koszty wysylki' beda sie one sumwoaly jak powyzej.
design4VIP z innej strony...

*

Offline pzw

  • Nowy
  • *
  • 4
  • 0
  • prestashop
  • PrestaShop: 1.6
  • Status: Programista
Odp: Jak dodać stałą kwotę wysyłki do każdego produktu?
« Odpowiedź #2 dnia: 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.

*

Offline design4VIP

  • user
  • Mieszkaniec
  • *****
  • 3,866
  • 131
    • design4VIP z innej strony...
  • PrestaShop: PS
  • Status: Programista
Odp: Jak dodać stałą kwotę wysyłki do każdego produktu?
« Odpowiedź #3 dnia: 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 ;)
design4VIP z innej strony...

*

Offline west

  • Administrator
  • Mieszkaniec
  • *****
  • 5,292
  • 106
  • Płeć: Mężczyzna
  • Europasaz.pl
    • PrestaShop, Wordpress, SMF, Woocomerce
  • PrestaShop: 8.0
  • Status: Programista
Odp: Jak dodać stałą kwotę wysyłki do każdego produktu?
« Odpowiedź #4 dnia: 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
MODUŁY | https://europasaz.pl |  SKLEPY INTERNETOWE | WSPARCIE TECHNICZNE | HOSTING | https://europasaz.pl 

*

Offline pzw

  • Nowy
  • *
  • 4
  • 0
  • prestashop
  • PrestaShop: 1.6
  • Status: Programista
Odp: Jak dodać stałą kwotę wysyłki do każdego produktu?
« Odpowiedź #5 dnia: 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?

*

Offline pzw

  • Nowy
  • *
  • 4
  • 0
  • prestashop
  • PrestaShop: 1.6
  • Status: Programista
Odp: Jak dodać stałą kwotę wysyłki do każdego produktu?
« Odpowiedź #6 dnia: 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ć.