接 SPS Commerce:EDI 订单进来,ASN 与发票出去
从 SPS 开户文档里抄 API 基址,把 SPS 开户时成对发放的 Client ID 与 Client Secret 一起填进 Integration——三项填齐,测试、按交易伙伴配 Mapping、激活,850 订单流进来,856 / 810 报文流出去。
SPS Commerce 连接器经 SPS Commerce(RSX / API)与您的零售交易伙伴交换 EDI 报文:850 采购订单等入站报文从伙伴进来变成订单,856 发货通知、810 发票等出站报文再发回给同一伙伴。它不是店铺连接,也没有店铺授权——一切按交易伙伴、按报文类型组织,所以每个伙伴都要单独配、单独验。
前置条件#
- 一个已开通 API 访问的 SPS Commerce 账号。您的凭证与 API 基址都来自这次开户——不是在 Integration 里生成的。
- 您的 SPS 开户文档。上面写着您账号的 API 基址,并载有为您的 API 访问发放的 Client ID 与 Client Secret——接下来两步都要用到,先放在手边。
- 至少有一个经 SPS Commerce 交换报文的交易伙伴,并清楚您与该伙伴交换哪些报文类型——例如 850 采购订单进来、856 与 810 出去。这个连接不会替您新建伙伴。
- 第一次连接先用一个伙伴、一种报文把配置验通——不要拿正式伙伴的报文试新 Mapping。
拿凭证#
- 在 SPS 开户文档里找到 API 基址(API Base URL),按原文原样复制。连接用到的所有端点——包括 OAuth token 端点——都相对这个基址,抄漏或抄多一段都通不了。
- 在同一份开户材料里找到 Client ID 与 Client Secret。它们是 SPS 开户开通 API 访问时成对发放的——成对保管,不要混入另一个账号的凭证。
- 这套凭证没有自助生成页。Client Secret 遗失或从未交付时,联系为您办理 SPS 开户的对接人,请对方重新发放——不要去别处自己造一个替代。
- 把三个值放在一起保管,备下一步用:API 基址、Client ID、Client Secret。后面的测试三项都要,缺任何一项都会报缺值。
填进 Integration#
- 打开 Integration → 连接器市场 → SPS Commerce → 新建连接。
- API 基址(base_url)——必填:把 SPS 开户文档里的 API 基址原样粘进来。这个字段不要留空,也不要拿 SPS 的普通网址顶替:连接就是跟这个基址说话,没有它,测试还没验凭证就会停下。
- Client ID(client_id)——必填:粘贴 SPS 开户时为您的账号发放的 Client ID。注意不要把 Client Secret 粘进这个字段——两个值是一对,各归各的字段。
- Client Secret(client_secret)——必填:粘贴与 Client ID 成对发放的 Client Secret。它加密存储,保存后永不回显,所以粘贴时仔细核对,自己那一份留在开户材料里保管。
测试连接#
点「测试连接」。测试先检查 API 基址、Client ID、Client Secret 三项是否齐全,再用它们向 SPS 做一次 OAuth 换 token——向 SPS 要一个 token 并确认能拿到。测试不拉任何 EDI 报文。所以通过只证明基址与这对凭证可用,不代表交易伙伴或报文 Mapping 已经配好——那是下一步的事。
配 Mapping / 选模板#
SPS Commerce 的 Mapping 按交易伙伴、按报文类型配——没有一套 Mapping 通吃所有伙伴,因为同一报文类型,不同零售伙伴要求字段与规则都可能不同。对每个伙伴,选您与它交换的报文类型对应的模板,逐项对照核查:入站 850 采购订单上,订单号、行明细、数量、收货信息落到标准订单;出站的 856 发货通知、810 发票等报文上,发货与发票信息映射回伙伴期望的格式。某个伙伴多要一个您平常报文里没有的字段,就在那个伙伴的 Mapping 里加,不要改动其他伙伴的。激活前把打算交易的每个伙伴都配完——没配完 Mapping 的伙伴,即使连接测试通过,也不会交换报文。
激活#
激活后,Integration 经 SPS Commerce 与每个已配好 Mapping 的交易伙伴交换报文:850 采购订单等入站报文被拉进来变成订单,856 发货通知、810 发票等出站报文随履约与开票进度发回去。Mapping 没配完的伙伴不会因为连接已激活就开始交换。先在 运行监控 / 日志里盯每个伙伴的头几份报文,确认无误再放手跑。
常见问题#
测试停下,提示 API 基址缺失
base_url 字段留空了。这个字段容易漏,因为 SPS 连接需要三个值、不是两个——没有基址,连接不知道该跟哪里说话,测试在验凭证之前就停下了。
把 SPS 开户文档里的 API 基址按原文原样复制,粘进 API 基址字段,保存后重新测试。如果文档里的地址看着不完整,请向 SPS 开户对接人确认,不要自己猜后半截。
测试卡在换 token——认证不过
SPS 没有为您填的值返回 token。说人话就是:基址、Client ID、Client Secret 三者对不上——可能是基址抄错了,可能是 Client ID 与 Client Secret 填反了字段,可能是 Secret 在您这份副本之后已被重新发放,也可能这对凭证属于另一个 SPS 账号。
从 SPS 开户文档重新复制三个值,确认 Client ID 进 Client ID 字段、Client Secret 进 Client Secret 字段,再重新测试。仍不过就联系为您办理 SPS 开户的对接人,请对方核对基址、必要时重新发放 Secret——没有自助页可以自己重置。
测试通过了,但 850 订单不进来
这通常不代表连接坏了。测试只换 token——从不拉报文——所以通过与否跟订单无关。订单不进来,多半是:该交易伙伴的 Mapping 没配完、该伙伴及其 850 报文类型没进您的已激活配置,或者伙伴那边根本还没发新订单。
把该伙伴及其 850 报文类型的 Mapping 配完,确认连接已激活,再去 运行监控 / 日志 按该伙伴查。若都配好了且伙伴确认已发订单,用伙伴的发送时间去 运行监控 / 日志 里查那份报文。
出站 856 / 810 报文被伙伴拒收
连接与 token 都没问题——是报文对不上这个伙伴的期望。每个零售伙伴对 856、810 报文都可能有自己的字段与规则要求,所以一套对某个伙伴好用的 Mapping,换到另一个伙伴仍可能缺它必查的字段,或某个值用了它不接受的形式。
拿被拒的报文跟该伙伴的要求逐项对照,只在该伙伴的 Mapping 里补齐或修正字段,先重发一份确认通过,再放其余报文。不要为修一个伙伴的拒收去改所有伙伴共用的 Mapping。