经营数据
新增购买记录数据
接口描述: 系统会以门店+小票号+消费时间来唯一确定一笔购买记录,重复数据会被忽略
接口地址: https://yd.yunding360.com/openapi/pos/purchase/record
请求方式:POST
请求示例:
{
"abnormalReason": [],
"actualAmount": 0,
"amount": 0,
"cashier": "",
"change": 0,
"consumeType": 0,
"isNeedStatistics": true,
"noNeedAiDetect": false,
"noNeedHandleAbnormal": false,
"goodsRecords": [
{
"addInfo": [
{
"code": "",
"description": "",
"name": "",
"type": "",
"display": true,
"value": ""
}
],
"discount": 0,
"goodsAmount": 0,
"goodsName": "",
"goodsNo": "",
"goodsNumber": 0,
"goodsPrice": 0,
"transactionPrice": 0
}
],
"paymentInfo": [
{
"amount": 0,
"customPaymentType": "",
"paymentType": 0
}
],
"paymentType": 0,
"posBillInfo": "(例:小票编号:Z00038_xpd1905280082\n日期:2019-07-07 13:59:32\n商品编号 颜色 尺码 零售价 数量 折扣 金额 商品名称\nA1SA9205C57 绿色 XXL 799.00 1 0.83 699 中长裙\n合计 1 699\n\n计算方式 实收 找零\n支付宝支付 699 0\n营业员:Z00038_000 签单店员:Z00038_002\n会员卡:15927634772 累积积分:209\n店铺:上海保德路店)",
"posDiscount": 0,
"posMemberInfo": {
"address": "",
"age": 0,
"birthday": 0,
"consumeType": 0,
"idType": 0,
"memberCardNo": "",
"memberIdNumber": "",
"nickName": "",
"phone": "",
"registerStoreCode": "",
"registerTime": 0,
"remarks": "",
"sex": 0,
"totalIntegral": 0
},
"posNumber": "",
"purchaseTime": 0,
"quantity": 0,
"seller": "",
"storeCode": "",
"storeName": "",
"ticketNo": "",
"tradeType": "",
"description": "",
"orderQuantity": 1,
"orderType": "",
"deviceQuantity": 0,
"partsQuantity": 0
}
请求参数:
| 参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| purchaseRecord | purchaseRecord | body | true | 购买记录数据(POS单数据) | 购买记录数据(POS单数据) |
schema属性说明
购买记录数据(POS单数据)
| 参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| amount | POS单总金额 | body | false | number(double) | |
| actualAmount | 实收金额(必填) | body | true | number(double) | |
| cashier | 营业员(收银员)名字 | body | false | string | |
| change | 找零 | body | false | number(double) | |
| consumeType | 消费类型,0:非会员消费;1:会员消费;2:未指定消费类型(其他)(从PosMemberInfo参数中提到外层参数对象) | body | false | integer(int32) | |
| goodsRecords | 商品记录清单 | body | false | array | 商品信息 |
| goodsRecordsFieldDisplay | "商品记录清单"中的字段显示信息。说明:该字段用于控制"商品记录清单"中的下属字段的展示与隐藏以及排序。字段内容为需要展示的字段名按展示顺序排列的字符串数组(无需展示的字段不传入即可)。该字段值为null或者空数组时视为不生效,则"商品记录清单"中的字段默认按既有的规则显示。另外,对于"商品记录清单"中的扩展信息字段,传入格式为:"addInfo.${code/name}",其中"${code/name}"为动态内容,用于匹配addInfo中的code或者name。字段示例:{"goodsRecordsFieldDisplay":["discount","goodsAmount","addInfo.color"]} | body | false | array | 商品信息 |
| paymentInfo | 付款信息 | body | false | array | POS单付款信息 |
| paymentType | 付款方式集合,0:现金支付;1:支付宝;2:微信;3:银联支付;4:云闪付;5:翼支付;6:储值卡;7:其他;8:预存支付 | body | false | integer(int32) | |
| posBillInfo | 小票信息模板,可以根据实际情况组合,换行需用'\n' | body | false | string | |
| posMemberInfo | 会员信息 | body | false | pos 会员信息(如果是会员消费,必填字段需要要填写) | pos 会员信息(如果是会员消费,必填字段需要要填写) |
| posNumber | 收银机编号 | body | false | string | |
| purchaseTime | 购买时间,时间戳(毫秒)(必填) | body | true | integer(int64) | |
| posCreateTime | POS单创建时间,时间戳(毫秒)(必填) | body | false | integer(int64) | |
| quantity | 购买总数量(为空时默认为1,说明:当quantity参数不传或传不为0的值时,orderQuantity不传为null时默认为1单。如果购买数量quantity参数传0,orderQuantity不传或null时,将不计单数) | body | false | integer(int32) | |
| seller | 签单店员(销售员)名字 | body | false | string | |
| storeCode | 消费门店的编号(必填) | body | true | string | |
| storeName | 消费的门店名称 | body | false | string | |
| ticketNo | 小票号(必填) | body | true | string | |
| tradeType | 交易类型(例如:消费;充值等) | body | false | string | |
| abnormalReason | POS单异常原因(云盯平台已配置的用户自定义预警规则) | body | false | array | |
| posDiscount | 整单折扣(用于平台整单折扣预警,范围0~1) | body | false | number(double) | |
| isNeedStatistics | 明细小票是否纳入pos统计(为空时默认为true) | body | false | boolean | |
| noNeedAiDetect | 是否不需要AI检测,不需要:true,需要:false;不传时默认为:false | body | false | boolean | |
| noNeedHandleAbnormal | 是否不需要异常检测(仅作用于非AI异常规则),不需要:true,需要:false;不传时默认为:false | body | false | boolean | |
| description | 备注 | body | false | string | |
| orderQuantity | 订单数量(当quantity参数不传或传不为0的值时,orderQuantity不传为null时默认为1单。说明:如果购买数量quantity参数传0,orderQuantity不传或null时,将不计单数) | body | false | integer(int32) | |
| orderType | 订单类型,可选值:NOT_ORDER_SALE:非销售单 | body | false | string | |
| deviceQuantity | 主机数量 | body | false | number(double) | |
| partsQuantity | 配件数量 | body | false | number(double) |
商品信息
| 参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| addInfo | 商品附加属性(如:'name':'颜色','value':'红色') | body | false | array | 自定义参数 |
| discount | 购买的商品折扣(折扣值0~1) | body | false | number(double) | |
| goodsAmount | 购买的商品总金额(必填) | body | true | number(double) | |
| goodsName | 购买的商品名称 | body | false | string | |
| goodsNo | 购买的商品编号 | body | false | string | |
| goodsNumber | 购买数量(必填) | body | true | integer(int32) | |
| goodsPrice | 购买的商品单价(零售价)(必填) | body | true | number(double) | |
| transactionPrice | 成交价 | body | false | number(double) |
自定义参数
| 参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| code | 自定义参数码 | body | false | string | |
| description | 自定义参数描述 | body | false | string | |
| name | 自定义参数名 | body | false | string | |
| type | 自定义参数类型,可用值: NUMBER, DOUBLE, TEXT, URL, JSON, JSON_ARRAY, ARRAY, BLOB, TIMESTAMP, UUID | body | false | string | |
| value | 自定义参数值 | body | false | string | |
| display | 自定义参数是否显示(true 显示,false 不显示,默认为true) | body | false | boolean |
POS单付款信息
| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| amount | 金额 | body | false | number(double) | |
| customPaymentType | 用户定义付款方式 | body | false | string | |
| paymentType | 付款方式,0:现金支付;1:支付宝;2:微信;3:银联支付;4:云闪付;5:翼支付;6:储值卡;7:其他;8:预存支付 | body | false | integer(int32) |
pos 会员信息(如果是会员消费,必填字段需要要填写)
| 参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| address | 住址 | body | false | string | |
| age | 会员年龄 | body | false | integer(int32) | |
| birthday | 生日 | body | false | integer(int64) | |
| consumeType | 消费类型,0:非会员消费;1:会员消费;2:未指定消费类型(其他)(弃用,兼容已对接的接口) | body | false | integer(int32) | |
| idType | 会员证件类型,0:护照;1:身份证 | body | false | integer(int32) | |
| memberCardNo | 会员卡号(必填) | body | false | string | |
| memberIdNumber | 会员证件号 | body | false | string | |
| nickName | 昵称 | body | false | string | |
| phone | 电话(必填) | body | false | string | |
| registerStoreCode | 会员注册门店的编号(必填) | body | false | string | |
| registerTime | 会员注册时间,时间戳(毫秒) | body | false | integer(int64) | |
| remarks | 备注 | body | false | string | |
| sex | 性别,0:男;1:女;2:未知 | body | false | integer(int32) | |
| totalIntegral | 累计积分 | body | false | integer(int64) |
响应示例
boolean
响应状态:
| 状态码 | 说明 | schema |
|---|---|---|
| 200 | OK |
上传收银统计数据
接口描述: 上传门店按小时统计的收银统计数据,对于同一门店同一小时的统计数据多次上传时,数据为累加而非替换。
接口地址: https://yd.yunding360.com/openapi/pos/purchase/statistics
请求方式:POST
请求示例:
{
"hourTime": "2022010516",
"posAmount": 200.00,
"posQuantity": 100.00,
"posTrade": 2,
"storeCode": "storeCode1"
}
请求参数:
| 参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| purchaseStatistics | purchaseStatistics | body | true | 收银统计数据 | 收银统计数据 |
schema属性说明
收银统计数据
| 参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| storeCode | 消费门店的编号(必填) | body | true | string | |
| hourTime | 时间(必填,小时格式时间字符串,格式为:yyyyMMddHH) | body | true | string | |
| posAmount | 销售额(必填,可以为负值) | body | true | number(double) | |
| posQuantity | 商品数量(必填,可以为负值) | body | true | number(double) | |
| posTrade | 客单数(必填,可以为负值) | body | true | integer(int32) |
响应示例:
success
响应参数:
暂无
查询营业额统计结果
接口描述: 获取按时间或者门店维度统计营业额的统计信息
接口地址: https://yd.yunding360.com/openapi/turnover
请求方式:POST
请求示例:
{
"groupId": [],
"limit": 0,
"orderColumn": "",
"orderDirection": "",
"storeIds": [],
"timeType": ""
}
请求参数:
| 参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| query | query | body | true | 营业额统计查询字段 | 营业额统计查询字段 |
schema属性说明
营业额统计查询字段
| 参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| groupId | 门店组Id | body | false | array | |
| limit | 返回数据条数 | body | false | integer(int32) | |
| orderColumn | 排序字段(默认'amount':总金额),可用值: numberOfTotal, durationAvg, amount, trade | body | false | string | |
| orderDirection | 排序顺序(默认DESC,降序),可用值: NONE, ASC, DESC | body | false | string | |
| storeIds | 门店Id | body | false | array | |
| timeType | 统计时间类型,可用值: HOUR, DAY, WEEK, MONTH, QUARTER, YEAR | body | false | string |
响应示例:
[
{
"amount": 0,
"lastAmount": 0,
"name": "",
"quantity": 0,
"storeId": "",
"trade": 0
}
]
响应参数:
| 参数名称 | 参数说明 | 类型 | schema |
|---|---|---|---|
| amount | 营业额 | number(double) | number(double) |
| lastAmount | 昨日营业额 | number(double) | number(double) |
| name | 门店名称 或 时间 | string | |
| quantity | 销售商品数量 | integer(int64) | integer(int64) |
| storeId | 门店id(当查询门店维度时) | string(uuid) | string(uuid) |
| trade | 客单数 | integer(int64) | integer(int64) |
响应状态:
| 状态码 | 说明 | schema |
|---|---|---|
| 200 | OK | TurnoverAggregationResult |
删除收银小票数据
接口地址 https://yd.yunding360.com/openapi/pos/delete
请求方式 POST
consumes ["application/json"]
接口描述 可通过时间范围、门店编号、小票编号来确认需要进行删除的数据
请求示例:
{
"endTime": 0,
"startTime": 0,
"storeCode": "",
"ticketNo": ""
}
请求参数
| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| Authorization | Oauth2认证令牌 | header | false | string | |
| api-version | API版本号,可用值:v1 | header | true | string | |
| params | params | body | true | 购买记录删除参数 | 购买记录删除参数 |
schema属性说明
购买记录删除参数
| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| endTime | 结束时间,时间戳(毫秒)(必填) | body | true | integer(int64) | |
| startTime | 开始时间,时间戳(毫秒)(必填) | body | true | integer(int64) | |
| storeCode | 消费门店的编号(必填) | body | true | string | |
| ticketNo | 小票号(选填) | body | false | string |
响应状态
| 状态码 | 说明 | schema |
|---|---|---|
| 200 | OK |
响应示例
boolean
获取收银小票数据
接口描述: 可通过时间范围、门店编号、小票编号来查询小票数据
接口地址: https://yd.yunding360.com/openapi/pos/page
请求方式:POST
请求参数:
| 参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| api-version | API版本号,可用值:v1 | headers | true | String | v1 |
| Authorization | 安全认证token | headers | true | String | tokenType + accessToken |
| page | 页数(从0开始计数,默认为0) | query | true | integer | |
| size | 每页数量(默认20) | query | true | integer | |
| storeCode | 门店Code | body | false | string | |
| ticketNo | 小票号 | body | false | string | |
| startTime | 开始时间戳(毫秒) | body | true | integer(int64) | |
| endTime | 结束时间戳(毫秒) | body | true | integer(int64) |
响应示例:
{
"content": [
{
"id": "88552b1f-0b56-11ee-89d6-89aa0813fa02",
"memberCardNo": "membercard0073013",
"phone": "15290771901",
"age": 32,
"storeId": "f1835397-09da-11ee-b798-edb2da665e40",
"storeCode": "490AI",
"storeName": "490AI",
"purchaseTime": 1686814200000,
"quantity": 10,
"amount": 500,
"paymentType": null,
"paymentInfo": [
{
"customPaymentType": "自定义",
"paymentType": "CASH_PAYMENT",
"amount": 500
},
{
"customPaymentType": "自定义",
"paymentType": null,
"amount": 500
}
],
"tradeType": "消费",
"actualAmount": 500,
"change": 0,
"seller": "测试3",
"cashier": "shouyinyuan",
"totalIntegral": null,
"ticketNo": "POS2023061500002",
"posNumber": "test613001",
"status": false,
"causes": [],
"posSnapUrl": null,
"ticketImageUrl": "https://yd-img-test-qa.oss-cn-beijing.aliyuncs.com/yunding/snapshot_pos_superposition/2023-06-15/d892949e-9efd-47a6-b9bb-b842a9eb15e2.jpeg",
"ticketImageUrls": [
"https://yd-img-test-qa.oss-cn-beijing.aliyuncs.com/yunding/snapshot_pos_superposition/2023-06-15/d892949e-9efd-47a6-b9bb-b842a9eb15e2.jpeg"
],
"posBillInfo": "小票编号:PDS3\n日期:2022-08-22 15:30:00\n商品编号 颜色 尺码 零售价 数量 折扣 金额 商品名称\nC01WJ0000413 无 XXL 9759.00 1 0.83 9759 BELIEVE系列 简奢款\n合计 1 9759\nC01WJ0000413 无 XXL 9759.00 1 0.83 9759 BELIEVE系列 简奢款\n合计 1 9759\nC01WJ0000413 无 XXL 9759.00 1 0.83 9759 BELIEVE系列 简奢款\n合计 1 9759\nC01WJ0000413 无 XXL 9759.00 1 0.83 9759 BELIEVE系列 简奢款\n合计 1 9759\nC01WJ0000413 无 XXL 9759.00 1 0.83 9759 BELIEVE系列 简奢款\n合计 1 9759\nC01WJ0000413 无 XXL 9759.00 1 0.83 9759 BELIEVE系列 简奢款\n合计 1 9759\n\n计算方式 实收 找零\n支付宝支付 9759 0\n营业员:Z00038_000 签单店员:PDS1200629777\n会员卡:15927634772 累积积分:209\n店铺:会议室",
"posDiscount": 1,
"abnormalInfo": [
{
"cause": "AI_NO_CUSTOMER_HAVE_BILL",
"rule": {
"id": "573f424e-0993-11ee-8b92-7762fe46522e",
"createdTime": 1686623892371,
"creator": "21d28ba0-a5a7-11eb-920c-a90496b36bec",
"modifiedTime": 1686657033943,
"modifier": "21d28ba0-a5a7-11eb-920c-a90496b36bec",
"name": "app苹果门店AI有单无客",
"nameMap": {},
"enterpriseId": "6e817750-706f-11e9-ad77-0f5fd489adb3",
"storeIds": null,
"status": true,
"ruleName": "app苹果门店AI有单无客",
"triggerType": "AI_NO_CUSTOMER_HAVE_BILL",
"triggerCondition": {
"diffPaymentType": null,
"compareType": null,
"compareAmount": null,
"paymentNumGt": null,
"multipleStoreWarning": null,
"timePeriod": null,
"tradeNumGt": null,
"appointPaymentType": null,
"posTimeLastSec": 30,
"posTimeNextSec": 30,
"stayDuration": null,
"posQuantityGt": null,
"singleGoodsQuantityGt": null,
"posDiscountLt": null,
"singleGoodsDiscountLt": null
},
"colorType": null,
"notifyType": null,
"notifyTarget": null,
"uuid": "573f424e-0993-11ee-8b92-7762fe46522e"
}
}
],
"goodsRecords": [
{
"goodsName": "BELIEVE系列 简奢款",
"goodsNo": "C01WJ0000413",
"goodsPrice": 322,
"goodsNumber": 4.87,
"discount": 0,
"goodsAmount": 121,
"addInfo": null
}
],
"createdTime": 1686817677747,
"description": null,
"uuid": "88552b1f-0b56-11ee-89d6-89aa0813fa02"
}
],
"metadata": {
"size": 20,
"totalElements": 1,
"totalPages": 1,
"page": 0
}
}
响应参数:
| 参数名称 | 参数说明 | 类型 | schema |
|---|---|---|---|
| content | 收银小票分页数据 | array | content |
| metadata | 分页信息 | PageMetadata | PageMetadata |
参数说明:
| 参数名称 | 参数说明 | 类型 |
|---|---|---|
| id | ID | string(uuid) |
| memberCardNo | 会员卡号 | string |
| phone | 会员电话 | string |
| age | 会员年龄 | string |
| storeId | 门店ID | string(uuid) |
| storeCode | 门店code | string |
| storeName | 门店名称 | string |
| purchaseTime | 购买时间,时间戳(毫秒) | integer(int64) |
| quantity | 购买总数量 | double |
| amount | 购买的总金额 | double |
| actualAmount | 实收金额 | double |
| change | 找零 | double |
| paymentInfo | 付款方式(多种方式) | array(object) |
| -- amount | 购买的总金额 | double |
| -- paymentType | 付款方式,CASH_PAYMENT(现金支付);ALIPAY(支付宝);WECHAT_PAY(微信);UNIONPAY(银联支付);CLOUD_FLASH_PAY(云闪付);BESTPAY(翼支付);PAID_CARD(储值卡);PRE_DEPOSIT(预存支付),OTHER_PAYMENT(其他) | string |
| -- customPaymentType | 用户定义付款方式 | string |
| tradeType | 交易类型(例如:消费;充值等) | string |
| seller | 签单店员(销售员) | string |
| cashier | 营业员(收银员) | string |
| ticketNo | 小票号 | string |
| posNumber | 收银机编号 | string |
| status | pos单状态(true-正常,false-异常) | Boolean |
| causes | 异常原因 | array(string) |
| ticketImageUrl | pos小票叠加图 | string |
| ticketImageUrls | pos小票叠加图 (多张) | array(string) |
| posDiscount | 整单折扣(用于平台折扣预警) | double |
| abnormalInfo | 异常信息 | array(object) |
| goodsRecords | 商品明细 | array(object) |