Closed (fixed)
Project:
Bee Colony - Ubercart synchronization Web Service
Version:
6.x-1.x-dev
Component:
Code
Priority:
Normal
Category:
Feature request
Assigned:
Reporter:
Created:
8 Jul 2011 at 19:24 UTC
Updated:
11 May 2012 at 19:57 UTC
Jump to comment: Most recent file
Comments
Comment #1
FeBus982 commentedBee Colony was born to perform administration tasks in an enterprise solution, but your is an interesting idea to extend Bee Colony.
You are suggesting to add services to operate for end users.
So I think you need this services (all bind to user account):
## For order management ##
- New Order (Intended as shopping cart final submit)
- View Order
- List Orders
- Pay Order (Intended as inserting a payment into an order. How do you think to handle payments?)
Do you think to manage cart inside your application or you think to use the website shopping cart?
Comment #2
FeBus982 commentedComment #3
g.k commented@FeBus982 Yes, you understood the feature requests. Essentially, it's a mobile commerce which includes the product ordering process. I think there are two ways we can handle the cart & payments.
First, within the application - I am using Titanium API to access the Drupal WebServices and if there are Ubercart Services, we can use the Titanium Commerce module as payment gateway and process the order.
Second, embedding the cart - in a mobile app you can embed a web page (for e.g product catalog) and process the rest of the order using web interface as you would do with any Ubercart ordering process. However, the challenge is the user authentication & session. User Service has an user.login method which create a session, and I am thinking that we can extend the Services and somehow pass the session to embedded web interface for single sign on.
Thanks,
Comment #4
FeBus982 commentedSorry for the late answer, i will soon start to develop a submodule to support these methods:
- New Order
- View Order
- List Orders
The method for "Pay Order" need administrative privileges and is a possible security problem.
Ubercart should automatically update order status when payment is received, and some payment systems have their proprietary web service for payment verification inside ubercart (IE. PayPal IPN).
I think the most secure way to process payments is using existant modules functionalities.
You should be able to use session data, just take a look at Python script i have attached, i use it for testing services with a xml_rpc server and key based authentication. I have tried to comment it as much as possible.
Comment #5
FeBus982 commentedVersion 6.x-2.x-dev contains now methods:
beeColonyUser.listOrders() (no params)
Returns a list of orders with basic data (order_id, creation date, order_total, order_amount)
beeColonyUser.getOrder(id) (param integer order_id)
Returns a single order with all ubercart data (addresses, taxation, etc etc)
Comment #6
FeBus982 commentedComment #7
FeBus982 commentedVersion 6.x-2.x-dev contains now methods:
beeColonyUser.newOrder(order) (param struct order)
Returns order structure with assigned order id and user id for verification.
Order structure must be provided from client application, because it changes depending on installed modules.
For the same reason method don't check for data consistency, and cannot return control code to check if order has been correctly saved, because function uc_order_save() return no values.
I attach a dump of $order variable retrieved with uc_order_load()
Comment #8
FeBus982 commented