[points_mall]积分商城热
- bbs1org2026-08-27积分商城ID points_mall版本 2.8.5插件制作者 bbs1org免费3236 行 / 244.5 KBHook / 路由 / 后台页积分商城与论坛深度结合:商品发布到论坛主题,用户可用论坛积分兑换,每笔订单对应一件主题商品,支持收货地址、虚拟商品自动发货与订单管理。app/plugins/points_mall/plugin.php插件预览2 张开发日志最新 10 条
个人独立维护项目。
淘帖专辑官方安装插件合集主楼 插件质量报告
插件:
points_mallHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 sidebar.feature_links 首页/侧栏快捷功能 否 5 - - - - top.menu_links 顶部版块导航/移动端版块列表,同一请求只执行一次(展示位置:顶部菜单) 否 5 - - - - topic.after_render 首页/版块列表/主题查看逐条渲染 是 5 - - app_users 修正❗️ 读 plugin_points_mall_products 修正❗️ topic.index_data.loaded 首页/版块/用户主题列表查询后 否 5 - - - 读 plugin_points_mall_products user.menu_links 个人卡片/移动端我的菜单(展示位置:个人卡片) 否 4 - - - - topic.after_save 主题保存后 回调内 3 读写 app_users app_users 写 plugin_points_mall_products, plugin_points_mall_deposits, plugin_points_mall_auto_delivery_shelves 修正❗️ topic.before_save 主题发布/编辑表单提交 否 3 - - app_users 读 plugin_points_mall_products, plugin_points_mall_deposits topic.form_extra 主题发布/编辑表单 否 2 - - - 读 plugin_points_mall_products, plugin_points_mall_auto_delivery_shelves topic.content_html 非系统hook 否 1 - - app_users 读 plugin_points_mall_products 颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。
数据字典
plugin_points_mall_products字段 类型 可空 默认值 约束 id id 否 - 主键、自增 forum_id uint 否 0 - topic_id uint 否 0 - user_id uint 否 0 - name string 否 - - summary string 否 '' - detail text 否 - - price uint 否 0 - original_price uint 否 0 - discount_end uint 否 0 - stock uint 否 0 - cover_hash string 否 '' - cover_ext string 否 '' - cover_thumb_hash string 否 '' - cover_thumb_ext string 否 '' - status INTEGER 否 1 - virtual_delivery INTEGER 否 0 - auto_delivery INTEGER 否 0 - sales uint 否 0 - created_at uint 否 - - updated_at uint 否 - - plugin_points_mall_addresses字段 类型 可空 默认值 约束 id id 否 - 主键、自增 user_id uint 否 - - receiver string 否 - - phone string 否 '' - address string 否 - - is_default INTEGER 否 0 - created_at uint 否 - - updated_at uint 否 - - plugin_points_mall_orders字段 类型 可空 默认值 约束 id id 否 - 主键、自增 order_no key 否 - 唯一 user_id uint 否 - - total_price uint 否 0 - deposit_points uint 否 0 - financial_status key 否 'held' - status key 否 'pending' - virtual_delivery INTEGER 否 0 - receiver string 否 '' - phone string 否 '' - address string 否 '' - note string 否 '' - created_at uint 否 - - paid_at uint 否 0 - shipped_at uint 否 0 - finished_at uint 否 0 - cancel_reason string 否 '' - plugin_points_mall_order_items字段 类型 可空 默认值 约束 id id 否 - 主键、自增 order_id uint 否 - 唯一 product_id uint 否 - - seller_id uint 否 0 - product_name string 否 - - price uint 否 0 - cover_hash string 否 '' - cover_ext string 否 '' - fulfillment_status key 否 'pending' - fulfillment_note text 否 - - fulfilled_at uint 否 0 - plugin_points_mall_deposits字段 类型 可空 默认值 约束 id id 否 - 主键、自增 product_id uint 否 - - user_id uint 否 - - price uint 否 0 - initial_stock uint 否 0 - total_points uint 否 0 - status key 否 'active' - created_at uint 否 - - refunded_at uint 否 0 - plugin_points_mall_auto_delivery_shelves字段 类型 可空 默认值 约束 id id 否 - 主键、自增 product_id uint 否 - - content text 否 - - order_id uint 否 0 - created_at uint 否 - - delivered_at uint 否 0 - - bbs1org2026-08-27
版本 2.3.0 更新:
积分商城功能列表:- 商品与论坛主题深度关联,发布主题时可直接设为商品帖。
- 支持商品摘要、封面图与缩略图、兑换价格、库存、原价和限时折扣倒计时。
- 支持实物商品与虚拟商品;实物商品可维护收货地址,虚拟商品无需地址。
- 用户使用论坛积分兑换商品,支持填写购买数量和单笔兑换上限。
- 商品发布按单价与库存冻结押金;下架、取消商品帖或售罄后可处理剩余押金退回。
- 订单包含待兑换、待发货、待收货、异议处理、已完成、已取消等状态。
- 支持买家取消订单、确认收货、修改收货地址和提交订单异议。
- 取消订单自动恢复库存并退回积分;订单完成后自动向商品发布者结算积分。
- 支持发货后自动确认收货,并向买卖双方发送订单状态通知。
- 提供我的商品、卖家订单、我的订单、地址簿和订单详情页面。
- 后台可配置商城开关、发布/购买用户组、允许发布的版块、自动确认收货天数及单笔兑换上限。
- 后台支持商品筛选、商品下架、订单搜索、发货、退款、异议处理和订单状态调整。
- 1234567892026-08-27
这个有点牛逼吧🙄
授权码怎么弄嘞
- bbs1org2026-08-27
1. 编辑已有商品时押金调整金额计算错误,导致商家积分被错误扣减(资金损失) 位置:plugin.php:1178-1187(配合 points_mall_deposit_refundable 定义于 315-320) 类型:CWE-682 错误计算 / 业务逻辑漏洞 数据流: php 复制 $new_deposit = $price * $stock; if ($deposit) { $delta = $new_deposit - points_mall_deposit_refundable($existing, $deposit); // ← 错在这里 if ($delta !== 0 && !points_mall_change_points($seller_id, -$delta, ...)) throw ...; q('UPDATE ... SET price=?, initial_stock=?, total_points=? WHERE id=?', [$price, $existing['sales'] + $stock, $new_deposit, $deposit['id']]); } points_mall_deposit_refundable 返回的是「当前剩余可退押金」= min((initial_stock - sales) × price, total_points),它已经扣除了已售出部分。 而正确的对账基数应是「商家当前实际被冻结的总额」= total_points。正确公式应为: php 复制 $delta = $new_deposit - (int)$deposit['total_points']; 触发条件:商品发布后被兑换(sales > 0),商家再编辑该商品(改价/改库存/改摘要等)。 复现(概念 PoC): 商家发布商品:price=100, stock=10 → 冻结押金 total_points=1000,商家被扣 1000。 买家兑换 5 件 → sales=5。 商家编辑商品:price=90, stock=5 → new_deposit=450。 错误代码:refundable=(10-5)×100=500 → delta=450-500=-50 → 只退 50。 正确行为:delta=450-1000=-550 → 应退 550。 差异:商家被少退 500。 之后下架退押金:refundable=(10-5)×90=450 → 再退 450。 商家累计收回 50+450=500,但实际付出 1000 → 净损失 500(正好等于已售 5 件的收入 500,等于收入被吃光)。 影响:只要对已产生销量的商品执行一次编辑,商家已结算的销售收入会被等额吞掉。由于 refundable ≤ total_points 恒成立,此偏差方向固定为「多扣/少退」,是稳定可复现的资金损失 bug(商家侧)。 修复建议: php 复制 $delta = $new_deposit - (int)$deposit['total_points'];点赞与点评1bbs1org投币2026-08-27
- bbs1org2026-08-27
- bbs1org2026-08-27
版本 2.3.3 更新:
优化界面 干嘛用的?
- bbs1org2026-08-27
版本 2.3.5 更新:
后台“订单管理”列表移除“发货”按钮,仅保留详情入口。
商家只能在订单详情页更新履约状态。
兑换码或交付说明改为必填,前端与服务端都会校验。
旧的列表发货请求会被拒绝并提示到订单详情填写说明。 - bbs1org2026-08-27
版本 2.3.7 更新:
修复会将发布者购买栏从固定比例网格改为可换行的弹性布局:空间足够时并排,空间不足时“订单管理”自然换到下一行;兑换表单自身也允许换行,避免任何控件相互覆盖 - bbs1org2026-08-27
版本 2.3.9 更新:
优化布局 - bbs1org2026-08-27
- bbs1org2026-08-27
- Maser2026-08-27
来慢了,等下一波
- bbs1org2026-08-27
版本 2.3.11 更新:
已修复押金调整金额错误。
编辑已有商品时,押金调整现在以 deposit.total_points 作为实际冻结总额计算,不再错误使用已排除售出数量的“可退押金”。
同时修复了提交前余额校验:扩容商品时不会再按可退余额错误要求商家补足已售部分的积分。
下架、退押金场景仍保留按剩余可退金额计算。 哈哈,这更新速度。。牛了
- bbs1org2026-08-27
版本 2.3.12 更新:
更新版本 - bbs1org2026-08-27
- bbs1org2026-08-27
- bbs1org2026-08-27
版本 2.4.2 更新:
虚拟商品开启“自动发货”后,商家在货架中每行填写一份内容;买家每次购买一件,系统会原子领取一行内容,写入订单的履约备注,将订单和履约状态改为“已发货”,并向买家发送订单发货通知。
当前版本为 2.4.2。首次升级需在后台禁用再启用插件一次,以创建货架表并执行表结构更新。 - bbs1org2026-08-27
版本 2.4.3 更新:
订单明细创建bug - Maser2026-08-27
积分商城还可以更进一步,添加其它货币,然后这个只能充值,那完全就是一个商城了,也是发卡商城
- Maser2026-08-27
是!再配个商家展示页就好了
授权码库存没了,再上点啊
- bbs1org2026-08-28
版本 2.4.7 更新:
优化界面 - bbs1org2026-08-28
版本 2.4.10 更新:
优化界面 - bbs1org2026-08-28
版本 2.4.12 更新:
优化UI 还有这个不协调吧

- bbs1org2026-08-28
- bbs1org2026-08-28
版本 2.5.4 更新:
调整UI布局 - bbs1org2026-08-28
版本 2.5.5 更新:
更新UI - 1234567892026-08-28
- bbs1org2026-08-28
- 1234567892026-08-28
- bbs1org2026-08-29
版本 2.5.5 更新:
预览图片 - bbs1org2026-08-31
版本 2.5.6 更新:
插件脚本中断报错 - webmaster2026-09-02
授权码是什么?
- bbs1org2026-09-02
- bbs1org2026-09-05
版本 2.5.7 更新:
修正通知格式或者积分变动不进积分规则的问题 - Maser2026-09-05
商城自动发货只能一行一条码,如果都是发的同一个码或者同一个链接,只能复制多份。另外发布商品为什么一定需要押金?
- bbs1org2026-09-06
- bbs1org2026-09-09
- bbs1org2026-09-09
版本 2.7.2 更新:
添加发布商品的信任等级门控校验 - elm2026-09-09
希望可以增加两个功能
- 用户可以保存自己的listing,方便重复上架,也节省论坛资源。
- 一个listing里面,可以选择不同的商品,其实就是增加属性,比如鞋子就是尺寸大小颜色,如果是大模型的话就是模型名称啥的。
- bbs1org2026-09-09
- elm2026-09-09
- 作为商品页发布过的信息,可以选择保存下来。下一次发布的时候,可以直接选择这个商品并且还可以修改,然后再发布。
- 一个商品页面,不要只有一个产品一个货号,各样自行增加不同的属性,然后客户就可以选择不同的产品,在一个商品详情页里面。
- bbs1org2026-09-09
- bbs1org2026-09-23
版本 2.7.2 更新:
优化UI细节 👏
- huaxiaoji2026-09-27
- bbs1org6天前
版本 2.8.0 更新:
优化页面布局 - bbs1org6天前
版本 2.8.0 更新:
优化布局 - bbs1org6天前
版本 2.8.3 更新:
优化细节



