Order information
1. Key fields
The efficiency of order flow depends on the data flow of the information system combined with the commodity flow of the warehouse and express, so there are several key fields to pay attention to and understand in advance.
Where the order flows into the OMS (Order management System), that's where the order comes from. Different sources of order sales channels are different, and some flow is also different, such as orders shipped by a third party, the system needs to pass information according to the open platform, for delivery, logistics and other control is different from self-operated orders.
Different types of orders are processed differently in the OMS system. Some may be cross-node or reverse process. For example, the return order is a process from the user to the merchant. It is more complicated than the forward order, because it needs to obtain the information generated in the forward order flow process and then calculate and process according to the rules.
Warehouse, that is, where the orders should be sent to for operation processing, what standard processes are required for circulation in the warehouse, different warehouses may belong to different branches, and what are the differences in cost accounting? Although we do not pay attention to these information in the early stage of OMS, we must ensure the accuracy of these information. And for some merchants in A warehouse out of stock, may arrange B warehouse delivery that order transfer, not through the way of warehouse transfer, so the order to record the final delivery warehouse.
Payment status, this field is related to payment, different payment methods need to connect to different interfaces, whether the return of the status is timely, and so on. Payment status and order status can be combined into a single field.
Order status, that is, the status of the order on different operational nodes, some information is presented to the user and some is viewed internally. A detailed introduction will follow.
2. Order information
When the order is generated, it simply says that the order information includes basic order information and order product information, and also includes a lot of subsidiary information, such as payment details, associated users, and gift card details used
(1) Basic order information
Order information is the main order table information, I will be divided into order number, order user information, order basic information, payment information, receiving information and logistics information several small parts.
1) Order number: listed separately, we may have questions, here to explain.
Although the order number is only a document number, what kind of format of the number needs to be designed, because some companies order number is year month date + serial number or random number, so there is no problem in the design, because as long as the uniqueness is guaranteed. However, for some companies in order to avoid data leakage (such as friends by order number analysis of daily order volume) some processing in the document number format.
In addition, the order number is a very important field in the flow process. Therefore, if a good OMS system can distribute the flow according to the order number, the operator can also determine the order type or warehouse information based on the order number. Attachment: Amazon China order number format: C01-2442712-9062228; Jd order number: 106697775485; Taobao order number: 786699393282068525
The generation of order numbers needs to be supported by a component. First, it must be able to meet the requirements of the growth of order volume and user concurrency. Secondly, with the growth of data volume, the order table should be split horizontally or vertically for database and table classification, and the data should be distributed storage (if you are interested, please see the Practice of Database and Table Classification of Dianping Order System). We have started the practice of sub-library sub-table project, but for various reasons, the promotion is not smooth, and finally only the single number generator and some service components are online, it is a pity.
2) Basic Information:
Including the main information in addition to the order number such as source, classification, status, ownership, warehouse, etc., because the order table is the largest amount of data in the future, so the design of each field needs to consider its real meaning and whether it can meet the future expansion.
With the passage of time and the rapid change and growth of the business, there are many possibilities in the future that will force you to add fields or define the original fields twice, so that this table must be constantly escaped during the development process, which greatly increases the complexity of the code. Personal is more inclined to predefined a few reserved fields, the pros and cons of everyone in the design to measure it.
3) Payment information:
Payment is mainly for coupons, gift cards, points and discounts used at the order level. When the front-end order enters the settlement page, it will be calculated and recorded according to relevant information. At the same time, it generally follows: order amount - coupon - gift card - points = amount payable; Order amount = order amount + freight amount; Order amount = actual selling price * Quantity of goods sold.
4) Receiving information:
The order user and the consignee may be different, in order to better improve the user experience, some orders can be booked delivery time, so this part of the information can be listed separately or with ancillary information for protection.
5) Logistics information:
Here, it is necessary to record the express company and logistics order number, and make associated calls with the logistics details.
(2) Order information
This table is the detailed commodity information of the transaction, which naturally includes the basic information of the commodity, and also includes the price and preferential information of the commodity at the time of the transaction, and should also include information about the activities of the commodity in the transaction process.
The commodity information table is the order table, the amount of data is several times or ten times the order table, and some preferential amounts for the order level need to be shared according to the commodity. Since the invoice is based on the product information, pay attention to the tail difference when apportioning the amount; At the same time, when the order is returned or replaced, the amount should be re-amortized according to the goods.
For the reamortization of the return and exchange of goods, it is for the user has enjoyed the order level or product promotion activities, when the return or exchange of goods due to changes in the goods, so that the order level or exchange of goods can no longer enjoy its promotional offers, the need to recalculate the discount amount of the process.
(3) Billing information
(4) Payment details
For payment, it was briefly talked about when the order was generated, and it is emphasized here that the payment details are for various payment methods. As mentioned before, the information involving money can not be sloppy, must be recorded clearly, there must be a transaction serial number (our company or a third party), the process of state change is the payment log.
This part will then enter the financial system for reconciliation of accounts receivable, and it needs to be inspected when a refund occurs. How to design and develop the payment system is not verbose, the official word is to ensure the accuracy and timely data and compensation measures after the occurrence of anomalies; Improve the response time as much as possible at checkout, even 1ms can greatly improve the user experience.
For payment, it is generally carried out according to the parent order, and if the subsequent order is removed, the relevant payment information needs to be associated through the parent order number.
(5) Logistics details
(6) Order attachment form
This part is designed according to the actual business situation, such as the use of gift cards in the order payment process, then you need to record the relationship between the gift card and the order number, and record how much money is used, how much balance is, what time is deducted, these need to be associated with the gift card system to ensure that the amount of the gift under the name of the user is tracked.
Similarly, points payment needs to record how many points are worth how much money when using points payment, how many points are used for this order, and how much point balance the user has.
Again, information related to money should not be sloppy; For other information that needs to be recorded, if it is not convenient or can not be recorded in the order request form or the product list, you can use the additional form. However, be aware that the more subsidiary tables, the code may be complicated, but it may be easier for moving the database to the table.
At this point, even if the decomposition of order information is completed, orders will generally go through dismantling, that is, an order will be divided into different sub-orders, and subsequent orders are carried out according to sub-orders. The following is a review from the perspective of status.
Order status
The status of the order, I have divided it into three parts:
User related status, that is, the user can view the tracked order status changes in my order;
The state of the warehouse/merchant refers to the state generated during the operation of the warehouse or merchant after the order is assigned to it;
Logistics status, that is, after the warehouse/merchant delivery, the relevant status of the parcel delivery to the user sign for receipt.
Below, according to the new to the user sign this complete process to say my understanding.
New: that is, the new order generated after the user selects the product and submits it. Before the order is generated, the inventory judgment of the goods, the preferential activities of the goods, the preferential activities of the orders, and the payment method and billing information selected by the users are generated according to the delivery address selected by the users. For the detailed process, we can refer to the "E-commerce background - Order Generation".
Payment: The user pays the submitted order, then it is necessary to record the details of the payment, after the payment is completed, the order status becomes paid, at this time the order needs to go through several processes from delivery.
Pull order service: It is to pull the order generated by the front-end server to the back-end production library (generally known as the internal ERP library), which is required to be fast and can not have a backlog of orders.
Split order service: Split order is divided into two parts, pre-split order will be carried out in front order, that is, different goods are divided into piles and marked according to the rules for subsequent split order service. Unorder is carried out after the completion of payment, and it will be divided according to the attributes of the goods, the requirements of the distribution conditions or whether the goods are out of stock and other reasons. At this time, the goods are divided into piles, and then sub-orders are generated. The relevant amount information of the general order main table will be recalculated according to the goods of the sub-order. There are a lot of rules, this article will not comb deeply.
Order placement service: The WMS system is separate from the OMS system or ERP, and if a third-party warehouse system is used, the transfer of data is essential. As for the design of the document delivery and status return system, it is carried out in the way of scheduled task + message queue. Orders can be issued according to the WMS system issued by the warehouse, or they can be passed to the partner merchants through the open platform for shipment. After placing an order on Jingdong, you will clearly see a system message similar to the following: "Your order has been allocated to XXX warehouse..." To the user.
Order blocking service, after the user creates an order or pays, before the order is opened, there should also be an order blocking service. The purpose of this service is to make the judgment of malicious orders, and for the review of special orders, it depends on the relevant rule Settings. When the order is blocked, the order may be forced to cancel in order to release inventory or avoid the user to brush the order, this process is sometimes called the order rollback period, I understand it is similar to the recycle bin.
Pending shipment: Orders in this status may not have been sent to the warehouse, or they may have been sent. But at this point, orders can be canceled.
Looking at the figure above, each state of an order can theoretically be cancelled (user active or passive) before it is shipped.
After the order is cancelled, the status changes to the cancelled state, which I understand to be one of the final states of the order (cancelled, invalid, closed or signed).
If the cancellation of the order has not occurred, it may be made on the basis of payment or non-payment, that is, it does not involve the refund of the user; If an order is opened, the order is to be cancelled according to the sub-order, and whether to judge whether it can be cancelled in the cancellation process, which involves information such as promotion or giveaway or order classification, the details are not said.
Add an order status here, that is, what is the status of the parent order after the order is dismantled? Generally set to invalid order, this is also an end state of the order.
Order received: This status may be defined in WMS system as pending sorting or some other name, in the upper system is issued or pending shipment. At this time, the order begins to flow in the WMS system, but the user generally will not pay attention to your specific performance node, he is most concerned about your delivery or not sent.
Sorting/packaging/delivery: these states are the operation process of warehousing or merchants, the delivery speed is the user's concern, the general upper system only focuses on when to ship, if there is no timely operation will be reminded. Although these status changes are in the warehouse, I think they need to be synchronized to the OMS system, so as to analyze the timeliness of orders and be helpful for after-sales service.
Under normal circumstances, when the order has not started sorting, the user or the system can still cancel, depending on how the order cancellation process is designed.
Shipped: When the warehouse or merchant operates the shipment, the order will enter the next state process, that is, the logistics state. At this time, the order has been packaged and completed, and the order is not allowed to be canceled at this time, if the user does not want to, then it can only be intercepted for rejection processing.
Logistics status information: there are mainly four nodes, "received -> in transit -> Sent -> Signed", which are obtained by connecting with third-party logistics information. These status information are generally separated from the main status of the order and recorded in the logistics list in the order information. When docking with logistics companies, they will have a lot of status codes, which show users, which do not show users can be screened according to the situation. However, it is best to be consistent with the official logistics, because some users will go to the express official website to inquire, and if there is an anomaly, they will complain.
Due to the open interface of the express company, some information is to be desensitized, some information is to be saved, and the update of the logistics status needs to be timely in order to let users see the latest information.
Signature: The user signs and confirms after receiving the goods, and the order is completed. If the follow-up involves quality and other issues, you need to go through the after-sales process.
Reject: Taobao orders are rarely rejected, because businesses generally require to sign for photos after the sale (some goods can). In the large vertical e-commerce website orders general self-owned goods can be rejected. Now basically no cash on delivery, a few years ago to buy goods can choose to pay on delivery, for goods with problems or dissatisfied users can be very calm reject, because you did not pay. Although there are now third-party payments such as Alipay, the rejection involves communication with express delivery and merchants, which is also more troublesome.
After the goods are rejected, it is a new list for the third-party logistics, and who pays the express fee (user or business) is a problem, so it is generally signed and backed up first.
Writing here should be able to simply understand the order generation, according to the relevant state once again understand the document flow process.
email:1583694102@qq.com
wang@kongjiangauto.com