2012-08-05 14 views
5

Tengo que tomar una decisión de diseño para una aplicación de pedidos en línea. Creo que esta pregunta es para un desarrollador de iOS/móvil más avanzado de comercio electrónico, pero estoy dando la bienvenida a todos para que me ayuden.ios: Diseño de un carrito de compras en una aplicación de iPhone

Estoy pensando en instalar un CMS como WordPress y agregar un enchufe de carrito de compras. Si necesito tener páginas específicas para dispositivos móviles, las crearé también, también. Si necesito hacer ciertas llamadas a PHP, entonces también necesito personalizar la API. La página de pago obviamente se hará usando el plugin de e-commerce también. Todo esto parece de 1 a 3 meses de trabajo, pero ME ENCANTARÍA comenzar por el camino correcto. Entonces cualquier comentario o dirección sería muy apreciado.

En este momento, tengo que tomar una decisión sobre cómo verán los usuarios los productos y el carrito de compras desde su iPhone. Estoy pensando en desarrollar una aplicación para iPhone que les permita ordenar en línea. Obviamente, la aplicación no solo será un contenedor para la página, sino que tendrá otras funciones útiles además de las vistas de producto y carrito.

Así que aquí está la pregunta:

La aplicación que estoy pensando es una aplicación UITabBar compuesta de dos puntos de vista "producto" y "carrito de compras".

Opción 1 - Controles nativos con mensajes individuales HTTP para agregar productos al automóvil, y GET para leer en el carrito.

  • La vista Producto implementa un nativo UITableView, cada elemento abre un encargo UITableViewCell donde el usuario puede pulsar un botón nativo de "Añadir" para el carro. Cuando se presiona el botón "Agregar", se realiza un HTTP POST con el código del producto y la cantidad, y de alguna manera se escribe en el carro del servidor en una sola sesión. Todavía tengo que averiguar cómo obtener una clave de sesión para el carro (cualquier idea aquí sería MUCHO apreciada).

  • La vista de carrito también se implementa completamente con UI nativas, todavía no he descubierto lo que necesito, pero recuperará los elementos actuales del carrito para la sesión de los usuarios y lo mostrará. Obviamente, el usuario puede modificar elementos, agregar comentarios, cambiar cantidades, etc. Esto me parece un gran dolor de cabeza si necesito hacer publicaciones HTTP cada vez que algo cambia en el carrito para sincronizarlo con el carrito de compras en el servidor, pero no obstante, el CART se ve completamente en UI nativas.

opciones 2 - producto y del carrito SOMOS páginas que se pueden ver y manipular usando UIWebViews

  • El punto de vista del producto es sólo una UIWebView que se abre una página de producto pre-hechos en la web, la página obviamente tiene que ser amigable para dispositivos móviles, por lo que puede verse decente en el teléfono. Cuando el usuario hace clic en el elemento, se abrirá la página web detallada del producto y el usuario tendrá un botón web para hacer clic, para agregarlo al carrito. Por supuesto, puedo interceptar estos clics utilizando las devoluciones de llamada estándar UIWebView y examinar la URL de la solicitud para averiguar en qué producto se hizo clic.

  • La vista del carrito en la otra pestaña (UIWebView también), una vez que se hace clic, solicitará a la página del carrito del servidor que muestre el carrito en la misma sesión. Por supuesto, tengo que averiguar cómo tener las dos UIWebViews para compartir las mismas sesiones para que pueda obtener el carro correcto. Todavía no me he zambullido en el código.

opciones 3 - Mantenga el producto Vista y carro de compras por completo de la telefonía local y sólo empujar a cabo el "orden" final al servidor para seguir a través de las páginas de pago

  • En el inicio de la aplicación, descargo el catálogo de productos, restablezco el carrito de compras local y simuló la lógica del carrito en la aplicación. Una vez que el usuario está listo para pagar, hago una llamada final a la página de pago con todos los productos y la cantidad solicitada. El usuario seguirá la página con los pagos.

  • Dado que el usuario también puede usar la página web para hacer pedidos, necesitaría duplicar toda la lógica en la aplicación y manejar el carrito de compras completamente desde dentro de la aplicación. La "salida" final también debe enviar el código de producto detallado, con "comentarios" a la página de pago. ¿mencioné que también hay un proceso de registro de usuario?


  1. Qué opciones sería el más adecuado en términos de facilidad de uso, eficiencia y experiencia del usuario?
  2. ¿Cómo puedo sincronizar las dos vistas si quisiera ir con la opción 2?
  3. ¿Hay alguna solución de carrito de compras con la que cualquiera tenga experiencia?
+3

¿Por qué no mantener los datos del carrito almacenados localmente y enviarlos de una vez al servidor cuando desea hacer un pedido? – mariusnn

+0

Esa es también otra opción, sin embargo, esto significa que necesitaría duplicar la lógica comercial tanto en la web como en la aplicación. El cliente también puede realizar pedidos desde la web. Preferiría mantenerlos centralizados en la web. Desde una perspectiva de programación, su método es mucho más fácil, y en el lanzamiento de la aplicación puedo descargar todo el catálogo de productos, mostrarlos, y solo en la vista final de "pago" empujar los artículos al carro y tener UIWebView ayuda a hacer el pagos por carrito de crédito, ya que todo será impulsado desde los complementos de comercio. – bendigi

+0

Si desea que todo se haga en el servidor, debe simplemente envolver el sitio web en una vista web y dejar que todo suceda en el servidor ... – mariusnn

Respuesta

0

Puede utilizar las bibliotecas 3 ª parte,

en el archivo .h acaba de crear el objeto de BBBadgeBarButtonItem como esto

BBBadgeBarButtonItem *barButton; 

después de eso en su archivo .m configurar su botón personalizado para que barButton,

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

después de que después de su respuesta podemos utilizar esta línea de código, se incrementará el valor de cuenta

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