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 Licznik trwania promocji dla produktu - dodawanie skryptu

Dyskusja w 'Sklep internetowy eSklep' rozpoczęta przez użytkownika yankes, 18 Październik 2015.

?

Reflektowalibyscie?

  1. TAK

    100,0%
  2. NIE

    0 głos(ów)
    0,0%
  3. SPRZEDAZ W MOIM SKLEPIE JEST MI OBOJETNA

    0 głos(ów)
    0,0%
  1. yankes

    yankes Artysta

    Wiadomości:
    279
    Docenione treści:
    15
    Super sprawa byloby dodanie w karcie produktu widoku np pod czasem wysłki opcji "Okres trwania promocji" gdzie wyswietlala by sie data zakonczenia/do wyczerpania produktu...

    Co o tym sadzicie?
     
    zapachciszy lubi to.
  2. Grzesiek

    Grzesiek Centrum Pomocy home.pl

    Wiadomości:
    3 660
    Docenione treści:
    333
    Świetny pomysł, przekażę go jako sugestię do kierownika produktu. Chociaż wydaje się że to jest "bajer" a nie niezbędna funkcjonalność.
    Tymczasem sugeruję po prostu odnaleźć w sieci jakieś zegary online i wkleić ich kod w opis.
     
  3. Dominik

    Dominik Opiekun

    Wiadomości:
    176
    Docenione treści:
    27
  4. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    Dobra to ja Wam dam rozwiązanie problemu :)
    Zewnętrzny skrypcik który pokaże dokładnie ile dni zostało.
    Logujemy się na ftp sklepu tworzymy plik daty.php
    o zawartości
    Kod:
    <?php
    // Skrypt wyświetlający odstęp czasowy między dwoma datami (ilość dni od dnia .. do dnia..) w postaci graficznej możliwej do wstawienia w dowolne miejsce na stronie
    // Author  - Faal.pl
    // License - LGPL
    // Site: www.faal.pl
    // Darmowy do użytku komercyjnego i niekomercyjnego z zachowaniem informacji o autorze
    header("Content-type: image/png");
    function datka($data1, $data2)
    {
    return round(((strtotime($data2) - strtotime($data1))))/86400;
    }
    $data1=date("Y-m-d");
    $data2=$_GET[data];
    $img = imagecreate($_GET[w], $_GET[h]);
    $kolortla = imagecolorallocate($img, $_GET[rt], $_GET[gt], $_GET[bt]);
    $kolortextu = imagecolorallocate($img, $_GET[rf], $_GET[gf], $_GET[bf]);
    $czcionka = './TerminalDosis-Regular.ttf';
    $tresc = datka($data1, $data2);
    $tresc=  number_format ( $tresc, 0 );
    if ($tresc<"1") {
       $tresc="Promocja zakończona";
    }
    else {
    }
    imagettftext($img, $_GET[font], $_GET[k], $_GET[lm], $_GET[gm], $kolortextu, $czcionka, $tresc);
    imagepng($img); // Zwraca obraz
    
    // Użycie: daty.php?data=2015-10-29&font=12&w=140&h=20&k=0&lm=5&gm=20&rt=255&gt=255&bt=255&rf=0&gf=0&bf=0
    // Opis zmiennych w adresie:
    // data - data docelowa w formacie yyyy-mm-dd
    // font - wielkość czcionki
    // w - wielkość obrazka (width)
    // h - wielkość obrazka (height)
    // k - kąt pisania textu na obrazku
    // lm - odległość od lewej do początku pierwszego znaku
    // gm - odległość od góry do początku pierwszego znaku
    // rt - RED tła
    // gt - GREEN tła
    // bt - BLUE tła
    // rf - RED czcionki
    // gf - GREEN czcionki
    // bf - BLUE czcionki
    ?>
    
    Pobieramy plik czcionki z załącznika i rozpakowujemy go na serwer razem z plikiem daty.php
     

    Załączone pliki:

    Ostatnia modyfikacja: 20 Październik 2015
    yankes i Mariusz lubią to.
  5. yankes

    yankes Artysta

    Wiadomości:
    279
    Docenione treści:
    15
    jasne ze klent ktory widzi 2-3 dni do konca szybciej zareaguje niz na samo "PROMOCJA" bo promocja moze trwac i caly sezon :)
     
  6. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    Teraz aby wstawić do sklepu odliczanie ile dni zostało do danej daty wstawiamy w sklepie w opisie obrazek o linku
    http://naszserwer/daty.php?data=201...m=5&gm=20&rt=255&gt=255&bt=255&rf=0&gf=0&bf=0
    jako data podajemy datę do kiedy obowiązuje promocja, w i h to szerokość i wysokość jednak szerokość musi być nie mniejsza niż 140 bo jeśli zostanie do końca promocji 0 dni pojawi się napis Promocja zakończona :)
     
  7. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    @yankes zrób jak napisałem będziesz zmieniał sobie w linku tylko daty, a skrypt sam będzie generował odpowiednie obrazki :D
     
  8. yankes

    yankes Artysta

    Wiadomości:
    279
    Docenione treści:
    15
    link nie dziala, jakis tam mam prosty skrypcik ale jak masz pare K produktow to ciezko bedzie dopilnowac :)
     
  9. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    link musi prowadzić do Twojego serwera do pliku daty.php, ważna jest reszta linku.
    Myślę, że to rozwiązanie jest dobre z tego powodu, że:
    a. pokazuje ilość dni promocji,
    b. pokazuje po zakończeniu promocji napis Promocja zakończona
    a jeśli zamienimy
    Kod:
    if ($tresc<"1") {
    $tresc="Promocja zakończona";
    }
    
    na
    Kod:
    if ($tresc<"1") {
    $tresc="";
    }
    
    po zakończeniu promocji po prostu napis zniknie :)
    możemy też zamienić
    Kod:
    $tresc = datka($data1, $data2);
    
    na
    Kod:
    $tresc = 'Promocja trwa jeszcze '.datka($data1, $data2).' dni';
    
    wtedy jeśli to zrobimy i zamienimy wcześniejszy kod na ten o treści pustej mamy taką sytuację, że jeśli jest promocja to jest o niej informacja, jeśli jej nie ma ta informacja po prostu znika :)
    Więc do pilnowania jest dość proste :)
    Pamiętajmy też w takiej sytuacji o dopasowaniu szerokości obrazka.
     
    Ostatnia modyfikacja: 20 Październik 2015
  10. Dominik

    Dominik Opiekun

    Wiadomości:
    176
    Docenione treści:
    27
    Jesteś wielki. To napisz jeszcze tylko jak go zmienić, żeby byly godziny, minuty i sekundy. Proszeeeeeę
     
  11. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    a dziś już się nie wyrobię :) po za tym aby były minuty i sekundy musiałoby to być już w js i nie być obrazkiem, ponieważ jeśli człowiek wejdzie na produkt poczeka kilka sekund a obrazek będzie cały czas taki sam będzie coś nie tak.
    Dlaczego akurat tu jest obrazek a nie czysty tekst? dlatego aby nie rozjechał się na telefonie, jest obrazek i tyle musi działać, a js różnie jest interpretowany.
    Po za tym jeśli użylibyśmy js czyli skryptu działającego po stronie przeglądarki to nie byłby zsynchronizowany z danymi zapisanymi w php, tj, jeśli data i godzina na serwerze byłaby inna niż u klienta to godziny by się nie zgadzały :)
     
  12. Dominik

    Dominik Opiekun

    Wiadomości:
    176
    Docenione treści:
    27
    :cool: No dobrze, a same godziny?
     
  13. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    masz i z sekundami, ale potrzeba do tego więcej parametrów w adresie
    daty.php?rok=2015&miesiac=11&dzien=12&godzina=13&minuta=50&sekunda=10&font=12&w=395&h=30&k=0&lm=5&gm=20&rt=255&gt=255&bt=255&rf=0&gf=0&bf=0
    czyli dochodzi rok, miesiac, dzien, godzina, minuta, sekunda no i musi być szerszy obrazek :D
    Kod:
    <?php
    // Skrypt wyświetlający odstęp czasowy między dwoma datami (ilość dni od dnia .. do dnia..) w postaci graficznej możliwej do wstawienia w dowolne miejsce na stronie
    // Author  - Faal.pl, fragment generujący datę zaczerpnięty z sieci
    // License - LGPL
    // Site: www.faal.pl
    // Darmowy do użytku komercyjnego i niekomercyjnego z zachowaniem informacji o autorze
    header("Content-type: image/png"); //header
    $difference = mktime($_GET[godzina], $_GET[minuta], $_GET[sekunda], $_GET[dzien], $_GET[miesiac], $_GET[rok], 0) - time();
    if ($difference < 0) $time = -$difference; else $time = $difference;
    $days = floor($time/86400);
    $hours = floor(($time-($days*86400))/3600);
    $mins = floor (($time-($days*86400)-($hours*3600))/60);
    $secs = floor ($time-($days*86400)-($hours*3600)-($mins*60));
    if ($difference <= 0) {
    $text= 'Od zakończenia promocji upłyneło: ';
    } else {
    $text='Do końca promocji zostało: ';
    }
    $text1=$days . ' dni ' . $hours . ' godzin ' .  $mins . ' minut ' . $secs . ' sekund';
    $img = imagecreate($_GET[w], $_GET[h]);
    $kolortla = imagecolorallocate($img, $_GET[rt], $_GET[gt], $_GET[bt]);
    $kolortextu = imagecolorallocate($img, $_GET[rf], $_GET[gf], $_GET[bf]);
    $czcionka = './TerminalDosis-Regular.ttf';
    imagettftext($img, $_GET[font], $_GET[k], $_GET[lm], $_GET[gm], $kolortextu, $czcionka, $text.$text1);
    imagepng($img);
    // Użycie: daty.php?rok=2015&miesiac=11&dzien=12&godzina=13&minuta=50&sekunda=10&font=12&w=395&h=30&k=0&lm=5&gm=20&rt=255&gt=255&bt=255&rf=0&gf=0&bf=0
    // Opis zmiennych w adresie:
    // rok, miesiac, dzien, godzina, minuta, sekunda - podawane liczbowo
    // font - wielkość czcionki
    // w - wielkość obrazka (width)
    // h - wielkość obrazka (height)
    // k - kąt pisania textu na obrazku
    // lm - odległość od lewej do początku pierwszego znaku
    // gm - odległość od góry do początku pierwszego znaku
    // rt - RED tła
    // gt - GREEN tła
    // bt - BLUE tła
    // rf - RED czcionki
    // gf - GREEN czcionki
    // bf - BLUE czcionki
    ?>
    
    Fragment dotyczący liczenia godzin zaczerpnąłem z sieci aby było szybciej, a dużo tego w fragmentach w sieci jest :D
     
  14. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    Efekt działania ostatniego skryptu:

    daty.png
     
    Mariusz lubi to.
  15. yankes

    yankes Artysta

    Wiadomości:
    279
    Docenione treści:
    15
    niby spoko ale patrzac na to z perspektywy gdy sie ma pare tysiecy artykulow z czego z 500 w promocji to sie nie upilnuje..
     
  16. czara

    czara Stały bywalec

    Wiadomości:
    38
    Docenione treści:
    2
    Panowie, czy coś się zmieniło w sprawie dodania do sklepu licznika czasu trwania promocji? Dość często wrzucam promocje weekendowe i taki licznik byłby jak najbardziej wskazany. Jest może już jakaś aplikacja? Mam kilkadziesiąt jak nie kilak set produktów w promocji wiec dodawanie do kazdej pozycji osobnego licznika nie wchodzi w grę.
    Myślę ze takie rozwiązanie powinno być obowiązkowo wyświetlane przy tworzeniu promocji i sporo osób na pewno z niego skorzysta.
    Podstawowy liczni chociaż jak ten:
    http://demo.shopgadget.eu/bic-extra-life-maszynka-do-golenia--12-nozykow
     
  17. LukaszC

    LukaszC eCommerce Team home.pl

    Wiadomości:
    973
    Docenione treści:
    108
  18. czara

    czara Stały bywalec

    Wiadomości:
    38
    Docenione treści:
    2
    Dzięki ŁukaszC za odpowiedz ale to nie rozwiązuje problemu gdy w promocji jest np. 50 produktów lub chcemy zrobić promocje np. weekendową. W ogóle jest szansa, że taki licznik przy każdym produkcie w promocji pojawi sie w clickshopie?
     
  19. LukaszC

    LukaszC eCommerce Team home.pl

    Wiadomości:
    973
    Docenione treści:
    108
    @czara nie przewidujemy obecnie takiej funkcjonalności w sklepie, ale możesz skontaktować się bezpośrednio do twórcy aplikacji na adres email help@flex.agency w celu dopytania się czy jest w stanie rozwiązać Twoją sytuację.
     
  20. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    na upartego myślę, że dałoby się podczepić podobny jak mój licznik pod dane jakie wpisujecie w sklepie w miejsce do kiedy promocja :) a ukrywanie go jeśli czas minął lub nie ma promocji wcale :) jednak wymagałoby to użycia js zamiast php, więc jeśli ktoś w znający js miałby czas mógłby to szybko ogarnąć :)
     
    Mariusz lubi to.

Poleć forum znajomym