扩展 APIs
介绍 SHOPLINE POS 应用页面如何使用 SHOPLINE POS 提供的 JavaScript API,来实现 Web 扩展。
当扩展开发者需要与 SHOPLINE POS 原生进行交互,可以使用此 API。
API使用指南
要求
- 你已经创建了一个 开发商店。
- 你已在 SHOPLINE 合作伙伴后台 中创建了应用程序。
- 你已经为你的应用 创建了 Web 扩展
- 使用 v2.15.0 及以上版本的 SHOPLINE POS
API调用步骤
a.引包
当前API版本需指定 js-sdk 的版本号
<!-- 指定版本号 -->
<script src="https://cdn.myshopline.com/sl/sdk/sl-jssdk-1.0.35.mini.js"></script>
b.API调用
调用说明
此 API 集成在 SDK 的 SHOPLINE POS APP 模块里面,开发者需要通过 SDK 的全局变量 shoplineAppBridge 来调用 posapp 模块的API,以下是调用示例和截图:
<!-- window.shoplineAppBridge 全局变量-->
<!-- posapp: 模块名-->
<!-- 'openWebWindow': 功能-->
<!-- { url : localurl, }: 入参-->
<!-- then((res): 异步callback;res返回参数-->
<!-- {'code': Int, 'msg': string, 'timeStamp': Number, 'data': Obj\} -->
shoplineAppBridge.posapp('openWebWindow', { url : localurl, }).then((res) => {
}
返回的通用格式说明
API 调用会返回以下固定的格式:
- code:API 调用返回的错误码,可参考 错误码 部分说明
- msg:API 调用返回的错误信息,code 非 0 时返回
- timeStamp:API 调用返回时刻的时间戳,13 位毫秒级时间戳
- data:API 调用返回的结果,具体可参考 API参考文档
{
code: 0, // 字段类型 number
msg: "", // 字段类型 string
timeStamp: 1729822782000, // 字段类型 number
data: {} // 字段类型 object
}
API调用样例
调用示例
如下代码样例和截图展示了使用 [openWebWindow](https://shopline.yuque.com/gg8sp0/gof0eh/day3erkptv39reqy#Extpl)
接口以全屏的形式打开应用
<script type="text/javascript">
function openWebWindow() {
var url = "https://xxxxxxxx";
window.shoplineAppBridge.posapp('openWebWindow', {"url":url,"style":1,"position":{"x":0.1,"y":0.05,"width":0.8,"height":0.9}}).then((res) => {
// 示例 res = { "code":0, "timeStamp":1730276377000}
var jsonRes = JSON.stringify(res);
if (jsonRes['code'] == 0) {
// 处理结果
}
});
}
</script>
事件回调示例
<script type="text/javascript">
function POSEvent_deviceNetworkStatus(res) {
// 示例 res = { "code":0,"data":{"connectionStatus":"wifi"} }
var jsonRes = JSON.stringify(res);
if (jsonRes['code'] == 0) {
if (jsonRes['data']['connectionStatus'] == "wifi") {
// 处理结果
}
}
}
</script>
API参考文档
UI操作
以下是关于 UI 操作相关的 API。
openWebWindow
在当前页面弹出 Web 窗口,可以自定义窗口位置和大小。需要传入需要打开的 Web 页面链接。
- 入参
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
url | string | 是 | 需要打开的 web 页面链接 | |
style | number | 否 | 窗口样式枚举 + 0 :全屏+ 1 :自定义大小和位置的半窗,根据position来锚定位置和大小 | |
position | object | 否 | 窗口位置,style为1 时生效 | |
x | number | 否 | 横坐标,屏幕宽度比例 取值范围:0-1,默认0 | |
y | number | 否 | 纵坐标,屏幕高度比例 取值范围:0-1,默认0 | |
width | number | 否 | 窗口宽度,屏幕宽度比例 取值范围:0-1,默认1,为1时跟屏幕宽度一致 | |
height | number | 否 | 窗口高度,屏幕高度比例 取值范围:0-1,默认1,为1时跟屏幕高度一致 |
- 出参
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
code | number | 是 | 错误码 |
msg | string | 否 | 错误信息,code 非 0 时返回 |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 |
示例:
function openWebWindow() {
var url = "https://xxxxxxxx";
window.shoplineAppBridge.posapp('openWebWindow', {"url":url,"style":1,"position":{"x":0.1,"y":0.05,"width":0.8,"height":0.9}}).then((res) => {
var jsonRes = JSON.stringify(res);
});;
}
function openWebWindow() {
var url = "https://xxxxxxxx";
window.shoplineAppBridge.posapp('openWebWindow', {"url":url,"style":0}).then((res) => {
var jsonRes = JSON.stringify(res);
});;
}
closeWebWindow
关闭当前 Web 窗口。
- 入参:无
- 出参
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
code | number | 是 | 错误码 |
msg | string | 否 | 错误信息,code 非 0 时返回 |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 |
showToast
在当前 Web 窗口中间以固定的 Toast 形式显示需要提示的文本信息。
- 入参
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
text | string | 是 | 提示的文本内容 |
- 出参
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
code | number | 是 | 错误码 |
msg | string | 否 | 错误信息,code 非 0 时返回 |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 |
enablePullRefresh
设置当前 Web 窗口是否支持下拉刷新功能,不设置默认为不支持下拉刷新功能。
- 入参
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
enable | boolean | 是 | true :启用false :禁用 |
- 出参
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
code | number | 是 | 错误码 |
msg | string | 否 | 错误信息,code 非 0 时返回 |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 |
setBackMode
如果当前 Web 窗口包含导航栏,且导航栏有返回按钮,可以通过这个 API 设置当前 Web 窗口导航栏返回按钮行为模式。当前支持两种模式,一种是点击返回按钮直接关闭 Web 窗口,另一种是点击返回按钮返回 Web 窗口的上一级页面。不设置的话返回按钮默认为直接关闭 Web 视图页。
- 入参
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
mode | number | 是 | 模式枚举0 :直接关闭 Web 视图页1 :返回上一级页面 |
- 出参
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
code | number | 是 | 错误码 |
msg | string | 否 | 错误信息,code 非 0 时返回 |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 |
设备信息
getDeviceNetworkStatus
用于主动请求获取当前移动设备的网络状态。
- 入参:无
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | 错误信息,code 非 0 时返回 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object | 否 | code 为 0 的时候返回 | |
connectionStatus | string | 否 | 设备联网状态枚举 + wifi :无线网+ wwan :蜂窝网络+ unavailable :无网络连接 |
POSEvent_deviceNetworkStatus
用于监听设备的网络状态。当应用网络状态改变时,将会通过这个 API 通知给 Web 窗口页面。
- 入参:无
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | 错误信息,code 非 0 时返回 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object | 是 | code 为 0 的时候返回 | |
connectionStatus | string | 是 | 设备联网状态枚举 + wifi :无线网+ wwan :蜂窝网络+ unavailable :无网络连接 |
getDeviceInfo
用于获取当前设备的基本信息。
- 入参:无
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | 错误信息,code 非 0 时返回 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object | 否 | code 为 0 的时候返回 | |
deviceName | string | 否 | 设备名称 例子:iPhone 14 Pro、Sunmi T2 | |
deviceId | string | 否 | 设备id 例子:00:0C:29:01:98:27 | |
osVersion | string | 否 | 系统版本 例子:17.2.1 | |
os | string | 否 | 系统类型枚举: + Android + iOS | |
appVersion | string | 否 | 当前设备安装的SHOPLINE POS 应用的版本号 例子:2.15.0 |
getDeviceLanguage
用于获取当前 SHOPLINE POS 的语言信息。
- 入参:无
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | 错误信息,code 非 0 时返回 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object | 是 | code 为 0 的时候返回 | |
appLanguage | string | 是 | 应用当前显示语言枚举: + en :英语+ zh-Hans :简体中文+ zh-Hant :繁体中文+ ja :日语 |
POSEvent_deviceLanguage
用于监听语言信息变动。当 SHOPLINE POS 应用的语言信息改变时,将会通过这个 API 通知给 Web 窗口页面。你可以监听此通知获取语言信息来跟 SHOPLINE POS 应用的语言保持同步。
- 入参:无
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | 错误信息,code 非 0 时返回 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object | 是 | code 为 0 的时候返回 | |
appLanguage | string | 是 | SHOPLINE POS 应用当前显示语言枚举: + en :英语+ zh-Hans :简体中文+ zh-Hant :繁体中文+ ja :日语 |
POS信息
getPOSInfo
用于获取当前登录的 POS 账号、店铺、门店、员工的基础信息。
- 入参:无
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | 错误信息,code 非 0 时返回 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object | 否 | code 为 0 的时候返回 | |
storeId | string | 否 | 店铺id | |
offlineStoreId | string | 否 | 门店id | |
posStaffId | string | 否 | 当前员工在 POS 中的专属 id | |
currencyCode | string | 否 | 店铺的货币代码,遵循 ISO 4217 为每种货币定义了由三个字母组成的代码 | |
currentStaffUid | string | 否 | 当前员工的用户id | |
loginStaffUid | string | 否 | 当前登录的 POS 账号 id |
POSEvent_POSInfo
用于监听当前登录的 POS 账号、店铺、门店、员工的基础信息。当 SHOPLINE POS 切换门店或者切换员工时,将会通过这个 API 通知给 Web 窗口页面。
- 入参:无
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | 错误信息,code 非 0 时返回 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object | 否 | code 为 0 的时候返回 | |
storeId | string | 否 | 店铺 id | |
offlineStoreId | string | 否 | 门店 id | |
posStaffId | string | 否 | 当前员工在 POS 中的专属 id | |
uid | string | 否 | 当前登录的 POS 账号 id |
getUDBInfo
用于获取登录 POS 账号的基础信息。
- 入参:无
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | 错误信息,code 非 0 时返回 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object | 否 | code 为 0 的时候返回 | |
isLogin | boolean | 是 | 表示 SHOPLINE POS 是否登录。true : 已登录false :未登录默认值: false | |
uid | string | 否 | 当前登录的账号id | |
otp | string | 否 | POS 服务端接口请求凭证,后续如果需要直接请求 POS 服务端的接口,可以用到,有效期为 1天,但该凭证只能使用 1 次用于校验。 |
getCustomHeader
用于获取 POS 服务端网络请求的 Header 信息。如果后续需要请求 POS 服务端接口,则 HTTP 请求中需要带上以下 Header 信息。
- 入参:无
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | 错误信息,code 非 0 时返回 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object | 否 | code 为 0 的时候返回 | |
deviceInfo | string | 否 | json 格式的字符串,包含一些设备相关的信息 例如: "{"model":"iPad (9th generation)","brand":"Apple","os":"ios","deviceId":"xxxx","appVersion":"2.21.0","newDeviceId":"xxxx","osVersion":"15.4.1"}" | |
uid | string | 否 | 当前登录的账号 id | |
otp | string | 否 | POS 服务端接口请求凭证,后续如果需要直接请求 POS 服务端的接口,可以用到。 | |
lang | string | 否 | app 当前显示语言枚举: + en :英语+ zh-hans-cn :简体中文+ zh-hant-tw :繁体中文+ ja :日语 | |
ticket | string | 否 | json 格式的字符串,包含一些店铺相关的信息 例如: "{"posId":"xxxx","offlineStoreId":"xxxx","merchantId":"xxxx","posStaffId":"xxx","innerToken":"xxx","storeId":"xxx"}"' |
商品
getProducts
用于查询当前登录的门店下的商品 id 列表数据。
- 入参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
offlineStoreID | string | 是 | 请求查询的门店 id |
queryString | string | 否 | 商品搜索关键词 系统会一一匹配以下范围的内容: + 商品名称 + 商品 SKU + 商品条码 + 商品 SPU + 商品厂商 + 商品摘要 例子: 鞋子 |
sortType | string | 否 | 结果列表排序方式枚举: + RECENTLY_ADDED :创建时间近-远。默认+ RECENTLY_ADDED_ASCENDING :创建时间远-近+ ALPHABETICAL_A_TO_Z :商品名称A-Z+ ALPHABETICAL_Z_TO_A :商品名称Z-A |
pageSize | number | 是 | 每页返回的商品数量 取值范围:1 - 500 |
pageNum | number | 是 | 请求的页码,从第 1 页开始 取值范围:1 - 无限大 |
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 0 - 成功 | |
msg | string | 否 | 错误信息,code 非 0 时返回 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object | 否 | code 为 0 的时候返回 | |
productIds | string[] | 否 | 商品 id 数组 |
getProductsInfo
用于批量查询当前登录的门店下的商品详情数据。
- 入参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
productIds | string[] | 是 | 商品id数组,最大限制 500 个,建议搜索不超过 50 个。 |
offlineStoreID | string | 是 | 查询的门店id |
- 出参:
名称 | 二级 | 三级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|---|
code | number | 是 | 错误码 | ||
msg | string | 否 | 错误信息,code 非 0 时返回 | ||
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | ||
data | object[] | 否 | 商品信息数组,code 为 0 的时候返回 | ||
productId | string | 否 | 商品id | ||
skus | object[] | 是 | 商品 SKU 信息数组 | ||
skuId | string | 是 | SKU 的 id | ||
locationPrice | Int | 是 | 门店价格 | ||
serialNumber | string[] | 否 | 序列号数组 |
购物车
getCartInfo
用于获取 SHOPLINE POS 购物车的数据。
- 入参:无
- 出参:
此接口下,涉及到金额的数据字符串格式统一说明:为不带货币符号的价格字符串。
例如:"100.00"在以人民币为货币单位的店铺表示人民币100块
名称 | 二级 | 三级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|---|
code | number | 是 | 错误码 | ||
msg | string | 否 | 错误信息,code 非 0 时返回 | ||
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | ||
data | object | 否 | code 为 0 的时候返回 | ||
lineItems | object[] | 否 | 购物车商品行信息 | ||
productId | string | 是 | 商品 id | ||
skuId | string | 是 | SKU 的 id | ||
finalPrice | string | 是 | 成交单价,不带货币符号的价格字符串。 例如:"100.00"在以人民币为货币单位的店铺表示人民币 100 块 | ||
quantity | number | 是 | 加购数量 | ||
finalLinePrice | string | 是 | 成交总价 | ||
customer | object | 否 | 客户信息 | ||
uid | string | 否 | 客户 id | ||
string | 否 | 邮箱 | |||
phone | string | 否 | 手机号 | ||
valuation | object | 否 | 计价信息 | ||
subtotal | string | 是 | 小计金额 | ||
totalDiscounts | string | 否 | 优惠金额 | ||
deductMemberPointAmount | string | 否 | 积分抵扣金额 | ||
totalTax | string | 否 | 总消费税金额 | ||
totalDuty | string | 否 | 关税金额 | ||
taxesIncluded | bool | 否 | 商品价格是否包含税费(关税+消费税) + true :商品价格finalLinePrice包含税费+ false :商品价格finalLinePrice不包含税费 | ||
totalTip | string | 否 | 小费金额 | ||
adjustPrice | string | 否 | 被四舍五入掉的金额 | ||
grandTotal | string | 是 | 总计金额 | ||
note | string | 否 | 购物车的备注信息 | ||
localDiscount | object | 否 | 本地折扣信息 | ||
title | string | 否 | 折扣标题 | ||
amount | string | 否 | 折扣金额 | ||
percentage | string | 否 | 百分比折扣 取值范围:0-1 例子:0.25 | ||
codeDiscounts | string[] | 否 | 购物车添加的折扣码数组 |
POSEvent_CartInfo
用于监听当前的购物车数据变动。当购物车的在线计价结果更新时,将会通过这个 API 通知给 Web 窗口页面。
- 触发条件:在线计价更新
- 入参:无
- 出参:
名称 | 二级 | 三级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|---|
code | number | 是 | 错误码 | ||
msg | string | 否 | 错误信息,code 非 0 时返回 | ||
timeStamp | number | 是 | 接口调用返回时间戳:13 位毫秒级时间戳 | ||
data | object | 否 | code 为 0 的时候返回 | ||
lineItems | object[] | 否 | 购物车商品行信息 | ||
productId | string | 是 | 商品id | ||
skuId | string | 是 | SKU的id | ||
finalPrice | string | 是 | 成交单价,不带货币符号的价格字符串。 例如:"100.00"在以人民币为货币单位的店铺表示人民币 100 块 | ||
quantity | number | 是 | 加购数量 | ||
finalLinePrice | string | 是 | 成交总价 | ||
customer | object | 否 | 客户信息 | ||
uid | string | 否 | 客户 id | ||
string | 否 | 邮箱 | |||
phone | string | 否 | 手机号 | ||
valuation | object | 否 | 计价信息 | ||
subtotal | string | 是 | 小计金额 | ||
totalDiscounts | string | 否 | 优惠金额 | ||
deductMemberPointAmount | string | 否 | 积分抵扣金额 | ||
totalTax | string | 否 | 总消费税金额 | ||
totalDuty | string | 否 | 关税金额 | ||
taxesIncluded | bool | 否 | 商品价格是否包含税费(关税+消费税) + true :商品价格finalLinePrice包含税费+ false :商品价格finalLinePrice不包含税费 | ||
totalTip | string | 否 | 小费金额 | ||
adjustPrice | string | 否 | 被四舍五入掉的金额 | ||
grandTotal | string | 是 | 总计金额 | ||
note | string | 否 | 购物车的备注信息 | ||
localDiscount | object | 否 | 本地折扣信息 | ||
title | string | 否 | 折扣标题 | ||
amount | string | 否 | 折扣金额,和 percentage 两者只会返回一个。 | ||
percentage | string | 否 | 百分比折扣,和 amount 两者只会返回一个。取值范围:0-1 例子:0.25 | ||
codeDiscounts | string[] | 否 | 购物车添加的折扣码数组 |
operateCartDiscountCode
用于给购物车添加或删除折扣码。
- 入参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
operateAction | string | 是 | 操作枚举: + Add :添加折扣码+ Clear :删除折扣码 |
discountCode | string | 是 | 折扣码 例子:ETIFRN8ODO8U |
- 出参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
code | number | 是 | 错误码 |
msg | string | 是 | 错误信息,code非0时返回 |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 |
operateCartDiscount
用于给购物车添加或删除订单或商品维度的折扣。支持百分比折扣和金额折扣。
- 入参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
operateAction | string | 是 | 操作枚举 + Add :添加折扣+ Clear :删除折扣 |
discountTitle | string | 否 | 折扣标题 |
discountType | string | 否 | 折扣类型枚举: + Percent :百分比折扣+ Amount :金额折扣 |
discountAmount | string | 否 | 折扣信息,货币单位为店铺设置的币种 折扣类型为百分比折扣时传:0-1字符串 折扣类型为金额折扣时传折扣金额:"10.22" |
discountDimension | string | 是 | 折扣维度枚举: + Product :商品维度折扣+ Order :订单维度折扣 |
skuId | string | 否 | SKU的id 当折扣维度为商品时,需要传此字段 |
- 出参
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
code | number | 是 | 错误码 |
msg | string | 是 | 错误信息,code 非 0 时返回 |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 |
operateCartProduct
用于给购物车添加或删除商品信息。
- 入参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
operateAction | string | 是 | 操作类型枚举 + Add :添加商品+ Clear :删除商品 |
skuId | string | 是 | SKU 的 id |
serialCodes | string[] | 否 | SKU 的序列号数组 |
quantity | number | 否 | 加购或删除数量 取值范围:1-999 |
- 出参
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
code | number | 是 | 错误码 |
msg | string | 是 | 错误信息,code 非 0 时返回 |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 |
operateCartCustomer
用于给购物车添加或删除客户信息。
- 入参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
operateAction | string | 是 | 操作类型枚举 + Add :添加客户+ Clear :删除客户 |
customerId | string | 否 | 客户id 当操作类型为 Add 的时候必传当操作类型为 Clear 的时候不用传,由于购物车只可能存在一个客户,会直接删除购物车已存在的客户信息, |
- 出参
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
code | number | 是 | 错误码 |
msg | string | 是 | 错误信息,code 非 0 时返回 |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 |
addCustomSales
用于给购物车添加自定义商品信息。
- 入参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
title | string | 否 | 自定义销售商品标题 |
price | string | 是 | 加购金额,不带货币符号的价格字符串。 例如:"100.00"在以人民币为货币单位的店铺表示人民币100块 |
- 出参
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
code | number | 是 | 错误码 |
msg | string | 是 | 错误信息,code 非 0 时返回 |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 |
订单
getCurrentOrderId
场景1: 购物车完成支付,在结帐完成页,会获该完成支付的 orderId。
场景2: 浏览历史订单详情,会获取到正常浏览订单的 orderId。
- 入参:无
- 出参
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | code 描述 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object | 否 | code 为 0 的时候返回 | |
orderId | string | 否 | 订单 id |
POSEvent_orderCompleted
用于监听创建订单成功后返回的订单 id。当创建订单成功时,将会通过这个 API 通知给 Web 窗口页面。
- 入参:无
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | code 描述 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object | 是 | code 为 0 的时候返回 | |
orderId | string | 是 | 订单 id |
硬件管理
getCurrentHardwareInfo
用于获取 SHOPLINE POS 应用已连接的第三方的硬件设备信息。
- 入参:无
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | 错误信息,code 非 0 时返回 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object[] | 否 | code 为 0 的时候返回 | |
hardwareType | string | 否 | 硬件类型枚举: + receiptPrinter :收据打印机+ labelPrinter :标签打印机 | |
hardwareBrand | string | 否 | 硬件品牌枚举: + star + sunmi + epson + feie + socket + brother + zebra + unknown 当不属于以上品牌的硬件设备,则统一返回 unknown | |
name | string | 否 | 设备名称 | |
connectionType | string | 否 | 硬件使用的连接方式枚举: + bluetooth :蓝牙连接+ wifi :WiFi连接+ LAN :局域网连接+ usb :usb连接 | |
status | string | 否 | 硬件连接状态枚举: + connected :已连接+ unconnected :未连接 |
POSEvent_currentHardware
用于监听当前已连接的硬件设备信息。当连接的硬件设备有增删时,将会通过这个 API 通知给 Web 窗口页面。
- 入参:无
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | 错误信息,code 非 0 时返回 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object[] | 否 | code 为 0 的时候返回 | |
hardwareType | string | 否 | 硬件类型枚举: + receiptPrinter :收据打印机+ labelPrinter :标签打印机 | |
hardwareBrand | string | 否 | 硬件品牌枚举: + star + sunmi + epson + feie + socket + brother + zebra + unknown 当不属于以上品牌的硬件设备,则统一返回 unknown | |
name | string | 否 | 设备名称 | |
connectionType | string | 否 | 硬件使用的连接方式枚举: + bluetooth :蓝牙连接+ wifi :WiFi连接+ LAN :局域网连接+ usb :usb连接 | |
status | string | 否 | 硬件连接状态: + connected :已连接+ unconnected :未连接 |
openAddHardwareView
用于跳转设备连接的界面,此API会在当前窗口新推出一个连接第三方打印机硬件设备的界面,用于后续连接操作。例如:收据打印机的连接界面。
入参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
hardwareType | String | 是 | 硬件类型枚举: + receiptPrinter :收据打印机+ labelPrinter :标签打印机 |
出参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
code | number | 是 | 错误码 |
msg | string | 否 | 错误信息,code 非 0 时返回 |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 |
sendPrinterCommand
用于发送打印信息,支持打印 base64 编码格式图片信息。
入参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
printInfo | String | 是 | 只支持打印的图片数据:base64 编码格式数据 |
printQuantity | number | 是 | 打印数量 取值范围:1-999 |
出参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
code | number | 是 | 错误码 |
msg | string | 否 | 错误信息,code 非 0 时返回 |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 |
openCameraScan
用于打开移动设备摄像头扫描条码功能,支持线性条码和二维码扫描。当扫描成功会异步回调扫到的条码字符串信息。
- 入参:无
- 出参:
名称 | 二级 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|---|
code | number | 是 | 错误码 | |
msg | string | 否 | 错误信息,code 非 0 时返回 | |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 | |
data | object | 否 | code 为 0 的时候返回 | |
code | string | 否 | 扫到的条码数据 |
openSharePanel
用于打开分享面板功能。
入参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
text | string | 否 | 分享文本 |
imageUrl | string | 否 | 分享图片 url |
imageFile | string | 否 | 分享图片文件,base64 |
file | string | 否 | 分享文件,base64,仅支持 pdf |
fileUrl | string | 否 | 分享文件 url,仅支持pdf |
出参:
名称 | 类型 | 是否必须 | 内容含义&备注 |
---|---|---|---|
code | number | 是 | 错误码 |
msg | string | 否 | 错误信息,code 非0时返回 |
timeStamp | number | 是 | 接口调用返回时间戳:13位毫秒级时间戳 |
API错误码
接口调用后返回的错误码 code 不为0,都为接口调用失败。开发者可以根据具体返回的错误码在以下表中查看错误原因。
成功码
code | 备注 |
---|---|
0 | 接口调用成功 |
通用错误码
code | 备注 |
---|---|
1 | 接口调用失败 |
1001 | URL 格式错误 |
1002 | 缺少参数 |
1003 | 参数类型错误 |
1004 | 当前用户没有权限调用 API,可检查当前登录的员工是否有权限操作该行为。 |
商品相关错误码
code | 备注 |
---|---|
3001 | 根据 SkuId 找不到对应商品 |
购物车相关错误码
code | 备注 |
---|---|
6001 | 该折扣码不可使用 |
6002 | 该折扣码已被使用 |
6003 | 该商品不存在 |
6004 | 该客户不存在 |
6005 | 当前购物车为空 |
6006 | 购物车计价失败 |
6007 | 该折扣码使用失败 |
6008 | 购物车已使用离线计价,不可操作购物车 |
6009 | 购物车商品数量已达上限 |
6010 | 当前正在退款,不可操作购物车 |
硬件相关错误码
code | 备注 |
---|---|
5001 | 硬件类型不支持 |
5002 | 未连接打印机 |
5003 | 图片解析失败 |
5004 | 图片下载失败 |
5005 | 文件解析失败 |
5006 | 文件下载失败 |
5007 | 获取摄像头权限失败 |
Error loading component.