Zamówienie w kilku częściach (krokach)

myszo

Avatar: myszo

2014-03-03 10:16

Witam serdecznie.
W podstawowej wersji zamówienie realizowane jest w 3 częściach:
step-1 - Koszyk.
step-2 - Zamówienie - dane adresowe, wybór sposoby płatności, itd.
step-3 - Wyświetlenie i wysłanie zamówienia.

Chciałbym zrobić tak, aby zamówienie realizowane było w 5 częściach:
step-1 - Koszyk.
step-2 - Zamówienie część 1 - dane adresowe, wybór sposoby płatności, itd.
step-3 - Zamówienie część 2 - dodatkowe pola tekstowe, które nie muszą być widoczne w panelu administracyjnym, ale które będą przesyłane e-mailem do zamawiającego i do sprzedawcy.
step-4 - Podsumowanie zamówienia - wyświetlenie zamówienia (część 1 i część 2) z możliwością powrotu do step-2 lub step-3.
step-5 - Wysłanie zamówienia - wysłanie e-maila, komunikat na stronie, zerowanie koszyka.

Czy można zrobić coś takiego w ramach wersji bezpłatnej?
Jeżeli tak, to jak?

» Quick.Cart v6.x

treewood (OpenSolution)

Avatar: treewood

2014-03-03 22:50

Jest to mozliwe, ale wymagaloby sporo przerobek i nie beda one proste. Watpie, ze ktos Ci poda tu rozwiazanie bo to pewnie bedzie kilka godzin pracy.

Polecam skontaktowac sie z boboo lub Simlution.org by Ci to zrobili. Mozesz tez skorzystac z naszych uslug:
http://opensolution.org/wsparcie-programistyczne,pl,199.html

Ja natomiast chce pozostawic Cie z mysla: robilismy wszystko by uproscic proces zamowienia i jest to jedna z wiekszych zalet naszych skryptow. Czym prosciej zlozyc zamowienie tym mniejsza szansa na utrate zniecheconego klienta.

myszo

Avatar: myszo

2014-03-04 09:32

Myśl jest słuszna - uprościć zamówienie. Ale...

Zrobiłem (to chyba za dużo powiedziane, ale działa) i prowadzę sklep oparty na Waszym kodzie i spotkałem się z sytuacją, że kupujący chyba za szybko wypełniają formularz zamówienia i wpisując własne dane, popełniają błędy (najczęściej literówki). Nie ma to większego znaczenia, bo błąd jest zwykle oczywisty, ale ma gigantyczne znaczenie w przypadku adresu e-mail, który formalnie jest poprawny (zawiera małpę, kropkę itd). Na ten e-mail otrzymują potwierdzenie zamówienia wraz z nr konta do zapłaty. Ja otrzymuję info o zakupie (bo mój e-mail jest poprawny), ale kupujący go nie dostaje (bo źle wpisał), więc nie płaci, ja czekam na pieniądze, on czeka na e-mial z nr konta.
Dlatego uważam, że dobrym pomysłem jest wyświetlenie danych wprowadzonych w formularzu, tak aby kupujący mógł sprawdzić przed wysłaniem czy dobrze wszystko wpisał. Wprawdzie step-3 wyświetla te dane, ale równocześnie je wysyła i to, moim zdaniem, jest błąd. Otrzymałem kiedyś e-maila z zamówieniem i za chwilę drugiego od tego kupującego z informacją, że w formularzu źle wpisał e-mial. Zauważył błąd, ale nie mógł go już poprawić, bo zamówienie zostało wysłane.

A tak przy okazji e-maili (nie wiem, może powinienem założyć nowy temat).
Czy jest jakiś sposób, aby sprawdzić czy wysłany e-mail z zamówieniem faktycznie dotarł do kupującego (czy podany adres e-mail jest istniejący, czy e-mail nie zagubił się gdzieś w sieci, czy nie trafił do folderu Spam na serwerze pocztowym kupującego)?

myszo

Avatar: myszo

2014-03-04 10:47

Jest to możliwe, ale...

Spodziewałem się takiej Waszej odpowiedzi (rozumiem), więc zanim założyłem ten temat, jak umiałem - tak zrobiłem (php to nie moja bajka).
Nie wiem czy mogę podać jak to jest zrobione, ale linka do przykładu chyba mogę, więc podaję:
http://agabasko.pl/agabasko-2014-03-04/
(można testować, zamówienie zostanie wysłane na nieistniejący adres, ilość powinna być większa niż 20).

Wszystko ładnie działa (chyba), z małym wyjątkiem: każde przejście na stroną "Zamówienie, część 2 z 3" zwiększa o 1 nr zamówienia, więc numery wysłanych zamówień nie są kolejne. Niby nic, ale uważam to za błąd. Domyślam się, że potrzebuję jakiegoś tymczasowego "iOrder" tylko na czas składania zamówienia, tak aby właściwe "iOrder" było nadawane w momencie wysyłania zamówienia.

Nie proszę o gotowe całe rozwiązanie lecz jedynie o część, jakąś wskazówkę, podpowiedź.

treewood (OpenSolution)

Avatar: treewood

2014-03-04 11:25

Nie znam prostego sprawdzania czy email dotarl.

Jesli faktycznie emaile czesto sa wpisywane blednie (co to za klienci? U nas to rzadki przypadek) to moze warto zrobic dodatkowe pole "Powtórz email" tak by musieli jeszcze raz je powtorzyc (takie rozwiazania juz widzialem wiec pewnie nie beda "szokiem" dla Twoich klientow). Moze wtedy sie zorientuja, ze cos jest nie tak jak go beda pisali drugi raz.

myszo

Avatar: myszo

2014-03-04 12:24

Fajny pomysł z dwukrotnym wpisaniem e-maila, zakładając oczywiście, że nie znają kombinacji Ctrl + C i Ctrl + V :)

Ale zastanawiam się, co trzeba dopisać w: common.php - function sendEmail, tak aby e-mail z zamówieniem, wysłany na nieistniejący adres wrócił (czyli od: Mail Delivery System, temat: Mail delivery failed: returning message to sender lub coś podobnego co otrzymuję, gdy sam się pomylę wysyłając zwykłego e-maila)

boboo

Avatar: boboo

2014-03-04 17:36

jak się przyjrzysz funkcji mail() w core/common.php wywoływanej w sendEmail() to zauważysz, że jest ona uruchamiana z 4 parametrami:
Target, Topic, Content, Header (encoding, From)
Spróbuj dodać w header "return-path"
A jeśli nie zadziała to:
funkcja mail() pozwala na 5 parametrów.
W additional_parameters dodaj adres emaila zwrotnego poprzedzając go "-f".
Czyli np. -fzwrotny@email.pl

boboo :-)

myszo

Avatar: myszo

2014-03-05 11:49

boboo - dzięki
Zadziałał drugi sposób. Mam teraz:

<?php if( @mail$sTargetEmail'=?UTF-8?B?'.base64_encode$sTopic ).'?='$sMailContent'MIME-Version: 1.0'."\r\n".'Content-type: text/plain; charset=UTF-8'."\r\n".'From: '.$sSender'-f'.$GLOBALS['config']['orders_email'] ) ){ ?>


Mail z zamówieniem, w którym podano błędny adres e-mail wraca, tym samym wiem, że z kupującym muszę się kontaktować np. telefonicznie.

A mogę liczyć na jakąś podpowiedź w głównym temacie?

Do góry
o nas | kontakt