Readysell hybrid EDI ordering
Introduction
Readysell hybrid EDI ordering is the preferred method for accepting orders from smaller dealers. Because customer data for these small dealers can be inconsistent, we recommend this method for suppliers that are unable to tolerate data errors in orders. This method places the burden of reconciling data issues on the customer before each order is accepted by the supplier.
Overview
When using Readysell hybrid EDI ordering, the customer will produce a purchase order in their Readysell ERP system. When they are ready to place their order they click a button to bring up an embedded web view in their Readysell software. The web view will create an HTTP(S) POST request with various order data to the supplier system. The supplier system will then display the order, highlight any discrepancies, and where possible, provide the customer with some way to rectify issues. Once the customer is happy with the state of the order, they can submit it with real-time confirmation of success.
Data specification
Header fields
Header fields are provided as HTML form fields. The supplier system can opt to use or ignore whichever fields are relevant.
Name | Description | Type | Example |
---|---|---|---|
username | The username of the customer in the supplier's system. | String | ABC123 |
password | The password of the customer in the supplier's system. | String | Password1 |
format | Always returns "Readysell" - provided to allow flexibility at the supplier's end for alternate implementations. | String | Readysell |
account_number | The customer's account number at the supplier. | String | ABC123 |
po_number | The purchase order number as generated by the customer's system. | Integer | 12345 |
po_date | The date of the purchase order in the customer's system. | ISO 8601 date | 2015-08-15 |
requested_delivery_date | The date on which the customer requests delivery. | ISO 8601 date | 2015-08-21 |
contact_name | The name of the relevant contact at the customer. | String | John Smith |
contact_phone | The phone number of the relevant contact at the customer. | Integer | 0298765432 |
contact_email | The email address of the relevant contact at the customer. | String | john.smith@customer.com.au |
allow_back_order | Whether the customer would like to permit back orders for the selected order. | Boolean (Y/N) | Y |
Line data
Line data is provided in a single HTML form field called data in comma delimited format. The first row includes the field names and subsequent rows are data.
Name | Description | Type | Example | Comment |
---|---|---|---|---|
order_line_number | The line number from the customer's system. | Integer | 1234567 | Unique per customer ERP system, not per customer order. |
supplier_product_id | The product ID of the product in the supplier's system. | String | A1234 | Relies on the data in the customer's product file. May not be available, so other fields may need to be checked to assist with matching. |
inner_barcode | The inner barcode the product. | String | 01234567890128 | Relies on the data in the customer's product file. May not be available, so other fields may need to be checked to assist with matching. |
customer_product_id | The product ID of the product in the customer's system. | String | 7001234 | This will always be provided. Usually the Office Brands EZ Code – but could be a customer’s own code if the product is set up manually. |
product_name | The name/description of the product. | String | A4 PAPER WHITE 100GSM | Typically used to provide helpful feedback to the customer if no match could be found. |
qty | Unit quantity ordered. | Integer | 6 | |
pack_unit | Name of pack unit in which the order quantity is expressed. | String | BOX | |
pack_quantity | Quantity of inners in each unit being ordered. | Integer | 10 | For example, if an order is being placed for 6 cartons and each carton contains 10 boxes (where a box is the sell/inner unit), this field will contain 10. |
unit_price | The price for each unit ordered (excluding tax). | Decimal | 19.45 |
Sample request
<html> <body onload='document.forms["form"].submit()'> <form name='form' action='https://supplier.com.au/api_upload' method='post'> <input type='hidden' name='username' value='ABC123'> <input type='hidden' name='password' value='Password1'> <input type='hidden' name='format' value='Readysell'> <input type='hidden' name='account_number' value='ABC123'> <input type='hidden' name='po_number' value='12345'> <input type='hidden' name='po_date' value='2015-08-15'> <input type='hidden' name='requested_delivery_date' value='2015-08-21'> <input type='hidden' name='contact_name' value='John Smith'> <input type='hidden' name='contact_phone' value='0298765432'> <input type='hidden' name='contact_email' value='john.smith@customer.com.au'> <input type='hidden' name='allow_back_order' value='Y'> <input type='hidden' name='data' value='order_line_number,supplier_product_id,inner_barcode,customer_product_id,product_name,qty,pack_unit,pack_quantity,unit_price 1234567,TESTPROD1,,,7007123,THIS IS A TEST PRODUCT,10,BOX,10,12.95 1234568,TESTPROD2,12345678905,7007124,THIS IS ANOTHER TEST PRODUCT,20,EACH,1,3.75 1234569,TESTPROD3,12345678916,7007125,THIS IS A THIRD TEST PRODUCT,5,CARTON,100,40.95 1234570,TESTPROD4,TESTPROD4,7007126,THIS IS A FOURTH TEST PRODUCT,16,EACH,1,2.45 1234571,TESTPROD5,12345678927,7007127,THIS IS A FIFTH TEST PRODUCT,12,PACK,2,64.95'> </form> </body> </html>
Sample implementations
Below are some screenshots of existing implementations from supplier systems.