Order Routing Implementation Document
What is the purpose of this article?
The purpose of this article is to provide an option to our clients to decide whether to split the order or not while creating its shipment and if the order is to be split then on which conditions.
Splitting the order means shipments can be made from more than one warehouse if inventory is not available at one warehouse.
In this article, we will thoroughly discuss how we can implement APIs to provide this option to our clients, the tables required in WMS DB, and its infrastructure diagram.
Order Routing Figma?
Components :
Frontend (UI):
Developed using HTML, CSS, JavaScript, and Angular.
Provides a web-based interface for authorized users to access Order Routing functionality.
Communicates with the backend through RESTful APIs.
Backend:
Developed using Java 11 and Google Cloud Endpoints framework.
Involves other modules within the Eshopbox platform, such as activities.
Uses taskqueues and pub sub topics of GCP App Engine service
Exposes APIs for frontend communication.
Implements error handling and logging.
Database:
Utilizes relational (e.g., MySQL) databases for storing order routing data.
DB related Changes and APIs to be developed
DB related changes :-
In WMS DB, two new tables will be added - order_routing_rule_fileds, order_routing_rules
In the account_additional_config table, a new column will be added - isOrderSplittingEnabled
Table design document - Data Model : Order Routing table designs
Get Api to return the rule fields, auperator, values to prepare an order routing rule
API request and response => https://documenter.getpostman.com/view/30785554/2s9YXb8R1W#970b128d-3499-4179-bfb3-526eee5e3826
Implementation document - Get Api required to prepare order routing rule
POST API to save a new Rule /duplicate a rule/ update an existing rule for an account
API request and response =>https://documenter.getpostman.com/view/30785554/2s9YXb8R1W#6e53dfd7-1ab7-4834-a43d-800e85ff5831
PUT API to Move up/ Move Down/Move to top/Move to bottom/delete a Rule (This will be achieved by a single api )
API request and response => https://documenter.getpostman.com/view/30785554/2s9YXb8R1W#61966ae2-3c76-4ce5-bbfc-e4343a879403
POST API to matches the requested rule of a particular account from rules saved in DB priority-wise and returns that matched rule's details