核心概念
首先要明白,织梦本身不是一个专业的电商平台(如Shopify、Magento),它是一个内容管理系统(CMS),它的核心是管理文章、图集、软件等“内容”,而不是标准化的商品,添加购物车功能需要通过二次开发或借助特定插件来实现。

(图片来源网络,侵删)
主要有以下三种实现路径:
- 利用DedeCms自带的“商品模型”:这是织梦内置的一个简化版电商功能,适合简单的商品销售。
- 使用第三方电商插件:这是最推荐、最强大的方法,功能完善,体验好。
- 自定义开发(二次开发):如果你有编程能力,可以根据需求完全定制。
使用织梦自带的“商品模型”(适合新手和简单需求)
织梦后台有一个“商品模型”,你可以用它来创建商品栏目,并为每个商品添加价格、库存等信息,实现步骤如下:
第1步:创建商品栏目
- 登录织梦后台。
- 进入【核心】 -> 【频道模型】 -> 【内容模型管理】。
- 点击【增加一个新模型】,模型名称填写“商品”,模型类型选择“主表”。
- 在“字段列表管理”中,你需要添加一些商品必需的字段:
- 价格:点击“增加一个新字段”,字段名填
price,字段类型选择“数字”,勾选“后台增加内容时允许为空”。 - 库存:同样方法,字段名
stock,类型“数字”。 - 商品图片:字段名
litpic(这个通常系统自带,用于缩略图,即商品主图)。 - 购买按钮:字段名
buybtn,类型“单行文本”,用于存放购买按钮的链接。
- 价格:点击“增加一个新字段”,字段名填
- 保存并生成模型,然后进入【频道管理】,为你的商品创建一个新栏目,并选择刚才创建的“商品”模型。
第2步:在商品详情页添加“加入购物车”按钮
这是最关键的一步,你需要修改商品详情页的模板文件。
-
找到模板文件:
(图片来源网络,侵删)- 你的商品详情页模板通常位于
/templets/default/article_article.htm或者你自定义模板目录下的类似文件。 - 如果你使用了不同的模型,模板文件可能是
/templets/你的模型目录/商品详情页.htm。
- 你的商品详情页模板通常位于
-
修改模板代码: 在你希望显示按钮的位置(比如价格下方),添加以下HTML代码,这里我们以最简单的JavaScript弹窗提示为例。
<div class="product-info"> <h2>{dede:field.title/}</h2> <p class="price">价格:¥{dede:field.price/}</p> <p class="stock">库存:{dede:field.stock/} 件</p> <!-- 添加到购物车按钮 --> <div class="action-buttons"> <a href="javascript:;" onclick="addToCart({dede:field.id/}, '{dede:field.title/}', {dede:field.price/})" class="add-to-cart-btn">加入购物车</a> </div> </div> <!-- 在页面底部添加一个简单的JS函数 --> <script type="text/javascript"> function addToCart(id, name, price) { // 这里只是做一个最简单的提示,实际购物车功能需要更复杂的逻辑 alert('成功将 "' + name + '" (ID: ' + id + ', 价格: ¥' + price + ') 加入购物车!\n\n注意:这是一个模拟提示,织梦默认没有真正的购物车功能,你需要使用插件或自己开发。'); } </script>
注意:上面的代码只是一个前端模拟,点击后只会弹出一个提示框,并不会真的把商品信息存起来,要实现真正的购物车,你需要:
- 后端处理:创建一个
addcart.php文件,用于接收前端传来的商品ID、数量等信息,并操作Session或数据库来保存购物车数据。 - 前端交互:使用AJAX技术,让按钮点击后无声地调用
addcart.php,并更新页面上的购物车图标数量,而不用刷新整个页面。
对于大多数用户来说,自带的商品模型功能太弱,不推荐用于真正的电商网站。
使用第三方电商插件(强烈推荐)
这是最省心、功能最全的方案,市面上有很多优秀的织梦电商插件,它们已经帮你做好了商品、购物车、订单、支付等所有功能。

(图片来源网络,侵删)
如何操作?
-
寻找插件:
- 去织梦官方论坛、DedeCMS爱好者社区、或一些知名的源码下载网站搜索“织梦商城插件”、“织梦电商系统”。
- 一些知名的插件如“EyouCms商城系统”、“DedeBIZ”等,都是基于织梦深度开发的电商解决方案。
-
安装插件:
- 购买或下载插件后,通常会有详细的安装说明文档。
- 一般流程是:上传插件文件 -> 在后台运行安装程序 -> 按提示完成配置。
-
使用插件功能:
- 安装成功后,你会在后台看到新的菜单,如“商城管理”、“商品管理”、“订单管理”等。
- 你可以像在普通电商网站后台一样,添加商品、设置分类、管理库存。
- 前台模板通常已经内置了“加入购物车”、“查看购物车”、“去结算”等按钮和页面,你只需要根据自己的设计风格稍作修改即可。
优点:
- 功能强大:包含完整的电商流程(商品、购物车、订单、支付、物流、会员等)。
- 稳定可靠:经过市场检验,bug少,安全性高。
- 易于使用:操作界面友好,和主流电商平台类似。
- 持续更新:好的插件商会提供版本更新和技术支持。
缺点:
- 可能需要付费:功能完善的优质插件通常是商业软件。
- 灵活性稍差:模板和功能受限于插件本身,深度定制需要一定的技术。
自定义开发(二次开发)(适合有编程能力的用户)
如果你对PHP和HTML有一定了解,并且有非常特殊的需求,可以自己动手开发。
开发思路:
-
数据表设计:
- 创建一个
dede_shopcart表,用于存储购物车信息,字段可能包括:id(主键),sessionid(用于识别不同用户),userid(如果用户登录),productid(商品ID),productname(商品名称),price(下单时的价格),quantity(数量),addtime(添加时间)。
- 创建一个
-
前端页面:
- 和方法一类似,在商品详情页模板中放置“加入购物车”按钮。
- 按钮的链接指向一个你编写的PHP处理文件,
add_to_cart.php。 - 使用AJAX技术提交数据,避免页面刷新。
<!-- 模板中的按钮 --> <button onclick="addProductToCart({dede:field.id/})">加入购物车</button> <!-- JS函数 --> <script> function addProductToCart(productId) { // 使用AJAX发送请求 $.ajax({ type: "GET", url: "/add_to_cart.php", data: { id: productId }, dataType: "json", success: function(response) { if(response.status == 'success') { alert('成功加入购物车!'); // 更新页面右上角的购物车数量图标 $('#cart-count').text(response.cart_count); } else { alert('加入失败:' + response.message); } }, error: function() { alert('网络错误,请稍后重试!'); } }); } </script> -
后端处理 (
add_to_cart.php):- 接收前端传来的
id。 - 根据商品ID,从数据库中查询商品信息(名称、价格等)。
- 将查询到的信息存入
dede_shopcart表,注意,要判断商品是否已在购物车,如果存在则更新数量,否则新增。 - 处理完毕后,返回一个JSON格式的响应,告诉前端操作是否成功。
- 接收前端传来的
-
购物车页面:
- 创建一个新的模板文件,
cart.htm。 - 在这个页面中,从
dede_shopcart表中读取当前用户(通过SessionID识别)的所有商品数据,并循环显示出来。 - 实现修改数量、删除商品、计算总价等功能。
- 创建一个新的模板文件,
-
购物车图标:
- 在网站页头的导航栏,放置一个购物车图标。
- 图标旁边显示一个数字,这个数字可以通过一个简单的查询实时获取:
SELECT SUM(quantity) FROM dede_shopcart WHERE sessionid = '当前SessionID'。
总结与建议
| 方法 | 优点 | 缺点 | 适用人群 |
|---|---|---|---|
| 自带商品模型 | 简单,无需额外插件 | 功能极弱,无真实购物车逻辑,仅适合演示 | 新手学习,极简单的个人网站 |
| 第三方插件 | 功能强大、稳定、易用 | 可能需要付费,灵活性受限 | 绝大多数用户,尤其是想做电商的网站 |
| 自定义开发 | 完全自定义,可控性强 | 开发周期长,成本高,需要技术能力 | 有专业开发团队,有特殊定制需求的企业 |
给你的最终建议:
如果你的网站是用来销售商品,并且希望有一个稳定、功能完善的购物体验,请毫不犹豫地选择“方法二:使用第三方电商插件”。 这是最经济、最高效的解决方案。
如果你只是想在自己的博客或企业网站上偶尔卖一两样东西,不追求复杂的订单管理,可以尝试用“方法一”做一个前端模拟,但要明白它只是一个“玩具”,不能用于真正的商业交易。
