# EDI

> ระบบใบสั่งซื้อผ่านการแลกเปลี่ยนข้อมูลทางอิเล็กทรอนิกส์ (EDI) ของเราช่วยลดความซับซ้อนในการรับคำสั่งซื้อของคุณ โดยส่งตรงไปยังระบบ ERP หรือระบบจัดการคำสั่งซื้อของคุณ

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

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

# EDI
ข้ามไปยัง:

-   [ภาพรวม](#Overview)
-   [ประโยชน์](#Benefits)
-   [เริ่มต้นใช้งาน](#GettingStartedWithEDI)
-   [รูปแบบข้อมูลที่รองรับ](#SupportedFormats)
-   [ตัวอย่าง JSON Payload](#SampleJSONPayload)
-   [ฟิลด์ที่สำคัญ](#ImportantFields)

### ภาพรวม

ระบบใบสั่งซื้อผ่านการแลกเปลี่ยนข้อมูลทางอิเล็กทรอนิกส์ (EDI) ของเราช่วยลดความซับซ้อนในการรับคำสั่งซื้อของคุณ โดยส่งตรงไปยังระบบ ERP หรือระบบจัดการคำสั่งซื้อของคุณ จึงไม่จำเป็นต้องป้อนข้อมูลด้วยตนเอง

เราแนะนำให้ใช้ EDI สำหรับการรับใบสั่งซื้อ โดยเฉพาะอย่างยิ่งสำหรับซัพพลายเออร์ระดับกลางไปจนถึงขนาดใหญ่ และผู้ที่มีความสามารถในการเชื่อมต่อระบบที่แข็งแกร่ง

### ประโยชน์

ใบสั่งซื้อ EDI ช่วยให้ซัพพลายเออร์ทำงานได้อย่างมีประสิทธิภาพมากขึ้น โดยไม่จำเป็นต้องป้อน PO ลงในระบบการวางแผนทรัพยากรองค์กร (ERP) หรือระบบจัดการคำสั่งซื้อ (Order Management) ด้วยตนเอง นอกจากนี้ยังช่วยเพิ่มความถูกต้องแม่นยำโดยการลดข้อผิดพลาดจากการทำงานด้วยตนเอง และเพิ่มความเร็วในการประมวลผลคำสั่งซื้อระหว่างผู้ซื้อและซัพพลายเออร์ เราเชื่อว่าการแลกเปลี่ยนข้อมูลที่รวดเร็วและถูกต้องแม่นยำยิ่งขึ้นจะช่วยลดปัญหาเกี่ยวกับคำสั่งซื้อ ซึ่งเป็นประโยชน์ต่อทั้งผู้ซื้อ ซัพพลายเออร์ และตัวเราเอง

ในอดีต เราเคยประสบปัญหาที่ซัพพลายเออร์ไม่ได้รับใบสั่งซื้อทางอีเมลเนื่องจากระบบกรองสแปมบล็อกไว้อย่างไม่ถูกต้อง แม้ว่าเราจะใช้บริการอีเมลที่มีการจัดการดูแล แต่อีเมลเหล่านี้ก็ยังอาจถูกบล็อกได้เป็นครั้งคราว

นอกจากนี้ เรายังเชื่อว่า HTTPS หรือ SFTP ซึ่งเป็นโปรโตคอลที่ใช้สำหรับ EDI เป็นวิธีที่มีประสิทธิภาพและปลอดภัยกว่าอีเมลในการแลกเปลี่ยนข้อมูลคำสั่งซื้อที่ละเอียดอ่อน

### เริ่มต้นใช้งาน

1.  ตั้งค่าปลายทาง (Endpoint): คุณจะต้องตั้งค่า endpoint เพื่อรับคำสั่งซื้อ หรืออีกทางเลือกหนึ่งคือคุณหรือเราสามารถตั้งค่าไดเรกทอรี SFTP ได้
    
2.  ติดต่อเรา: เมื่อ endpoint ของคุณพร้อมแล้ว (หรือหากคุณต้องการให้เราตั้งค่าไดเรกทอรี SFTP) โปรดติดต่อทีมงานของเราที่ [help.suppliers@purchaseplus.com](mailto:help.suppliers@purchaseplus.com) พร้อมรายละเอียด endpoint ของคุณ
    
3.  การเชื่อมต่อระบบ: เราจะเพิ่ม endpoint ของคุณเข้าสู่ระบบของเรา
    
4.  การทดสอบ: เพื่อให้แน่ใจว่าการเปลี่ยนผ่านเป็นไปอย่างราบรื่น เราสามารถทำการทดสอบย่อยโดยเปลี่ยนผู้ซื้อหนึ่งหรือสองรายไปยัง endpoint ใหม่ หรือเราสามารถใช้งานอีเมลและ EDI ควบคู่กันไปในระหว่างช่วงทดลองใช้
    
5.  การนำร่อง: เราจะทำงานร่วมกับคุณเพื่อเลือกลูกค้าทดสอบกลุ่มเล็กๆ ที่จะเปลี่ยนมาใช้ endpoint ใหม่
    
6.  การใช้งานเต็มรูปแบบ: เมื่อคุณพร้อมแล้ว เราจะเปลี่ยนคำสั่งซื้อทั้งหมดของคุณไปยัง EDI
    

### รูปแบบข้อมูลที่รองรับ

โดยหลักแล้วเรารองรับ JSON สำหรับธุรกรรม EDI นอกจากนี้เรายังสามารถส่ง XML และสามารถจัดเตรียมตัวอย่าง payload ให้ได้ตามคำขอ แต่เราไม่รองรับ cXML

### ตัวอย่าง JSON Payload

`{     "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 payload รายการเดิมซ้ำอีกครั้งโดยฟิลด์ cancelled จะถูกตั้งค่าเป็น true

โปรดตรวจสอบให้แน่ใจว่าได้กรองข้อมูลเหล่านี้ออกทั้งหมด หรือจัดการโดยส่งการแจ้งเตือนไปยังทีมสนับสนุนของคุณ

เราแนะนำให้ผู้ใช้ติดต่อซัพพลายเออร์โดยตรงหากต้องการยกเลิกหรือแก้ไขคำสั่งซื้อ เนื่องจากระบบอาจไม่สามารถจัดการเรื่องนี้ได้อย่างน่าเชื่อถือเสมอไป

### ฟิลด์ที่สำคัญ

| **ฟิลด์** | **คำอธิบาย** |
| --- | --- |
| `identity` | ตัวระบุสามคำที่ไม่ซ้ำกัน ซึ่งแสดงถึงความสัมพันธ์ระหว่างบัญชีซัพพลายเออร์และบัญชีผู้ซื้อที่เฉพาะเจาะจง ตัวระบุนี้จะไม่ซ้ำกันสำหรับแต่ละคู่ผู้ซื้อ-ซัพพลายเออร์ และสามารถใช้เป็น `identity` เมื่อส่งใบแจ้งหนี้ไปยัง PurchasePlus |
| `vendor_number` | ตัวระบุเฉพาะที่คุณกำหนดให้กับผู้ซื้อแต่ละรายภายในระบบของคุณ ซึ่งช่วยให้คุณสามารถอ้างอิงโยงผู้ซื้อระหว่างระบบต่างๆ ได้ ฟิลด์นี้สามารถอัปเดตได้ในพอร์ทัล PurchasePlus |
| `purchase_order_number` | หมายเลขใบสั่งซื้อที่กำหนดโดยผู้ซื้อ แม้ว่าจะไม่ได้ไม่ซ้ำกันในระดับสากล แต่จะไม่ซ้ำกันภายในบริบทของผู้ซื้อรายเดียว ในการสร้างคีย์ที่ไม่ซ้ำกัน ให้เชื่อมฟิลด์นี้เข้ากับฟิลด์ vendor_number ข้อสำคัญ: หากผู้ใช้ PurchasePlus เว้นว่างฟิลด์ 'Purchaser Code' ไว้ การใช้การเชื่อมคำนี้เพื่อสร้างคีย์เฉพาะอาจทำให้เกิดปัญหาได้ |
| `cancelled` | แฟล็กบูลีนที่ระบุว่าใบสั่งซื้อถูกยกเลิกโดยผู้ซื้อใน UI ของ MarketBoomer หรือไม่ หากเป็น `true` แสดงว่า PO นั้นถูกยกเลิกแล้ว MarketBoomer จะส่ง PO ซ้ำอีกครั้งโดยตั้งค่าฟิลด์นี้เป็น `true` เมื่อมีการยกเลิก การจัดการฟิลด์นี้เป็นทางเลือกเสริมหากระบบของคุณไม่รองรับการยกเลิกคำสั่งซื้อ แต่เป็นแนวทางปฏิบัติที่ดีที่สุด |
| `lines.code` | รหัสสินค้าที่ไม่ซ้ำกันที่คุณกำหนดให้กับแต่ละสินค้าในระบบของเรา ฟิลด์นี้สอดคล้องกับ "owner code" ใน P+ New หรือ "supplier code" ใน P+ Legacy คุณสามารถอัปเดตรหัสนี้ได้ภายในอินเทอร์เฟซของ P+ ที่เกี่ยวข้อง |

รหัสสินค้าที่ไม่ซ้ำกันที่คุณกำหนดให้กับแต่ละสินค้าในระบบของเรา ฟิลด์นี้สอดคล้องกับ "owner code" ใน PurchasePlus หรือ "supplier code" ใน Legacy PurchasePlus คุณสามารถอัปเดตรหัสนี้ได้ภายในอินเทอร์เฟซของ PurchasePlus ที่เกี่ยวข้อง
