新零售项目杂记
代码片段
接口
查询
1 | await MAPP.db_queryAll({ |
获取一条数据
1 | const commodity = await MAPP.db_getOne({ |
- 不分页
1 | const result = await MAPP.db_queryAll({ |
- 获取过滤数组第一个元素
1 | const { |
1 | { |
- 联表
1 | const result = await MAPP.db_queryAll({ |
- 数组拆分在合并
1 | const obj = await MAPP.db_aggregateAll({ |
取模 $mod
获取一条数据 MAPP.db_getOne()
更新
1 | await MAPP.db_setOne({ |
语法
1 | data: { |
搜索并更新
1 | await MAPP.db_setOne({ |
更新或插入数据
1 | await MAPP.db_setOne({ |
多次嵌套修改
1 | await MAPP.db_setOne({ |
数组操作
修改数组
1 | // 修改部分 |
聚合
基础
1 | await MAPP.db_aggregateAll({ |
$filter
过滤数组符合的元素
1 | { |
$group
统计
1 | { |
$lookup
连表 unwind
拆分
注:连表是数组,需要把数组拆分成对象
1 | { |
1 | const result = await MAPP.db_aggregateAll({ |
商品查询
1 | let aggregate = [ |
字符串截取 $substr
https://www.jianshu.com/p/8aa8794101e3
1 | db.getCollection('notice').aggregate( |
$$ROOT
根元素过滤
1 | { |
删除
1 | const res = await MAPP.db_deleteOne({ |
通用方法
MAPP
路径 \api-medicalCenter\libs\utils\
plus
加 minus
减 multiply
乘 division
除
selectTime
获取时间范围
1 | // 传入 |
formatFloat
保留几位小数(四舍五入)
1 | const a = MAPP.formatFloat('2.567', 2) // 2.57 |
formatMoney
保留金额两位
1 | const a = MAPP.formatMoney(5.335) // 5.34 |
identityGetAge
身份证获取年龄
110101190001011009
220202202002020022
1 | const age = MAPP.identityGetAge('220202202002020022') //2 |
方法代码
1 | // 身份证获取年龄 |
identityGetAge
身份证获取生日
1 | const identityGetBirth = (u = '', s = '-') => { |
identityGetSex
1 | /** |
1 | const male=identityGetSex('220202202002020022') |
校验
路径 \api-medicalCenter\middleware
validator 校验 userAuth 不用登录
1 | { |
多个|隔开required
必传min:6
最小 6 位split-mongodbId
数组 id
常用mongodbId
numeric
object
string
array
fullName
姓名应该在 2-4 个中文字符IDCard
身份证号码验证phoneNumber
缓存
注:
本地测试要配置nginx中的server_name地址参数
获取去掉配置
数据缓存
路径 \api-medicalCenter\src\@common\cache
促商品缓存
路径 \api-medicalCenter\src\@common\promotion
缓存进程
路径 \api-medicalCenter\src\@common\process
/**
- 类型 genre: cache promotion
- 方式
- cache
- 0 allCache 1 cacheBrandCommodity 2 cacheBrandAssort 3 cacheCategoriesCommodity 4 cacheCategoriesAssort
- 5 cacheCommodityIntegral 6 cacheCourierCompanyAssort 7 cacheIntegralGoods 8 cacheCouponGoods 9 cacheMemberGrade
- 10 cacheStore 11 cacheMallGuideAssort 12 cacheDistributionGoods 13 cacheCommodityIntegralDeduction 14 cacheCommodity
- promotion
- 0 allStoreRule 1 cipherRule
*/
调用方法
1 | const process_child = fork(MAPP.resolvePath('src/@common/process.js')) |
索引
创建索引
1 | const res = await MAPP.db_getDataModel('commodity').collection.createIndex({ name: 'text' }) |
事务
事务 demo 代码
1 | const session = await MAPP.Mongoose.startSession() // 启用事务 |
微信模板
1 | /** |
用药提醒
字段说明 | 参数 |
---|---|
药品名称 | {{thing1.DATA}} |
用法用量 | {{thing6.DATA}} |
注意事项 | {{thing7.DATA}} |
说明:在订单支付后绑定模板 id 触发
复购提醒
{thing1:{value:""}}
最多 20 个中文字符,超出无法发送
字段说明 | 参数 |
---|---|
药品信息 | {{thing1.DATA}} |
温馨提示 | {{thing3.DATA}} |
说明:
- 定时器每日 8 点推送 (最近 1 个月内商品订单信息开始推送)
- 复购推送规则
- 待收货,已完成交易,已授权未推送过的订单
- 推送时间:发货时间 + 疗程时间 <=当前时间
- 推送疗程为下一个最近时间的疗程
- 购买的数量没有在疗程内,不推送消息
- 推送内容[药品信息][温馨提示](文字内容不超过 20 个字符)
用药提醒例子:
1 | let data = { |
后台
配置
npm run copyConfig
开发版配置设置
1 | const url = 'xcx.fenxiangqu.cn' |
1 | { |
消息中心
数据表 message_center
order_type
4 商品订单 5 退款订单
推送消息到后台方法 pushBackstageMsg
推送全部 to_user_id: 'all'
支付订单推送 用户支付订单成功后自动推送
退款单推送 用户申请退款单自动推送
推送规则
- 超级管理员和有关联该订单门店管理员
- 一个订单推送一条消息
- 按门店推送
b2c
推荐商品
/commodity/recommend/random
类型:1 首页 2 详情推荐
说明: 推荐商品必须库存大于 0,上架状态
一, b2c 首页推荐
9 个可以自定义
- 最多设置 50 个推荐商品
- b2c 前台最多随机 9 个推荐商品
- 超过 9 个才会随机
- 小于 9 个推荐商品 + 普通商品
二, 详情推荐
- 最多随机 8 个商品(关联相同商品的品牌,分类)
限销
下单算该商品已购买的数量了(已取消订单不算)
限销拦截以下
- 加入购物车
- 设置商品数量
- 立即购买
- 提交订单
- 支付订单
前台商品搜索
b2c 前台商品列表搜索条件(/commodity)
- 主要搜索
name 商品名称/条码/厂家 - 其他搜索
brand_id 品牌 id
categories_id 分类 id
prescription 处方药类型
for_people 适合人群
in_stock 是否有货 (distributed.stock
)
new_product 是否新品 (distributed.new_product
)
promotion 促销类型(满赠,满赠) (distributed.gift_ids
distributed.reduction_ids
) - 排序
price_sort 价格降升序 (distributed.current_price
)
sales_sort 销量排序 (distributed.sales
)
- 主要搜索
b2c 前台跨境商品列表搜索(/commodity/overseas)
- 主要搜索 name 商品名称/条码
- 排序 sort 字段降序
b2c 前台其他商品排序(/commodity/leaderboard /floor/:id)
- 楼层 库存降序 (
distributed.stock
) - 商品排行榜 销量降序 (
distributed.sales
)
- 楼层 库存降序 (
移动医疗
医师端
患者端
分销
特殊分销
页面测试
D:\fix-bug\uni-b2c\src\pagesA\crossBorder
pagesA/crossBorder/index
http://192.168.1.208:8082/pagesA/crossBorder/index
任选
多商品任选计算
例子 | 商品 A | 商品 B |
---|---|---|
单价 x 数量(元 x 件) | 10 | 20 |
规则 1: 2 件 20 元 | 6.66 x 1 | 13.33 x 1 |
规则 2: 3 件 30 元 | 6 x 1 | 12 x 2 |
规则 3: 4 件 40 元 | 6.66 x 2 | 13.33 x 2 |
计算:
规则 1:
商品 A 总价 10 x 1 = 10
商品 B 总价 20 x 1 = 20
商品 A 实际单价 = (10 ÷ 30 x 20) ÷ 1 ≈ 6.66
商品 B 实际单价 = (20 ÷ 30 x 20) ÷ 1 ≈ 13.33
规则 2:
商品 A 总价 10 x 1 = 10
商品 B 总价 20 x 2 = 40
商品 A 实际单价 = (10 ÷ 50 x 30) ÷ 1 = 6
商品 B 实际单价 = (40 ÷ 50 x 30) ÷ 2 = 12
规则 3:
商品 A 总价 10 x 2 = 20
商品 B 总价 20 x 2 = 40
商品 A 实际单价 = (20 ÷ 60 x 40) ÷ 2 = 6 ≈ 6.66
商品 B 实际单价 = (40 ÷ 60 x 40) ÷ 2 ≈ 13.33
珍药优选
1.前台结算只能选择珍药商品结算
分销佣金
个人分销商佣金字段(表distributor
)
wait_commission
: 待结算commission
已结算extractable_commission
可提取already_commission
已提取
佣金结算
- 提交订单(含分销商品)生成分销单(表
distribution_order
)
方法: 普通分销 distributorOrder
特殊分销 codeDistributorOrder
支付订单生成分销收入明细(表
distribution_income_details
) 未到账
方法:distributionIncome
说明 1: 分销单中分销收益有两条数据生成两条明细
说明 2: 明细结余(待结算+已结算+可提取)
说明 3: 全部退款取消订单 删除分销收入明细数据确认收货结算佣金(表
distributor
)
方法:distributionIReceipt
说明 1: 按结算规则判断分销商个人佣金对应字段结算
说明 2: 更新收入分销明细结字段
结算规则:- settlement_data=0 release_date=0
extractable_commission
可提现 - settlement_data=0 release_date>0
commission
已结算 - settlement_data>0
wait_commission
待结算
- settlement_data=0 release_date=0
结算定时器
方法:settlementCommission
说明:- 结算日 已结算增加 待结算减少
- 发放日 可提取增加 已提取减少
后台账户佣金: 已结算+可提现
b2c 前台账户佣金
累计收益: 已结算+可提取+已提现
今日预估收入:今天分销收入明细amount
字段累加(含未到账,创建时间)
本月预估收入:本月分销收入明细amount
字段累加(含未到账,创建时间)
账户余额: 已结算+可提现
店员端
app_shop_assistant
webpos
退款
webpos 退款功能说明:
- 全部退款可以按原路退或按现金退
- 部分退款,按原路退或现金退(单支付)
- 部分退款,只能按现金退(多支付)
- 退款金额不能超出订单实收金额
- 自定义退款数量不能超出商品原数量
- 退款金额为商品最终价格金额(平摊后的金额)
- 退款金额不能超出商品平摊后的金额
收银台
order_total
应收金额 (订单金额)pay_total
实付金额coupon_amount
优惠券抵扣金额discount_amount
促销优惠金额 (满减金额)member_amount
会员优惠金额 (会员价/内购价)whole_amount
整单改价金额 (整单/单品字段二选一)single_amount
单品改价金额 (整单/单品字段二选一)
save_data.is_change_price
= false 是否自动切换价格(切换会员默认选择最优会员价)save_data.no_change
= true 是否处理商品会员价/内购价
save_data.pay_total
= 0 重新计算应收金额save_data.coupon_amount
= 0 重新计算优惠券金额
getPendingOne
获取默认挂单信息
getPendingOrder
获取挂单详细信息
productSum
计算商品金额支付
savePendingOrder
保存挂单信息
fullReductionOffer
满减处理方法
fullGiftOffer
满赠处理方法
optimalAmount
处理最优解
goodPromotionRuleList
获取所有商品促销类型
goodSortFn
商品排序
disposeProductList
处理商品字段
noBatchNumber
只按商品销售 (清除批号数组)
disposeBatchNumber
处理批号数据
收银台字段说明:
品种数量: 商品个数(对应商品最大的序号)
应收金额 = 商品总价相加
实收金额 = 应收金额 - 促销优惠 - 改价金额 - 优惠券金额
促销优惠 = 赠品金额 + 满减金额
单品改价
只有普通商品才能改价
会员价/内购价修改价格变成商城价
接口名 /commodity/modify/:id
促销
优先级:
目前 webpos 添加顺序
- 限时抢购 —> 满减 —> 满赠—> 普通
同个活动的优先级: 先按设置优先级,再按更新时间
1 | sort: { |
促销类型
general
普通商品match_package
组合套餐redemption
加钱换购limited_time_buying
限时抢购presale
预售integral_exchange
积分兑换
1.普通商品 2.限时抢购(限时,限量) 3.满减 4.满赠 5.组合套餐 6.换购 7.预售 8.积分兑换
门店商品库存不足时,下架状态无法下单购买
库存注意:
- webpos 库存按商品批号库存,b2c 库存按商品总库存判断
- 赠品活动库存目前版本已去掉(赠品库存按门店库存)
- 限时抢购设置商品活动库存为 0 时,不限时库存,为商品门店库存
- 组合套餐设置活动库存为 0 时,不限时库存,库存为组合商品内最小套餐数量
- 活动库存小于门店库存,按门店库存销售
- webpos 批号排序:先按有效期日期近到远排序,如有效期一样,则按批号库存从大到小排序
组合商品库存 1.当活动库存大于 0 时,以门店库存为主,必须小于活动库存 2.当活动库存等于 0 时(没限制库存) 以活动库存为主
简单功能说明
促销类型 | 说明 |
---|---|
普通商品 | 普通商品含商城价/会员价/内购价,只有普通商品才能切换价格类型 |
限时抢购 | 限时(按时),限量(按日) (含活动价格,活动库存,限购数量) |
满减 | 满购x元/件减y元 或 满购x元/件打y折 |
满赠 | 购买x元/件送y件赠品 加 购买x元/件加送y件赠品 (已去掉赠品库存) |
组合套餐 | 多个商品价格和数量捆绑合计 (含套餐价格,活动库存,限购数量) |
换购 | 达到某个金额后,可以选择加钱换购多种商品 (含换购价格,活动库存,换购数量) |
预售 | 商品先支付定金,在指定时间支付尾款 (含预售金额,定金,活动库存) |
积分兑换 | 积分兑换商品 (含兑换库存,兑换价格) |
预售说明:
- 预售定金/尾款支付必须是同种支付方式 (暂不支持多支付方式)
- 预售可设置定金为 0,可只支付尾款
收银台/购物车说明:
- 目前促销活动规则只能手动选择
- 同种商品只能用一个促销活动,不同种商品可以设置同种一个促销(满减,满赠)
- 订单可以有多个促销活动的商品
- 改价: 只能改普通商品的价格,不能修改促销商品价格
- 添加会员后,再添加商品默认带出商品最优价(会员价,内购价)
- 有满减促销时,先减满减金额,再减优惠券金额
公式–商品分摊(订单含满减,优惠券)
- 商品促销分摊 = (促销金额 ÷ 总金额) x 商品金额
- 商品优惠券分摊 = (优惠券金额 ÷ 总金额) x 商品金额
- 商品支付金额 = 商品金额 - 满减分摊- 优惠券分摊
例子:
webpos
const goodPromotionRuleList
处理,获取所有商品促销类型
const disposeProductList
处理商品字段
const disposeBatchNumber
处理所有商品批号库存
过滤条件:
1 | let result = await MAPP.db_queryAll({ |
b2c 立即购买
最优促销规则
商品列表
order_total
订单金额 (应收金额)pay_total
实付金额 (实收金额)
配置打包
桌面应用包
在
package.json
中的dependencies
添加以下三个依赖包(用 npm 安装)"electron": "^12.0.0",
"electron-devtools-installer": "^3.1.0",
"vue-cli-plugin-electron-builder": "~2.0.0",
执行 electron:build 报错
在项目根目录新增
.npmrc
文件添加
ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/
全局安装 npm install electron -g
安装失败处理:
npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/
//配置安装镜像源地址
打包失败处理:npm config set ELECTRON_BUILDER_BINARIES_MIRROR https://mirrors.huaweicloud.com/electron-builder-binaries/
// 配置打包镜像源地址manifest.json 路由配置
history
改成hash
运行打包
npm run electron
打包 64 位应用程序npm run electron:build32
打包 32 位应用程序
商品
获取所有商品促销类型 const goodPromotionRuleList
处理商品促销字段提示合并组合商品和赠品,换购商品(重新加载商品列表) const disposeProductList
高德地图
先创建Web服务
应用(接口) Web端
应用(页面)保存 key 和密钥
库存
新零售目前库存字段
商品总库存
冻结数量
blocked_stock
占用数量occupy_stock
门店库存stock
可销库存 = 门店库存 - 冻结数量 - 占用数量
批号库存
stock
冻结数量blocked_stock
可销库存 = 批号库存 - 冻结数量
webpos 库存说明:
- 目前销售先冻结或占用数量,同步日清后才去扣除掉门店账面库存数量,冻结和占用数量
- 页面显示的库存都是
可销库存
- 按批号销售:直接冻结商品所在批号数量和冻结商品总数量
- 按商品销售:商品销售自动分配批号,出现
负库存
,数量加在商品占用数量
字段 - 日清结果:
① 更新商品账面和批号库存
② 更新订单商品批号数据和日清状态
③ 插入/更新新的库存流水记录
webpos 销售
总库存字段
按商品销售:
可销库存 = 门店账面库存 - 冻结数量 - 占用数量
例子 | 商品 A | 批号 1 | 批号 2 | 数据(行) |
---|---|---|---|---|
库存(件) | 15 | 10 | 5 | |
1. 销售 10 | 冻结:10,可销:5 | 冻结:10,可销:0 | 冻结:0,可销:5 | A1 x 10 |
2. 销售 12 | 冻结:12,可销:3 | 冻结:10,可销:0 | 冻结:2,可销:3 | A1 x 10 A2 x 2 |
3. 销售 20(负) | 冻结 15,可销:0,占用:5 | 冻结:10,可销:0 | 冻结:5,可销:0 | A1 x 10 A2 x 5 A (空) x 5 |
带下划线的文本
门店商品批号库存查询circulation_record
封装方法
1 | // 添加批号库存记录 |
1 | // 扣商品库存 |
库存批号库存
1 | await MAPP.db_setOne({ |
库存单据
单据保护:审核前是否修改原单数据
只要有任一总部账号进入审核页面,均触发单据保护
data_protection
请货单 盘点单 配送单 退库单
是否审核: 总店是否可审核其他门店单据
1 | // 盘点单是否需审核 |
盘点单
说明:
- 完成盘点单后,需要判断是否需要审核
- 如需要审核,由中台总店审核和平账库存
- 如无需审核,则店员端自动审核通过并自动平账库存
- 审核通过后才会推送(每 2 分钟)
请货单
说明:
- 子门店向子门店请货,不推送 erp,由子门店处理
- 子门店向总部请货,推送 erp,由 erp 同步接口出库单 (每 2 分钟同步一次)
- 请货单可以配置是否需要审核
店员端:
A 门店—>B 门店
A 门店 向 B 门店请货
一 、请货流程:
- 选择发货门店
- 添加请货商品
- 设置商品请货数量
- 提交请货单
- 审核请货单(如审核驳回可以修改后重新提交)
二 、出库流程 (子门店之间)
- B 门店生成拣货任务 (总部没有生成拣货任务)
- 获取根据请货单商品
- 选择商品批号和设置数量(子门店需要冻结库存)
- 确认出库 (减少账面库存)
- A 门店生成收货任务
三 、收货流程
- 子门店之间,出库数量等于收货数量
- 总库出库,子门店收货可以不等于出库数量
出库单
说明:
- 新零售出库单有关联请货单
- erp 出库单可以不关联请货单
价格
新零售目前商品价格: 普通价(零售价/现价) 会员价 付费会员价 内购价 (四种)
注意:
- 若线下零售价为 0 时,用线上零售价
- 会员价包括商城会员价(免费),付费会员价
- 内购价针对职工内部(职工账号与会员手机号一致则享受内购价)
设置等级会员价
- 权益中心必须开启
- 设置商品折扣字段 (折扣大于 0)
current_price
零售价(线上)current_price_offline
零售价(线下)staff_price
内购价member_price
会员价paid_price
plus 会员价
会员价
说明:
- 普通会员优先级: 商品指定价 > 其它等级商品折扣
- 折扣值范围: 0 < 折扣 < 10
- 会员价计算: 会员价 = 零售价 x 折扣 x 0.1
- 会员价有可能会大于零售价
- 优惠金额: 零售价 - 会员价 (可正可负)
例子:
A 商品 10 元,享折扣八折
会员价: 10x8x0.1=8(元)
member_price
普通会员价商品表(指定)
mall_member
普通会员等级表
字段结构
1 | "member_benefits" : [ |
1 | // 获取方法 |
plus 会员价
说明:
- plus 会员优先级: 商品指定价> 专属商品折扣 > 其它商品折扣
- 折扣值范围: 0 < 折扣 < 10
- 会员价计算: 会员价 = 零售价 x 折扣 x 0.1
paid_price
付费会员价商品表(指定)
paid_member
付费 plus 会员表
1 | "member_benefits" : [ |
1 | //获取方法 |
内购价
说明:
- 内购价: 商品指定价 > 专属商品折扣
- 折扣值范围: 0 < 折扣 < 10
- 内购价计算: 内购价 = 零售价 x 折扣 x 0.1
staff_price
内购价商品表(指定)
staff_member
内购规则表
1 | "member_benefits" : [ |
订单
权益
新版 2867 改版
积分倍率: 按用户类型拿最大的一条规则赠送倍率规则
优惠券 先全部领取, 有可能改了领取数量,要拆分未领取的数量
客服
说明:
- 按门店匹配
调度
自动调度说明(定时器)
- 开启自动调度配置,设置无响应时间
- 所有未接入的对话 (有对话过的)
- 对话更新时间小于(当前时间 - 无响应时间)
商品
product_list
单个商品价格:price
:零售价cypher_price
: 普通价(零售价/会员价/plus 价/内购价)reduction_number
: 满减抵扣金额coupon_number
: 优惠券抵扣金额member_number
: 会员抵扣金额integral_price
: 积分抵扣金额final_price
最终价格(实际支付价格)
达到满减条件为:
- 满减活动商品实际支付总价 >= 满减门槛规则金额
- 满减活动商品总件数 >= 满减门槛件数
满减满足金额为普通商品cypher_price
计算判断
优惠券可用条件为: 总商品实际支付总价 - 满减金额 >= 优惠券门槛金额
价格计算
普通价 = 零售价 - 折扣金额 - 改价金额
cypher_price
= price
- member_number
- change_number
支付价 = 普通价 - 满减金额 - 优惠券金额 - 积分抵扣金额
final_price
= cypher_price
- reduction_number
- coupon_number
- integral_price
注
:
- 如抵扣金额(优惠金额小于 0.01 元)按 0 元计算
- webpos 达到满减条件为: 满减活动商品零售价总价 >= 满减门槛规则金额
打印
型号 :Xprinter 58
指令
易语言安装与破解说明:
一、解压后,先安装易语言 5.9 官方正式版
二、将易语言 5.92 版升级包里面的文件复制到安装目录
三、将易语言 5.92 破解补丁里面的“e.exe”复制到安装目录
四、可以选择安装易语言助手
五、如果出现静态连接失败,请使用“易语言静态连接失败智能修复器 v1.2.exe”进行修复
开钱箱源码
.版本 2
.支持库 eAPI
.程序集 程序集 1
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
.局部变量 hPrinter, 整数型
.局部变量 pd, PRINTER_DEFAULTS
.局部变量 字符串, 字节型, , “5”
字符串 = { 27, 112, 0, 128, 128 } ‘ 打印机指令
OpenPrinter (取默认打印机 (), hPrinter, pd)
StartDocPrinterA (hPrinter, 1, pd)
StartPagePrinter (hPrinter)
WritePrinter (hPrinter, 字符串, 5, 0)
ClosePrinter (hPrinter)
‘ 调试输出 (OpenPrinter (取默认打印机 (), hPrinter, pd))
‘ 调试输出 (hPrinter)
‘ 调试输出 (StartDocPrinterA (hPrinter, 1, pd))
‘ 调试输出 (StartPagePrinter (hPrinter))
‘ 调试输出 (WritePrinter (hPrinter, 字符串, 5, 0))
‘ 调试输出 (ClosePrinter (hPrinter))
返回 (0) ‘ 可以根据您的需要返回任意数值
其他打印机开钱箱指令
1 | Axionhm A715 27,112,0,48,251 |
项目需求
裕创
字段
- 会员表
member
增加门店store_ids
关联 - 平台配置
platform_deploy
总部派送,不限制门店库存1
2
3
4
5
6
7//JavaScript
{
// 门店缺货由总部派送(裕创280增加)
head_office_delivery: { type: Boolean, default: false },
// 门店会员访问权限(裕创280增加) 0 所有门店 1 仅限访问关联加盟店
allow_stores: { type: Number, default: 0 },
} - 门店表
store
1
2
3
4{
// 门店类型 0 自营店 1 加盟店
store_type: { type: Number, default: 0 },
} - 订单表
order_library
1 | { |
获取品平台配置
1 | const platform_deploy = await MAPP.db_getOne({ |
调用方法
1 | //JavaScript |
说明:
1、消费者如果只关联加盟店,且平台配置开启了【仅限访问关联加盟】(原【仅访问关联门店】),那么该消费者只能访问关联的加盟店,不可访问直营店和总店。
2、消费者如果关联了任意直营店,则可访问总店、其他任何直营店和已经关联的加盟店。
3、平台配置同时开启【仅限访问关联加盟】和【登录时选择配送方式】时,【登录时选择配送方式】的弹窗以消费是否关联了直营店为判断依据。
1)如果消费者仅关联加盟店,登录时弹窗不需要显示,且不限制可视门店距离,并直接进入已关联的最近加盟店。
2)如果消费者关联了任意直营店,登录时显示配送方式选择弹窗。
4、调货门店 erp 内码,指的是门店缺货由总部派送商品时,缺货门店的 erp 内码。
同步
商品基础表
同步字段 | 数据表字段 | 同步值 | 数据值 | 是否非空 | 说明 |
---|---|---|---|---|---|
B_SN | 1 | 非空 | 同步序号 | ||
NAME | name | 商品名称 | 商品名称 | 非空 | 名称 |
BAR_CODE | bar_code | 100001 | 100001 | 非空 | 条码 |
CODING | coding | A00001 | A00001 | 非空 | 编码 |
COMMON_NAME | common_name | 通用名 | 通用名 | 非空 | 通用名 |
MNEMONIC_CODE | mnemonic_code | zjm | zjm | 非空 | 首字母 |
PRESCRIPTION | prescription | 处方药 | 处方药 | 可空 | 处方药类型 |
ORIGINAL_PRICE | original_price | 3 | 3 | 非空 | 商品原价 |
CURRENT_PRICE | current_price | 3 | 3 | 非空 | 商品现价(线上) |
CURRENT_PRICE_OFFLINE | current_price_offline | 0 | 0 | 可空 | 商品现价(线下) |
KEYWORD | keyword | 西药,感冒药 | 西药,感冒药 | 可空 | 关键字 |
DRUG_TYPE | drug_type | 西药 | 2 | 非空 | 药品类型 |
DOSAGE | usage | 每日三次 | 每日三次 | 可空 | 用法用量 |
UNIT | unit | 件 | 件 | 非空 | 单位 |
UNIT_NUM | unit_num | 1 | 1 | 非空 | 单位数量 |
WEIGHT | weight | 0 | 0 | 可空 | 重量 |
VOLUME | volume | 0 | 0 | 可空 | 体积 |
SPECIFICATION | specification | 500g/盒 | 500g/盒 | 非空 | 规格 |
FORMULATION | formulation | 肠溶片 | 肠溶片 | 可空 | 剂型 |
INGREDIENT | ingredient | - | - | 非空 | 成分 |
SHAPE | shape | - | - | 可空 | 性状 |
INDICATIONS | indications | - | - | 可空 | 适应症 |
OVERDOSE | overdose | - | - | 非空 | 药物过量 |
DRUG_EFFECT | drug_effect | - | - | 可空 | 药物作用 |
CLINICAL_GUIDELINES | clinical_guidelines | - | - | 可空 | 临床应用指南 |
MANUFACTURER | manufacturer | 生产厂家 | 生产厂家 | 非空 | 生产厂家 |
PRODUCTION_ORIGIN | production_origin | - | - | 可空 | 生产产地 |
FOR_PEOPLE | for_people | - | - | 可空 | 适用人群 |
TABOO | taboo | - | - | 可空 | 禁忌 |
STORAGE_METHOD | storage_method | - | - | 可空 | 贮藏方式 |
INTRODUCTION | introduction | - | - | 可空 | 商品简介 |
INDICATION | indication | - | - | 可空 | 功能主治 |
PRECAUTIONS | precautions | - | - | 可空 | 注意事项 |
ADVERSE_REACTIONS | adverse_reactions | - | - | 可空 | 不良反应 |
MEDICINE_INTERACTIONS | medicine_interactions | - | - | 可空 | 药物相互作用 |
GMP_CERTIFICATION | gmp_certification | - | - | 可空 | GMP 认证 |
APPROVAL_NUMBER | approval_number | - | - | 可空 | 批准文号 |
VALIDITY_PERIOD | validity_period | - | - | 可空 | 有效期 |
MEDICAL | medical | Y | true | 非空 | 是否医保 |
THREE_CATEGORIES | three_categories | N | false | 非空 | 是否三类 |
COLD_CHAIN | cold_chain | N | false | 非空 | 是否冷链 |
OVERSEAS | overseas | N | false | 非空 | 是否境外 |
TARIFF | tariff | 0 | 0 | 非空 | 进口税率 |
EPIDEMIC_SITUATION | epidemic_situation | N | false | 非空 | 是否疫情 |
HIDE_GOODS | hide_goods | N | false | 可空 | 是否隐藏 |
SORT | sort | 0 | 0 | 可空 | 跨境排序 |
NEAR_TERM_WARNING | near_term_warning | 180 | 180 | 可空 | 近效期预警天数 |
LOCAL_CODE | local_code | - | - | 可空 | 本位码 |
INSERT_TIME | YYYY-MM-DD HH:mm:ss | 非空 | 插入时间 |
即时通讯
接口
文件:
绑定标识处理 /bin/socket.js
socket 对象封装 (客户端和服务端) /src/@common/socket_client.js
服务端连接 /src/@common/ws.js
消息中心通用方法 /src/@common/message_center.js
对应message_center
数据表
提醒发货 订单消息间隔一分钟提醒有效
msg_type
自定类型 (提醒发货 订单 退单)
from: store_staff
店员端任务类型 (收货 拣货 请货单)
from message_center
店员端消息中心 请货审核 退货审核