Electronic Data Interchange (EDI) Purchase Orders

This page outlines the format, transmission methods, and steps required for successful EDI purchase order setup.

Overview

Our Electronic Data Interchange (EDI) purchase order system streamlines receiving orders by sending orders directly to your system. Instead of receiving purchase orders from emails that require manual entry, we send them directly to your ERP or order management system.

We recommend all suppliers use EDI for receiving purchase orders, especially medium to larger suppliers, and suppliers with strong IT capabilities.

Benefits

EDI purchase orders help suppliers work more efficiently because they don't require manual PO entry into an Enterprise Resource Planning (ERP) or Order Management system. They improve accuracy by reducing manual errors, and ensure quick order processing by speeding up the receiving of orders from buyers to suppliers. We believe these faster, more accurate data exchange lead to less order problems, benefiting buyers, you as suppliers and us.

We've had issues in the past with suppliers not getting email purchase orders due to incorrect blocking from spam filtering software. Although we use a managed email service, these emails can occasionally get blocked.

Additionally, we believe that HTTPS or SFTP used for EDI is offers a more robust solution than email for for secure data exchange of sensitive order information.

How to get started

  1. Set up an Endpoint: You'll need to set up an endpoint to receive orders. Alternatively, either you or we can set up an SFTP directory.

  2. Get In Touch: Once your endpoint is ready (or if you'd like us to set up an SFTP directory), please reach out to our team at help.suppliers@marketboomer.com with your endpoint details.

  3. Integration: We'll add your endpoint to our system.

  4. Testing (Optional): To ensure a smooth transition, we can run a small test by switching one or two purchasers to the new endpoint. Alternatively, we can run email and EDI concurrently during a trial period.

  5. Full Implementation: Once you're comfortable, we'll fully switch to EDI for all your orders.

Supported Data Formats

We primarily support JSON for EDI transactions.

While we can also send XML, we do not support cXML.

Sample 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@marketboomer.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
          }
        ]
      }
    }
  ]
}
 

Important Fields

Field

Description 

identity

A unique, three-word identifier representing the relationship between a specific supplier account and buyer account. This identifier is unique for each buyer-supplier combination and can be used as the identity when sending invoices to Purchase Plus.

vendor_number

A unique identifier you assign to each buyer within your system. This allows you to cross-reference buyers across different systems.

This field can be updated in the PurchasePlus portal.

purchase_order_number

The purchase order number assigned by the buyer. While not globally unique, it is unique within the context of a single buyer.

To create a unique key, concatenate this field with the vendor_number field. Important: If the PurchasePlus user leaves the ‘Purchaser Code’ field blank, using this concatenation for a unique key may cause problems.

cancelled

A boolean flag indicating whether the purchase order has been canceled by the buyer in the MarketBoomer UI. If true, the PO has been canceled. MarketBoomer will re-send the PO with this field set to true upon cancellation.

Handling this field is optional if your system does not support order cancellations, but it’s best practise.

lines.code

The unique product code you assign to each product in our system. This field corresponds to the "owner code" in P+ New or the "supplier code" in P+ Legacy. You can update this code within the respective P+ interfaces.