lilishop是一个开源的、轻量级的电商平台,它提供了一套完整的电商解决方案,包括前端展示、后台管理、订单管理、物流管理、支付管理等一系列功能。
一、前端展示
lilishop的前端展示采用了响应式设计,支持PC、手机、平板等设备的自适应显示。它提供了丰富的组件和模板,帮助开发者更快地构建电商网站。 其中,商品列表、商品详情、购物车、结算、订单列表等功能都已经实现,可以直接使用或者依照需求进行定制。此外,lilishop还支持多语言、多主题等扩展功能,满足不同地区、不同品牌的需求。
{# 示例代码 #}
{# 商品列表 #}
{% for product in products %}
<div class="product-item">
<div class="product-item-img"></div>
<div class="product-item-info">
<h4>{{ product.name }}</h4>
<p>{{ product.desc }}</p>
<span>{{ product.price }}</span>
<button class="add-cart-btn">{{ '加入购物车' }}</button>
</div>
</div>
{% endfor %}
二、后台管理
lilishop的后台管理基于Django admin,提供了一套完整的电商管理系统,包括商品管理、分类管理、品牌管理、订单管理、物流管理、支付管理等功能。 其中,商品管理提供了丰富的属性定义和图片上传功能,支持多图上传、图片缩放等操作。订单管理提供了订单列表、订单详情、订单发货、订单关闭等功能,满足日常电商运营和管理的需求。
# 示例代码
# 订单管理列表页面
class OrderAdmin(admin.ModelAdmin):
list_display = ('id', 'user', 'order_no', 'total_amount', 'status', 'pay_type', 'add_time',)
list_filter = ('status', 'pay_type',)
search_fields = ('id', 'user__username', 'order_no',)
list_per_page = 20
admin.site.register(Order, OrderAdmin)
三、支付管理
lilishop集成了支付宝和微信支付,用户下单后可以直接使用支付宝或微信进行支付。支付流程简单明了,易于使用。 另外,lilishop还支持退款、退货等功能,方便用户在购买后进行售后服务。
# 示例代码
# 支付宝支付接口
class AlipayPayment(Payment):
def __init__(self, order):
super(AlipayPayment, self).__init__(order)
def get_pay_url(self):
alipay = AliPay(
appid=settings.ALIPAY_APPID,
app_notify_url=settings.ALIPAY_NOTIFY_URL,
app_private_key_path=settings.ALIPAY_PRIVATE_KEY_PATH,
alipay_public_key_path=settings.ALIPAY_PUBLIC_KEY_PATH,
sign_type="RSA2",
debug=settings.ALIPAY_DEBUG,
)
order_string = alipay.api_alipay_trade_page_pay(
out_trade_no=self.order.order_no,
total_amount=str(self.order.total_amount),
subject=self.order.subject(),
return_url=settings.ALIPAY_RETURN_URL,
notify_url=settings.ALIPAY_NOTIFY_URL,
)
return f"{settings.ALIPAY_API_URL}?{order_string}"
四、物流管理
lilishop支持物流状态查询和物流跟踪功能,用户可以在订单页面查询物流状态,也可以在用户中心进行物流跟踪。 另外,lilishop还支持自有物流和第三方物流两种模式,可以根据实际情况进行选择。
# 示例代码
# 物流状态查询接口
class ExpressChecker:
def __init__(self, express_code, express_number):
self.express_code = express_code
self.express_number = express_number
def check(self):
express_api_url = f"{settings.EXPRESS_API_URL}/{self.express_code}/{self.express_number}"
data = requests.get(express_api_url).json()
if data.get("Success"):
return data.get("State")
else:
return "查询失败,请重试"
五、品牌管理
lilishop提供了品牌管理功能,用户可以在后台添加和编辑品牌信息,前端展示页面可以自动展示品牌信息。 品牌信息包括品牌名称、品牌Logo、品牌描述等,有利于提高品牌知名度和用户忠诚度。
# 示例代码
# 品牌模型
class Brand(models.Model):
name = models.CharField('品牌名称', max_length=32)
desc = models.CharField('品牌描述', max_length=512)
logo = models.ImageField('品牌Logo', upload_to='uploads/brand_logo/')
is_top = models.BooleanField('是否置顶', default=False)
add_time = models.DateTimeField('添加时间', auto_now_add=True)
def __str__(self):
return self.name
六、总体架构
lilishop采用了经典的MVC(Model-View-Controller)模式,将业务逻辑、数据模型、前端展示进行了分离,保证了系统的可维护性和扩展性。 系统中使用了Django框架、Django Rest Framework、Celery、Redis、MySQL等开源技术,同时采用了RESTful API架构,支撑了亿级别的PV和UV。 总体架构图如下:
// 示例代码
// 系统总体架构图
+------------+ +------------+
| 用户客户端 | | 卖家管理后台 |
+------------+ +------------+
⇅ ⇅
+------------+ RESTful API +------------+
| APP Model | | Nginx|
+------------+ +------------+
⇅ ⇅
+------------+ MySQL/Redis/Celery +------------+
| Database/Cache/Task |
+------------+ +------------+