2012-08-05 39 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];