1. 商品多规格SKU的概念
SKU,全称为Stock Keeping Unit,中文名叫库存量单位。它是指一种物品的编码形式,每一种品类、每一种规格、每一种颜色、每一种款式都应该有唯一的一个SKU编号。
商品多规格SKU指一个商品有多种规格型号,而每种规格型号又对应一个唯一的SKU编号。例如,一件T恤可以有多种尺码、颜色、款式,每种尺码、颜色、款式对应一个唯一的SKU编号。
2. 商品多规格SKU的实现方法
实现商品多规格SKU,最常用的方法是使用三维数组,分别储存商品的种类、型号和对应的SKU编号。以下是使用三维数组的一个示例:
$goods = array(
'种类A' => array(
'型号A' => 'SKU001',
'型号B' => 'SKU002',
'型号C' => 'SKU003'
),
'种类B' => array(
'型号A' => 'SKU004',
'型号B' => 'SKU005',
'型号C' => 'SKU006'
)
);
以上代码中,第一维是商品的种类,第二维是商品的型号,第三维是对应的SKU编号。可以根据需要,添加或删除商品种类、型号和SKU编号。
2.1 前端页面展示
在前端页面展示商品多规格SKU,需要使用表格进行展示。以下示例代码展示如何使用表格展示商品的不同规格:
<table>
<thead>
<tr>
<th>颜色</th>
<th>尺码</th>
<th>价格</th>
<th>库存</th>
</tr>
</thead>
<tbody>
<?php foreach($goods['种类A'] as $model => $sku): ?>
<tr>
<td>红色</td>
<td><?php echo $model ?></td>
<td><?php echo get_price($sku) ?></td>
<td><?php echo get_stock($sku) ?></td>
</tr>
<tr>
<td>蓝色</td>
<td><?php echo $model ?></td>
<td><?php echo get_price($sku) ?></td>
<td><?php echo get_stock($sku) ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
以上示例代码中,使用foreach循环展示商品的不同规格。在每个表格单元格中,使用get_price和get_stock函数获取对应SKU编号的价格和库存。
2.2 数据库设计
在数据库中保存商品的多规格SKU,需要使用三张表,分别储存商品种类、型号和SKU信息。以下是常用的表结构:
商品种类表:
CREATE TABLE `goods_category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL COMMENT '分类名称',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品分类表';
商品型号表:
CREATE TABLE `goods_model` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL COMMENT '型号名称',
`category_id` int(11) NOT NULL COMMENT '分类ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品型号表';
SKU信息表:
CREATE TABLE `goods_sku` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`goods_id` int(11) NOT NULL COMMENT '商品ID',
`model_id` int(11) NOT NULL COMMENT '型号ID',
`color` varchar(255) NOT NULL COMMENT '颜色',
`size` varchar(255) NOT NULL COMMENT '尺码',
`price` decimal(10,2) NOT NULL COMMENT '价格',
`stock` int(11) NOT NULL COMMENT '库存',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品SKU表';
以上三张表结构的设计,可以满足大部分商品多规格SKU的需求。
2.3 后台添加和修改SKU信息
在后台添加和修改SKU信息,需要一个表单来收集商品的各种规格信息,并将信息保存到SKU信息表中。以下是一个简单的后台表单示例:
<form method="post" action="add-sku.php">
<input type="hidden" name="goods_id" value="1">
<div>
<label>型号:</label>
<select name="model_id">
<option value="1">S</option>
<option value="2">M</option>
<option value="3">L</option>
</select>
</div>
<div>
<label>颜色:</label>
<input type="text" name="color" value="">
</div>
<div>
<label>尺码:</label>
<input type="text" name="size" value="">
</div>
<div>
<label>价格:</label>
<input type="text" name="price" value="">
</div>
<div>
<label>库存:</label>
<input type="text" name="stock" value="">
</div>
<input type="submit" value="添加">
</form>
在表单提交后,可以使用PHP代码将表单数据保存到SKU信息表中。以下是一个简单的添加SKU信息的示例代码:
<?php
$goods_id = $_POST['goods_id'];
$model_id = $_POST['model_id'];
$color = $_POST['color'];
$size = $_POST['size'];
$price = $_POST['price'];
$stock = $_POST['stock'];
$sql = "INSERT INTO goods_sku (goods_id, model_id, color, size, price, stock) VALUES (?, ?, ?, ?, ?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $goods_id);
$stmt->bindParam(2, $model_id);
$stmt->bindParam(3, $color);
$stmt->bindParam(4, $size);
$stmt->bindParam(5, $price);
$stmt->bindParam(6, $stock);
$stmt->execute();
echo '添加成功';
?>
2.4 后台查看和修改SKU信息
在后台查看和修改SKU信息,可以使用一个表格来展示SKU列表,并在每一行的操作中添加编辑和删除按钮。以下是一个简单的SKU列表的示例代码:
<table>
<thead>
<tr>
<th>ID</th>
<th>型号</th>
<th>颜色</th>
<th>尺码</th>
<th>价格</th>
<th>库存</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($sku_list as $sku): ?>
<tr>
<td><?php echo $sku['id'] ?></td>
<td><?php echo get_model_name($sku['model_id']) ?></td>
<td><?php echo $sku['color'] ?></td>
<td><?php echo $sku['size'] ?></td>
<td><?php echo $sku['price'] ?></td>
<td><?php echo $sku['stock'] ?></td>
<td>
<a href="edit-sku.php?id=<?php echo $sku['id'] ?>">修改</a>
<a href="delete-sku.php?id=<?php echo $sku['id'] ?>">删除</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
在表格中展示SKU列表,并对每一行添加编辑和删除按钮。在编辑SKU信息时,可以使用表单来展示SKU的规格信息,并在表单提交后将信息更新到SKU信息表中。以下是一份简单的修改SKU信息的示例代码:
<form method="post" action="update-sku.php">
<input type="hidden" name="id" value="1">
<div>
<label>颜色:</label>
<input type="text" name="color" value="红色">
</div>
<div>
<label>尺码:</label>
<input type="text" name="size" value="S">
</div>
<div>
<label>价格:</label>
<input type="text" name="price" value="99.00">
</div>
<div>
<label>库存:</label>
<input type="text" name="stock" value="10">
</div>
<input type="submit" value="保存">
</form>
以上代码中,使用表单展示SKU的规格信息,并将更新后的信息保存到SKU信息表中。
3. 总结
通过本篇文章,我们学习了商品多规格SKU的概念和实现方法。具体来说,我们学习了使用三维数组来储存商品的多规格SKU,使用表格在前端界面展示SKU信息,设计数据库表结构来保存SKU信息,以及使用表单在后台界面添加、修改和删除SKU信息。
在实际开发中,商品的多规格SKU是非常常见的需求,掌握以上的方法和技巧,可以有效提高开发效率。