Detailed explanation of the order design model in the e-commerce platform!

Detailed explanation of the order design model in the e-commerce platform!

As a business subsystem, the order system is very common in e-commerce, retail, catering, education, and medical SaaS systems.

As long as there are transactions on the platform, the order system is inevitable, because ultimately all transactions need to be completed by creating an order and making a payment.

Due to the high frequency of occurrence of the order system and the similar order design ideas for different businesses, we can abstract it as an underlying system and establish a set of order design models to facilitate our rapid application to various business systems.

1. Order system architecture

Take e-commerce as an example:

As the most complex core system (or module) of e-commerce, order is built on other system modules.

Modules including but not limited to merchandise, coupons, memberships, marketing activities, address information, points, shipping, shopping carts, payments, delivery and receipt are all closely related to orders. Any changes to any module may affect the order. It is no exaggeration to say that orders are the core subsystem of the trading platform.

Information included in the order:

E-commerce order system architecture:

Therefore, the most important thing for good order management is comprehensive coverage and strong scalability.

2. Order system module split

Orders are mainly divided into two parts: order creation and order management.

1. Order creation

Order creation can be initiated by C-end users and B-end users, and generated in the order system.

The node for order creation is displayed on the page. The order will be created the moment you click the "Submit Order" button on the order submission page.

Of course, on the surface, clicking "Submit Order" triggers the order creation, but behind the scenes, the creation process will call the various modules mentioned above and is interspersed with a lot of logical judgments.

Submit order page prototype:

The following is the verification generated by the order:

That is, at the moment of "submitting the order", multiple pieces of information will be logically judged.

Shipping information: shipping method and shipping address.

It is necessary to determine whether the delivery method and address are filled in; (if it is a takeaway) whether the delivery address exceeds the delivery range;

commodity

(1) It is necessary to determine whether the product is on the shelf;

(2) Whether the product is sold out;

(3) Whether the product inventory is less than the quantity of the product in the order; (if there is a gift) whether the gift is out of stock;

freight

(1) After selecting the delivery address, the freight will be automatically calculated according to the freight template in the background and will be displayed on the [Submit Order] page;

(2) When submitting an order, you need to check whether the freight information has changed;

Promotions

It is necessary to determine all promotional activities applicable to the current user and the order items. Promotional activities are generally divided into two levels: platform level and store level

(1) Platform level: promotional activities for products on the platform;

(2) Store level: promotional activities for products within the store.

Of course, there are some restrictions on such activities, such as

(1) How much order amount is required to participate?

(2) Only for members of a certain level

(3) Only certain categories or designated products can participate

(4) If you meet the conditions for participating in multiple activities at the same time, you can only participate in the activity with the highest priority;

Etc., depending on the number and complexity of promotions.

Membership Benefits

When submitting an order, you need to determine whether the membership level and corresponding preferential rights have changed, and whether the number of available points has changed.

Coupons

(1) It is necessary to determine whether the coupon has been redeemed;

(2) Whether it has expired;

(3) Whether it is within the applicable period;

(4) Whether it has been used, etc.

Once the order is submitted, the order is created. At this time, the order module will also issue instructions to require other modules to cooperate accordingly:

(1) The inventory of goods in the order needs to be frozen in the goods module

(2) The coupon used in the order needs to change its status in the coupon module

(3) Promotional rights used in orders should be marked as used.

(4) The points deducted from the order should be deducted from the user's points, etc.

Of course, for takeout, it is also necessary to determine whether the store is on break, whether the store has opened the delivery method, whether the order price meets the minimum delivery price, and other situations when submitting the order. If there are any changes, the user will be prompted accordingly.

2. Order Management

When an order is created, it enters the order management stage.

C-end page:

Order management page for B side:

Order rotation process:

About order status

From the user (buyer) perspective, the order flow status of e-commerce platforms generally has the following six states:

(1) Pending payment: After the user submits an order but before payment, the order is in the pending payment status, and the merchant side is also in the pending payment status.

(2) Pending Shipment: When the user completes the payment, the order status changes to Pending Shipment, and the merchant side is also updated to the "Pending Shipment" status simultaneously.

(3) Waiting for Receipt: When the merchant confirms the shipment in the background, the order status will be displayed as "Waiting for Receipt" on the buyer's side and "Shipped" on the seller's side. There is a difference between the displays on both sides.

If the buyer does not click to confirm after receiving the goods, the platform will generally have a period (14 days for Taobao). After 14 days, the system will automatically confirm receipt and change it to a successful transaction.

(4) Refund in progress: There are two situations that will cause the order to be changed to the "Refund in progress" status.

1) If the order is in the "pending receipt" state, that is, after the merchant has shipped the goods, the buyer makes a refund, then the order status will directly change to refunding;

2) If the buyer cancels the order/the seller requests a full refund while the item is in the "pending shipment" state, the item will enter the refunding state.

3) After the buyer confirms receipt of the goods, if he/she applies for a refund, the status will be "refund in progress". Generally, e-commerce platforms support returns without reason within 7 days after confirmation of receipt.

(5) Transaction completed: There are two situations that will cause the order to be changed to "Transaction successful"

1) The user confirms receipt of the goods;

2) The buyer applies for a partial refund. After the refund process is completed and the remaining goods are confirmed to have been received, the order is changed to "transaction successful".

(6) Transaction closed: There are three situations in which "Transaction closed" will occur.

1) A full refund is initiated after "transaction successful", and the refund process is changed to "transaction closed" after completion;

2) The buyer cancels the order/the order times out when it is "pending payment");

3) When the order is "pending for shipment", the buyer applies for a refund, and the order is changed to "transaction closed" after the merchant confirms.

About preferential allocation in order

Why should we consider discount sharing? If a certain discount activity is used when placing an order, when the order is partially refunded, we certainly cannot directly refund the original price of the goods to the buyer, as this will cause great losses to the seller.

Therefore, when an order is generated, the discount allocation will be calculated for the products that use the discount activity.

Example

Let’s take the simplest example. A buyer purchased product A for 100 yuan and product B for 200 yuan. When submitting the order, he participated in a promotion of 50 yuan off for purchases over 100 yuan, so he finally paid 250 yuan.

If the buyer is not satisfied with the goods after receiving them and applies for a refund, how much should be refunded to A after the seller agrees and completes the refund process?

A's refund amount = 100*250/(100+200) = 83.33 yuan (retain 2 decimal places)

He cannot receive 100 yuan, because if he receives 100 yuan, it is equivalent to using 150 yuan to buy B in the end, which is a loophole.

Let's take a more complex example: This case involves platform cross-store promotions, store promotions, coupons and discounts.

Example

The buyer purchased 1 item A for 100 yuan (Store A), 1 item B for 200 yuan (Store A), and 1 item C for 300 yuan (Store B).

When submitting the order, the customer participated in Store A's promotion 1 of 50 yuan off for purchases over 200 yuan, and also participated in the platform's promotion 2 of 100 yuan off for purchases over 200 yuan. In addition, a 150 yuan platform voucher was used.

Then according to the priority, the products A+B enjoy the activity 1 of store A and become (100+200-50)=250 yuan, and then A+B+C continue to participate in the platform's activity 2 and become (250+300-100)=450 yuan. Finally, after using a platform voucher, the payment is (450-150)=300 yuan, that is, the final payment is 300 yuan.

That is, participation is based on the priority of activity 1>activity 2>vouchers.

Assuming that the voucher cannot be returned during a refund, when the order is generated, let's calculate the refundable amount of A, B, and C after each layer of discount is allocated:

First layer: after activity 1 is allocated

Product A = 100-50/(100+200)*100 = 83.33 yuan

Product B = 200-50/(100+200)*200 = 166.67 yuan

Product C = 300 yuan

Second layer: After activity 2 is allocated

Product A = 83.33-100/550*83.33 = 68.18 yuan

Product B = 166.67-100/550*166.67=136.37 yuan

Product C = 300-100/550*300 = 245.46 yuan

Note: 83.33+166.67+300=550 yuan

The third layer: after the voucher is allocated

Product A = 68.18-150/450*68.18 = 45.45 yuan

Product B = 136.37-150/450*136.37=90.91 yuan

Product C = 245.46-150/450*245.46=163.64 yuan

Note: 68.18+136.37+245.46=450 yuan

Therefore, after the three-tier preferential allocation from high to low priority, the final actual refundable amount for A is 45.45 yuan, for B is 90.91 yuan, and for C is 163.64 yuan.

About splitting orders

In e-commerce platforms, as long as there is a shopping cart function, there will be buyers purchasing goods across stores.

For example, an order contains one item A from Store A and one item B from Store B. For the buyer, he has only placed one order; but for the platform, it needs to push A's order information to Store A and B's order information to Store B, which requires splitting the buyer's order.

In addition, for orders submitted to Store A, if the order contains multiple items A, B, and C, the delivery order may also be split, for example, A and B are shipped together, and C is shipped separately.

Author: Smart Team

Source: Simat Team (lifelaosiji)

<<:  I believe my friends recommend Shenzhen to have a good place to enjoy tea, high-quality takeaway and tea.

>>:  Advertising and Marketing: How to brainwash appropriately and efficiently?

Recommend

B2B Marketing Promotion!

The article shares practical experience and thoug...

Marketing promotion strategy, 3 strategies to create brand personalization!

How can you make your brand stand out, have lasti...

A low-cost guide to marketing on Xiaohongshu!

A friend who is in the branding business asked: H...

How to plan an event promotion plan to achieve sales of 10,000 items?

Recently, the editor saw such a homework question...

Cold Start | How I ignited Huajiao Live without spending a penny

At the end of 2015, the night when Wang Sicong po...

7 Common Mistakes in App Store Keyword Selection

In the process of mobile game or mobile applicati...