wdrożenia PrestaShop

porownanie dat wysylki

  • 10 Odpowiedzi
  • 3260 Wyświetleń

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

*

Offline design4VIP

  • user
  • Mieszkaniec
  • *****
  • 3,866
  • 131
    • design4VIP z innej strony...
  • PrestaShop: PS
  • Status: Programista
porownanie dat wysylki
« dnia: Grudzień 02, 2012, 06:31:28 pm »
witam, tworze malego kombajna powiazanego z data wysylki. jezeli chodzi o wybor daty itp. jakos z trudem sobie poradzilem, ale poradzilem ;) wszystko dziala po stronie atrybutow. i ok, tutaj jeszcze Klient mial zyczenie powiazania roznych kalendarzy dla roznych produktow, jedne z mozliwoscia wysylki dzisiaj, inne za min 2-3 dni.... koszmar, ale juz opanowany. teraz inna kwestia mnie meczy. mianowicie, chcialbym w podswumowaniu koszyka wyrzucic, w momencie pojawienia sie roznych dat, informacje, ze daty sa rozne i czy aby tak ma byc napewno czy chcialby zmienic na najblizsza, w ktorej wszystkie produkty wybrane beda mogly byc wyslane razem, no i tutaj ewentualnie kolejny kalendarz.

jako, ze atrybuty mam zwracane jako ciag stringa, wyciagnalem daty, zamienilem stringa na date i..... no i mam powyciagane daty ale nie wiem teraz jak je porownac i ewentualnie wyrzucic informacje.

odczyt daty ze stringa
{foreach from=$products item=product name=productLoop}


{foreach explode(",",$product.instructions_id) as $instr}

{if $instr=='51'}   //kalendarz dla produktow na dzisiaj
{assign var='date_f' value=substr(strstr($product.instructions,"<span class=awp_mark_51>"), 24, 18)}
{assign var='date_ff' value=str_replace('~','',$date_f)}
{date('d-m-Y H:i', strtotime($date_ff))}


{elseif $instr=='52'}    //kalendarz produktow poniejszy termin
{assign var='date_g' value=substr(strstr($product.instructions,"<span class=awp_mark_52>"), 24, 18)}
{assign var='date_gg' value=str_replace('~','',$date_g)}
{date('d-m-Y H:i', strtotime($date_gg))}
{/if}

{/foreach}


{/foreach}

przykladowy string $product.instructions

<b>Prezent - dostawa:</b> <span class=awp_mark_52>04-12-2012   ~12:00</span class=awp_mark_52><br />
<b>Imię i nazwisko:</b> <span class=awp_mark_47>szfZXc</span class=awp_mark_47><br />
<b>Ulica:</b> <span class=awp_mark_48>asdfasdf</span class=awp_mark_48><br />
<b>Kod i miejscowość:</b> <span class=awp_mark_49>asdfasdfsdfasdf</span class=awp_mark_49><br />
<b>Telefon:</b> <span class=awp_mark_50>34ewerwwr</span class=awp_mark_50>


mysle, ze najprosciej byloby zebrac wyrzucone daty w tablice i porownac wtedy wpisy, no i tu rodzi sie pytanie, jak to wrzucic w tablice ;)


przyklad http://kwiatowaprzesylka.pl/ (okalendarzowane dwie nowosci z lewej kolumny)
design4VIP z innej strony...

*

Offline mario

  • Mieszkaniec
  • *****
  • 640
  • 0
  • Płeć: Mężczyzna
Integracja wf-mag presta
freelancer

*

Offline design4VIP

  • user
  • Mieszkaniec
  • *****
  • 3,866
  • 131
    • design4VIP z innej strony...
  • PrestaShop: PS
  • Status: Programista
Odp: porownanie dat wysylki
« Odpowiedź #2 dnia: Grudzień 03, 2012, 09:08:31 am »
fajne, ale tylko w chwili uzycia 2 dat. a co w momencie jak w koszyku znajdzie sie wiecej niz np 4 produkty z datami....
design4VIP z innej strony...

*

Offline mario

  • Mieszkaniec
  • *****
  • 640
  • 0
  • Płeć: Mężczyzna
Odp: porownanie dat wysylki
« Odpowiedź #3 dnia: Grudzień 03, 2012, 10:02:51 am »
wrzucasz do tablicy i ustawiasz wskaznik po porownaniu, potem petelka z filtrem na wskaznik - oczywiscie w js
daty przekazesz przez php, moga byc jako tag
opakowac to w funkcje js
jesli klient wybierze wczesniejsza, to moze byc poinformowany, ze dany towar bedze dostepny w pozniejszym terminie.
pozostaje kwestia dodatkowych kosztow transportu, ew. rozbicia zamowienia na kilka
albo poinformowac klienta o tym aby nie zamawial tego towaru w tym zamowieniu, tylko zeby zrobil nastepne, sam rozbil zamowienie

inna opcja
zrobic skrypcik rozbijajacy koszyk na kilka, w zaleznosci od daty wybranej dostawy, oczywiscie w momencie generowania zamowienia

moim zdaniem takie rozwiazanie jakie proponujesz bedzie zawsze problematyczne aby zrobic to z automatu, nie przewidzisz wszystkich zachowan
chyba prosciej by bylo aby klientowi podac tylko informacje, a klient niech decyduje co i jak, moze zlozyc kilka zamowien jak mu sie spieszy.
« Ostatnia zmiana: Grudzień 03, 2012, 10:19:10 am wysłana przez mario »
Integracja wf-mag presta
freelancer

*

Offline design4VIP

  • user
  • Mieszkaniec
  • *****
  • 3,866
  • 131
    • design4VIP z innej strony...
  • PrestaShop: PS
  • Status: Programista
Odp: porownanie dat wysylki
« Odpowiedź #4 dnia: Grudzień 03, 2012, 10:25:40 am »
nie za bardzo o to mi chodzi. kwestia jest taka. w kazdym produkcie jest kalendarz z wyborem daty wysylki. kwiatki moga byc dostarczone przy zamowieniach do 16 tego samego dnia, po 16 nastepnego a prezenty min 2 dni po zlozeniu zamowienia.

to wszystko mam juz opanowane i kalendarze przy produktach chodza jak trzeba, wszytsko sie ladnie zapisuje jako atrybut i ok.

prodblem pojawias  sie w momencie podsumowania zamowienia, zby zwrocic uwage klientowi, jezlei nie zauwazy i w czasie zamowienia zamowi kwiatki na dzis a prezent z automatu zostanie wyslany za 2 dni. wiec tutaj daje wybor (chce dac) klientowi, zeby okreslil, czy taki uklad mu pasuje czy nie i ewentualnie date wyslania kwiatkow przestawia na najwczesniejsza date dostepnosci prezentu aby wszystko dotarlo w jednym momencie.

"wrzucasz do tablicy i ustawiasz wskaznik po porownaniu" no i wlasnie o to mi chodzi, jak to wszystko wrzucic w tablice i pozniej porownac daty, najlepiej ze zbadaniem ' jezeli to samo imie i nazwisko oraz adres', a w tej kwestii, jezeli bede w stanie wrzucic daty w tablice to juz sobie poradze.
design4VIP z innej strony...

*

Offline mario

  • Mieszkaniec
  • *****
  • 640
  • 0
  • Płeć: Mężczyzna
Odp: porownanie dat wysylki
« Odpowiedź #5 dnia: Grudzień 03, 2012, 10:52:28 am »
jqery, obudowujesz grupe elementow w diva, skrypt z tej grupy odczytuje elementy i wrzuca do tablicy,
wyborem (onClick) , klient aktywuje funkcje js ktora na tej tablicy wykonuje dzialanie i zwraca jakis wynik, ktory wyswietlasz, ewentualnie rowniez ustawia zmienna do przekazania formularzowi.
przyklad:
http://www.sitepoint.com/forums/showthread.php?626062-jQuery-Creating-array-from-selectors

jesli chodzi o weryfikacje adresow, to niestety, ale presta nie obsluguje czegos takiego, zamowienie jest generowane tylko na jeden adres, jeden odbiorca, jedna platnosc.

Wiekszosc klientow sugeruje sie allegro, amazonem, ale implementacja tego MUSI byc obslugiwana przez silnik

Duze portale generuja zamowienie grupowe i w nim mozesz miec kilka zamowien, i jedna platnosc za grupe.
« Ostatnia zmiana: Grudzień 03, 2012, 11:50:30 am wysłana przez mario »
Integracja wf-mag presta
freelancer

*

Offline design4VIP

  • user
  • Mieszkaniec
  • *****
  • 3,866
  • 131
    • design4VIP z innej strony...
  • PrestaShop: PS
  • Status: Programista
Odp: porownanie dat wysylki
« Odpowiedź #6 dnia: Grudzień 03, 2012, 12:29:10 pm »
naprawde wielkie dzieki za chec pomocy, ale dalej sie nie rozumiemy...

jak wejdziesz na http://kwiatowaprzesylka.pl wybierzesz produkt z nowosci (lewa kolumna) zastosowane sa w atrybutach tak data wysylki jak i adres odbiorcy. prestowski adres odbiorcy w ogole nie jeest brany pod uwage.

atrybuty zwracaja sie jako ciag stringa podanego wyzej. z niego przez wurzucanie, wycinanie ciagow itp wyciagam sobie tak date jak i adres i imie i nazwosko, ktore w chwili obecnej wyswietlone sa w podsumowaniu zamowienia ponizej koszyka. wiec mam linijke: data imie adres dla kazdego z przedmiotow. i teraz pytanie jak zrobic z tego tablice aby kazda linijka byla jednym row. pozniej badanie to tyko data!=data jezeli imie==imie itd. juz jako stringi, wiec tutaj nie potrzebuje zadnego zastosowania wiekszych funkcji czyprzebudowy calego koszyka.

chodzi mi tylko o zbudowanie tablicy z kazdej z linijek przedmiotu.

w chwili obecnej calosc wyswietlenia ze stringa podane wyzej potrzebnych danych wyglada tak
{foreach from=$products item=product name=productLoop}


{foreach explode(",",$product.instructions_id) as $instr}

{if $instr=='51'}
<p>
{assign var='date_f' value=substr(strstr($product.instructions,"<span class=awp_mark_51>"), 24, 18)}
{assign var='date_ff' value=str_replace('~','',$date_f)}
{assign var='date' value=date('d-m-Y H:i', strtotime($date_ff))}
{$date}
{assign var='name_f' value=substr(strstr($product.instructions,"<span class=awp_mark_47>"), 24, 100)}
{assign var='name' value=substr($name_f, 0, strpos($name_f, "<br />"))}
imie: {$name}
{assign var='adres_f' value=substr(strstr($product.instructions,"<span class=awp_mark_48>"), 24, 100)}
{assign var='adres' value=substr($adres_f, 0, strpos($adres_f, "<br />"))}
adres: {$adres}
</p>
{elseif $instr=='52'}
<p>
{assign var='date_g' value=substr(strstr($product.instructions,"<span class=awp_mark_52>"), 24, 18)}
{assign var='date_gg' value=str_replace('~','',$date_g)}
{assign var='date' value=date('d-m-Y H:i', strtotime($date_gg))}
{$date}
{assign var='name_g' value=substr(strstr($product.instructions,"<span class=awp_mark_47>"), 24, 100)}
{assign var='name' value=substr($name_g, 0, strpos($name_g, "<br />"))}
imie: {$name}
{assign var='adres_g' value=substr(strstr($product.instructions,"<span class=awp_mark_48>"), 24, 100)}
{assign var='adres' value=substr($adres_g, 0, strpos($adres_g, "<br />"))}
adres: {$adres}
</p>
{/if}


{/foreach}


{/foreach}
design4VIP z innej strony...

*

Offline mario

  • Mieszkaniec
  • *****
  • 640
  • 0
  • Płeć: Mężczyzna
Odp: porownanie dat wysylki
« Odpowiedź #7 dnia: Grudzień 03, 2012, 01:06:32 pm »
chm..
ok
wiec wykorzystaj linki ktore ci podalem, odpowiednie wartosci atrybutow wrzuc do tablicy z nazwanymi indeksami, moga byc od nazwy atrybutu (post wyzej - po atrybutach), daty nie porownasz po stringach w js niestety musisz konwertowac (mniejsza, wieksza), tylko gdy sa takie same
mozesz rowniez zwrocic date w standardzie js ze skryptu php jako definiowany atrybut, on nie bedzie wyswietlany tylko pobierany przez funkcje js do porownania

to tyle ile moge pomoc
Integracja wf-mag presta
freelancer

*

Offline design4VIP

  • user
  • Mieszkaniec
  • *****
  • 3,866
  • 131
    • design4VIP z innej strony...
  • PrestaShop: PS
  • Status: Programista
Odp: porownanie dat wysylki
« Odpowiedź #8 dnia: Grudzień 03, 2012, 02:11:25 pm »
widzisz, wsyztko by bylo fajnie, ale te atrybuty to tak naprawde nie atrybuty tylko zebrany do kupy tekst. pozniej przez forach ustalam i wycianm wartosci dla danych produktow i dopiero uzyskuje poszczegolne zmienne. jednak wyswietlaja sie tylko z petli i wlasnie te odczyty chce ponownie zebrac z zmienne tablicowe. czyli ponawiam pytanie, jak ze zmiennych odczytanych w petli foreach ponownie zrobic tabele array
design4VIP z innej strony...

*

Offline design4VIP

  • user
  • Mieszkaniec
  • *****
  • 3,866
  • 131
    • design4VIP z innej strony...
  • PrestaShop: PS
  • Status: Programista
Odp: porownanie dat wysylki
« Odpowiedź #9 dnia: Grudzień 03, 2012, 07:44:17 pm »
z uzyciem tutka z drugiego linka, z malymi modyfikacjami otrzymalem juz tablice taka jaka chcialem, no prawie, bo jednowymiarowke, w chwili obecnej mam juz tablice array($data, $imie, $adres) ale dla poszczegolnych przedmiotow. jak z tego teraz zrobic wielowymiarowa?
jak w smarty uzywkac cos na wzor phpowego 'for' ? bo to by zalatwilo sprawe.
design4VIP z innej strony...

*

Offline mario

  • Mieszkaniec
  • *****
  • 640
  • 0
  • Płeć: Mężczyzna
Odp: porownanie dat wysylki
« Odpowiedź #10 dnia: Grudzień 03, 2012, 08:46:33 pm »
np.dla daty dodajesz elementy do tablicy
$array['data'][0], $array['data'][1]
lub $tablica['data']['stara'], $tablica['data']['nowa'], nowsza, najnowsza itd
potem foreach na $tablica['data'] i przechwytujesz pierwszy lub ostani klucz dla ktorego spelniony jest warunek i wg tego wyswietlasz odpowiedni przypisany do klucza tekst (akcja) np. w <span></span>
Integracja wf-mag presta
freelancer