This endpoint allows stores to create new orders directly in the system, bypassing delivery platforms. This is useful for in-store purchases, phone orders, catering orders, or any direct customer transactions.
This endpoint creates orders that are immediately available for fulfillment and can be integrated with your existing POS system or used for direct customer service.
Request Body
The unique identifier of the store creating the order
Customer information for the order Customer’s contact phone number
Delivery address (required if order_type is “delivery”) Special delivery instructions
Array of items to include in the order Unique identifier of the product/item
Quantity of this item to order
Special preparation instructions for this item
Array of modifier IDs and values (e.g., size, extras, customizations)
Type of order: “pickup”, “delivery”, “dine_in”
partner
string
default: "LulaDirect"
Source platform (defaults to “LulaDirect” for manual orders)
Payment method: “cash”, “card”, “online”, “corporate_account”
General order-level special instructions
Scheduled pickup/delivery time (ISO 8601 format). If not provided, order is for immediate fulfillment
Employee ID who created the order
Response
Indicates whether the order was successfully created
Confirmation message or error details
Complete order object with all calculated values Show Created Order Object
Human-readable order number for customer reference
Order subtotal before taxes and fees
Final total price including all fees and taxes
Initial order status (typically “pending” or “confirmed”)
Estimated time when order will be ready
Unique identifier for fulfillment tracking
Request Example
{
"store_id" : "449235c1-3d04-4519-998b-40d2a621e5e0" ,
"customer" : {
"customer_name" : "John Smith" ,
"contact_phone" : "+1 555-123-4567" ,
"email" : "[email protected] " ,
"delivery_address" : {
"street" : "123 Main Street" ,
"city" : "Chicago" ,
"state" : "IL" ,
"zip_code" : "60601" ,
"apartment" : "Apt 4B" ,
"delivery_instructions" : "Ring doorbell twice"
}
},
"order_items" : [
{
"item_id" : "prod_12345" ,
"quantity" : 2 ,
"special_instructions" : "Extra hot" ,
"modifiers" : [
{
"modifier_id" : "size_large" ,
"value" : "Large"
}
]
},
{
"item_id" : "prod_67890" ,
"quantity" : 1 ,
"special_instructions" : "No ice"
}
],
"order_type" : "delivery" ,
"partner" : "LulaDirect" ,
"payment_method" : "card" ,
"special_instructions" : "Please call when arriving" ,
"scheduled_time" : "2024-01-15T18:30:00Z" ,
"created_by" : "emp_abc123"
}
Response Example
{
"success" : true ,
"message" : "Order successfully created and added to fulfillment queue" ,
"order" : {
"id" : "ord_new_123456" ,
"order_number" : "LD-2024-001234" ,
"subtotal" : "28.50" ,
"tax_amount" : "2.28" ,
"total_price" : "30.78" ,
"status" : "confirmed" ,
"estimated_ready_time" : "2024-01-15T18:30:00Z" ,
"createdAt" : "2024-01-15T17:45:00Z" ,
"fulfillment_id" : "ful_abc789" ,
"customer" : {
"customer_name" : "John Smith" ,
"contact_phone" : "+1 555-123-4567" ,
"email" : "[email protected] "
},
"order_items" : [
{
"id" : "oi_item1" ,
"item_name" : "Large Coffee" ,
"quantity" : 2 ,
"unit_price" : "4.50" ,
"total_price" : "9.00" ,
"special_instructions" : "Extra hot"
},
{
"id" : "oi_item2" ,
"item_name" : "Iced Tea" ,
"quantity" : 1 ,
"unit_price" : "3.25" ,
"total_price" : "3.25" ,
"special_instructions" : "No ice"
}
]
}
}
When an order is created, the following processes occur automatically:
Inventory Check : Verify item availability
Price Calculation : Calculate subtotal, taxes, and total
Order Number Generation : Create unique customer-facing order number
Fulfillment Creation : Initialize fulfillment tracking
Kitchen Notification : Alert preparation staff (if applicable)
Customer Notification : Send confirmation (if email provided)
Payment Hold : Initiate payment processing (for card payments)
Order Numbers : The system generates human-readable order numbers (e.g., “LD-2024-001234”) for customer reference, separate from the internal UUID.
Scheduled Orders : Use the scheduled_time parameter for advance orders. The order will automatically enter the fulfillment queue at the appropriate time.
Error Responses
Item Not Available {
"success" : false ,
"message" : "One or more items are not available" ,
"error_code" : "ITEM_UNAVAILABLE" ,
"unavailable_items" : [ "prod_12345" ]
}
Invalid Address (for delivery orders) {
"success" : false ,
"message" : "Delivery address is outside service area" ,
"error_code" : "INVALID_DELIVERY_ADDRESS"
}
Payment Processing Error {
"success" : false ,
"message" : "Payment method could not be processed" ,
"error_code" : "PAYMENT_FAILED"
}
Payment Processing : For card payments, ensure your payment processor is configured correctly. Failed payment processing will prevent order creation.
Use Cases
Phone Orders
Customer calls to place order
Staff member creates order in system
Customer pays on pickup/delivery
In-Store Purchases
Walk-in customer orders
Immediate or scheduled preparation
Integration with POS system
Catering Orders
Large scheduled orders
Corporate accounts
Advance preparation planning
Special Events
Pre-orders for events
Bulk order management
Custom pricing arrangements