格物 开放 API结算与下单

REST API · 接口参考

REST API 参考 · 员工福利购物 / 企业采购

结算与下单

结算与下单都收内联商品与收货人,购物车与地址簿可以用平台的,也可以自己做。下单固定传 payWith: "auto",付款方式由平台按企业配置(全额扣员工额度,或员工在企业购收银台付现金:支付宝 / 微信 / 对公);扣款与建单在同一事务里,idempotencyKey 同键重试不会重复建单。要员工付现金时,结算预览返回 cash(金额与可选的支付方式 payTypes)。

#行政区划逐级查

GET/v1/divisions

行政区划逐级查(省 → 市 → 区县 → 乡镇街道):收货地址的 province / city / area / street 用这里选出的名称

鉴权appKey

出现在福利 / 采购 · 额度与下单消费者 · 用户与地址

从 parent=1(全国)开始逐级下钻:省 → 市 → 区县(divisionCode)→ 乡镇街道(townDivisionCode)。与福利GO 小程序、网页商城的地址选择同一份数据。老路径 /v1/lm/divisions 仍可用,返回相同。企业购下单的 receiver.province / city / area 用这里选出的名称,乡镇街道名称放进 receiver.street;也可以把带区划码的地址存进地址簿,下单传 addressId。

查询参数

字段类型必填说明
parentstring否上一级区划码。默认 "1"

返回字段

字段类型说明
okboolean
itemsobject[]
items[].codestring
items[].namestring
items[].parentCodestring
items[].hasChildrenboolean
items[].levelinteger2 省 / 3 市 / 4 区县 / 5 乡镇街道

调用示例

1curl -X GET "https://api.gowu.net/v1/divisions?parent=1" \2  -H "x-app-key: $GOWU_APP_KEY"

返回示例

1{2  "ok": true,3  "items": [4    {5      "code": "string",6      "name": "string",7      "parentCode": "string",8      "hasChildren": true,9      "level": 010    }11  ]12}

#结算预览:权威价、运费、库存、额度是否足够

POST/v1/enterprise/checkout/render

鉴权用户态

出现在福利 / 采购 · 额度与下单

权威价、库存与可售状态;员工已绑定企业时返回 points(额度是否足够)。不需要收货地址。

请求体application/json

字段类型必填说明
itemsobject[]是
items[].productIdstring是商品接口返回的 id
items[].skuIdstring否商品详情 skus[].skuId;skuId 为 null 的商品不要传
items[].qtyinteger否默认 1。≥ 1
devicestring否(员工付现金 · 网页 / H5)场景,决定 cash.payTypes 里有没有微信;缺省按 appKey 登记的端。可选值:pc / mobile
返回字段30 个,点击展开
字段类型说明
okboolean
renderobject
render.totalFeenumber
render.postFeenumber
render.payablenumber
render.linesobject[]
itemsobject[]
items[].productIdstring
items[].titlestring
items[].imageUrlstring
items[].skuIdstring
items[].skuTextstring
items[].pricenumber
items[].qtyinteger
items[].lineTotalnumber
availabilityOkboolean
issuesobject[]
issues[].productIdstring
issues[].titlestring
issues[].reasonstring可选值:OFF_SHELF / OUT_OF_STOCK / PRICE_CHANGED
issues[].detailstring
pointsobject员工已绑定企业时返回
points.requirednumber这单需要的额度(100 = 1 元)
points.balancenumber
points.sufficientboolean
points.canUsePointsboolean
cashobject这单要员工付现金时返回(企业配置为全额现金或混合,且当前端已开通)。全额现金时 cent 就是应付总额;混合时 points.required 是企业承担的那部分
cash.centinteger员工自付的现金(分)
cash.ratioBpinteger企业承担比例(万分比);0 = 全额由员工付。混合支付暂未开放,目前恒为 0
cash.payTypesstring[]这个 appKey 在当前场景下可用的现金支付方式(支付宝 / 微信 / 对公),按它在你的下单页展示,员工选中的作为下单的 payType 传回。可选值:ALIPAY / WECHAT_H5 / DGZF

错误

  • 400 EMPTY / PRODUCT_NOT_FOUND / RENDER_FAILED / ORG_EGP_NOT_READY(企业的交易尚未开通)

调用示例

1curl -X POST "https://api.gowu.net/v1/enterprise/checkout/render" \2  -H "x-app-key: $GOWU_APP_KEY" \3  -H "x-timestamp: $TS" \4  -H "x-nonce: $NONCE" \5  -H "x-sign-version: 2" \6  -H "x-signature: $SIG" \7  -H "x-open-user: u-001" \8  -H "content-type: application/json" \9  -d '{"items":[{"productId":"ep_800000000001","skuId":"…","qty":2}]}'

返回示例

1{2  "ok": true,3  "render": {4    "totalFee": 0,5    "postFee": 0,6    "payable": 0,7    "lines": [8      null9    ]10  },11  "items": [12    {13      "productId": "string",14      "title": "string",15      "imageUrl": "string",16      "skuId": "string",17      "skuText": "string",18      "price": 0,19      "qty": 0,20      "lineTotal": 021    }22  ],23  "availabilityOk": true,24  "issues": [25    {26      "productId": "string",27      "title": "string",28      "reason": "OFF_SHELF",29      "detail": "string"30    }31  ],32  "points": {33    "required": 0,34    "balance": 0,35    "sufficient": true,36    "canUsePoints": true37  },38  "cash": {39    "cent": 0,40    "ratioBp": 0,41    "payTypes": [42      "ALIPAY"43    ]44  }45}

#下单

POST/v1/enterprise/orders

下单(payWith: auto,付款方式按企业配置;要员工付现金时返回付款链接 launchUrl)

鉴权用户态

出现在福利 / 采购 · 额度与下单

`payWith` 固定传 `"auto"`:付款方式完全由平台按企业配置决定——全额扣员工额度、全额由员工付现金,还是按比例混合(混合暂未开放,开放后无需改接入);该 appKey 没开通员工付现金时一律扣额度。扣额度与建单在同一事务里。 要员工付现金时响应带 launchUrl(24 小时有效)——支付方式(payType)由你在下单页让员工选(可选项见结算预览的 cash.payTypes),会产生现金时必填;把员工带到 launchUrl 即进入付款(对公为转账信息)。发起后默认沿用这种方式,可在继续支付时更换。付完平台核实到账、扣额度、结清订单(付款页由企业购提供,不一定跳回你的页面;以订单详情的 mixedPay.status 与 order.status 推送为准)。员工付现金需要该 appKey 已开通(找平台在访问管理里开)。过期或中途关闭了用 POST /v1/enterprise/orders/{bizOrderId} action=resume-pay 重新取链接;结果以订单详情的 mixedPay.status 与 order.status 推送为准。 收货地址 receiver 与 addressId(地址簿)二选一,同时传以 addressId 为准。 幂等:强烈建议传 idempotencyKey,响应丢失时用同一个 key 重试,返回同一张单;不传时服务端按内容生成,只在 2 分钟内去重。

请求体application/json

字段类型必填说明
itemsobject[]是
items[].productIdstring是商品接口返回的 id
items[].skuIdstring否商品详情 skus[].skuId;skuId 为 null 的商品不要传
items[].qtyinteger否默认 1。≥ 1
receiverobject否收货人。省、市、区用名称(不是区划码),全部必填;名称请用 GET /v1/divisions 逐级选(乡镇街道放 street),叫法不一致上游会以 321000 地址没有找到 拒单
receiver.namestring是
receiver.mobilestring是
receiver.provincestring是省名称,取自 /v1/divisions。例:浙江省
receiver.citystring是市名称,取自 /v1/divisions。例:杭州市
receiver.areastring是区 / 县名称,取自 /v1/divisions。例:西湖区
receiver.streetstring否乡镇街道名称(/v1/divisions 第四级),建议传:会拼在详细地址前面,地址更容易被上游认出
receiver.addressDetailstring是
addressIdstring否
payWithstring否固定传 auto:付款方式由平台按企业配置——全额扣员工额度、全额由员工在企业购收银台付现金,或两者按比例混合(混合暂未开放);appKey 没开通员工付现金时扣额度。可选值:auto
payTypestring否(员工付现金时)现金的支付方式:支付宝 / 微信 / 对公。这单会产生现金时必填(不传 400 PAY_TYPE_REQUIRED,响应带可选的 payTypes)。请在你的下单页按结算预览返回的 cash.payTypes 让员工选。必须在该 appKey 允许的范围内(平台在访问管理配置;没配时按登记的端:支付宝小程序为支付宝 + 对公,微信小程序为微信 + 对公,网页为全部、电脑上不含微信),否则 400 PAY_TYPE_NOT_ALLOWED。可选值:ALIPAY / WECHAT_H5 / DGZF
returnUrlstring否(员工付现金 · 网页 / H5)收银台与结果页的「返回」地址:须 https,且是该 appKey 登记的回调地址的域名或其子域。会追加 bizOrderId 与 result(success / pending / failed / cancel,只是提示)。现金在企业购收银台付,付完不一定跳回这里——以订单查询或 order.status 推送为准
devicestring否(员工付现金 · 网页 / H5)收银台形态;缺省按 appKey 登记的端。可选值:pc / mobile
idempotencyKeystring否建议用你系统的订单号
remarkstring否
返回字段35 个,点击展开
字段类型说明
okboolean
bizOrderIdstring
orderobject
order.bizOrderIdstring订单号
order.outOrderIdstring
order.unifiedStatusstring归一化订单状态,按它做业务判断。可选值:CREATED / PAID / SHIPPED / DELIVERED / COMPLETED / CANCELED / REFUNDING / REFUNDED / REFUND_REJECTED
order.unifiedStatusLabelstring
order.displayStatusstring
order.totalFeenumber
order.postFeenumber
order.payablenumber
order.itemsobject[]
order.items[].productIdstring
order.items[].titlestring
order.items[].imageUrlstring
order.items[].skuIdstring
order.items[].skuTextstring
order.items[].pricenumber
order.items[].qtyinteger
order.items[].lineTotalnumber
order.subOrdersobject[]子订单;售后按子订单发起
order.subOrders[].bizOrderIdstring子订单号
order.subOrders[].itemIdstring
order.subOrders[].skuIdstring
order.subOrders[].itemNamestring
order.subOrders[].itemPricenumber
order.subOrders[].buyAmountnumber
order.receiverobject
order.remarkstring
order.createdAtstring
order.updatedAtstring
pointsChargednumber扣除的额度(100 = 1 元)。要员工付现金的单付完才扣,下单时不返回
hybridboolean这单要员工付现金(字段名沿用旧称)
cashCentinteger员工要付的现金(分)
launchUrlstring付款链接(企业购收银台入口),24 小时有效

错误

  • 400 EMPTY / BAD_RECEIVER / ADDRESS_NOT_FOUND / PRODUCT_NOT_FOUND / UNAVAILABLE / INSUFFICIENT_POINTS / POINTS_NOT_BOUND / ORG_NOT_ACTIVE / MEMBER_NOT_ACTIVE / ORG_EGP_NOT_READY / IN_PROGRESS(同 key 正在处理)/ CREATE_FAILED / CREATE_PENDING;员工付现金:BAD_RETURN_URL / PAY_TYPE_REQUIRED(会产生现金但没传 payType,响应带 payTypes)/ PAY_TYPE_NOT_ALLOWED(payType 不在该 appKey 的范围内)等

调用示例

1curl -X POST "https://api.gowu.net/v1/enterprise/orders" \2  -H "x-app-key: $GOWU_APP_KEY" \3  -H "x-timestamp: $TS" \4  -H "x-nonce: $NONCE" \5  -H "x-sign-version: 2" \6  -H "x-signature: $SIG" \7  -H "x-open-user: u-001" \8  -H "content-type: application/json" \9  -d '{"items":[{"productId":"ep_800000000001","skuId":"…","qty":2}],"receiver":{"name":"张三","mobile":"138…","province":"浙江省","city":"杭州市","area":"西湖区","addressDetail":"…"},"payWith":"auto","idempotencyKey":"your-order-20260924-0001"}'

返回示例

1{2  "ok": true,3  "bizOrderId": "string",4  "order": {5    "bizOrderId": "string",6    "outOrderId": "string",7    "unifiedStatus": "CREATED",8    "unifiedStatusLabel": "string",9    "displayStatus": "string",10    "totalFee": 0,11    "postFee": 0,12    "payable": 0,13    "items": [14      {15        "productId": "string",16        "title": "string",17        "imageUrl": "string",18        "skuId": "string",19        "skuText": "string",20        "price": 0,21        "qty": 0,22        "lineTotal": 023      }24    ],25    "subOrders": [26      {27        "bizOrderId": "string",28        "itemId": "string",29        "skuId": "string",30        "itemName": "string",31        "itemPrice": 0,32        "buyAmount": 033      }34    ],35    "receiver": null,36    "remark": "string",37    "createdAt": "string",38    "updatedAt": "string"39  },40  "pointsCharged": 0,41  "hybrid": true,42  "cashCent": 0,43  "launchUrl": "string"44}

#订单列表

GET/v1/enterprise/orders

鉴权用户态

当前员工的订单,新的在前。要员工付现金的订单带 mixedPay 摘要(不含收银台链接,继续支付请进详情或调 resume-pay)。

查询参数

字段类型必填说明
limitinteger否默认 50。≥ 1,≤ 200
返回字段29 个,点击展开
字段类型说明
itemsobject[]
items[].bizOrderIdstring订单号
items[].outOrderIdstring
items[].unifiedStatusstring归一化订单状态,按它做业务判断。可选值:CREATED / PAID / SHIPPED / DELIVERED / COMPLETED / CANCELED / REFUNDING / REFUNDED / REFUND_REJECTED
items[].unifiedStatusLabelstring
items[].displayStatusstring
items[].totalFeenumber
items[].postFeenumber
items[].payablenumber
items[].itemsobject[]
items[].items[].productIdstring
items[].items[].titlestring
items[].items[].imageUrlstring
items[].items[].skuIdstring
items[].items[].skuTextstring
items[].items[].pricenumber
items[].items[].qtyinteger
items[].items[].lineTotalnumber
items[].subOrdersobject[]子订单;售后按子订单发起
items[].subOrders[].bizOrderIdstring子订单号
items[].subOrders[].itemIdstring
items[].subOrders[].skuIdstring
items[].subOrders[].itemNamestring
items[].subOrders[].itemPricenumber
items[].subOrders[].buyAmountnumber
items[].receiverobject
items[].remarkstring
items[].createdAtstring
items[].updatedAtstring

调用示例

1curl -X GET "https://api.gowu.net/v1/enterprise/orders" \2  -H "x-app-key: $GOWU_APP_KEY" \3  -H "x-timestamp: $TS" \4  -H "x-nonce: $NONCE" \5  -H "x-sign-version: 2" \6  -H "x-signature: $SIG" \7  -H "x-open-user: u-001"

返回示例

1{2  "items": [3    {4      "bizOrderId": "string",5      "outOrderId": "string",6      "unifiedStatus": "CREATED",7      "unifiedStatusLabel": "string",8      "displayStatus": "string",9      "totalFee": 0,10      "postFee": 0,11      "payable": 0,12      "items": [13        {}14      ],15      "subOrders": [16        {}17      ],18      "receiver": null,19      "remark": "string",20      "createdAt": "string",21      "updatedAt": "string"22    }23  ]24}

#订单详情

GETPOST/v1/enterprise/orders/{bizOrderId}

订单详情(要员工付现金的单带 mixedPay)/ 确认收货、取消、继续支付(action=resume-pay)

鉴权用户态

出现在福利 / 采购 · 额度与下单

GET

订单详情

要员工付现金的订单带 mixedPay;还没付完时给出 mixedPay.launchUrl。可用 returnUrl / device 覆盖下单时的设置。

路径参数

字段类型必填说明
bizOrderIdstring是

查询参数

字段类型必填说明
returnUrlstring否(员工付现金 · 网页 / H5)收银台与结果页的「返回」地址:须 https,且是该 appKey 登记的回调地址的域名或其子域。会追加 bizOrderId 与 result(success / pending / failed / cancel,只是提示)。现金在企业购收银台付,付完不一定跳回这里——以订单查询或 order.status 推送为准
devicestring否(员工付现金 · 网页 / H5)收银台形态;缺省按 appKey 登记的端。可选值:pc / mobile
返回字段33 个,点击展开
字段类型说明
bizOrderIdstring订单号
outOrderIdstring
unifiedStatusstring归一化订单状态,按它做业务判断。可选值:CREATED / PAID / SHIPPED / DELIVERED / COMPLETED / CANCELED / REFUNDING / REFUNDED / REFUND_REJECTED
unifiedStatusLabelstring
displayStatusstring
totalFeenumber
postFeenumber
payablenumber
itemsobject[]
items[].productIdstring
items[].titlestring
items[].imageUrlstring
items[].skuIdstring
items[].skuTextstring
items[].pricenumber
items[].qtyinteger
items[].lineTotalnumber
subOrdersobject[]子订单;售后按子订单发起
subOrders[].bizOrderIdstring子订单号
subOrders[].itemIdstring
subOrders[].skuIdstring
subOrders[].itemNamestring
subOrders[].itemPricenumber
subOrders[].buyAmountnumber
receiverobject
remarkstring
createdAtstring
updatedAtstring
mixedPayobject员工付现金的状态(只有要员工付现金的订单才有,字段名沿用旧称)。pending = 现金还没付;paid = 现金已到账、正在结清;confirmed = 已付清;failed = 订单已关(已付的现金原路退回)
mixedPay.statusstring可选值:pending / paid / confirmed / failed
mixedPay.cashCentinteger员工自付的现金(分)
mixedPay.pointsCentinteger企业承担的额度(100 = 1 元)
mixedPay.launchUrlstring(仅详情)收银台链接,24 小时有效;还没付完时给出

错误

  • 404 资源不存在,或不归属你的 appKey / 当前用户

POST

取消 / 确认收货 / 继续支付

action 放在 query 或 body:cancel 取消(已发货不能取消)、receive 确认收货、resume-pay 继续付现金(重新取付款链接)。失败返回 400 { ok: false, message }。 resume-pay:现金已付完的直接结清,返回 state: "done";还没付的返回 state: "need_pay" 与新的 launchUrl(同一张单,不会重复收钱)。可带 returnUrl / device / payType(已发起过的单沿用原支付方式,传别的不生效)。

路径参数

字段类型必填说明
bizOrderIdstring是

查询参数

字段类型必填说明
actionstring否可选值:cancel / receive / resume-pay

请求体application/json

字段类型必填说明
actionstring否可选值:cancel / receive / resume-pay
payTypestring否resume-pay:现金支付方式,须在 appKey 允许的范围内(同下单接口)。还没发起过付款的单必填(不传 400 PAY_TYPE_REQUIRED);已发起过的不传就沿用原方式。可选值:ALIPAY / WECHAT_H5 / DGZF
returnUrlstring否(员工付现金 · 网页 / H5)收银台与结果页的「返回」地址:须 https,且是该 appKey 登记的回调地址的域名或其子域。会追加 bizOrderId 与 result(success / pending / failed / cancel,只是提示)。现金在企业购收银台付,付完不一定跳回这里——以订单查询或 order.status 推送为准
devicestring否(员工付现金 · 网页 / H5)收银台形态;缺省按 appKey 登记的端。可选值:pc / mobile

返回字段

字段类型说明
okboolean
messagestring
statestringresume-pay 才有。可选值:done / need_pay
launchUrlstringresume-pay 且 need_pay 时给出,24 小时有效
cashCentinteger

错误

  • 400 操作不允许,见 message;resume-pay 还可能是 BAD_RETURN_URL / PAY_TYPE_NOT_ALLOWED

调用示例

1curl -X GET "https://api.gowu.net/v1/enterprise/orders/{bizOrderId}" \2  -H "x-app-key: $GOWU_APP_KEY" \3  -H "x-timestamp: $TS" \4  -H "x-nonce: $NONCE" \5  -H "x-sign-version: 2" \6  -H "x-signature: $SIG" \7  -H "x-open-user: u-001"

返回示例

1{2  "bizOrderId": "string",3  "outOrderId": "string",4  "unifiedStatus": "CREATED",5  "unifiedStatusLabel": "string",6  "displayStatus": "string",7  "totalFee": 0,8  "postFee": 0,9  "payable": 0,10  "items": [11    {12      "productId": "string",13      "title": "string",14      "imageUrl": "string",15      "skuId": "string",16      "skuText": "string",17      "price": 0,18      "qty": 0,19      "lineTotal": 020    }21  ],22  "subOrders": [23    {24      "bizOrderId": "string",25      "itemId": "string",26      "skuId": "string",27      "itemName": "string",28      "itemPrice": 0,29      "buyAmount": 030    }31  ],32  "receiver": null,33  "remark": "string",34  "createdAt": "string",35  "updatedAt": "string",36  "mixedPay": {37    "status": "pending",38    "cashCent": 0,39    "pointsCent": 0,40    "launchUrl": "string"41  }42}

#物流轨迹

GET/v1/enterprise/orders/{bizOrderId}/logistics

鉴权用户态

一单可能分多个包裹。未发货时 shipped: false、packages 为空。

路径参数

字段类型必填说明
bizOrderIdstring是
返回字段17 个,点击展开
字段类型说明
bizOrderIdstring
shippedboolean
packagesobject[]
packages[].packageIdstring
packages[].logisticsCompanystring
packages[].invoiceNostring运单号
packages[].statusDescstring
packages[].consignTimestring
packages[].deliveredTimestring
packages[].itemsobject[]
packages[].items[].itemNamestring
packages[].items[].skuNamestring
packages[].items[].quantityinteger
packages[].tracksobject[]
packages[].tracks[].timestring
packages[].tracks[].descstring
packages[].tracks[].citystring

错误

  • 400 UPSTREAM:上游查询失败
  • 404 资源不存在,或不归属你的 appKey / 当前用户

调用示例

1curl -X GET "https://api.gowu.net/v1/enterprise/orders/{bizOrderId}/logistics" \2  -H "x-app-key: $GOWU_APP_KEY" \3  -H "x-timestamp: $TS" \4  -H "x-nonce: $NONCE" \5  -H "x-sign-version: 2" \6  -H "x-signature: $SIG" \7  -H "x-open-user: u-001"

返回示例

1{2  "bizOrderId": "string",3  "shipped": true,4  "packages": [5    {6      "packageId": "string",7      "logisticsCompany": "string",8      "invoiceNo": "string",9      "statusDesc": "string",10      "consignTime": "string",11      "deliveredTime": "string",12      "items": [13        {}14      ],15      "tracks": [16        {}17      ]18    }19  ]20}

#在路上的订单与最新物流节点

GET/v1/enterprise/orders/in-transit

在路上的订单与最新物流节点(最近 3 单)

鉴权用户态可选

「我的」页「N 个订单正在路上」:count 为在途订单数(在最近 50 单里统计),items 只给最近 3 单及各自最新物流节点(节点缓存 60 秒)。

返回字段

字段类型说明
countinteger
itemsobject[]最多 3 项
items[].bizOrderIdstring
items[].unifiedStatusstring
items[].unifiedStatusLabelstring
items[].titlestring第一件商品的标题
items[].imageUrlstring
items[].latestobject最新物流节点;查不到为 null。可能为 null
items[].latest.descstring
items[].latest.timestring

调用示例

1curl -X GET "https://api.gowu.net/v1/enterprise/orders/in-transit" \2  -H "x-app-key: $GOWU_APP_KEY" \3  -H "x-timestamp: $TS" \4  -H "x-nonce: $NONCE" \5  -H "x-sign-version: 2" \6  -H "x-signature: $SIG" \7  -H "x-open-user: u-001"

返回示例

1{2  "count": 0,3  "items": [4    {5      "bizOrderId": "string",6      "unifiedStatus": "string",7      "unifiedStatusLabel": "string",8      "title": "string",9      "imageUrl": "string",10      "latest": {11        "desc": "string",12        "time": "string"13      }14    }15  ]16}

#购物车

GETDELETE/v1/enterprise/cart

购物车(含合计与额度是否够)/ 清空

鉴权用户态可选

GET

购物车

可选。服务端购物车,按员工保存、换设备不丢。合计只统计还能买的行。员工已绑定企业时带 points:这车需要多少额度、够不够(企业为 active 且余额足够才为 true)。

返回字段18 个,点击展开
字段类型说明
itemsobject[]
items[].productIdstring
items[].externalItemIdstring
items[].titlestring
items[].imageUrlstring
items[].skuIdstring
items[].skuTextstring规格文案,如「黑色 / L」
items[].pricenumber
items[].qtyinteger
items[].lineTotalnumber
items[].availableboolean缺省 = 能买;加购后下架、不可售、售罄时为 false
items[].unavailableReasonstring不能买的原因,可直接展示
totalQtyinteger只统计还能买的行
totalAmountnumber元;只统计还能买的行
pointsobject员工已绑定企业时返回
points.requirednumber需要的额度(100 = 1 元)
points.balancenumber
points.sufficientboolean

DELETE

清空购物车

可选。

返回字段

字段类型说明
okboolean例:true

调用示例

1curl -X GET "https://api.gowu.net/v1/enterprise/cart" \2  -H "x-app-key: $GOWU_APP_KEY" \3  -H "x-timestamp: $TS" \4  -H "x-nonce: $NONCE" \5  -H "x-sign-version: 2" \6  -H "x-signature: $SIG" \7  -H "x-open-user: u-001"

返回示例

1{2  "items": [3    {4      "productId": "string",5      "externalItemId": "string",6      "title": "string",7      "imageUrl": "string",8      "skuId": "string",9      "skuText": "string",10      "price": 0,11      "qty": 0,12      "lineTotal": 0,13      "available": true,14      "unavailableReason": "string"15    }16  ],17  "totalQty": 0,18  "totalAmount": 0,19  "points": {20    "required": 0,21    "balance": 0,22    "sufficient": true23  }24}

#加购

POSTPUTDELETE/v1/enterprise/cart/items

加购(累加)/ 设数量 / 移出(DELETE ?productId=&skuId=)

鉴权用户态可选

POST

加入购物车

可选。同一商品 + SKU 已在车里时数量累加。qty 缺省 1。

请求体application/json

字段类型必填说明
productIdstring是
skuIdstring否商品详情 skus[].skuId;skuId 为 null 的商品不要传
qtyinteger否≥ 0

返回字段成功,返回最新购物车

字段类型说明
okboolean
cartobject
cart.itemsobject[]
cart.items[].productIdstring
cart.items[].externalItemIdstring
cart.items[].titlestring
cart.items[].imageUrlstring
cart.items[].skuIdstring
cart.items[].skuTextstring规格文案,如「黑色 / L」
cart.items[].pricenumber
cart.items[].qtyinteger
cart.items[].lineTotalnumber
cart.items[].availableboolean缺省 = 能买;加购后下架、不可售、售罄时为 false
cart.items[].unavailableReasonstring不能买的原因,可直接展示
cart.totalQtyinteger只统计还能买的行
cart.totalAmountnumber元;只统计还能买的行

错误

  • 400 缺少 productId

PUT

设置数量

可选。把该商品 + SKU 的数量设为 qty;qty 为 0 即删除。

请求体application/json

字段类型必填说明
productIdstring是
skuIdstring否商品详情 skus[].skuId;skuId 为 null 的商品不要传
qtyinteger否≥ 0

返回字段成功,返回最新购物车

字段类型说明
okboolean
cartobject
cart.itemsobject[]
cart.items[].productIdstring
cart.items[].externalItemIdstring
cart.items[].titlestring
cart.items[].imageUrlstring
cart.items[].skuIdstring
cart.items[].skuTextstring规格文案,如「黑色 / L」
cart.items[].pricenumber
cart.items[].qtyinteger
cart.items[].lineTotalnumber
cart.items[].availableboolean缺省 = 能买;加购后下架、不可售、售罄时为 false
cart.items[].unavailableReasonstring不能买的原因,可直接展示
cart.totalQtyinteger只统计还能买的行
cart.totalAmountnumber元;只统计还能买的行

错误

  • 400 缺少 productId

DELETE

移出购物车

可选。

查询参数

字段类型必填说明
productIdstring是
skuIdstring否

返回字段成功,返回最新购物车

字段类型说明
okboolean
cartobject
cart.itemsobject[]
cart.items[].productIdstring
cart.items[].externalItemIdstring
cart.items[].titlestring
cart.items[].imageUrlstring
cart.items[].skuIdstring
cart.items[].skuTextstring规格文案,如「黑色 / L」
cart.items[].pricenumber
cart.items[].qtyinteger
cart.items[].lineTotalnumber
cart.items[].availableboolean缺省 = 能买;加购后下架、不可售、售罄时为 false
cart.items[].unavailableReasonstring不能买的原因,可直接展示
cart.totalQtyinteger只统计还能买的行
cart.totalAmountnumber元;只统计还能买的行

错误

  • 400 缺少 productId

调用示例

1curl -X POST "https://api.gowu.net/v1/enterprise/cart/items" \2  -H "x-app-key: $GOWU_APP_KEY" \3  -H "x-timestamp: $TS" \4  -H "x-nonce: $NONCE" \5  -H "x-sign-version: 2" \6  -H "x-signature: $SIG" \7  -H "x-open-user: u-001" \8  -H "content-type: application/json" \9  -d '{"productId":"ep_800000000001","skuId":"…","qty":1}'

返回示例

1{2  "ok": true,3  "cart": {4    "items": [5      {6        "productId": "string",7        "externalItemId": "string",8        "title": "string",9        "imageUrl": "string",10        "skuId": "string",11        "skuText": "string",12        "price": 0,13        "qty": 0,14        "lineTotal": 0,15        "available": true,16        "unavailableReason": "string"17      }18    ],19    "totalQty": 0,20    "totalAmount": 021  }22}