ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

大商创2.7.3.4源码解析:B2B2C多商家电商平台部署与二次开发

大商创2.7.3.4源码解析:B2B2C多商家电商平台部署与二次开发

简介:面向PHP电商开发者和多商户平台运营者,这份大商创2.7.3.4套餐安装包包含完整系统主程序及5套商家模版,能够满足快速部署或二次开发B2B2C商城的需求。版本在功能与体验上有多项更新:新增会员注册手机号段校验、手机端商家资质公示、礼品卡与提货模块,以及自动确认收货计划任务;同时优化白条支付流程、商家库存预警、后台订单自动确认收货和账单结算显示,并修复属性商品价格库存显示、商品举报主题等问题,尤其针对移动端交互与订单资金安全做了集中优化,使前后台流程更加严谨。压缩包为zip格式,整体约816.31MB,内含商城源码与多套模板资源,便于直接替换或参考搭建,部署时可对照目录快速定位模板与功能模块。目前已有320人学习,适合中高级开发者用于环境搭建、功能扩展及版本迁移参考。

1. 大商创2.7.3.4:一套能直接部署的B2B2C多商家电商源码

如果你以为下载一个电商源码装上就能开张,那你大概率会栽跟头——单商户系统和你想要的“多商家入驻”完全是两码事。这份大商创2.7.3.4套餐安装包,就是专门解决“多商家平台怎么搭”这个问题来的:它内置平台端、商家端、用户端三段式架构,商家可以自助入驻、独立管理商品和订单,平台方负责审核和抽成,还附带5套商家模板让你不用从零设计店铺页面。当年我第一次拿它搭二手设备交易平台,从解压到店铺上线只花了一个周末。这套源码适合想做区域电商平台、行业细分商城、或者给企业做多商户解决方案的开发者——你不需要从零写用户体系、订单流转和商家结算,改改配置就能跑起来。接下来我把这套源码的架构、运行方式和改造关键逐层拆开讲。

2. 技术栈与目录结构:先看清这套源码的骨架

拿到安装包先别急着双击,得先知道这套系统到底是用什么搭的。大商创2.7.3.4底层基于PHP和MySQL,框架用的是ThinkPHP,这套组合在国内电商源码里出镜率极高——生态成熟、资料好找、出问题能在网上快速定位。整套系统按B2B2C模式设计,意思是平台方(B)、商家(B)、消费者(C)三方同时在线,这个定位决定了目录结构里平台后台、商家后台、商城前台是三个独立入口。

2.1 框架选型与整体架构

大商创选择ThinkPHP作为基础框架,在2.7.3.4这个版本里,它沿用了ThinkPHP传统的单入口模式——所有请求都经过入口文件转发到对应的模块。我做二次开发时最常用到的是它把“平台后台”和“商家后台”拆成了独立模块,代码互不干扰,改造某一端不会误伤另一端。

整套架构大致可以拆成四层:

  • 表现层:商城前台页面 + 商家店铺页 + 平台后台管理界面,模板文件以HTML+CSS为主,动态数据通过模板引擎变量输出。
  • 应用层:平台端、商家端、用户端、API接口四套独立的控制器逻辑。
  • 服务层:商品、订单、会员、结算、营销这类业务逻辑封装,多个控制器共用同一套服务。
  • 数据层:数据库表和模型层操作,核心业务表有几十张,覆盖商品SPU/SKU、订单状态机、商家结算单等。

提示:大商创虽然是B2B2C架构,但平台的“自营”和商家的“入驻”在数据表设计上是分开的,平台自己也能卖货,这个设计对前期冷启动很有用——平台先自营撑起流量,再慢慢引入商家。

理解了分层之后,目录结构就顺理成章了。这套源码的根目录一眼看过去很直观,应用代码全部集中在根目录下的application和public两个文件夹里。

2.2 目录结构逐层拆解

我打开安装包之后,第一件事就是先把目录跑一遍,记住核心路径,后面跑通和改代码才能摸对门。以下是这套源码的顶层目录规划,以及每个目录对应的职责:

目录作用
application/核心业务代码,模块化组织
public/Web根目录,静态资源和入口文件
data/数据库备份、缓存和临时文件
thinkphp/ThinkPHP框架核心包
addons/插件扩展目录
install/安装向导相关文件

和ThinkPHP默认结构不同,大商创2.7.3.4的入口文件不放在根目录,而是放在public目录下,Nginx和Apache的站点根目录需要指向public,这样可以把应用代码和对外可访问文件隔离开,安全性更好。我把这个习惯保留到了现在做的所有PHP项目里。

进入application目录才是大头,模块划分在这里才真正展开:

application/ ├── admin/ # 平台后台:商家审核、平台配置、商品管理、订单管理 ├── seller/ # 商家后台:商品发布、订单处理、营销活动、结算查看 ├── home/ # 商城前台:用户浏览、购物车、下单流程 ├── api/ # 接口模块:App端和第三方对接用的JSON接口 ├── common/ # 公共函数和通用模型 └── extra/ # 额外扩展模块

这套分模块的结构,是我觉得大商创2.7.3.4里最值得学的地方。同样是商城代码,很多开源系统把平台管理和商家管理混在一起,改起来牵一发动全身;它直接拆成admin和seller两个模块,权限和逻辑天然隔离。平台要审核商家入驻,调的是admin模块的审核方法;商家要编辑商品,进的是seller模块的控制器——两边各改各的,冲突概率小很多。

2.3 数据库与配置文件要点

源码里配置文件的命名和ThinkPHP默认规范一致,我把最关键的几个路径列出来,跑通之前先确认这几个文件存在:

  • application/database.php:数据库连接配置,安装向导会把填写的数据库信息写到这里。
  • application/config.php:应用级配置,包括调试模式开关、URL模式、缓存方式。
  • application/admin/config.php:平台后台的额外配置。
  • application/seller/config.php:商家后台的额外配置。
  • application/route.php:路由规则,伪静态就是靠它解析。

数据库这块,大商创2.7.3.4在data目录下或安装包内的SQL目录中会提供完整的建表语句,安装向导会一次性导入。核心表我随手能列出几张:users(用户表)、shop(商家店铺表)、goods(商品表)、order_info(订单主表)、order_goods(订单商品明细表)、seller_account(商家结算账户表)。这些表名都是语义化的,拿到phpMyAdmin里看一圈,基本就能猜出业务关系。

3. 核心模块拆解:从安装向导到商家模板的完整链路

这一章才是重头戏。大商创2.7.3.4和普通电商源码最大的区别在于“多商家”三个字,这三个字背后涉及安装向导、商家入驻流程、商铺模板机制三条业务线。我按用户从首次安装到商家上线的路径,把核心代码逐个拆开看。

3.1 安装向导:第一次访问时发生了什么

这套源码安装的第一步是访问站点根目录,系统自动跳转到install入口。安装向导的存在感很强,它会依次检查环境依赖、数据库连接、初始化数据、生成配置文件、创建管理员账号。如果某个环节不满足条件,安装页会明确标红提示。

如果你和我一样喜欢直接看代码来理解流程,装完包之后去install目录翻一翻,会发现整个安装流程就是一套分步表单提交。核心逻辑大致是这样的:

// 安装向导的核心检查逻辑(简化示意) public function step2() { // 环境检测:PHP版本、扩展加载、目录权限 $env = [ 'php_version' => version_compare(PHP_VERSION, '5.6.0', '>='), 'pdo_mysql' => extension_loaded('pdo_mysql'), 'curl' => extension_loaded('curl'), 'gd' => extension_loaded('gd'), 'data_dir_write'=> is_writable(ROOT_PATH . 'data'), ]; // 只要有一项不满足就返回false,安装页会停在这一步 foreach ($env as $check => $result) { if (!$result) { // 环境不通过,中止安装并提示具体原因 return json(['status' => 0, 'msg' => '环境检查失败']); } } // 继续下一步:数据库配置写入 }

这段代码的逻辑核心是:安装不是“能不能装”的玄学,而是“哪一项不满足”的显式检查。环境检测每一项都对应一个独立判断,失败时返回具体原因,而不是笼统提示安装失败。我做二次开发时给客户部署,最常遇到的就是PHP版本不对或者fileinfo扩展没开,看这个检查结果就能精准定位。

数据库配置写入是安装向导里最有价值的一段。安装页面填的host、库名、用户名、密码,会被整理成一个数组,最终通过文件写入方式生成application/database.php:

// 数据库配置写入(简化示意) $dbConfig = [ 'type' => 'mysql', 'hostname' => $_POST['db_host'], 'database' => $_POST['db_name'], 'username' => $_POST['db_user'], 'password' => $_POST['db_password'], 'hostport' => $_POST['db_port'], 'prefix' => 'dsc_', ]; // 把配置数组格式化为PHP文件内容并写入 $configContent = "<?php\nreturn " . var_export($dbConfig, true) . ";\n"; file_put_contents(APP_PATH . 'database.php', $configContent);

这里要注意,安装包默认的表前缀是dsc_,如果你要同时跑多套大商创实例,在安装时改掉前缀就能互相隔离。另外安装向导还有一个隐藏行为:安装完成之后会自动生成一个install.lock文件,目的是防止重复安装覆盖数据。如果你在开发时改了配置想重新安装,得手动删掉这个锁文件,很多新手在这一步以为是系统坏了。

3.2 商家入驻与多商户权限隔离

商家入驻是B2B2C系统区别于单商户系统的标志性功能。在大商创2.7.3.4里,用户在前台可以提交入驻申请,填写店铺名称、经营类目、联系人信息,提交后进入平台后台的待审核列表。平台审核通过后,该用户的账号自动获得“商家”身份,登录商家后台就能管理自己的店铺。

商家入驻申请的提交接口封装得比较规整,核心就是把表单数据写入商家申请表并变更用户类型标识:

// 商家入驻申请提交(简化示意) public function apply() { $data = [ 'user_id' => $this->user_id, // 当前登录用户 'shop_name' => input('post.shop_name'), // 店铺名称 'shop_category'=> input('post.category'), // 经营类目ID 'contact_name' => input('post.contact'), // 联系人 'status' => 0, // 0=待审核 1=通过 2=拒绝 ]; Db::name('shop_apply')->insert($data); // 通知平台管理员有新入驻申请 return json(['status' => 1, 'msg' => '申请已提交,等待审核']); }

参数说明:status字段是入驻流程的核心状态机,0为待审核、1为审核通过、2为拒绝。申请通过后,系统会把user表中对应用户的is_seller字段置为1,同时创建一条店铺记录。权限隔离的实现也值得一看:商家后台每个控制器的基类会先校验当前登录用户is_seller是否为1,不是就直接跳转,从控制层堵住了越权访问的可能。

我在二次开发时给一个二手数码平台定制过入驻流程,在原逻辑上加了一步“上传营业执照”,改动方式就是在apply方法里增加文件上传处理,审核列表里加一个图片预览链接。这个扩展点设计得比较友好,因为申请和审核是分开的表、分开的控制器,加字段不会破坏原有逻辑。

3.3 商品发布与订单主流程

商家入驻成功后的核心操作是发布商品。大商创2.7.3.4支持多规格商品,也就是常见的SKU体系——同一件衣服有不同的颜色和尺码,每个组合对应不同的价格和库存。商品表采用了SPU和SKU分表存储,主表存商品公共信息,SKU表存规格组合和价格库存。

// 商品发布插入SKU(简化示意) public function addSku() { $goodsId = input('post.goods_id'); $specs = input('post.spec/a'); // 规格组合,如 颜色:黑色,尺码:L // 遍历规格组合生成SKU记录 foreach ($specs as $spec) { $skuData = [ 'goods_id' => $goodsId, 'spec_key' => $spec['spec_key'], // 规格标识,用于前端区分 'price' => $spec['price'], 'stock' => $spec['stock'], 'sku_code' => buildSkuCode($goodsId, $spec['spec_key']), // 唯一编码 ]; Db::name('goods_sku')->insert($skuData); } }

这段代码背后藏着一个关键逻辑:spec_key是把规格组合拼接后生成的字符串,比如“黑色_L”,前端页面用这个字符串来匹配用户选的规格,然后展示对应价格和库存。buildSkuCode是开发者自定义的函数,常见做法是按商品ID和规格拼接生成唯一编码,方便对账和出库。我第一次做SKU改造时没太在意这个字段,导致多规格商品在前台能选但价格不联动,最后定位到是spec_key格式和前端JS不一致——这个坑后文还会提到。

订单流程是另一个不能出错的环节。从用户下单到商家发货,整套状态流转是这样的:待付款 → 待发货 → 待收货 → 已完成,中间穿插着退款/售后状态。订单主表order_info里有一个order_status字段来标记当前状态,所有状态变更都会写入订单日志表,这个设计对电商系统来说是很必要的——出了纠纷能查到每一步谁在什么时间做了什么操作。

3.4 商家模板机制:五套模板怎么切换

“包含5套商家模版”是这套套餐包最显眼的卖点。在大商创2.7.3.4里,商家店铺页面不是固定一套样式,平台可以在后台配置多套商家模板,商家自己也能选择喜欢的模板来装修店铺。模板文件存放在public目录下,每个模板一个独立文件夹,包含店铺首页、商品列表页、商品详情页等模板文件。

模板的加载逻辑其实不复杂,核心是根据商家当前选定的模板ID拼接出文件路径:

// 模板加载逻辑(简化示意) public function shopView() { $shopId = input('param.shop_id'); // 获取商家当前使用的模板标识,如 default、template2 $template = Db::name('shop')->where('id', $shopId)->value('template'); // 拼接模板文件路径,加载对应模板的店铺首页 $tplPath = 'shop/' . $template . '/index'; return $this->fetch($tplPath); }

参数说明:template字段在shop表里存的是模板的唯一标识名,比如default表示默认模板,template2表示第二套。平台添加新模板时,只需要把模板文件夹放到指定目录,然后在后台模板管理里登记模板标识和名称,商家端就能看到新的可选模板了。

这5套模板对应5个不同的店铺视觉风格——我之前拆过其中两套,一套偏数码产品的深色科技风,一套偏食品生鲜的清新浅色系。模板之间通过CSS变量和图片资源的差异来区分风格,页面结构大体相同。好处是商家切换模板不会导致商品数据丢失,坏处是如果商家在旧模板里做了深度装修,切换模板可能需要重新设置店铺招牌和分类样式。

4. 本地跑通:环境配置与部署步骤

讲完架构就要动手了。这一章我按自己的实践经验,从环境准备到安装完成,给出整套可复现的步骤。我的本地环境是Windows + phpStudy,这套组合跑大商创最省心,Linux服务器上的操作方式也基本一致,只是路径和权限设置略有不同。

4.1 环境要求与准备工作

大商创2.7.3.4对运行环境有明确的下限要求,不是随便装个新版PHP就能跑。我踩过一次坑:一开始装了PHP 8.0,结果一堆Deprecated警告刷屏,界面都打不开。

环境项推荐版本说明
PHP5.6 ~ 7.47.0以上最佳,8.0+慎用
MySQL5.6 / 5.78.0需要改认证插件
Web服务器Apache / Nginx需开启伪静态支持
扩展pdo_mysql、gd、curl、fileinfo缺少会卡在安装检测

我常用的本地组合是PHP 7.2 + MySQL 5.7 + Apache,这套组合基本不会遇到兼容性问题。PHP版本太新反而有风险,ThinkPHP 3.x系列的写法在PHP 7.4之后陆续有废弃提示,8.0直接把很多函数删了,运行起来就是满屏报错。

注意:如果要用MySQL 8.0,连接前需要执行ALTER USER '用户名'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码',否则PHP 7.x连接数据库会报认证插件错误。

4.2 从解压到安装完成

把安装包解压到站点目录后,接下来是一套标准的Web应用安装流程。我用phpStudy的Apache环境为例,完整走一遍:

# 假设站点根目录是 F:\phpstudy_pro\WWW\dsc # 1. 把解压后的所有文件放进该目录 # 2. 确保目录结构是这样的: # F:\phpstudy_pro\WWW\dsc # ├── application # ├── public # ├── thinkphp # └── install # 3. 在phpStudy里创建数据库 mysql -u root -p CREATE DATABASE dsc DEFAULT CHARACTER SET utf8mb4;

数据库创建好之后,浏览器访问http://localhost/dsc/public/index.php,安装向导会自动接管。填写数据库信息和管理员账号,点击安装,系统会创建数据表并写入初始配置。装完以后我建议先不急着进后台,去确认一下两个地方:第一,application/database.php里数据库密码是否写入成功;第二,站点根目录下是否生成了install.lock文件。这两处都符合预期,才算真正安装完成。

如果用的是Nginx,还需要额外配置伪静态规则,否则除了首页之外的所有链接都会404。大商创的URL模式默认是PATHINFO格式,Nginx里要加一段rewrite配置:

location / { if (!-e $request_filename) { rewrite ^/public/(.*)$ /public/index.php?s=$1 last; } }

这段规则的意思是:当请求的文件不存在时,把请求交给public/index.php处理,并带上原始的路径参数。大商创的路由解析就靠s参数来定位模块和控制器。Apache环境一般不用手动配置,.htaccess文件里已经写好了。

4.3 登录后台先做三件事

安装完成只是开始,后台的基础配置决定整个平台能不能正常运转。我每次部署完这套系统,进后台都会强制先做三件事,顺序不能乱:

第一件事是配置站点信息,路径在平台后台的“系统设置-站点配置”,把站点名称、SEO关键词、备案号填好。这里有个细节:站点URL如果填错了,前台静态资源会加载失败,页面光秃秃的没有样式。

第二件事是设置伪静态和URL模式,在“系统设置-URL设置”里开启伪静态,这样商品详情页不再是index.php?s=home/goods/detail&id=1这种带参数的URL,而是变成goods/1.html这种更干净的路径。对搜索引擎友好,也让URL层面看起来像个正经商城。

第三件事是创建平台自营店铺。刚才在架构里提到,平台方自己也能卖货。在后台“店铺管理-添加店铺”里创建平台自营店铺,然后给这个店铺分配一个管理员账号,平台就能自己发布商品了。我搭建第一个测试平台时跳过了这一步,结果前台店铺列表空空如也,还以为是代码有问题,后来才发现是把自营店铺创建漏了。

5. 踩坑记录:安装与使用中的常见问题排查

这部分是我把大商创2.7.3.4跑了三轮之后攒下来的实战记录。每一条都是我真金白银踩过的坑,按照“现象-原因-解决”的格式写,方便你遇到问题时按图索骥。

5.1 安装卡在环境检测,提示fileinfo扩展未开启

现象:安装向导走到环境检测一步,PHP版本和MySQL都通过,唯独fileinfo扩展显示红叉,安装无法继续。

原因:PHP在Windows环境下默认没有开启fileinfo扩展。phpStudy的PHP设置里可以勾选扩展,但很多人装完PHP就忘了这一项。fileinfo用于读取文件MIME类型,大商创上传商品图片时会用到它来做文件类型校验,所以安装向导直接把它列为硬性要求。

解决:在phpStudy的“软件管理-PHP设置”中找到fileinfo扩展并勾选,然后重启Apache或Nginx。Linux环境下则是安装php-fileinfo扩展。改了之后重新刷新安装页,红叉就变绿勾了。

5.2 安装完成后台能开,前台全站404

现象:安装流程顺利走完,进后台一切正常,但前台首页之外的任何页面都打不开,报404错误。

原因:这种症状九成是伪静态没配置好。Apache环境下是.htaccess文件缺失或AllowOverride没开启;Nginx环境下是rewrite规则没写对。

解决:Apache用户检查站点目录下有没有.htaccess文件,没有就从public目录拷一份过来,同时确认Apache配置里AllowOverride All已开启。Nginx用户把我上一章的rewrite规则复制到server配置里,还要确保location / 的root指向的是public目录,不是项目根目录。

5.3 多规格商品价格不联动

现象:商家后台创建了多规格商品,但前台用户选择不同规格后,价格和库存不变,一直显示默认值。

原因:spec_key格式不一致。前端JavaScript根据用户点击的规格选项拼接字符串,然后去商品详情页的SKU数据里查找匹配。如果后台生成SKU时拼接的顺序或分隔符和前端JS不一致,就匹配不上。

解决:去后台编辑商品,在规格设置里重新保存一次,让系统按当前版本的前端规则重新生成spec_key。如果还有问题,直接改前端JS里拼接规格的逻辑——大商创前端的SKU匹配一般在商品详情页的模板JS里,找到spec_key拼接那段,确保格式和数据库一致。

5.4 上传商品图片提示“文件不存在”

现象:商家在后台发布商品时上传图片,选择文件后系统提示“文件不存在”或“上传失败”,但图片在服务器上明明能看到。

原因:上传目录的写权限没给够,或者上传目录的路径配置不对。大商创的图片上传一般指向public/uploads目录,如果这个目录权限是只读,PHP无法把临时文件移动过来。

解决:检查public/uploads目录及其子目录的权限,设置为可读写(Windows下通常没有权限问题,Linux下执行chmod -R 755即可)。同时去后台“系统设置-图片设置”里确认上传目录路径写的是相对路径还是绝对路径——我之前改成绝对路径后反而出错,换成默认相对路径就正常了。

5.5 数据库连接数爆满,网站响应变慢

现象:商品浏览量和下单量上来之后,网站越来越慢,数据库报“Too many connections”错误。

原因:大商创2.7.3.4默认的数据库连接池配置比较保守,同时并发请求超过MySQL最大连接数时就会打满。也可能是有些页面写法和代码里没及时释放数据库连接。

解决:先调大MySQL的最大连接数,在my.ini里改max_connections的值,然后重启MySQL。但我更推荐做缓存的二级方案——在后台“系统设置-缓存设置”里开启Redis或Memcached缓存,把商品浏览、配置信息这类高频读操作从数据库里解放出来。我经历过一次因为热点商品被大量刷导致数据库打满的情况,开了Redis之后,数据库压力直接降了六成。

6. 二次开发思路:模板改造与入驻流程定制

前面各章解决了“跑起来”,这一章解决“怎么改成自己的”。我自己把这套源码改造过三轮,最常被问到的两件事是:模板怎么换成自己的风格?入驻流程怎么加条件?这章就围绕这两个点展开,最后说说验证方法。

6.1 商家模板改造的推荐入口

改造模板的第一步是复制一套默认模板,改个新名字,这样改坏了还能切回去。模板目录在public下,我以默认模板为例:

public/ └── shop/ └── default/ # 默认商家模板 ├── index.html # 店铺首页 ├── list.html # 商品列表页 ├── detail.html # 商品详情页 └── css/ └── style.css # 模板主样式

操作方法是把default文件夹整个复制一份,命名为myshop,然后在平台后台的“店铺模板管理”里登记新模板信息,填写模板标识myshop和模板名称。商家在后台切换模板时就能看到这个名字。这套机制的好处是模板之间完全隔离,改CSS和HTML不影响其他模板和数据。

具体到页面改造,我建议从店铺首页的顶部导航和店铺招牌入手。大商创的模板里,店铺头部通常是公共片段,改一次就能让店铺所有页面生效:

<!-- 店铺头部公用区域(简化示意) --> <header class="shop-header"> <div class="shop-logo"> <img src="{$shop_info.logo}" alt="店铺Logo"> </div> <h1 class="shop-name">{$shop_info.shop_name}</h1> <!-- 导航菜单通过循环输出 --> <nav class="shop-nav"> {volist name="nav_list" id="nav"} <a href="{$nav.url}">{$nav.title}</a> {/volist} </nav> </header>

模板变量{$shop_info.logo}、{$shop_info.shop_name}来自后台店铺设置,切换模板不会丢数据,改模板只影响展示层。如果你想新增一个“店铺公告”区块,就在这个header区域加一个div,然后去对应的控制器方法里把公告字段查出来并assign到模板中。

6.2 给商家入驻流程增加审核字段

默认入驻流程只有店铺名称、经营类目、联系方式三个核心字段。我上次给一个数码回收平台做定制时,客户要求入驻商家必须上传营业执照和身份证照片,缺一不可。这个改造不需要动表结构重来,在原有申请流程上叠加就行。

首先在手机号验证环节前后加字段:

// 入驻申请新增字段(简化示意) public function apply() { $licenseFile = request()->file('license'); // 营业执照图片 $idcardFile = request()->file('idcard'); // 身份证图片 // 必填校验:上传文件必须存在 if (!$licenseFile || !$idcardFile) { return json(['status' => 0, 'msg' => '请上传营业执照和身份证照片']); } // 文件上传到指定目录,返回存储路径 $licensePath = $licenseFile->move(ROOT_PATH . 'public/uploads/license'); $idcardPath = $idcardFile->move(ROOT_PATH . 'public/uploads/idcard'); Db::name('shop_apply')->insert([ 'shop_name' => input('post.shop_name'), 'shop_category' => input('post.category'), 'license_img' => $licensePath->getSaveName(), 'idcard_img' => $idcardPath->getSaveName(), 'status' => 0, ]); // 上传后可以顺手给管理员发送通知 return json(['status' => 1, 'msg' => '提交成功,审核结果将短信通知']); }

参数说明:$licenseFile->move()是ThinkPHP的上传处理方式,第一个参数是存储目录,第二个参数是可选的保存文件名,不传的话系统用随机字符串生成文件名,避免重名覆盖。getSaveName()拿到的就是保存的相对路径,入库时存这个路径,审核页展示图片时直接拼上图片域名前缀即可。

在平台后台的审核列表里加两列,显示上传的图片,审核员点开就能看。审核通过的动作也要同步改:原来只改申请状态,现在要同时把用户账号标记为商家并创建店铺,这一步大商创封装了公共方法,直接在审核控制器里调用即可。

6.3 改造后的验证方式

大商创2.7.3.4的二次开发验证,我总结了一套三步走的流程。第一步是功能验证:注册一个新账号走入驻流程,上传图片后确认申请单进了后台审核列表,审核通过后该账号能登录商家后台。第二步是模板验证:用新模板的商家账号在前台访问店铺,逐个页面确认样式正常、商品数据能展示,再切回默认模板对比一遍。第三步是回归验证:用平台自营账号下一单,走完从下单到收货的整个流程,确认订单状态、库存扣减、结算数据都没问题。

我从那以后每次改完模板或者入驻流程,都强制走一遍这三步验证,哪怕只是改了一个按钮的颜色也不跳过。这个习惯帮我躲过了好几次“看着没问题、一上线就翻车”的尴尬。希望帮到你。

本文还有配套的精品资源,点击获取

返回列表