2012-08-05 40 views
5

我有一個設計決定是爲了在線訂購應用程序。我相信這個問題是針對更先進的iOS /移動電子商務開發者的,但我歡迎大家幫忙。ios:在iPhone應用程序中設計購物車

我正在考慮安裝類似WordPress的CMS並添加購物車插件。如果我需要移動特定頁面,那麼我也會創建這些頁面,如果我需要進行某些PHP調用,那麼我也需要爲它定製API。顯然,付款頁面也將使用電子商務插件完成。這一切看起來像1-3個月的工作,但我會喜歡開始正確的道路。所以任何反饋或方向將不勝感激。

現在,我必須決定我的用戶如何從他們的iPhone上查看產品和購物車。我正在考慮開發iPhone應用程序以允許他們在線訂購。很明顯,該應用程序不僅僅是頁面的包裝,而且除了產品和購物車視圖外,還會提供其他有用的功能。

因此,這裏的問題:

的應用程序,我想的是兩個意見「產品」和「購物車」組成中的UITabBar一樣的應用程序。

選項1-本地控制與個人HTTP職位添加產品的車,和GET從購物車中讀取。

  • 產品視圖實現本地UITableView,每個項目開闢了一個自定義UITableViewCell,用戶可以推動本地按鈕「添加」到購物車。當按下「添加」按鈕時,HTTP POST由產品代碼和數量構成,並且在一次會話中以某種方式寫入到服務器的購物車中。我仍然需要弄清楚如何獲得購物車的會話密鑰(這裏的任何想法都會被讚賞)。

  • 購物車視圖也是用本地用戶界面完全實現的,我還沒有弄清楚我需要什麼,但是它會爲用戶會話檢索購物車的當前項並顯示它。顯然,用戶可以修改項目,添加註釋,更改數量等。如果每次在購物車中發生某些更改以與服務器上的購物車同步時需要發送HTTP帖子,這聽起來像很頭疼,但是從來沒有,CART在本地用戶界面中完全被查看。

選項2 - 產品和車是我們的頁面,可以查看和操作使用UIWebViews中

  • 產品視圖僅僅是上開闢了一個預製的產品頁面UIWebView網頁,頁面顯然必須是移動友好的,所以在手機上看起來很不錯。當用戶點擊該項目時,它將打開詳細的產品網頁,用戶將有一個網頁按鈕點擊,以添加到購物車。當然,我可以使用標準UIWebView回調攔截這些點擊,並檢查請求URL以確定哪個產品被點擊。

  • 另一個選項卡(UIWebView)中的購物車視圖一旦點擊,將向服務器的購物車頁面發出請求,以在同一會話下顯示購物車。當然,我需要弄清楚如何讓兩個UIWebView共享相同的會話,以便我可以獲得正確的購物車。我仍然沒有編寫代碼。

選項3 - 保持產品視圖和購物車完全在本地手機上只推出了最後的「命令」的服務器通過付款頁面

  • 在跟隨應用程序啓動後,我下載產品目錄,重置本地購物車並在應用程序中模擬購物車邏輯。一旦用戶準備結帳,我會通過請求的所有產品和數量對付款頁面進行最後的呼叫。然後,用戶將跟隨付款頁面。

  • 由於用戶也可以使用網頁製作的訂單,我需要複製所有的邏輯到應用程序,並從應用程序內完全手柄的購物車。最後的「退房」還需要發送詳細的產品代碼,並在支付頁面添加「評論」。我有沒有提到用戶註冊過程?


  1. 哪些選項將是最適合在易用性,效率和用戶體驗方面?
  2. 我如何可以同步了兩種觀點,如果我會選擇去2?
  3. 是否有任何的購物車解決方案,任何人有經驗?
+3

爲什麼不保存本地存儲的購物車數據,並在想要訂購時將其全部一次全部推送到服務器? – mariusnn 2012-08-05 23:17:50

+0

這也是另一種選擇,但是,這意味着我需要在Web和應用程序上覆制業務邏輯。客戶也可以從網上訂購。我寧願讓他們集中到網絡上。從編程的角度來看,你的方法是容易得多,而且在應用程序啓動,我可以下載整個產品目錄,顯示出來的,只有在最後的「支付」的觀點推項目到購物車,並有一個UIWebView的幫助,使通過信用卡付款,因爲它將全部來自商業插件。 – bendigi 2012-08-05 23:24:12

+0

如果您希望在服務器上完成所有操作,那麼您應該將該網站包裝在網絡視圖中,並讓所有這些都發生在服務器上。 – mariusnn 2012-08-06 02:47:20

回答

0

您可以使用第三方庫,

在.h文件中只創建對象BBBadgeBarButtonItem這樣

BBBadgeBarButtonItem *barButton; 

後,在您的.m文件設置自定義按鈕,即barButton,

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

之後,您的迴應後,我們可以使用這一行代碼,它會增加計數值

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