# EDI

> 我们的电子数据交换 (EDI) 采购订单系统通过将订单直接发送到您的 ERP 或订单管理系统，简化了您接收订单的方式，

Source: https://www.purchaseplus.com/zh-cn/docs/for-suppliers/electronic-data-interchange-edi-purchase-orders

Markdown: https://www.purchaseplus.com/zh-cn/docs/for-suppliers/electronic-data-interchange-edi-purchase-orders.md

# EDI
跳转至：

-   [概览](#Overview)
-   [优势](#Benefits)
-   [开始使用](#GettingStartedWithEDI)
-   [支持的数据格式](#SupportedFormats)
-   [JSON 有效负载示例](#SampleJSONPayload)
-   [重要字段](#ImportantFields)

### 概览

我们的电子数据交换 (EDI) 采购订单系统通过将订单直接发送到您的 ERP 或订单管理系统，简化了您接收订单的方式，无需手动输入数据。

我们推荐使用 EDI 接收采购订单，特别是对于大中型供应商以及具备较强集成能力的供应商。

### 优势

EDI 采购订单免去了将采购订单手动输入到企业资源计划 (ERP) 或订单管理系统的需要，从而帮助供应商提高工作效率。它们还通过减少人工错误来提高准确性，并加快买家与供应商之间的订单处理速度。我们坚信，更快、更准确的数据交换可以减少订单问题，这让买家、供应商以及我们三方共同受益。

过去，我们遇到过供应商因垃圾邮件过滤器误拦截而未能收到电子邮件采购订单的问题。虽然我们使用的是托管邮件服务，但这些邮件偶尔仍可能会被拦截。

我们还认为，与电子邮件相比，EDI 所使用的 HTTPS 或 SFTP 协议在交换敏感订单信息方面提供了一种更强大、更安全的方式。

### 开始使用

1.  设置端点：您需要设置一个端点来接收订单。或者，您或我们也可以设置一个 SFTP 目录。
    
2.  联系我们：当您的端点准备就绪后（或者如果您希望我们设置 SFTP 目录），请将您的端点详细信息发送给我们的团队：[help.suppliers@purchaseplus.com](mailto:help.suppliers@purchaseplus.com)。
    
3.  集成：我们会将您的端点添加到我们的系统中。
    
4.  测试：为确保平稳过渡，我们可以通过将一到两家采购方切换到新端点来进行小规模测试。或者，在试用期间我们也可以同时并行运行电子邮件和 EDI。
    
5.  试点：我们将与您合作选择一小组测试客户，将其切换到新端点。
    
6.  全面实施：当一切顺利且您满意后，我们会将您的所有订单切换到 EDI。
    

### 支持的数据格式

对于 EDI 事务，我们主要支持 JSON。我们也可以发送 XML，并可应要求提供有效负载示例，但我们不支持 cXML。

### JSON 有效负载示例

`{     "purchase_orders": [       {         "purchase_order": {           "identity": "singer.test.sleep",           "purchaser": {             "id": 262388,             "name": "Sample Purchaser",             "customer_number": "PUR12345",             "requestor": "Han Solo",             "phone": "1300 123 456",             "email": "han.solo@purchaseplus.com"           },           "supplier": {             "name": "Sample Supplier",             "vendor_number": "SUP98765"           },           "purchase_order_number": "PO00001",           "purchaser_reference": "Daily food order",           "supplier_reference": null,           "expected_delivery_date": "2025-03-15",           "sent_date": "2025-03-15T05:51:57.122Z",           "cancelled": false,           "comments": [],           "confirmation_instructions": "Confirmation instructions example.",           "delivery_instructions": "Delivery instructions example.",           "delivery_address": {             "location_name": "Default",             "line1": "Level 4, 11 York Street",             "line2": "",             "city": "Sydney",             "state_province": "NSW",             "postal_code": "2000",             "country_code": "AU"           },           "currency": "AUD",           "net_amount": 826.1,           "delivery_amount": 0,           "tax_amount": 20.25,           "gross_amount": 846.35,           "lines": [             {               "code": "YOGH",               "brand": "Farmers Union",               "item_description": "Greek Style Yoghurt : Natural",               "item_size": 1,               "item_measure": "lt",               "item_package": "tub",               "pack_quantity": 1,               "pack_name": "each",               "gs1_code": null,               "order_instruction": null,               "unit_price": 6.75,               "quantity": 30,               "net_amount": 202.5,               "tax_amount": 20.25,               "gross_amount": 222.75,               "is_purchaser_price": true             },             {               "code": "WMBD",               "brand": "Mighty Soft",               "item_description": "Bread Sliced Wholemeal Sandwich Frozen",               "item_size": 650,               "item_measure": "g",               "item_package": null,               "pack_quantity": 10,               "pack_name": "carton",               "gs1_code": null,               "order_instruction": null,               "unit_price": 20,               "quantity": 25,               "net_amount": 500,               "tax_amount": 0,               "gross_amount": 500,               "is_purchaser_price": true             },             {               "code": "MILK",               "brand": "Pauls - Professional",               "item_description": "Milk : Full Cream",               "item_size": 3,               "item_measure": "lt",               "item_package": "bottle",               "pack_quantity": 6,               "pack_name": "carton",               "gs1_code": null,               "order_instruction": null,               "unit_price": 8.24,               "quantity": 15,               "net_amount": 123.6,               "tax_amount": 0,               "gross_amount": 123.6,               "is_purchaser_price": true             }           ]         }       }     ]   }` 

### 处理取消操作

有时，买家会通过用户界面取消订单并选择发送取消通知。这将发送一份重复的 Webhook 有效负载，且 `cancelled` 字段设置为 `true`。

请确保将其完全过滤掉，或者通过向您的支持团队发送通知来进行处理。

我们对用户的培训是：如果想要取消或修改订单，请直接联系供应商，因为系统处理此类情况并不总是完全可靠。

### 重要字段

| **字段** | **说明** |
| --- | --- |
| `identity` | 一个由三个单词组成的唯一标识符，代表特定供应商账户与买家账户之间的关系。该标识符对每个“买家-供应商”组合都是唯一的，可以在向 PurchasePlus 发送发票时用作 `identity`。 |
| `vendor_number` | 您在系统中为每个买家分配的唯一标识符。这使您能够在不同系统之间交叉引用买家。此字段可以在 PurchasePlus 门户中更新。 |
| `purchase_order_number` | 买家分配的采购订单号。虽然它不是全局唯一的，但在单个买家的范围内是唯一的。要创建唯一键，可将此字段与 vendor_number 字段进行拼接。重要提示：如果 PurchasePlus 用户将“采购方代码”字段留空，使用此拼接作为唯一键可能会导致问题。 |
| `cancelled` | 一个布尔标志，指示买家是否已在 MarketBoomer 用户界面中取消了采购订单。如果为 `true`，则表示采购订单已取消。取消时，MarketBoomer 将重新发送采购订单并将此字段设置为 `true`。如果您的系统不支持订单取消，则处理此字段是可选的，但这是最佳实践。 |
| `lines.code` | 您在我们的系统中为每个产品分配的唯一产品代码。此字段对应于 P+ New 中的“owner code”或 P+ Legacy 中的“supplier code”。您可以在相应的 P+ 界面中更新此代码。 |

您在我们的系统中为每个产品分配的唯一产品代码。此字段对应于 PurchasePlus 中的“owner code”或 Legacy PurchasePlus 中的“supplier code”。您可以在相应的 P+ 界面中更新此代码。
