接 NetSuite:拉订单进来,同步客户、发票与产品
在 NetSuite 找到 Account ID,把带 rest_webservices 权限的现成 OAuth2 access token 填进 Integration,测试、配 Mapping、激活——销售订单流进来,客户、发票与产品双向同步。
NetSuite 连接器经 SuiteTalk REST Record 服务连接您的 Oracle NetSuite ERP。它从 NetSuite 拉销售订单、客户、发票和产品,再把客户、发票和产品推回 NetSuite。它不能读取或推送库存数量,所以适合订单以及客户、发票、产品记录——不适合库存数量同步。
前置条件#
- 一个 NetSuite 账号,且登录后能打开 Setup → Company → Company Information 看到 Account ID。
- 一个带 REST Web Services 权限的角色:您用的 token 必须带 rest_webservices 权限范围,且其角色能读客户记录——测试连接会读一条客户记录。
- 一个现成的 OAuth2 access token,经 NetSuite 集成记录(integration record)通过 client credentials 或授权码流程获取。开始向导前先把成品 token 备好。
- 清楚要接的是哪个账号:沙箱的 Account ID 形如 1234567_SB1,带 _SB1 后缀。
拿凭证#
- 找 Account ID:在 NetSuite 里走 Setup → Company → Company Information,照原样复制那里显示的 Account ID——沙箱账号要带 _SB1 后缀,如 1234567_SB1。
- 拿 OAuth2 access token:token 必须带 rest_webservices 权限范围,并从 NetSuite 集成记录经 client credentials 或授权码流程获取。Integration 不会为您弹出 NetSuite 登录窗口换 token——您要粘贴的是已经签发好的 token。
- 核对 token 背后的角色:它需要 REST Web Services 权限和读客户记录的权限,否则测试连接会报 MISSING_SCOPE(403)。
填进 Integration#
- 打开 Integration → 连接器市场 → NetSuite → 新建连接。
- account_id——必填。填进 Account ID 字段:NetSuite → Setup → Company → Company Information 里的 Account ID,逐字复制,沙箱账号要带 _SB1 后缀(如 1234567_SB1)。
- token——必填。填进 OAuth2 access token 字段:粘贴带 rest_webservices 权限范围的完整 OAuth2 access token(其值通常以 eyJ 开头)。没有单独的 Client ID 或 Client Secret 字段。token 加密存储,永不回显。
测试连接#
点测试连接。如果 account_id 为空,测试以 MISSING_ACCOUNT_ID 停下;如果 token 为空,以 MISSING_TOKEN 停下——两种情况都不会发出请求。否则测试会把您的 token 作为 Bearer token 发一次只读探针:从 https://{account_id}.suitetalk.api.netsuite.com/services/rest/record/v1/customer 以 limit=1 读客户列表(12 秒超时)。返回 200 说明测试通过,结果里会显示您的 account_id。返回 401 会报 INVALID_TOKEN,403 会报 MISSING_SCOPE——每种情况怎么修见常见问题;其他失败统一报 CONNECTION_FAILED。
配 Mapping / 选模板#
选 NetSuite 标准模板。它在 NetSuite 与标准单据之间映射销售订单——包括每张订单的行明细(连接器逐单读取)——以及客户、发票和产品(NetSuite 的 inventory item)。激活前先在映射预览里核对您在意的字段,并确认每个 NetSuite 产品都配到了这边正确的产品。库存数量不在这份映射里:本连接不读取也不推送库存数量,不要映射现有量字段指望它同步。
激活#
激活后,Integration 按您设的频率从 NetSuite 拉新的销售订单、客户、发票和产品,并把客户、发票和产品的更新推回 NetSuite。库存数量不经本连接双向流转。先在 运行监控 / 日志里盯几张单据,确认无误再放手跑;OAuth2 token 过期时,换上新签发的 token 并重新测试。
常见问题#
测试以 MISSING_ACCOUNT_ID 或 MISSING_TOKEN 停下
两个必填字段有一个是空的,所以测试在向 NetSuite 发出任何请求之前就停下了。
把两个字段都填上:account_id 取自 NetSuite → Setup → Company → Company Information,token 粘贴完整的 OAuth2 access token。保存后重新测试。
测试报 INVALID_TOKEN(401)
NetSuite 拒绝了 token:它无效或已过期、粘贴时不完整,或者您粘的是 Token-Based Authentication(TBA)凭证而不是 OAuth2 access token。
从您的 NetSuite 集成记录重新拿一个带 rest_webservices 权限范围的新 OAuth2 access token,完整粘进 token 字段,保存后重新测试。记住 TBA 凭证不能用于本连接。
测试报 MISSING_SCOPE(403)
token 到达了 NetSuite,但没被允许做测试要做的事:它缺 rest_webservices 权限范围,或者其背后的角色没有读客户记录的权限——而测试探针读的正是客户。
请 NetSuite 管理员核对集成记录上的权限范围和该角色的客户权限。如果权限范围有变化,签发一个新 token,粘进连接,保存后重新测试。
测试报 CONNECTION_FAILED
探针到达了 NetSuite,但回来的不是成功、也不是 401 或 403。常见原因是 account_id 与 token 所属账号对不上——探针地址是用您的 account_id 拼出来的,错一个字符就会发到错的地方。
从 NetSuite → Setup → Company → Company Information 重新逐字复制 account_id——沙箱账号要带 _SB1 后缀——并确认 token 是为同一个账号签发的。保存后重新测试。
Client ID 和 Client Secret 填在哪里?
本连接里没有地方填——它没有 Client ID 或 Client Secret 字段。它要的是成品 OAuth2 access token 本身:client credentials 或授权码的换取发生在 NetSuite 集成记录一侧、产出 token,您把产出的 token 粘到这里的 token 字段即可。
这也是为什么这里没有 token 刷新流程:您粘进来的是成品凭证。如果它过期了,在 NetSuite 一侧用同一组 Client ID 和 Client Secret 重新走一遍换取,再把新 token 粘回本连接、重新测试即可。
本连接能同步库存数量吗?
不能。本连接不能从 NetSuite 读取库存数量,也不能向 NetSuite 推送库存数量。请把它用于销售订单、客户、发票和产品,库存数量继续由您现在管理它的系统维护。
产品记录本身确实是双向走的——名称、SKU 和其他产品字段与 NetSuite 同步。永不随行的只是数量数字:同步过来的产品不会带着它的在手数量。