Order Integration

Overview

When following this steps, you will receive complete order payload which are created from food aggregators. Once it is received, you can update the order status. If the order status is handled by Grubtech you can recieve order status notifications.

Whatever the order created on Grubtech Platform, you will recieve the order status to your webhook. You can recieve the complete order payload once an order is Accepted, Completed, Created or Dispatched. Once you recieve the complete payload you can decide if the order flow is to be handled on your end or through Grubtech.

An Order Status Update Integration allows different platforms, like a point of sale (POS) system or an ERP system to communicate and synchronize the status of orders with Grubtech. This integration ensures that all parties involved in the order process are updated in real-time about the current status of an order.

Here’s how it works:

  • Accept Order: When an order is placed, the POS system can accept the order and notify Grubtech.
  • Reject Order: If the order cannot be fulfilled, the POS system can reject the order, and informs Grubtech.
  • Cancel Order: The store can cancel the order, and this status is updated across all systems.
  • Start Order - When an order is started, the POS system can notify Grubtech.
  • Order Prepared: Once the order is prepared and ready for delivery, the POS system updates this status.
  • Order Dispatched: When the order is handed over to the delivery person, the status is updated to Grubtech.
  • Order Completed: Once the customer receives the order, the status is marked as completed.

By integrating these status updates, all stakeholders stay informed about the order’s progress, enhancing transparency and improving the overall efficiency of the order fulfillment process.

Order Flow

Accept Order

Purpose: To notify Grubtech that the order placed has been accepted.
NOTE: Order Acceptance can be automated on the Grubtech platform as sometimes there are restrictions placed by food aggregators. You need to accept the order within 90 seconds. If you do not accept the order within 90 seconds, your order will be rejected by the food aggregators. This will impact your order success rate which will be reduced. Grubtech recommends that you proceed with auto acceptance. If you decide on Manual Acceptance, Grubtech expects you to send the acceptance within a time range (For example 90 seconds). If the acceptance is not received within the requested time range, Grubtech will automatically accept the order from Grubtech side to the food aggregator.

Request: The POS system accepts the order and notifies Grubtech.
Processing: The server processes the request.
Response: The server acknowledges with a successful or failed response.

Reject Order

Purpose: To notify Grubtech that the order is rejected, and it cannot be fulfilled.

Request: The POS system rejects the order as it cannot be fulfilled and informs Grubtech.
Processing: The server processes the request.
Response: The server acknowledges with a successful or failed response.

Cancel Order

Purpose: The store can cancel the order, and this status is updated across all systems.

Request: The store cancels the order and informs Grubtech.
Processing: The server processes the request.
Response: The server acknowledges with a successful or failed response.

Start Order

Purpose: To notify Grubtech that the order is started.

Request: The POS system notifies Grubtech that the order is started.
Processing: The server processes the request.
Response: The server acknowledges with a successful or failed response.

Prepare Order

Purpose: To notify Grubtech that the order is prepared.

Request: The POS system notifies Grubtech that the order is prepared.
Processing: The server processes the request.
Response: The server acknowledges with a successful or failed response.

Order Dispatched

Purpose: To notify Grubtech that the order has been handed over to the delivery person.

Request: The POS system notifies Grubtech that the order has been dispatched.
Processing: The server processes the request.
Response: The server acknowledges with a successful or failed response.

Order Completed

Purpose: To notify Grubtech that the customer has received the order, and the order is now completed.

Request: The POS system notifies Grubtech that the order is completed.
Processing: The server processes the request.
Response: The server acknowledges with a successful or failed response.

Grubtech to POS - Order Flow

If the Partner uses Grubtech to change the order status, then the POS system handles the success/fail notifications.

Order APIs

An Accept Order endpoint is provided by GrubTech to allow external systems (e.g., stores) to mark an order as accepted. This endpoint is used to update the status of an order in the system, indicating that the order has been acknowledged and will be processed.

When you want to mark an order as accepted, you will send a request to this endpoint with the following details.

  • service-id: This is the unique identification for the integration service. It is provided by GrubTech to identify which service is interacting with the API.
  • id: This is the unique identification for the order within the GrubTech system. It is provided by GrubTech and is used to specify which order is being accepted.
  • acceptedAt: This is a timestamp indicating the exact time when the order was accepted.
  • externalReferenceId: This is a unique identification for the order from the integration party (e.g., store). It is used to link the order in the external system to the order in GrubTech's system.

A Reject Order endpoint allows you to mark an order as rejected in a system, typically for reasons such as being out of items or other cancellation causes. When you use this endpoint, you need to submit certain details to ensure the order is correctly marked as rejected.

The key parameters you need to provide are:

  • service-id: This is the integration service ID provided by GrubTech. It uniquely identifies the integration service being used.
  • id: This is the order ID provided by GrubTech. It uniquely identifies the order you want to reject.
  • reason: This is the reason for the order rejection. For example, it could be due to being out of items or any other valid reason for rejecting the order.
  • note: This is an optional field where you can provide additional notes or reasons for the rejection.

By submitting these details to the endpoint, you communicate to the system that the order should be marked as rejected, and you provide context for why the rejection occurred.

The Cancel Order endpoint allows you to mark an order as canceled by submitting relevant details to the API.

The key parameters you need to provide are:

  • service-id: This is the integration service ID provided by GrubTech. It uniquely identifies the integration service being used.
  • id: This is the order ID provided by GrubTech. It uniquely identifies the order you want to cancel.
  • reason: This is the reason for the order cancellation. For example, it could be due to being out of items or any other valid reason for cancelling the order.
  • note: This is an optional field where you can provide additional notes or reasons for the cancellation.

An Order Started endpoint allows you to mark a particular order as started. This is useful when a system needs to update the status of an order to reflect that it has begun processing.

The key parameters you need to provide are:

  • service-id: This is the integration service ID provided by GrubTech. It uniquely identifies the integration service being used.
  • id: This is the order ID provided by GrubTech. It uniquely identifies the order you want to cancel.

An Order Prepared endpoint allows you to mark a particular order as prepared and notify Grubtech.

The key parameters you need to provide are:

  • service-id: This is the integration service ID provided by GrubTech. It uniquely identifies the integration service being used.
  • id: This is the order ID provided by GrubTech. It uniquely identifies the order you want to cancel.

An Order Dispatched endpoint allows to mark an order as dispatched.

This process includes submitting the following details:

  • service-id: This is the integration service ID provided by GrubTech. It uniquely identifies the integration service being used.
  • id: This is the order ID provided by GrubTech. It uniquely identifies the order that was dispatched.

An Order Completed endpoint allows to mark an order as completed.

This process includes submitting the following details:

  • service-id: This is the integration service ID provided by GrubTech. It uniquely identifies the integration service being used.
  • id: This is the order ID provided by GrubTech. It uniquely identifies the order as completed.