Skocz do zawartości

bunnyb

Members
  • Zawartość

    9
  • Rejestracja

  • Ostatnia wizyta

Posty dodane przez bunnyb


  1. Firma Przelewy24 właśnie udostępniła nową wersję - 3.0.2.

    Została ona specjalnie przygotowana pod Prestę 1.5/1.6.

     

    Teraz płatność z konta gościa działa bez problemu.

    Kolejna nowość to ponowne przejście do strony z płatnością, jeśli w trakcie np. zerwało klientowi połączenie.

    Nie ma potrzeby generowania nowego zamówienia.

     

    Super. Jak na razie moduł działa bez zarzutów.


  2. Witam

     

    Klient wybiera płatność poprzez przelewy24 i w trakcie dokonywania płatności połączenie zostaje przerwane. Płatność nie zostaje zaakceptowana. Czy ktoś orientuje się, jak w takim wypadku podesłać/wygenerować klientowi link do płatności przez przelewy24 dla takiego zamówienia?

     

    Z tego co ja rozumiem, to klient musi jeszcze raz złożyć takie samo zamówienie i wybrać przelewy24.


  3. Udało mi się to w końcu rozwiązać. Dodałem poniższy kod do funkcji 'getDeliveryOptionList()' w pliku Cart.php.

     

    <span class="syntaxdefault">if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$data</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'price_with_tax'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 13.5 </span><span class="syntaxkeyword">||</span><span class="syntaxdefault"> $data</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'price_with_tax'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 17</span><span class="syntaxkeyword">)
    </span><span class="syntaxdefault">                </span><span class="syntaxkeyword">{
    </span><span class="syntaxdefault">                    </span><span class="syntaxcomment"># Domyślna ilość paczek 30-kilogramowych
    </span><span class="syntaxdefault">                    $parcelCount </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">;
    </span><span class="syntaxdefault">                    
                        </span><span class="syntaxcomment"># Pobiera calkowitą wartość zamówienia dla samych produktów oraz całkowitą wagę
    </span><span class="syntaxdefault">                    $wholeOrder </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">getOrderTotal</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">false</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> Cart</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">ONLY_PRODUCTS</span><span class="syntaxkeyword">);
    </span><span class="syntaxdefault">                    $wholeWeight </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">getTotalWeight</span><span class="syntaxkeyword">();
    </span><span class="syntaxdefault">                                    
                        </span><span class="syntaxcomment"># Ustala ilość 30-kilogramowych paczek                
    </span><span class="syntaxdefault">                    if </span><span class="syntaxkeyword">((</span><span class="syntaxdefault">$wholeWeight </span><span class="syntaxkeyword">/</span><span class="syntaxdefault"> 30</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">></span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">)
    </span><span class="syntaxdefault">                        if </span><span class="syntaxkeyword">((</span><span class="syntaxdefault">$wholeWeight </span><span class="syntaxkeyword">%</span><span class="syntaxdefault"> 30</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">)
    </span><span class="syntaxdefault">                            $parcelCount </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$wholeWeight </span><span class="syntaxkeyword">/</span><span class="syntaxdefault"> 30</span><span class="syntaxkeyword">);
    </span><span class="syntaxdefault">                        else
                                $parcelCount </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$wholeWeight </span><span class="syntaxkeyword">/</span><span class="syntaxdefault"> 30</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">+</span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">;
    </span><span class="syntaxdefault">                    
                        </span><span class="syntaxcomment"># Ustala liczbę darmowych paczek
    </span><span class="syntaxdefault">                    if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$data</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'price_with_tax'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 13.5</span><span class="syntaxkeyword">)
    </span><span class="syntaxdefault">                        $freeCount </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$wholeOrder </span><span class="syntaxkeyword">/</span><span class="syntaxdefault"> 250</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">                
                        else if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$data</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'price_with_tax'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 17</span><span class="syntaxkeyword">)
    </span><span class="syntaxdefault">                        $freeCount </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$wholeOrder </span><span class="syntaxkeyword">/</span><span class="syntaxdefault"> 500</span><span class="syntaxkeyword">);
    </span><span class="syntaxdefault">                    
                        </span><span class="syntaxcomment"># Zwraca koszt wysyłki z uwzględnieniem darmowych paczek                
    </span><span class="syntaxdefault">                    if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$parcelCount </span><span class="syntaxkeyword">></span><span class="syntaxdefault"> $freeCount</span><span class="syntaxkeyword">)
    </span><span class="syntaxdefault">                    </span><span class="syntaxkeyword">{
    </span><span class="syntaxdefault">                        $delivery_option_list</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$id_address</span><span class="syntaxkeyword">][</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'total_price_with_tax'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $data</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'price_with_tax'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$parcelCount </span><span class="syntaxkeyword">-</span><span class="syntaxdefault"> $freeCount</span><span class="syntaxkeyword">);
    </span><span class="syntaxdefault">                        $delivery_option_list</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$id_address</span><span class="syntaxkeyword">][</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'total_price_without_tax'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $data</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'price_without_tax'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$parcelCount </span><span class="syntaxkeyword">-</span><span class="syntaxdefault"> $freeCount</span><span class="syntaxkeyword">);
    </span><span class="syntaxdefault">                    </span><span class="syntaxkeyword">}
    </span><span class="syntaxdefault">                    else
                        </span><span class="syntaxkeyword">{
    </span><span class="syntaxdefault">                        $delivery_option_list</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$id_address</span><span class="syntaxkeyword">][</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'total_price_with_tax'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $total_price_with_tax</span><span class="syntaxkeyword">;
    </span><span class="syntaxdefault">                        $delivery_option_list</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$id_address</span><span class="syntaxkeyword">][</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'total_price_without_tax'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $total_price_without_tax</span><span class="syntaxkeyword">;
    </span><span class="syntaxdefault">                    </span><span class="syntaxkeyword">}
    </span><span class="syntaxdefault">                    $delivery_option_list</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$id_address</span><span class="syntaxkeyword">][</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'position'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $position </span><span class="syntaxkeyword">/</span><span class="syntaxdefault"> count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$value</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'carrier_list'</span><span class="syntaxkeyword">]);
    </span><span class="syntaxdefault">                </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span>

    Teraz potrzebne są kolejne zmiany, aby zmodyfikowany koszt wysyłki był wyświetlany w pozostałych miejscach. Czyli w historii zamówień w panelu klienta, w wysyłanych mailach oraz w BO w szczegółach zamówienia.


  4. Witam.

     

    Dałem zlecenie na rozwiązanie powyższego problemu w odpowiednim dziale. Niestety nie ma chętnych na wykonanie zlecenia. Dlatego sam napisałem trochę kodu, ale i tak potrzebuję pomocy, żeby to w końcu skończyć. Pomysły mile widziane.

     

    Ustaliłem gdzie w kodzie ustalany jest koszt wysyłki i tam się podpiąłem: classes/Cart.php, funkcja getTotalShippingCost(...).

     

    W moim przypadku dla wyłączonych podatków jest to linia 2410. Dodałem za nią taki kod:

     

    <span class="syntaxdefault">
                    </span><span class="syntaxcomment"># Domyślna ilość paczek 30-kilogramowych
    </span><span class="syntaxdefault">                $parcelCount </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">;
    </span><span class="syntaxdefault">                
                    </span><span class="syntaxcomment"># Pobiera calkowitą wartość zamówienia dla samych produktów oraz całkowitą wagę
    </span><span class="syntaxdefault">                $wholeOrder </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">getOrderTotal</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">false</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> Cart</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">ONLY_PRODUCTS</span><span class="syntaxkeyword">);
    </span><span class="syntaxdefault">                $wholeWeight </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">getTotalWeight</span><span class="syntaxkeyword">();
    </span><span class="syntaxdefault">                                
                    </span><span class="syntaxcomment"># Ustala ilość 30-kilogramowych paczek                
    </span><span class="syntaxdefault">                if </span><span class="syntaxkeyword">((</span><span class="syntaxdefault">$wholeWeight </span><span class="syntaxkeyword">/</span><span class="syntaxdefault"> 30</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">></span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">)
    </span><span class="syntaxdefault">                    if </span><span class="syntaxkeyword">((</span><span class="syntaxdefault">$wholeWeight </span><span class="syntaxkeyword">%</span><span class="syntaxdefault"> 30</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">)
    </span><span class="syntaxdefault">                        $parcelCount </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$wholeWeight </span><span class="syntaxkeyword">/</span><span class="syntaxdefault"> 30</span><span class="syntaxkeyword">);
    </span><span class="syntaxdefault">                    else
                            $parcelCount </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$wholeWeight </span><span class="syntaxkeyword">/</span><span class="syntaxdefault"> 30</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">+</span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">;
    </span><span class="syntaxdefault">                
                    </span><span class="syntaxcomment"># Ustala liczbę darmowych paczek
    </span><span class="syntaxdefault">                $freeCount </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$wholeOrder </span><span class="syntaxkeyword">/</span><span class="syntaxdefault"> 250</span><span class="syntaxkeyword">);
    </span><span class="syntaxdefault">                
                    </span><span class="syntaxcomment"># Zwraca koszt wysyłki z uwzględnieniem darmowych paczek                
    </span><span class="syntaxdefault">                if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$parcelCount </span><span class="syntaxkeyword">></span><span class="syntaxdefault"> $freeCount</span><span class="syntaxkeyword">)
    </span><span class="syntaxdefault">                $total_shipping </span><span class="syntaxkeyword">*=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$parcelCount </span><span class="syntaxkeyword">-</span><span class="syntaxdefault"> $freeCount</span><span class="syntaxkeyword">);
    </span><span class="syntaxdefault"> </span>

    Koszt wysyłki jest obliczany tak jak potrzebuję, jednak tylko dla jednego przewoźnika. Linię 

    <span class="syntaxdefault">$freeCount </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$wholeOrder </span><span class="syntaxkeyword">/</span><span class="syntaxdefault"> 250</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> </span>
     

    potrzebuję rozbić na 2 "if'y" - dla "Kurier przelew" oraz "Kurier pobranie". A to dlatego, że dla "Kurier pobranie" linia będzie miała postać:

    <span class="syntaxdefault">$freeCount </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$wholeOrder </span><span class="syntaxkeyword">/</span><span class="syntaxdefault"> 500</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> </span>
    .

    Stąd moje pytanie - jak w tym miejscu w kodzie pobrać identyfikator aktualnie zaznaczonej opcji wysyłki?

     

     

    Drugi problem występuje w 4 kroku przy wyborze wysyłki. Tutaj dla każdej opcji wysyłki wyświetlane są jednostkowe koszty wysyłki ustalone w BO. Natomiast musi być wyświetlany koszt zwracany przez zmienioną funkcję getTotalShippingCost().

     

    Drugie pytanie więc brzmi - jak w pliku order-carrier.tpl podmienić jednostkowy koszt na wynik funkcji getTotalShippingCost()?

     

    Dziękuję za wszelkie sugestie.


  5. Witam

     

    Mam do zaoferowania łatwe zlecenie dla kogoś, kto zna się na Prestashop.

     

    Wersja prestashop: 1.5.3.1

     

    Cel: zmodyfikować mechanizm naliczania kosztów wysyłki. Mają one być zależne od wagi oraz wartości zamówienia.

     

    Dokładny opis: Szczegółowe informacje potrzebne do zrealizowania tego zadania podałem już w tym poście - http://prestadesign.pl/konfiguracja-f12/koszt-dostawy-zalezny-od-wagi-oraz-wartosci-zamowienia-t4419.html

     

    Dodatkowe potrzebne informacje:

    - Koszt wysyłki i wartość zamówienia dla darmowej wysyłki dla poszczególnych zakresów wagowych muszą być konfigurowalne.

    - Aktualny koszt wysyłki musi być odpowiednio uaktualniany w bloku koszyka, w podsumowaniu zamówienia, ... czyli tam gdzie jest on wyświetlany.

     

     

    Proszę śmiało wysyłać propozycje na aintmark@gmail.com. Proszę o podanie zrealizowanych już projektów do prestashop dla potwierdzenia umiejętności. Jeśli zlecenie będzie wykonane sprawnie, będą kolejne. Będę potrzebował fakturę.

     

    Pozdrawiam


  6. Witam.

     

    Mam problem z konfiguracją kosztów wysyłki, które niestety zależne są od wagi oraz wartości zamówienia. Szukam rozwiązania od tygodni, ale na razie bez rezultatu.

     

    Dla dwóch opcji wysyłki - "kurier przelew" oraz "kurier pobranie" - ustawione są zakresy wagowe i ich koszty. Kruczek polega na tym, aby dla każdego zakresu wagowego ustawić różny koszt darmowej dostawy.

     

    A mianowicie:

    Kurier przelew - koszt 15zł; darmowa dostawa od 250zł ( paczka do 30kg )

    Kurier pobranie- koszt 20zł; darmowa dostawa od 500zł ( paczka do 30kg )

     

    Koszt dostawy dla kilku paczek:

    koszt dostawy - koszt dostawy jednej paczki * ilość paczek

    darmowa dostawa - wartość zamówienia dla darmowej dostawy * ilość paczek

     

     

    Kurier przelew:

     

    0-30kg - wysyłka 15zł; darmowa dostawa - od 250zł

    30-60kg - wysyłka 30zł; darmowa dostawa - od 500zł

    60-90kg - wysyłka 45zł; darmowa dostawa - od 750zł

    90-120kg - wysyłka 60zł; darmowa dostawa - od 1000zł

    ...

    itd. do 300kg

     

    Kurier pobranie:

     

    0-30kg - wysyłka 20zł; darmowa dostawa - od 500zł

    30-60kg - wysyłka 40zł; darmowa dostawa - od 1000zł

    60-90kg - wysyłka 60zł; darmowa dostawa - od 1500zł

    90-120kg - wysyłka 80zł; darmowa dostawa - od 2000zł

    ...

    itd. do 300kg

     

    Czy takie rozwiązanie jest w ogóle możliwe? Może gdzieś w kodzie źródłowym da się wstawić na twardo kilka warunków typu "if"? Czy konieczny jest moduł na zamówienie?

    Ja wypróbowałem już każdą opcję w prestashop, w tym różne reguły i ustawienia koszyka. Jeśli ktoś ma jakieś propozycje będę bardzo wdzięczny.

×