I am purchasing a POS for our pizza restaurant that uses RPC (remote procedure call) protocol to receive XML orders from online ordering software. Rather than paying for an online ordering company, I would like to use an open source shopping cart and pay a local programmer. I was wondering if this is doable. Your opinion?

Here is a snippet from their developers guide on the format of the order XML:

<ORDER ID="" date="" time="" total_price="" total_tax="" total_discount="" delivery_fee="" misc_charge="" tip="" order_type="" payment_status="" deferred="">

<CC_INFO CC_AMOUNT="" CC_TIP_AMOUNT="" CC_STRING="" >;
</CC_INFO>


<ITEM id="" item_price="" item_quantity="" item_fraction="" item_tax="" base_item="">

<SIZE item_id="" plu_number="" >
</SIZE >
<STYLE item_id="" plu_number="">
</STYLE >

<SUB_ITEM item_id="" item_type="" sub_item_index="" plu_number="" sub_item_quantity="" sub_item_fraction="">
</SUB_ITEM>

<MSG item_id="" msg_detail="" message_frac_index="">
</MSG>
<REQUIREMENT item_id="" order_req_frac ="" order_req_text="" plu_number="">
</REQUIREMENT>

</ITEM>

<COUPON item_id="" amount="" plu_number="" offer_order_index="" offer_counter="">
</COUPON>

<MSG item_id="" msg_detail="" message_frac_index="">
</MSG>
....etc.

The RPC request to get a confirmation looks like this:

Use RPC to call the function on our server: store_order_listener.receiveOrder($xml)

This function needs to be called in a standard RPC way, so actually our XML Order format will be wrapped by RPC XML Call (see examples below). After each call of function the immediate confirmation of the call follows - again, based on the RPC standard.

When creating the XML, put the method name in method name tag and parameters in
parameter tag, followed by the <string> tag which will include your order XML.

Example:
<?xml version="1.0"
encoding="iso-8859-1"?><methodCall><methodName>store_order_listener.receiveorder< /methodName><params><param><value><string>


Order Response:
You will receive a response to confirm that the order has been received.
In success:
<order msg="Added Successfully" order_id="7226" >
</order>

In failure:
<order msg="Failed to Add the order" order_id="0" >
</order>

In success, order id is the order_id after insertion of the order.