Focus Online Ordering XML Order Format
Online Ordering Providers (OOPs) can integrate their Online Ordering system to Focus POS using our XML format.
You can download a sample file here: https://go.aws/2SrIXbk
The file is broken down into three sections:
- Items
- Item Options (modifiers)
- Summary
Items
- <CustomerOrderItemID>
- Integer
- Starts at 1
- Sequentially assigned ID by the OOP for each parent item in an order
- Dictated by OOP
- Quantity
- Integer
- NOTE: Fraction quantity support (i.e. 1.5) may be available on a per-item basis in Focus. Since the Focus Menu Item must be configured for Fraction Quantity AND the current RequestMenu return does not include Fraction Quantity status, it is not recommended that OOPs attempt to make this a decimal or double value.
- The customers desired quantity of the menu item
- Dicated by Orderer
- Integer
- Comment
- String
- Any comment that the orderer wishes to provide on this item, such as recipients name or special notes.
- NOTE: It is suggested that OOPs limit this field to 160 characters so as to prevent unnecessarily long kitchen preparation tickets.
- POSPLU
- String
- POSPLU represents the Focus ID value of a menu item.
- NOTE: This value is from the ID field of the Focus Menu Item. Not to be confused with the Menu Name, Check Name, Remote Name or Inventory ID. The ID may be obtained from the RequestMenu API call.
- Dictated by POS Integration
- POSPrice
- Decimal/Double
- The price that is being charged for the desired item. This price must match one of the 10 prices available in Focus POS for the menu item.
- NOTE: Attempting to use a price that does not match one of the 10 prices for the menu item in Focus will result in a price mismatch and therefore will result in the Online Order Check not closing properly as the store level and cause an imbalance.
- Dicated by POS integration
<Items>
<CustomerOrderItemID>1</CustomerOrderItemID>
<Quantity>1</Quantity>
<Comments />
<POSPLU>Cobb Salad</POSPLU>
<POSPrice>19.00</POSPrice>
</Items>
Item Options (Modifiers)
- CustomerOrderItemID
- Integer
- The CustomerOrderItemID which this ItemOption is modifying.
- Using the included examples, this modifier (arugula) is modifying the Cobb Salad. You can see this by the CustomerOrderItemID.
- Dicated by OOP
- POSModifierPLU
- String
- POSModifierPLUrepresents the Focus ID value of a menu item.
- NOTE: This value is from the ID field of the Focus Menu Item. Not to be confused with the Menu Name, Check Name, Remote Name or Inventory ID. The ID may be obtained from the RequestMenu API call.
- Dictated by POS Integration
- POSModifierAdditionalPrice
- Decimal/Double
- This is the price being used if the orderer is being upcharged for this modifier.
- This price must match one of the 10 prices available in Focus POS for the menu item.
- NOTE: Attempting to use a price that does not match one of the 10 prices for the menu item in Focus will result in a price mismatch and therefore will result in the Online Order Check not closing properly as the store level and cause an imbalance.
- Dictated by POS Integration
<ItemOptions>
<CustomerOrderItemID>1</CustomerOrderItemID>
<POSModifierPLU>Arugula</POSModifierPLU>
<POSModifierAdditionalPrice>1</POSModifierAdditionalPrice>
</ItemOptions>
Summary
The summary contains check-level details of the order, such as the Order Type, Guest's name, contact number & payment details
- CustomerLastName
- String
- Customer's last name
- Dictated by orderer
- CustomerFirstName
- String
- Customer's first name
- Dictated by orderer
- DeliveryAddressPhoneNumber
- String
- The contact number, provided by the orderer
- Dictated by orderer
- OrderType
- String
- The order type that this order is being provided by.
- Examples: CarryOut, Take Out, Dine In, Delivery
- Dictated by OOP
- DeliveryTime
- Formatted Date Time
- Formatted date time = "M/d/yyyy h:m:s tt"
- The time & date that the orderer desires the order to be picked up or made available
- Dictated by orderer
- Formatted Date Time
- OrderTime
- Formatted Date Time
- The time & date that the orderer placed the final order to the OOP
- Dictated by OOP
- StartTime
- Formatted Date Time
- The time & date that the POS should provide the order to the kitchen for preparation.
- OOPs should calculate this using the DeliveryTime - PreparationMinutes
- Dictated by OOP calculation
- PreparationMinutes
- Integer
- The number of minutes needed to prepare this order.
- OOPs with the option to alter preparation time based on order size or items ordered should use this field to be the output of their calculation
- Dictated by OOP
- Comments
- String
- This field can be used to relay notes about the order to the restaurant
- NOTE: It is suggested that OOPs limit this field to 160 characters so as to prevent unnecessarily long kitchen preparation tickets.
- Dictated by orderer or OOP
- OrderFee
- Decimal
- If an order surcharge is being applied, it must match the calculated Order Type Fee being charged in the POS. Use this field to provide that value
- Calculated by OOP & POS Integration
- Tip
- Decimal/Double
- This field is used to carry the Tip amount that an ordered may choose to provide to the restaurant.
- Focus will automatically attach this value to the Check Owner’s tip calculation
- Dictated by orderer
- Total
- Decimal/Double
- The calculated total amount of the check/order
- This value should include all Items, Item Options (Modifiers), Order Fees, Taxes & Tips
- This value MUST match the calculated value of the above lines, if this total does not match the calculation, Focus will present a Price Adjustment item to offset the calculated amount from the declared Total amount.
- Calculated by OOP
- CashSale
- Boolean
- If the restaurant allows, and the ordered chooses, a value of True in this field will leave the check open in the POS and allow the orderer to pay via payments other than eCommerce Credit Card.
- Dictated by OOP workflow
- The following fields apply only when CashSale is false and when a payment was taken via OOPs eCommerce Payment system:
- CreditCardType
- String
- The text representation of the credit card payment type used.
- Valid strings: Visa, Mastercard, MC, Amex, AmExp, Discover, Disc, JCB
- Dictated by OOP eCommerce Process
- CreditCardLastFourDigits
- Integer
- The last four digits of the credit card used to make payment to this check.
- Dictated by OOP eCommerce Process
- CreditCardExpiration
- Specific format Date
- The specific format for the Expiration Date is M/YYYY
- The expiration date of the credit card used for payment
- Dictated by OOP eCommerce Process
- Specific format Date
- CreditCardAuthorizationCode
- String
- Upon successful process of a credit card via the OOPs eCommerce Process, the Approval or Authorization code provided by the eCommerce Payment Process should be provided to the POS in this field.
- Dictated by OOP eCommerce Process
- TotalAfterGiftCards
- Decimal/Double
- The total amount tendered via the eCommerce transaction
- NOTE: This amount must be the FULL AMOUNT processed by the eCommerce Payment Process. Focus will tender the Check for the amount provided in this element. If this amount does not match the Total, the check will remain open with the difference as a balance due.
- Dictated by OOP eCommerce Process
- ProcessedCreditCardOnline
- Boolean
- If the OOP processed a credit card for this order via online means, this value should be true.
- If the OOP did not process the credit card online, for example if the eCommerce Payment Process was down, this value should be false
- Dictated by OOP eCommerce Process
<Summary>
<CustomerLastName>Skywalker</CustomerLastName>
<CustomerFirstName>Rey</CustomerFirstName>
<DeliveryAddressPhoneNumber>4254445748</DeliveryAddressPhoneNumber>
<OrderType>CarryOut</OrderType>
<DeliveryTime>7/16/2019 12:20:00 PM</DeliveryTime>
<OrderTime>7/16/2019 12:04:15 PM</OrderTime>
<StartTime>7/16/2019 12:05:00 PM</StartTime>
<PreparationMinutes>15</PreparationMinutes>
<Comments>PAID Chrgd to Card: $20.36 Card: *5196-Visa (Includes TIP: $0.00)</Comments>
<OrderFee>0.00000</OrderFee>
<Tip>0</Tip>
<Total>21.5500</Total>
<CashSale>false</CashSale>
<CreditCardType>Visa</CreditCardType>
<CreditCardLastFourDigits>5196</CreditCardLastFourDigits>
<CreditCardExpiration>8/2022</CreditCardExpiration>
<CreditCardAuthorizationCode>27895D</CreditCardAuthorizationCode>
<TotalAfterGiftCards>21.55000</TotalAfterGiftCards>
<ProcessedCreditCardOnline>true</ProcessedCreditCardOnline>
</Summary>
For information on how to post orders to Focus using our API, please click here
Comments
0 comments
Please sign in to leave a comment.