Home  >  Article  >  Backend Development  >  How to use PHP to develop the full discount and promotion functions of the grocery shopping system?

How to use PHP to develop the full discount and promotion functions of the grocery shopping system?

王林
王林Original
2023-11-01 16:48:361110browse

How to use PHP to develop the full discount and promotion functions of the grocery shopping system?

As the e-commerce market becomes increasingly mature and developed, all walks of life are exploring and providing richer preferential activities, and the grocery shopping system is no exception. Using PHP to develop the full discount and promotion functions of the grocery shopping system can not only attract more users, but also improve the user's shopping experience. In this article, we will introduce how to use PHP to develop the full discount and promotion functions of the grocery shopping system.

1. Full discount activity

Full discount is one of the common promotion methods on e-commerce platforms. It usually means that users can enjoy certain discounts when they purchase a certain number or amount of goods. Discount or direct cash reduction.

  1. Database design

Developing full reduction activities requires designing a database. The following is a simple database design:

Activity table (t_activity)
Field name type remarks
id int Auto-increment ID
name varchar(255) Activity name
description text Activity description
type tinyint Activity type (1: Full discount, 2: Special offer, 3: Discount)
start_time datetime start time
end_time datetime end time
status tinyint activity status (1: in progress, 2: ended)

Activity rule table (t_activity_rule)
Field name type Remarks
id int auto-increment ID
activity_id int activity ID
rule_name varchar(255) rule name
type tinyint rule type (1: Full discount, 2: Special offer, 3: Discount)
condition_amount decimal(10,2) condition amount
condition_count int condition quantity
discount_amount decimal(10,2) reduction amount
discount_rate decimal(5,2) discount rate

  1. implementation Idea

The following steps are required to implement the full discount activity function:

(1) Obtain the user’s shopping cart information and full discount activity information;

(2) Traverse the products in the shopping cart and calculate the subtotal amount of each product;

(3) Filter out the products that meet the conditions according to the conditional amount and conditional quantity in the activity rule table;

( 4) Calculate the discount amount based on the reduction amount and discount rate in the activity rule table;

(5) Return the subtotal amount and discount amount of each item in the shopping cart, as well as the total amount and discount in the shopping cart amount.

  1. PHP code implementation

The following is a simple example of PHP code to implement the full reduction activity function:

Reference code:

< ;?php
//Get shopping cart information and full discount activity information
$cart_items = array(

array('product_id'=>1, 'product_name'=>'苹果', 'product_price'=>5.00, 'product_count'=>3, 'subtotal'=>15.00),
array('product_id'=>2, 'product_name'=>'橙子', 'product_price'=>10.00, 'product_count'=>2, 'subtotal'=>20.00),
array('product_id'=>3, 'product_name'=>'西瓜', 'product_price'=>20.00, 'product_count'=>1, 'subtotal'=>20.00)

);
$activity_rules = array(

array('type'=>1, 'condition_amount'=>30.00, 'condition_count'=>0, 'discount_amount'=>10.00),
array('type'=>1, 'condition_amount'=>0.00, 'condition_count'=>3, 'discount_amount'=>5.00)

) ;
//Traverse the items in the shopping cart and calculate the subtotal amount of each item
foreach ($cart_items as &$item) {

$item['subtotal'] = $item['product_price'] * $item['product_count'];

}
unset($item);
//According to the conditional amount and conditional quantity in the activity rule table, filter out the eligible products and calculate the discount amount
$total_amount = $total_discount = 0.00;
foreach ($activity_rules as $rule) {

$eligible_items = array();
if ($rule['type']==1) {//满减活动
    foreach ($cart_items as &$item) {
        if ($rule['condition_amount']>0 && $item['subtotal']>=$rule['condition_amount']) {
            $eligible_items[] = &$item;
        }
        if ($rule['condition_count']>0 && $item['product_count']>=$rule['condition_count']) {
            $eligible_items[] = &$item;
        }
    }
    unset($item);
    $discount_amount = count($eligible_items) * $rule['discount_amount'];
    foreach ($eligible_items as &$item) {
        $item['discount'] = $rule['discount_amount'];
    }
    unset($item);
    $total_discount += $discount_amount;
}

}
//Calculate the total amount and discount amount of the shopping cart
foreach ($cart_items as $item) {

$total_amount += $item['subtotal'];
$total_discount += isset($item['discount']) ? $item['discount'] : 0.00;

}
//Return to the shopping cart The subtotal amount and discount amount of each item in the shopping cart, as well as the total amount and discount amount of the shopping cart
$result = array('cart_items'=>$cart_items, 'total_amount'=>$total_amount, 'total_discount' =>$total_discount);
echo json_encode($result);
?>

2. Promotional activities

In addition to full discount activities, the grocery shopping system can also Set up other kinds of offers, such as specials, discounts, etc.

  1. Database design

The following is a simple database design to implement the preferential activity function of the grocery shopping system:

Product table (t_product)
Field name type remarks
id int auto-increment ID
name varchar(255) product name
price decimal(10,2) product price
discount_price decimal(10,2) discount price
is_special tinyint Is it a special product?
is_discount tinyint Is it a discounted product

  1. Implementation idea

To implement the special offer and discounted product functions, the following steps are required :

(1) Obtain the product list and information on specials and discounted products;

(2) Calculate the preferential price of each product based on the information on specials and discounted products;

(3) Return the product list and the preferential price of each product.

  1. PHP code implementation

The following is a simple example of PHP code to implement special offers and discounted product functions:

Reference code:

//Get the product list and information on specials and discounts
$products = array(

array('id'=>1, 'name'=>'苹果', 'price'=>5.00, 'discount_price'=>0.00, 'is_special'=>true, 'is_discount'=>false),
array('id'=>2, 'name'=>'橙子', 'price'=>10.00, 'discount_price'=>8.00, 'is_special'=>false, 'is_discount'=>true),
array('id'=>3, 'name'=>'西瓜', 'price'=>20.00, 'discount_price'=>0.00, 'is_special'=>false, 'is_discount'=>false)

);
//According to the specials and discounts information, calculate the preferential price of each product
foreach ($products as &$product) {

if ($product['is_special']) {
    $product['discount_price'] = $product['price'] * 0.8;//特价商品打八折
}
if ($product['is_discount']) {
    $product['discount_price'] = $product['price'] * 0.85;//折扣商品打八五折
}

}
unset($product);
//Return the product list and each Preferential prices for products
$result = array('products'=>$products);
echo json_encode($result);
?>

3. Summary

This article introduces how to use PHP to develop the full discount and preferential activity functions of the grocery shopping system. For grocery shopping systems, promotional activities are an important way to attract users and an effective way to improve users’ shopping experience. Therefore, when developing a grocery shopping system, the database and implementation algorithms should be reasonably designed according to actual needs to improve system performance and user experience.

The above is the detailed content of How to use PHP to develop the full discount and promotion functions of the grocery shopping system?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn