扩展 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 | 获取摄像头权限失败 |