1. Forum używa plików Cookies. Dowiedz się więcej o celu ich używania i możliwości zmiany ustawień Cookies w przeglądarce. Czytaj więcej...

ROZWIĄZANE Koszt wysyłki na karcie produktu

Dyskusja w 'Sklep internetowy eSklep' rozpoczęta przez użytkownika rockbottom, 3 Marzec 2016.

  1. Grzesiek

    Grzesiek Centrum Pomocy home.pl

    Wiadomości:
    3 660
    Docenione treści:
    333
    Rozumiem Cię, ale jak wspomniałem, koszty dostawy od masz wprowadzone na sztywno dla produktu, za pomocą pola: cena w innych sklepach. A to pole nie jest powielane na warianty, bo wariant jest OPCJĄ produktu bazowego. To nie ma znaczenia w sumie, po prostu pole jest z góry ustalone dla produktu a nie wariantu. Dlatego też wybierając odpowiednio próbkę albo cały słoik, mechanizm zawsze pobierze sobie cenę produktu bazowego (cenę w innych sklepach).

    Dlatego aby to o co prosisz zadziałało, musielibyśmy stworzyć skrypt JS, taki, jak np. ma topsanit.pl (nawet w firebugu widać, że jego rozwiązanie jest inne).

    Ad 1)


    Kod:
    #box_productfull .basket .otherprice em {
        font-weight: bold;
    }
    Ad 2) Nie mogę Ci pomóc, regulamin sklepu zabrania ingerować w to miejsce :)
     
    domowykosmetyk lubi to.
  2. domowykosmetyk

    domowykosmetyk Kandydat

    Wiadomości:
    104
    Docenione treści:
    3
    Dobre i to.
    Dziękuję. Może pomoże mi ktoś, kto nie jest pracownikiem home :)

    Na każdej karcie produktu wprowadziłam cenę stosowną i tam, gdzie nie mam próbek (zestawy) tam cena jest od 13,00zł.
     
  3. Grzesiek

    Grzesiek Centrum Pomocy home.pl

    Wiadomości:
    3 660
    Docenione treści:
    333
    Plik product/index.tpl --> około 130 wiersza mamy otherprice co odpowiada za cenę w innym sklepie,


    Kod:
      {if floatval($product->product->other_price)}
                                                            <div class="otherprice">
                                                                <span class="otherprice-name">{translate key="Price in other stores"}:</span>
                                                                <em>{currency value=$product->product->other_price ceil=2}</em>
                                                            </div>
                                                         
    <div class="otherprice">
    <span class="otherprice-name">Koszty dostawy próbki, od:</span>
    <em>4 zł</em>
    </div>
    {/if}
    
    
    Jak widać skopiowałem div class, wprowadzając na sztywno informacje. To spowoduje, że cena zostanie powielona, przy czym cena próbki jest wpisana na sztywno. Minus jest taki, że pojawi się to na każdej karcie produktu, w tym zestawów, gdzie nie masz próbek. Ale pojawi się tylko wtedy gdy będzie dla produktu podana cena w innym sklepie. Prostym rozwiązaniem było by po prostu odwrócić znaczenie pól, aby na sztywno wpisać dostawę, a w pole cena w innych sklepach podać cenę próbki. Ale wtedy uzależnimy wyświetlanie jednego od drugiego.

    Możemy też tego dodatkowego DIVA wkleić np. nad {if... albo po zamknięciu .../if} wtedy będzie on wyświetlał się zawsze. I to by było to czego szukamy, pod warunkiem, że krem w słoiku lub zestaw, ma te same koszty wysyłki. Wtedy, zgodnie z tym co napisałem na początku dyskusji, na sztywno wprowadzamy na kartę koszt dostawy, a polem Cena w innych sklepach (zmienionym na Cena dostawy próbki) wpisujemy na wybranych produktach koszty dostawy próbki. Pojawią się więc 2 koszty dostawy.
     
  4. domowykosmetyk

    domowykosmetyk Kandydat

    Wiadomości:
    104
    Docenione treści:
    3
    Grzesiek, śliczne dzięki. :) :)

    To jest własny skrypt JS?
    Żebym głupoty nie zrobiła. Mogę to zrobić dopiero wieczorem. Ale jak coś to pisz. Oj, już coraz bardziej podoba mi się :p
     
  5. Grzesiek

    Grzesiek Centrum Pomocy home.pl

    Wiadomości:
    3 660
    Docenione treści:
    333
    Nie, to co ja wkleiłem to jest Plik product/index.tpl --> około 130 wiersza w Edycji zaawansowanej.
    Tylko tak jak napisałem, trzeba się zastanowić co na sztywno wpisać a co tylko dla produktów z próbkami. Jeśli słoik i zestaw mają ten sam koszt dostawy, to myślę że na w/w podstawie sama wpadniesz na rozwiązanie które Ci się spodoba.
     
  6. domowykosmetyk

    domowykosmetyk Kandydat

    Wiadomości:
    104
    Docenione treści:
    3
    Dzięki.
    Niekoniecznie słoik i zestaw będą miały tę samą wagę.
    Poczta Polska paczki do kg ma 13zł a 1-2kg 15zł. Jeden słoik (każdy) mieści się w wadze do kg, ale zestawy już nie wszystkie.
    Coś wymyślę. Szkoda mi wyrzucac próbki z produktów. Choc jakiś marketingoweic zarzucił mi, że zachecam klienta do tańszych zakupów. Ja znowu wychodzę z założenia, że lepiej żeby kupił próbkę niż nic.

    Wkleiłam kod dla pogrubienia czcionki i nie zadziałało.
    #box_productfull .basket .otherprice em {
    font-weight: bold;
    }
    czcinka nadal cieńka. Dobrze że duża pozostała.

    W ogóle to gubię się. Zmiany robię na kopii sklepu. Dlaczego nie z każdej opcji podglądu widzę wprwadzone zmiany?
     
  7. Grzesiek

    Grzesiek Centrum Pomocy home.pl

    Wiadomości:
    3 660
    Docenione treści:
    333
    Po utworzeniu kopii skórki, musisz ją ustawić jako aktywną (Konfiguracja --> wygląd --> aktywny styl graficzny) i zawsze na górze pojawia się przycisk Ustaw jako aktywną. Możesz też przejść do galerii stylów i tam podejrzeć sobie wszystkie nasze i Twoje kopie skórki, mając do nich pełny dostęp, możliwość edycji i podglądu. Możesz więc każdą poprawkę wprowadzać w takiej nieaktywnej kopii skórki i podglądać zmiany, dopiero później przenosić je do właściwej kopii lub aktywować nową kopię (ustawić ją aktywną). W ten sposób możesz stworzyć wiele szablonów, np. gotowca na święta, na wakacje, na dzień kobiet (przy okazji wszystkiego dobrego życzę) i aktywować je sobie kiedy zechcesz. Zapisuje się wszystko, od układu modułów, bo zawartość slaiderów, wygląd, itp.

    W/w kod wklejasz we własny kod CSS aktywnej skórki.
     
  8. domowykosmetyk

    domowykosmetyk Kandydat

    Wiadomości:
    104
    Docenione treści:
    3
    Grubsza czcionka zadziałała. Pewnie mój komp. długo myśłi.

    Wieczoem zajmę się tą drugą obcją. potrzebuję do tego ciszy.
    .
     
  9. Hej, cześć, czołem

    nie wiem czemu, ale nie przychodziły mi powiadomienia na e-mail, że Grzesiek o mnie wspomniał w tym wątku. Już postaram się wytłumaczyć jak wprowadziliśmy koszty dostawy na stronie produktu na www.topsanit.pl np. http://www.topsanit.pl/umywalka-nablatowa-bathco-Toulouse-4037 lub http://www.topsanit.pl/pl/p/Roca-PRINCESS-N,-Wanna-170-x-75-cm-z-uchwytami,-A220270001/2794

    Uwaga! Jako, że są to zmiany nie wspierane przez home.pl przed ich wprowadzaniem najlepiej skopiować istniejący styl graficzny, by w razie błędów można było łatwo przywrócić funkcjonowanie sklepu.

    Cały problem faktycznie zaczynał się od ustawienia, które nie było by sztywno dopisane do produktów, ale 'inteligentnie' reagowało na jego typ. Moje modyfikacje zaczęły się od dodania 'przestrzeni' na stronie, więc w Konfiguracja > Wygląd > Edytor HTML/CSS w katalogu scripts > product > index.tpl wciskamy CTRL+F i wpisujemy 'delivery' i klikamy znajdź. Na żółto powinno podkreślić nam taki fragment kody (dla ułatwienia będzie to ok. 55 lini):
    Kod:
    {if $product->canBuyStock() && 1 == $skin_settings->productdetails->time && $product->defaultStock->delivery}
                                                             <div class="row delivery">
                                                                    <span class="first">{translate key="Shipment date:"}</span>
                                                                    <span class="second">{$product->defaultStock->delivery->translation->name|escape}</span>
                                                                </div>
                                                            {/if}
    Po tym fragmencie dodajemy nasz nowy kod i całość powinna wyglądać tak:
    Kod:
    {if $product->canBuyStock() && 1 == $skin_settings->productdetails->time && $product->defaultStock->delivery}
                       <div class="row delivery">
                             <span class="first">{translate key="Shipment date:"}</span>
                             <span class="second">{$product->defaultStock->delivery->translation->name|escape}</span>
                       </div>
                       {/if}
                       {if $product->defaultStock->getWeight()}
                       <div class="row cod">
                             <span class="first">Koszt dostawy już od</span>
                             <span class="second deliv-cost-result"></span>
                                                                  
                       </div>
                       {/if}
    Teraz zjeżdżamy na dół pliku i powiedzmy, że poniżej tego fragmentu:
    Kod:
    {include file='switch.tpl'}
    wklejamy ten kod (u mnie jest to ok. 442 linia)
    Kod:
    <script>var WPcod = '{$product->defaultStock->getWeight()}';</script>
    {if $product->defaultStock->getSpecialOfferPrice() && $product->defaultStock->getSpecialOfferPrice() != $product->defaultStock->getPrice()}
        <script>var PPcod = '{$product->defaultStock->getSpecialOfferPrice()}';</script>
    {else}
        <script>var PPcod = '{$product->defaultStock->getPrice()}';</script>
    {/if}
    Zapisujemy całość. Następnie wracamy do Konfiguracja > Wygląd > Własny skrypt JS i wklejamy tutaj nasz mechanizm:
    Kod:
    $(document).ready(function() {
      CODValue();
    });
    function CODValue() {
      var deliveryCost = calculateDeliveryCost(WPcod, PPcod);
      if(deliveryCost != 0) {
          $('span.deliv-cost-result').text(deliveryCost + ' zł');
      }else {
        $('span.deliv-cost-result').addClass('cod-free');
        $('span.deliv-cost-result').text('Darmowa dostawa');
      }
    }
    
    function calculateDeliveryCost(WPcod, PPcod) {
    
      if(PPcod >= 1234) {
        return 0;
      }
      var weights = [1,  a1, a2, a3, a4, a5, a6, a7, a8, a9];
      var prices  =  [0, b1, b2, b3, b4, b5, b6, b7, b8, b9];
    
      for(var i = 0; i < weights.length; i++) {
        if(WPcod < weights[i]) {
          return prices[i];
        }
      }
      return 189;
    }
    W zasadzie to tyle, jeśli chodzi o kodowanie. Mechanizm ten opiera się o WAGĘ i CENĘ produktu. Darmowa dostawa w tym przypadku następuje przy produktach o cenie >= 1234 zł LUB jeśli waga produktu jest równa do 1kg, czyli np ustalamy, że produktom takim wpisujemy stałą wagę, 0,1kg. Jak łatwo się domyślić my wykorzystaliśmy wagę produktu tylko do kosztów dostawy, ponieważ rzeczywistą wagę w listach przewozowych (paczki, palety) podajemy ręcznie podczas tworzenia listu. Najgorszą rzeczą do wymyślenia jest tabela wagowa, powyżej przedstawiona w tablicach var weights (wagi) i var prices (koszt dostawy). Jeśli waga jest między (1,a1) to koszt b1, jeśli waga jest między (a1,a2), to koszt b2 itd.

    Specjalistów-developerów proszę o wyrozumiałość :p

    Pozdrawiam serdecznie!
     
    Grzesiek i Mariusz lubią to.
  10. Grzesiek

    Grzesiek Centrum Pomocy home.pl

    Wiadomości:
    3 660
    Docenione treści:
    333
    Fiu Fiu. No to zapraszam do testów, w wolnej chwili sprawdzę to także i potwierdzę.
    Wygląda nieźle, kawał dobrej roboty. Co do szczegółów jak tabela wagowa, nie przesadzajmy, żeby biznes się kręcił trzeba trochę pokombinować :D
    Zresztą koszty dostawy też wymagają starannego przeliczenia, nie wszyscy mają tak łatwo jak Allegro InPost, gdzie jedna paczka załatwia 3 gabaryty :D
     
  11. pavali

    pavali Pomocnik

    Wiadomości:
    116
    Docenione treści:
    7
    @adwlodar, świetne rozwiązania !!!

    aby nie zakładać kolejnego tematu zdradz jeszcze jak wykonać te dwa elementy pokazane na screenie:
    [​IMG]
     
  12. pavali

    pavali Pomocnik

    Wiadomości:
    116
    Docenione treści:
    7
  13. pavali

    pavali Pomocnik

    Wiadomości:
    116
    Docenione treści:
    7
    pomoże ktoś ?
     
  14. pavali

    pavali Pomocnik

    Wiadomości:
    116
    Docenione treści:
    7
    jak mam wprowadzić koszt dostawy aby się pokazywał na karcie produktu, mam sam napis koszt dostawy od
    [​IMG]
     
  15. Grzesiek

    Grzesiek Centrum Pomocy home.pl

    Wiadomości:
    3 660
    Docenione treści:
    333
    Jeśli wprowadziłeś metodę @adwlodar no to pytanie skieruj do pomysłodawcy :)
    Ja póki co zatrzymałem się na etapie wprowadzenia tekstu i wartości w .tpl na sztywno, lub wykorzystania pola Cena w innych sklepach (zmiana frazy).
     
  16. pavali

    pavali Pomocnik

    Wiadomości:
    116
    Docenione treści:
    7
    ostatni raz był miesiąc temu na forum może macie do niego numer tel ? :p
     
  17. Grzesiek

    Grzesiek Centrum Pomocy home.pl

    Wiadomości:
    3 660
    Docenione treści:
    333
    :D atakuj jego sklep... złóż fake zamówienie, udawaj niezadowolonego klienta, a potem powiedz o co chodzi :)
     
  18. pavali

    pavali Pomocnik

    Wiadomości:
    116
    Docenione treści:
    7
    Napisałem, i dostałem wiadomość, że informatyk sklepu ma zajrzeć na forum, ale narazie klapa eh ;/
     
  19. pavali

    pavali Pomocnik

    Wiadomości:
    116
    Docenione treści:
    7
    Według mnie to jedna z wazniejszych rzeczy przy sprzedazy wysyłkowej ile za wysyłke.. ale zero rozwiąń zaproponowanych przez home
     
  20. Grzesiek

    Grzesiek Centrum Pomocy home.pl

    Wiadomości:
    3 660
    Docenione treści:
    333
    @pavali to nie nasza złośliwość, myślę, że zdajesz sobie sprawę, że metod na prezentację kosztów dostawy jest naprawdę wiele. W tym wypadku mówimy o konkretnym mechanizmie i modyfikacji sklepu, której po prostu nie podejmujemy się. Temat został zgłoszony jako sugestia, mi się bardzo podoba, ale czy i kiedy byłby wdrożony globalnie, takich informacji nie mam. Szczerze powiem że sprawdzałem to co wkleił @adwlodar i mi także pojawia się sam komunikat. Widać jest więcej zmiennych/warunków od których pojawienie się tego komunikatu zależy.
     

Poleć forum znajomym