# 启航电商SCM供应链分销代发系统 **Repository Path**: simpleyy_admin/qihangerp-scm ## Basic Information - **Project Name**: 启航电商SCM供应链分销代发系统 - **Description**: 启航电商SCM供应链分销代发系统是为电商供应链端开发的一套代发业务系统,主体功能是分销渠道从各平台拉取订单、厂家(供应商)直接从系统发货。系统分为厂家(供应商)端和分销渠道端两个终端,厂家端主要功能:商品发布、订单打印、订单发货、售后处理等功能。渠道端功能有:店铺管理、订单同步、订单分发给供应商、售后管理、商品上下架等。本系统后端采用Dubbo微服务架构,前端采用Vue2+Element开发。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 131 - **Created**: 2024-05-30 - **Last Updated**: 2025-08-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 启航电商ERP3.0版本 ## 一、系统介绍 启航电商ERP系统是一套多平台多店铺订单处理系统,专注核心订单业务处理。 主体功能包括: + 商品库管理(商品库商品是库存管理的基础) + 店铺管理(支持平台、多店铺统一管理) + 店铺商品管理(店铺商品关联商品库商品) + 订单管理(包括:订单库、店铺订单管理、支持私域渠道订单管理) + 发货管理(支持手动发货、电子面单发货、分配供应商发货,根据业务生成备货单,备货单可以生成出库单) + 售后管理(支持退货、换货、补发等业务场景) + 库存管理(出入库,包括采购入库、订单发货出库(订单发货备货单自动生成订单发货出库)、仓库仓位管理) **支持数据接口对外对接自由或第三方系统** 本项目后端采用SpringCloud微服务架构开发,前端采用Vue2+ElementUI。支持分布式部署,支持大流量订单。 系统支持:淘宝、京东、拼多多、抖店、微信小店、快手、小红书。还可以扩展美团、饿了么等即时零售和其他电商业务。 **系统支持:多商户订单处理、多供应商发货** ### 系统组成 **完整系统由2个子系统组成。** #### 1、OMS订单系统 核心系统,可以处理自己的店铺订单,也可以开通商户账号登录处理商户店铺订单。 #### 2、VMS供应商后台 供应商后台,负责自己发货的订单发货处理,只能处理发货事宜。 ## 二、主体功能及流程 ### 主体功能 #### 1、商品管理 + 商品库管理:管理商品库商品,提供手动录入、API接收功能,可以设置自己发货还是供应商发货(影响到后台分单逻辑,即时生效)。 + 商品库SKU明细:查看所有商品库SKU + 店铺商品管理:店铺商品管理,店铺商品API拉取、店铺商品API更新(进行店铺商品与商品库商品关联,根据SKU编码关联)。 + 商品分类管理 + 商品品牌管理 + 供应商管理:可以设置供应商登录账号用于供应商后台登录 #### 2、订单管理 + 订单库:聚合订单查询、详情、管理。 + 订单明细:聚合订单明细查询。 + 店铺订单管理:订单API拉取、订单API更新、订单手动推送等,支持淘宝天猫、京东、拼多多、抖店、微信视频号。 #### 3、发货管理 + 待发货清单:(商品维度、订单维度),展示待分配发货的清单(系统会根据商品设置的自己发货还是供应商发货自动分配到发货订单库) + 取号发货:电子面单取号发货 + 订单打印:电子面单打印,支持淘宝天猫、京东、拼多多、抖店、微信视频号。 + 备货出库:电子面单取号之后会加入备货清单,提供给仓库备货查询。发货之后会从备货清单中移除。 + 发货记录:发货记录,提供手动发货功能。 + 物流跟踪:提供发货物流查询。 + 快递快递管理:管理发货的快递公司(支持从平台拉取、支持线下渠道手动添加发货快递)。 + 面单账户管理:管理店铺开通的电子面单账户 #### 4、售后管理 + 售后中新:聚合售后查询、详情、管理。 + 店铺售后管理:售后API拉取、售后API更新、手动推送、售后操作(同意、备注)。 + 售后处理记录:售后处理的记录查询,提供手动售后处理功能。 #### 5、库存管理 + 商品库存管理:查询库存 + 商品入库管理:支持手动入库 + 商品出库管理:支持手动出库 + 仓库仓位设置 #### 6、店铺&平台设置 + 商户管理:设置商户,商户可以单独登录商户后台处理商户自己的订单 + 店铺管理 + 平台设置 + 订单更新日志:查询更新日志,主动排错。 + 售后更新日志:查询更新日志,主动排错。 + 定时任务配置 ### 主体流程 #### 1、订单处理主流程 ```mermaid graph TD A[商品库录入本地商品] --> B(店铺参数设置) B --> C[店铺商品拉取] C --> C1[根据店铺商品填写的外部SKU编码自动关联商品库SKU] C --> C2[手动关联商品库SKU] C2 --> D[店铺商品关联商品库商品] C1 --> D D --> E(API拉取店铺订单) E --> F1[店铺订单商品SKU关联商品库SKU] E --> F2[手动修改订单商品SKU关联] F2 --> H(订单商品关联商品库) F1 --> H H --> G(等待发货) G --> I{分配发货方} I --> J1(供应商发货) I --> J2(自己发货) J1 --> K[电子面单打印发货单] J2 --> K K --> L[推送发货信息到店铺] L --> M[生成仓库备货单] M --> N(接收仓库出库回传信息) N --> O(完成订单发货) ``` #### 2、售后处理流程 ```mermaid graph TD A[收到订单售后信息] --> B(登记售后处理结果) B --> C[推送产生物流的售后到仓库] C --> D{仓库处理不同的售后} D --> E1(退货-拦截) D --> E2(换货-补发) E1 --> F[仓库回传处理结果] E2 --> F F --> G[记录仓库回传处理结果] G --> H(完成售后处理) ``` ## 三、软件架构 ### 1、开发环境级组件 #### 1.1 开发环境 + Jdk:17 + Nodejs:v16.20.0 #### 1.2 项目组件 ##### 后端核心组件 + SpringBoot:3.0.2 + spring-boot-starter-security ###### 微服务版本 + SpringCloudAlibaba:2022.0.0.0 + Nacos + SpringCloud Gateway + spring-cloud-starter-loadbalancer ##### 前端框架及组件 + vue2 + element #### 1.3、存储及中间件 + MySQL8 + Redis:7.x + 缓存 + 消息队列 + Nacos:2.3.2(配置中心、注册中心) + Sentinel(分布式流量治理组件) `java -Dserver.port=8888 -Dcsp.sentinel.dashboard.server=localhost:8888 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar` ### 2、项目结构 #### 2.1 core 项目公共模块包括: + `common`:公共类库 + `security`:公共权限验证模块 + `open-sdk`:电商开放平台sdk #### 2.2 module 数据库操作层,包括 + goods:商品库模块 + shop:店铺模块 + stock:库存模块 + order:订单库模块 + scm:采购模块 + sys:系统模块 + tao:淘宝天猫模块 + jd:京东模块 + pdd:拼多多模块 + dou:抖店模块 + wei:微信小店模块 #### 2.3 api-services 相关微服务的模块封装 + dou-api:抖店相关微服务 + jd-api:京东相关微服务 + pdd-api:拼多多相关微服务 + tao-api:淘宝天猫相关微服务 + wei-api:微信小店相关微服务 #### 2.4 api **微服务** + gateway:网关 + sys-api:系统微服务 + oms-api:OMS微服务 + store-api:电商开放平台微服务 + vms-api:供应商api微服务 + open-api:对外接口微服务 #### 2.5 ux **前端项目:** + vue-oms:oms订单系统前端,支持商户登录 + vue-vms:vms供应商前端 ### 3、运行说明 #### 3.1、启动环境 1. 启动MySQL8 2. 启动Redis7 3. 启动Nacos2.3.2 #### 3.2、启动服务(项目) ##### 3.2.1 微服务版本 1. 启动业务微服务`api`父项目下:(sys-api、oms-api、store-api、open-api、gateway微服务) #### 3.3、运行前端 + Nodejs版本:v16.20.0 ##### 3.3.1 OMS订单处理系统 + 进入`vue-oms`文件夹 + 运行`npm install` + 运行`npm run dev` + 浏览网页`http://localhost:88` ##### 3.3.2 VMS供应商后台 + 进入`vue-vms`文件夹 + 运行`npm install` + 运行`npm run dev` + 浏览网页`http://localhost:88` ## 四、部署 ### 4.1 本地Docker部署 #### 后端部署 ##### 1、mvn项目打包 + mvn打包:`mvn clean package`(**注意修改服务器配置**) ##### 2、打包Docker镜像 + 进入`api`各项目文件夹 + 运行Docker打包命令:`docker build -t xxxx-api .` ##### 3、推送Docker镜像到服务器 **确保服务器上安装了Docker Registry** **确保本机安装了 Docker Desktop并且已经设置好了** + 1、TAG:`docker tag saas-api x.x.x.x:5000/saas-api:v2504251` + 2、PUSH:`docker push x.x.x.x:5000/saas-api:v2504251` + 3、登录服务器:`ssh root@x.x.x.x` + 4、拉取推送的镜像:`docker pull 127.0.0.1:5000/saas-api:v2504251` + 5、运行:`docker run -d --name qihang-saas-api -p 8088:8088 127.0.0.1:5000/saas-api:v2504251` #### 前端部署 ##### 1、npm打包 + 进入`ux`各项目文件夹 + `npm install` + `npm run build:prod` ##### 2、打包Docker镜像 + 修改Dockerfile文件:在各项文件夹目跟目录 + 修改nginx.conf文件:在各项文件夹目跟目录 + 打包Docker镜像:`docker build -t vue-xxx .` ##### 3、推送Docker镜像到服务器 **确保服务器上安装了Docker Registry** **确保本机安装了 Docker Desktop并且已经设置好了** + 1、TAG:`docker tag saas-api x.x.x.x:5000/vue-xxx:v2504251` + 2、PUSH:`docker push x.x.x.x:5000/vue-xxx:v2504251` + 3、登录服务器:`ssh root@x.x.x.x` + 4、拉取推送的镜像:`docker pull 127.0.0.1:5000/vue-xxx:v2504251` + 5、运行:`docker run -d --name qihang-vue-xxx -p 8088:8088 127.0.0.1:5000/vue-xxx:v2504251` ### 4.2 传统部署 #### 1、后端部署 ##### mvn打包 + mvn打包:`mvn clean package`(**注意修改服务器配置**) ##### 上传到服务器 + 上传文件:`scp -P 22 -r D:/projects/publish/qihangerp root@x.x.x.x:/opt` ##### 运行 + Java运行:`nohup java -jar api-3.0.2.jar > output.log 2>&1 &` #### 2、前端部署 ##### npm打包 + 进入`ux`各项目文件夹 + `npm install` + `npm run build:prod` ##### 上传到服务器 + 上传文件:`scp -P 22 -r D:/projects/publish/qihangerp root@x.x.x.x:/opt` ##### 运行 ###### Nginx配置 ``` # 上传文件至远程服务器 将打包生成在 `dist` 目录下的文件拷贝至 `/opt/qihangerp/nginx/dist` 目录 # nginx.cofig 配置 server { listen 80; server_name localhost; location / { #root /opt/qihangerp/nginx/dist; root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html; } # 反向代理配置 location /prod-api/ { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8088/; # 替换成你的后端网关API地址 } } ``` ### 4.3 Docker Compose部署 ## 五、售后服务 **售后联系作者:15818590119(老齐)**