preface
So far, the contents of SkrShop’s E-commerce Design Manual series have covered the following chunks:
- The user
- goods
- The shopping cart
- marketing
- pay
- Basic services
Today we are ready to open a new chapter order center.
The main contents of order center series are as follows:
knowledge |
---|
Order settlement page |
Create the order |
Order the performance |
The order status |
The order details |
Reverse order operation |
. |
First of all, let’s review a simple process of users’ shopping on e-commerce platforms, as shown in the figure below:
So, what are we talking about today?
A: In this article today, we will mainly talk about the design and implementation of the "order settlement page" in the above process.Copy the code
What does the order settlement page look like?
Let’s look at the order settlement page of east:
Take a look at the order settlement page of X Treasure:
Through the above screenshot, we can roughly get the main content of the order settlement page:
- User default shipping address information
- Payment method selection
- Store & merchandise information
- Alternative means of distribution of goods
- Invoice Type selection
- Preferential information
- Order related amount
- , etc.
Composition of the order settlement page
I have been thinking that the front-end can be modular, but the back-end interface data can not be modular?
My answer: yes.Copy the code
Based on the content sorted out above, and through previous experience, the order settlement page is modular split and combined to obtain the following modular composition of the order settlement page:
About how to design the code, you can refer to my article “code components | my code no else”
Order settlement page module analysis
The module number | The name of the module | Submodule Number | Submodule Name | Module description |
---|---|---|---|---|
1 | The address module | – | – | Displays the optimal user address |
2 | Payment mode module | – | – | Payment method supported by this order |
3 | The store module | – | – | Including store information, product information, participating preferential information, optional logistics methods, product after-sales information, etc |
3 | – | 3.1 | The commodity module | Includes sub-modules: basic commodity information module, commodity preferential information module, after-sale module |
3 | – | 3.2.1 | Commodity basic information module | Product information, name, picture, price, stock, etc |
3 | – | 3.2.2 | Commodity discount information module | Selected sales campaign offers options |
3 | – | 3.2.3 | After module | Information on after-sale rights and interests enjoyed by goods |
3 | – | 3.3 | Logistics module | Alternative delivery methods |
3 | – | 3.4 | Store commodity amount information module | – |
4 | The invoice module | – | – | Select the type of invoice and supplement the invoice information |
5 | Coupon module | – | – | Display a list of coupons that can be used for this order |
6 | Gift card module | – | – | Show the list of gift cards you can choose to use |
7 | Platform integration module | – | – | Users can use points to offset part of their cash |
8 | Order amount information module | – | – | Contains the amount details of the order |
The address module
Displays the optimal address of the user
Optimal address logic:
- First, the default address set by the user
- If there is no default address, the address of the most recent order is returned
The field names | type | Subfield name | type | Field meaning |
---|---|---|---|---|
consignee | string | – | – | Name of consignee |
string | – | – | Consignee email address (return value username part of the code) | |
mobile | string | – | – | Consignee’s mobile phone number (four digits in the middle of return value) |
country | object | id | int64 | National ID |
country | object | name | string | State the name of the |
province | object | id | int64 | Provincial ID |
province | object | name | string | The name of the province |
city | object | id | int64 | The city ID |
city | object | name | string | The city name |
county | object | id | int64 | Area county ID |
county | object | name | string | Area county name |
street | object | id | int64 | Street township ID |
street | object | name | string | Street town name |
detailed_address | string | – | – | Detailed address (user’s hand) |
postal_code | string | – | – | Zip code |
address_id | int64 | – | – | Address ID |
is_default | bool | – | – | Default address |
label | string | – | – | Address type label, home, company, etc |
longitude | string | – | – | longitude |
latitude | string | – | – | latitude |
Module data Demo:
{
"address_module": {
"consignee": "Name of consignee"."email": "Consignee email address (return value username part of the code)"."mobile": "Consignee's mobile phone number (four digits in the middle of return value)"."country": {
"id": Awesome!."name": "Country name"
},
"province": {
"id": 12123."name": "Name of province"
},
"city": {
"id": 212333."name": "City name"
},
"county": {
"id": 1233222."name": "District and county Name"
},
"street": {
"id": 9989999."name": "Street town name"
},
"detailed_address": "Full address (user's hand)"."postal_code": "Zip code"."address_id": 212399999393."is_default": false."label": "Address type tag, home, company, etc."."longitude": "Longitude"."latitude": "Latitude"}}Copy the code
Payment mode module
Payment method supported by this order
Payment options:
- Online payment
- Cash on delivery
The field names | type | Subfield name | type | Field meaning |
---|---|---|---|---|
pay_method_list | array | id | int | Payment Method ID |
pay_method_list | array | name | string | Name of Payment Method |
pay_method_list | array | desc | string | Description of Payment Method |
Module data Demo:
{
"pay_method_module": {
"pay_method_list": [{"id": 1."name": "Online payment"."desc": "Description of Online payment"
},
{
"id": 2."name": "Cash on delivery"."desc": "Description of cash on delivery."}}}]Copy the code
The store module
Including store information, product information, participating preferential information, optional logistics methods, product after-sales information, etc
The store module consists of the following sub-modules:
- The commodity module
- Commodity basic information module
- Commodity discount information module
- After module
- Commodity logistics module
- Store total amount information module
We’ll do a separate analysis later because there’s more to it.
The invoice module
The user selects the type of invoice and supplements the invoice information
Select the type of invoice:
- personal
- unit
The field names | type | Subfield name | type | Field meaning |
---|---|---|---|---|
type_id | int | – | – | Type of invoice: Individual; unit |
type_name | string | – | – | Invoice Type Name |
type_desc | string | – | – | Description of Invoice Type |
Module data Demo:
{
"invoice_module": {
"type_list": [{"type_id": 1."type_name": "Personal"."type_desc": "Description"
},
{
"type_id": 2."type_name": "The company"."type_desc": "Description"}}}]Copy the code
Coupon module
Returns a list of coupons that can be used for the order, and the default selection of the best coupon for the current order
- Display the user’s coupon list: the ones available for the current order are at the top and the others are at the bottom
- By default, select the best coupon: the coupon with the largest discount for the current order
For more information on coupons, see the Coupons section.
Gift card module
Show the list of gift cards you can choose to use
The field names | type | Subfield name | type | Field meaning |
---|---|---|---|---|
giftcard_list | array | id | int64 | The gift card id |
giftcard_list | array | name | string | Name of gift Card |
giftcard_list | array | desc | string | Gift Card Description |
giftcard_list | array | pic_url | string | Gift Card pictures |
giftcard_list | array | total_amount | float64 | Initial total amount of gift card |
giftcard_list | array | total_amount_txt | string | Initial total amount of gift card – after formatting |
giftcard_list | array | remaining_amount | float64 | Amount remaining on the gift card |
giftcard_list | array | remaining_amount_txt | string | Remaining amount of gift card – after formatting |
Module data Demo:
{
"giftcard_module": {
"giftcard_list": [{"id": 341313121."name": "Gift Card Name"."desc": "Gift Card Description"."pic_url": "Gift Card picture"."total_amount": 100.00."total_amount_txt": "100.00"."remaining_amount": 21.00."remaining_amount_txt": "21.00"}}}]Copy the code
Platform integration module
Users can use points to cash out
For example, the line of some east order settlement page in Beijing beans.
The field names | type | Subfield name | type | Field meaning |
---|---|---|---|---|
order_amount_min | float64 | – | – | Lower limit of order amount that can be used for credit credit function |
total_points | int64 | – | – | Total user credits |
can_use_points | int64 | – | – | Credits available (credits that may be frozen) |
points2money_rate | int | – | – | Points are converted into cash ratios, such as 1 yuan for every 100 points, with a minimum of 1 point worth 0.01 yuan |
points2money_min | int | – | – | What is the minimum number of points a user can use to cash |
points2money_max | int | – | – | The maximum number of credits can be used for a single order |
points_amount | float64 | – | – | The amount of credits can be deducted from this order |
points_amount_txt | string | – | – | The order credits are deductible amount – after formatting |
Module data Demo:
{
"points_module": {
"order_amount_min": 100.00."total_points": 9999."can_use_points": 9999."points2money_rate": 100."points2money_min": 1000."points2money_max": 9999."points_amount": 99.99."points_amount_txt": "99.99"}}Copy the code
Order amount information module
Contains the amount details of the order
The field names | type | Subfield name | type | Field meaning |
---|---|---|---|---|
skus_amount | float64 | – | – | The total amount of the goods |
promotion_amount | float64 | – | – | The total amount of the offer |
freight | float64 | – | – | The freight |
final_amount | float64 | – | – | Pay the amount |
promotion_detail | object | coupon_amount | float64 | Discount coupon amount |
promotion_detail | object | sales_activity_amount | float64 | Discount amount for sales activities |
promotion_detail | object | giftcard_amount | float64 | Amount of gift card used |
promotion_detail | object | points_amount | float64 | The amount of credits deducted for this order |
_txt field slightlyCopy the code
Module data Demo:
{
"order_amount_module": {
"skus_amount": 99.99."skus_amount_txt": "99.99"."promotion_amount_total": 10.00."promotion_amount_total_txt": "10.00"."freight_total": 8.00."freight_total_txt": "8.00"."final_amount": 97.99."final_amount_txt": "97.99"."promotion_detail": {
"coupon_amount": 5.00."coupon_amount_txt": "5.00"."sales_activity_amount": 5.00."sales_activity_amount_txt": "5.00"."giftcard_amount": 0."giftcard_activity_amount_txt": "0"."points_amount": 0."points_amount_txt": "0"}}}Copy the code
conclusion
As mentioned above, the content of the order settlement page is basically introduced. If you have any questions, please leave a message on our Github project at github.com/skr-shop/ma… .
[Skr Shop] Project address long press to enter: github.com/skr-shop/ma…
SkrShop series more articles:
- SkrShop | electric maker also confuse one yuan, conventional seconds kill, kill time to buy?
- SkrShop | do you want to know the coupon business, SkrShop tell you
- What SkrShop |, seconds kill system has so many!
- SkrShop | shopping cart design of requirement analysis
- The architectural design of SkrShop | a shopping cart
- SkrShop | system design of general drawing tools
- SkrShop | general demand analysis of drawing tools
- SkrShop | coder, you can design the trading system (work)?
- SkrShop | coder, you can design the trading system (concept)?
- SkrShop | third-party payment process analysis and summary
- SkrShop | electrical design manual of basic goods information
- SkrShop | electric business users of the system design manual