2012-08-05 18 views
5

Mam decyzję projektową dotyczącą aplikacji zamawiania online. Sądzę, że to pytanie dotyczy bardziej zaawansowanego programisty e-commerce na systemy iOS/mobile, ale z radością witam wszystkich.ios: Projektowanie koszyka na zakupy w aplikacji na iPhone'a

Zamierzam zainstalować CMS, taki jak WordPress i dodać wtyczkę do koszyka. Jeśli potrzebuję mieć strony mobilne, to też je utworzę, także jeśli będę musiał wykonywać pewne wywołania PHP, to muszę też dostosować interfejs API. Strona płatności oczywiście będzie również wykonana za pomocą wtyczki e-commerce. To wszystko wygląda na 1-3 miesiące pracy, ale chciałbym, aby zacząć na właściwej drodze. Tak więc wszelkie opinie i wskazówki będą mile widziane.

W tej chwili muszę podjąć decyzję, w jaki sposób moi użytkownicy będą wyświetlać produkty i koszyk z ich iPhone'a. Zastanawiam się nad stworzeniem aplikacji na iPhone'a, która pozwoli im zamawiać online. Oczywiście aplikacja nie będzie jedynie opakowaniem strony, ale będzie miała inne przydatne funkcje oprócz widoków produktu i koszyka.

Tak tu jest pytanie:

Aplikacja mam na myśli to aplikacja UITabBar składa się z dwóch widoków „produkt” oraz „koszyka”.

Opcja 1 - Kontrole rodzime z indywidualnymi wpisami HTTP w celu dodania produktów do samochodu oraz GET do odczytu z koszyka.

  • Widok wyrobów realizuje rodem UITableView, każda pozycja otwiera zwyczaj UITableViewCell gdzie użytkownik może wypchnąć rodzimych przycisk „Dodaj” do koszyka. Po naciśnięciu przycisku "Dodaj", HTTP POST jest tworzony z kodem produktu i ilością i jakoś jest zapisywany na wózku serwera w ramach jednej sesji. Nadal muszę dowiedzieć się, jak uzyskać klucz sesji do koszyka (wszelkie pomysły tutaj byłoby DUŻO docenione).

  • Widok koszyka jest również całkowicie zaimplementowany z natywnymi interfejsami użytkownika, nie mam pojęcia, czego potrzebuję, ale pobierze bieżące pozycje koszyka dla sesji użytkowników i wyświetli je. Oczywiście, użytkownik może modyfikować elementy, dodawać komentarze, zmieniać ilość itp. To brzmi jak bóle głowy, jeśli potrzebuję tworzyć posty HTTP za każdym razem, gdy coś się zmieni w Koszyku, aby zsynchronizować się z koszykiem na serwerze, ale nie mniej jednak CART jest całkowicie oglądany w natywnych UI.

Opcje 2 - produkt na wózku to my stron, które można przeglądać i manipulować przy pomocy UIWebViews

  • Widok produktu jest tylko UIWebView który otwiera stronę gotowych produktów na w sieci, strona oczywiście musi być przyjazna dla urządzeń mobilnych, aby mogła wyglądać przyzwoicie przez telefon. Kiedy użytkownik kliknie element, otworzy się szczegółowa strona produktu, a użytkownik będzie miał przycisk do kliknięcia, aby dodać do koszyka. Oczywiście mogę przechwycić te kliknięcia za pomocą standardowych wywołań zwrotnych UIWebView i zbadać adres URL żądania, aby dowiedzieć się, który produkt został kliknięty.

  • Widok koszyka w drugiej zakładce (UIWebView) po kliknięciu spowoduje wysłanie żądania do strony koszyka serwera, aby wyświetlić koszyk w tej samej sesji. Oczywiście, muszę wymyślić, jak mieć dwa UIWebViews udostępniać te same sesje, aby uzyskać prawidłowy koszyk. Nadal nie zanurkowałem w kodzie.

Opcje 3 - Utrzymuj widok produktu i koszyk całkowicie na lokalnym telefon i tylko wypchnąć ostateczną „rozkaz” do serwera, aby śledzić na stronach płatności

  • At uruchom aplikację, pobierz katalog produktów, zresetuj lokalny koszyk i zasymuluj logikę koszyka w aplikacji. Gdy użytkownik jest gotowy do realizacji transakcji, dokonuję ostatecznego połączenia ze stroną płatności ze wszystkimi żądanymi produktami i ilością. Użytkownik przejdzie następnie na stronę z płatnościami.

  • Ponieważ użytkownik może również używać strony do składania zamówień, musiałbym skopiować całą logikę do aplikacji i obsługiwać koszyk całkowicie z poziomu aplikacji. Ostateczne "wyewidencjonowanie" również musi przesłać szczegółowy kod produktu, z "komentarzami" do strony płatności. Czy wspomniałem, że jest również proces rejestracji użytkownika?


  1. Które opcje będą najlepiej dostosowane pod względem użyteczności, efektywności i doświadczenia użytkownika?
  2. Jak mogę zsynchronizować te dwa widoki, jeśli skorzystam z opcji 2?
  3. Czy są jakieś rozwiązania dotyczące koszyków na zakupy, z którymi ma się do czynienia każdy?
+3

Dlaczego nie przechowujesz danych koszyka na dysku lokalnym i nie przesyłasz go jednocześnie na serwer, gdy chcesz złożyć zamówienie? – mariusnn

+0

Jest to również inna opcja, jednak oznacza to, że muszę skopiować logikę biznesową zarówno w Internecie, jak i w aplikacji. Klient ma również możliwość zamówienia z sieci. Wolałbym, aby były scentralizowane w sieci. Z perspektywy programowania Twoja metoda jest znacznie łatwiejsza, a po uruchomieniu aplikacji mogę pobrać cały katalog produktów, wyświetlić je i dopiero w ostatecznym widoku "płatności" przesłać produkty do koszyka i skorzystać z pomocy UIWebView, aby płatności kartą kredytową, ponieważ wszystkie będą prowadzone z wtyczek handlowych. – bendigi

+0

Jeśli chcesz, aby wszystko było zrobione na serwerze, powinieneś po prostu owinąć stronę w widok sieciowy i pozwolić, aby wszystko działo się na serwerze ... – mariusnn

Odpowiedz

0

Można użyć bibliotek 3rd party,

w pliku .h prostu utworzyć obiektu dla BBBadgeBarButtonItem jak ten

BBBadgeBarButtonItem *barButton; 

potem w pliku .m ustawić przycisk niestandardowy do tego barButton,

barButton = [[BBBadgeBarButtonItem alloc] initWithCustomUIButton:yourBtnOutlet]; 
barButton.badgeValue = @"0"; 
barButton.badgeOriginX = 13; 
barButton.badgeOriginY = -9; 

potem po reakcji możemy użyć poniższego wiersza kodu, to zwiększamy wartość licznika

barButton.badgeValue = [NSString stringWithFormat:@"%d", [barButton.badgeValue intValue] + 1]; 
Powiązane problemy