Sales Order Process
SOP Flow Within the Warehouse - Order Status
The Sales Order Process goes through a number of stages.
Each stage is represented by a different status, and must be followed in order:
- 0 - Entered (Order header entered only – no detail lines). This does not affect stock on the system.
- 1 - Committed. The product will be flagged as having a committed quantity, this may affect availability for future orders.
- 4 - Allocated. This is where the system will specify a particular pallet in the warehouse determined on the order type (see Order Entry).
- 5 - Pick List. The next status after allocation. Shows that the order has had a pick list printed.
- 6 - Pick Confirmed. After pick list, the pick confirmation process ‘moves’ the stock virtually from its allocated location to a predefined marshalling location. The user can change the location at this point.
- F/G - Awaiting Customer POD Confirmation/ Depot POD Confirmation. (set against Partners/ Customers.) The stock moves from the marshalling location to a POD location if setup in Default locations.
- 9 - Complete. At this point, the stock has been ‘removed’ from the system (if you have setup to downdate at despatch rather than pick confirmation) .
Other Statuses which are not as commonly used are:
- I – Awaiting Invoice
- 3 – Back Order
- H – Held
- S – Suspended
- C – Cancelled
- E – Enquiry
Standard Sales Order Process
Sales Order Entry (SOS1110)
Rapid Order Entry (SOS1110_RO)
As an alternative to the standard order entry screen there is also an option of using the Rapid Order Entry Screen, which allows for an order to be created with the minimum of data entry.
All orders will automatically be created with a Line Type of '1' by default.
Field Information -
- Customer Code
- Reference
- Start Date, End Date and Booking Date will all default to the current system date but can be over written.
Once the header section has been completed then the user must enter in the stock details, Stock Code, Cases and Units as required.
Once complete the order will then be moved through the system via the normal processes.
NB It is only possible to create orders in this screen, to amend or view existing orders then the standard Order Entry Screen must be used (SOS1110)
Additional Functionality within Rapid Order Entry
Placing orders automatically on Hold dependent on customer authorisation
By setting the Dispute Code to '9' Disputed then all orders created for this customer will automatically be placed on hold. To release orders for allocation the user will need to use the Change Order Status Screen(SOS1270)
There is also the option to create an internal job that will automatically delete any orders at status Held after a pre-determined number of days. See EDI Setup and Processing
NB The Hold function will only work when using the Rapid Order Entry screen this functionality has not been built in to the standard order entry screen.
Sales Order Allocation (WHSORA010)
Orders can be allocated via either the Pick Wave Maintenance or from the Order Allocation screen.
|Route/Load ||If Route/Load is the selected method, enter a route and load. Note, as pick wave has the ability to allocate from its own screen, allocation will very rarely happen from here for a route/load Must have been created in pick wave maintenance - LOV available. |- |Order Owner ** If Order Number is the selected method, enter the owner code. May default according to user profile; otherwise select. |- |Owner |- |Order Number From / To || |- |}
Pick Wave Maintenance (LAS0312)
The pick wave maintenance screen allows the user to ‘group’ orders together as a route load. The various selection criteria you see here (Order status, order priority, product type etc) are mandatory determined by whether the owner rules – PW01-PW13 are set.

Field Name | Description | Options | |
---|---|---|---|
Route ** | The route code the orders will be assigned to. | The route code must exist in route codes maintenance. | |
Load | The unique load number | The load number will be automatically generated once orders have been assigned to the route. | |
Owner ** | The owner code of the orders | Must exist in owner maintenance – if owner prompt maintenance default is set to ‘N’ you may use any owner set up against your login id | |
Order Status | Allows the user to select orders based on the order status - I.e. all orders not yet allocated = status | Must be a valid order status | |
Order Priority | Allows the user to select orders based on the order priority | Must have been created in order priority maintenance – LOV available | |
Product Type | Allows the user to select orders based on the product type within each order detail | Must have been created in product types maintenance – Tick box's are provided to select multiple product types | |
Order No. From / To | Allows the user to select orders within an order number range | - | |
Depot Code | The Depot Code of the Order | - | |
Area Code | Area code for where the stock is to be picked from | Only valid for orders which are at status 4 allocated, and will have a location code to pick the stock from. Used to aid with picking efficiency | |
Booking Date | The booking date of the order | Display only, note, the orders will be sequenced by booking date then order number order | |
Shipment id | Shipment id of the order | Free text field | |
Customer Ref | Allows the user to select orders on the customer reference field | - | |
Address Line | Allows the user to select orders on the address line of the customers address | - | |
Country | Country Code | LOV on valid country codes | |
Carrier Code | Allows the user to select orders on the carrier code of the order entered in order maintenance | Must have been created in carrier codes maintenance – LOV available | |
Routing Code | Allows the user to select orders on the routing code entered in order maintenance | Must have been created in routing codes maintenance – LOV available | |
Request Type | Allows the user to select orders on the select type entered in order maintenance | Must have been created in select types maintenance – LOV available | |
Order Lines Filter | Selection criteria for single or multiple line orders to aid with picking speeds | No Filter by Lines Single Line Orders Multiple Line Orders Only Multiple Line Single Product Type Multiple Line an Product Types | |
End Delivery Date | The End Delivery Date on the order header | Valid date |
Buttons | Description | Options | |
---|---|---|---|
Find Orders | This button starts the process of finding the orders based on the selection criteria entered | - |

Note:By clicking on the buttons above the columns it is possible to re-sort the data to improve the order display and to aid with selection.
Display Values | Description | Options | |
---|---|---|---|
Assigned/maximum totals | This field will display how many order lines have been assigned so far out of the maximum allowed | Display only, the maximum orders and order line levels are set in Owner Maintenance, Sales Order Tab | |
Orders | The total number of orders allowed for a route load | Display only | |
Ord Lines | The total number of order lines for that order | Display only |
Buttons | Description | Options | |
---|---|---|---|
Configure | To allow the screen to be configured to a specific operation or user | see below | |
Reset Sort | Will reset the sort sequence to the values that were originally returned | - | |
Assign All | Allows the user to assign all orders selected to the route load | - | |
Deassign All | Allows the user to de-assign all orders selected from the route load | - | |
Assign Number | Will create a Pick Wave with the number of orders entered in the Assign Number field | - | |
Assign Batch | Will create multiple Pick Waves, each pick wave will have the number of orders entered in the Assign Number field | If there are a 100 orders displayed from the original selection criteria, if you then enter 10 into the Assign Number field and select Assign Batch, then ten Pick Waves will be created each with 10 orders. | |
Add to Existing | Allows the user to move orders to existing route loads as long as the status matches | - | |
Send to Allocation | Enables the user to allocate the orders selected | This option will only be enabled if the orders selected are at status ‘1’ |
Program Layout Configuration (WHS0909)
By selecting the 'Configure' button it is possible to alter the display and sequence of the columns that will be displayed in the details tab.

Note: The sort order will be affected by the columns selected and the order that they are displayed in.
Pick List Report (WHSORA020)
Pick List Reprint Report (WHSORA025)
Pick List Confirmation (WHS1714)
Despatch Confirmation (WHS1910)
Optional Processes
In addition to the standard Sales Order Process there are also additional value added processes that can be enabled as required by the client.
Multi-Level Order Packing (WHS1945)
As an optional process it is also possible to capture packing details for an order, which includes reference or tracking numbers, production of specific carrier labels, interfacing to external systems including carrier systems and the production of all required packing notes at different packing levels.
Dependent on the values set in the Order Packing Maintenance certain parameters will automatically be set when the user enters the Packing Screen.

Field Name | Description | Options | |
---|---|---|---|
Pack Lane | Specifies which pack lane the order will be packed into. Note, this field is system generated and no entry is allowed. | Pack lane population is specified by the setup in packing parameters maintenance – | |
Pack Ref | Depends on the number of levels of packing, the pack ref will be populated with the reference number of the outside carton. This will be system generated. Entry will only be allowed if querying a previously entered pack. | The generation of the pack ref is specified by the setup in packing parameters maintenance | |
Pack List No | A unique system generated pack list number. Entry will only be allowed if querying a previously entered pack. | Based on the last number type ‘PACK’ in warehouse document numbering maintenance | |
Order No | The order number to be packed | Note, the order number will only be enabled if packing is set to ‘single order packing’ in packing parameters maintenance | |
Status | The status of the pack. This will be updated when the user clicks ‘Confirm Pack’ | O – Open C – Closed | |
Printed | Has the pack list been printed? | Y or N – display only | |
Interfaced | Used for client specific functionality to determine whether a pack has been scanned through the transport system and the relevant edi file uploaded | Y or N – display only | |
Pack Levels | The number of different sub levels of packing i.e. carton within a box within a crate etc | 1 – 9 – number of packing level determined by the default pack levels flag in packing parameters maintenance | |
Packing Type | How the goods will be packed. Note, if despatching by shipment pallet, this has to be set to ‘By Pallet’ | By Order Line By Stock Code By Pallet By Rotation - determined by the default pack levels flag in packing parameters maintenance | |
Pack Details | Specifies whether you require detail level packing information | Y or N - determined by the default pack levels flag in packing parameters maintenance | |
Pack No | The number of detail records for the pack. This will be system generated by the number of pack references generated. | 0001 – 9999 | |
Pack Reference | The pack ref will be populated with the reference number of the outside carton. This will be system generated. Entry will only be allowed if querying a previously entered pack. | The pack ref will either be populated with the SSCC number if used or a sequential number based on the pack list no. | |
Type | The package type the goods will be packed into Based on pallet types. | Must have been created in pallet types maintenance – LOV available | |
Net | The net weight of the pallet and products for this pack ref | System generated | |
Gross | The gross weight of the pallet and products for this pack ref | System generated | |
Volume | The volume of the pallet and the products associated with the pack ref. | System generated Based on the LxWxH of the products and the pallet type selected | |
Packed Cases | The quantity of cases to be packed based on the order detail records associated with the pack ref. System generated – will change if the packed quantities are amended. | Display only | |
Packed Units | The quantity of cases to be packed based on the order detail records associated with the pack ref. System generated – will change if the packed quantities are amended. | Display only | |
Haz | Field that displays whether the product(s) to be packed are hazardous or not | Y or N – based on the hazardous flag on stock maintenance – display only | |
Full Pallet Pick | Field that displays whether the quantity to be packed equals a full pallet | Y or blank – based on a calculation on quantity of cases to a pallet in stock maintenance |
Button | Description |
---|---|
Start Pack | Starts the packing process for the required order |
Close List | Sets the pack status to ‘C’ and enables the printing of the pack list and pack labels. If required, updates client specific tables with carrier information |
Allows the user to reprint the pack list and pack labels if required | |
Re-open Pack | Sets the status of the pack back to ‘O’ and allows the user to ‘re-close’ the pack |
Close Pack | Closes the specific pack selected |
Label | Allows the user to print detail level labels if required |
Detail | Takes the user to the detail level screen |
Multi-Level Order Packing Detail (WHS1946)

Field Name | Description | Options | |
---|---|---|---|
Pack No | The pack number the details are associated with | Display only | |
Box No. | Relates to line number in the header screen | Display only | |
Pack Ref | The pack reference (pack detail reference) of the pack header | Display only | |
Box Ref | The pack reference (pack detail reference) of the box | Display only | |
Status | The pack status – this will change from ‘Open’ to ‘Closed’ when the close button is pressed | Display only | |
Box Type | The description of the packing material. Will default to the description of the pallet type entered in the pack header screen | Display only | |
Order Num | The order number to be packed | Dependant on the ‘pack by’ flag will determine whether the order number will be displayed or entered | |
Pallet Id | The pallet id to be packed | Dependant on the ‘pack by’ flag will determine whether the order number will be displayed or entered | |
Order Line No | The line no of the product within the order detail record | Display only | |
Stockist Code/Sub Code | The owner code and sub code of the product within the order detail record | Display only | |
Stock Code | The stock code of the order to be packed | Display only | |
Rotation No | The rotation number (batch) of the product to be packed | Display only | |
Order Owner / sub code | The owner code and sub code of the product within the order detail record | Display only | |
Packed Cases | Quantity of cases to be packed | Cannot exceed the total number of picked cases for the pallet | |
Packed Units | Quantity of units to be packed | Cannot exceed the total number of picked units for the pallet | |
Hazardous | Field that displays whether the product(s) to be packed are hazardous or not | Y or N – based on the hazardous flag on stock maintenance – display only |
Button | Description |
---|---|
Re-Open Pack | Reopens the pack once closed to enable the user to make changes to the pack details |
Close | Closes the pack ready for the main pack to be closed |
Serials | Takes the user to an additional screen in order to add/amend serial numbers for the product |
Labels | Allows the user to print packing detail labels |
Order Packing Maintenance (WHS1944)
The Order Packing Maintenance screen allows for the parameters for the packing screen to be defined, including user prompts and formatting of of any documentation that will be produced from the system.

Field Name | Description | Options | Generic Value |
---|---|---|---|
Stockist Code | The Owner code for the packing operation | LOV available to select a valid owner code | Will default to the working Owner Code |
Single Order Packing | Whether to allow multiple orders to be packed together | Yes or No | Defined by client (Normally Yes) |
Status Flag | Orders status to allow packing | Pick List Pick Confirmed Pick Confirmed with Order Priority |
Defined by client |
Order Validation | Whether to allow the order to be sent to the customer short packed | Prompt on Closure Force Full Order Pack Allow Short Order Pack |
Defined by client |
Lane Capture | To capture who or where the order was packed for auditing | Location User Id Not Required |
Defined by client |
Reference | How to generate reference numbers for the pack | Generate Manual Not Required |
Defined by client |
Default Pack Level | Number of levels that you can pack down to i.e. a pack within a pack would have a level of 2 | 1-9 | Defined by client |
Default Pack Type | How to select and identify the product for packing | By Order By Order Line By Pallet By Rotation By Stock Code |
Defined by client |
Default Pack Details | Whether capture packing details | Yes or No | Defined by client (default is Yes) |
Weight Capture | To indicate whether weight is to be automatically calulated and displayed for the pack. Net weight is the sum of the stock packed, and the gross weight is the sum of the stock packed plus the weight of the package type. | Yes or No | Defined by client |
Packing List Required | Indicate whether a pick list is to be produced and if so how | Auto Print List Multiple Copies Do Not Print List Auto Print Multiple Copies Print List |
Defined by client |
Interface Required | Functionality not migrated | Yes or No | Defined by client |
Detail Label Required | To produce Detailed Labels and at what level | Print at all Levels Do Not Print Labels Print Labels |
Defined by client |
Package Label Required | To produce Package Lables and at what level | Print at all Levels Do Not Print Labels Print Labels |
Defined by client |
Auto Package Label Production | Whether the user is to be prompted to manually generate Package Labels or for the system to automatically produce the labels | Yes or No | Defined by client |
Streamlined Entry | Designed to move the user through both the header and the detail packing screens with the minimum of data entry | Yes or No | Defined by client |
Allow Consolidated Pallets | Functionality not migrated | Yes or No | Defined by client |
Generate Carrier Labels | Whether a carrier label is to be produced | Yes or No | Defined by client |
Stop Short Packing | Whether an order can be short packed | Yes or No | Defined by client |
Volume Capture | To indicate whether volume is to be automatically calulated and displayed for the pack. The calculation is for the product only and does not include the package type. | Yes or No | Defined by client |
Packing List Format | Format of the Packing List | Formats Include - FWL (default) SIG (client specific) |
Defined by client if required |
Interface Format | Functionality not migrated | Formats Include - FWL (default) |
Defined by client if required |
Detail Label Format | Format of the Detailed Label | Formats Include - FWL (default) |
Defined by client if required |
Package Label Format | Format of the Package Label | Formats Include - FWL (default) |
Defined by client if required |
Default Qty | Whether to pack by the pack type or by a case at a time. | Remaining to Pack Single Case |
Defined by client |
Detail Packing Format | Format of the Detailed Packing List | Formats Include - FWL (default) SIG (client specific) |
Defined by client if required |
Auto Close | If set to Yes, the system will automatically close the pack once the final product has been packed. Dependent on printing requirements and setup, labels and notes will also be automatically produced. | Yes or No | Defined by client |
Carrier Required | If set to yes the user will be prompted to add a Carrier Code and Carrier Reference, another screen will be displayed displaying a list of carrier codes and services to be selected from, if required carrier labels can also be produced. (Client specific) | Yes or No | Defined by client (default is No) |
Default Package Type | A value must be entered if packing with RF | LOV on Pallet Types | Defined by client if required |
Shipment Pallets
Shipment Pallet Label Production
Setup: In order to use the shipment pallet despatch functionality, a shipment label must first be produced. These labels use the last number type ‘SHPP’ in warehouse document numbering to determine the range to be incremented by 1. These labels are then put onto the despatch pallet and used to scan packs onto in order to despatch packs rather than orders.
Warehouse Document Numbering (WHS9020)
Ensure a Type value of SHHP has been entered.
Default Printer Maintenace (WHS0002)
Ensure a Default Printer value has been set up for all relevant users - see Default Printers Maintenance (WHS0002)
Shipment Label Print WHS1941)
To produce the labels enter the number of labels required followed by the start number
Field Name | Description | Options |
---|---|---|
Number of Pallet Labels | The number of shipment pallet labels to be produced | 0 – 999 |
Shipment Pallet Id | The specific shipment pallet id a label is to be reproduced for | Must be within the SHPP last number range (i.e. already had a label produced for it) |
Buttons | Description |
---|---|
Create | Updates the last number in warehouse document numbering and generates the labels |
Reprint | Reprints the selected number of labels or the label of the specific shipment pallet id selected |
Shipment Label Print (WHS1942)
Field Name | Description | Options |
---|---|---|
Search By | Determines how the selection of packages will be made. The next field will display the shipment pallet number related to the selection criteria | Pack List No Order Number Package Id Shipment Pallet |
Pack List No | Displays the pack list no assigned to the shipment pallet | Display only |
Package Ref | Displays the pack ref of the order assigned to the shipment pallet | Display only |
Pack Status | Displays the pack status for the pack list | Display only |
Shipment Pallet | The shipment pallet number the package is assigned to | Display only |
Pallet Location | The default shipment pallet location the package has been stored in prior to despatch | Must have been created in location codes maintenance |
Interfaced | Displays the interface status of the package as to whether the carrier interface has been populated (client specific) | Y or blank |
Order Number | The order number relating to the package id | Display only |
Order Status | The status of the order | Display only |
Invoice | Determines whether a commercial invoice has been received for the order (client specific) | Y or blank |
Priority | The order priority of the package – note, dependant on the settings for the sharing of order priorities, some order priorities cannot be mixed on a shipment pallet | Display only |
Carrier | The carrier code of the order associated with the package id | Display only |
Buttons | Description | Options |
---|---|---|
Add Package | Enables the user to add specific packages to the selected shipment pallet | A popup box will appear prompting for pack ref – LOV available |
Move Package | Allows the user to move selected packages onto other existing shipment pallets | - |
Move Pallet | Moves all packages for this shipment pallet onto another existing shipment pallet | - |
Close Pallet | Closes the shipment pallet ready for despatch | If using commercial invoice, the pallet cannot be closed until all packs for the pallet have received a commercial invoice |
Despatch Pallet | Despatches the pallet and sets all related orders to status 9 | No despatch documentation is produced |
Shipment Label Print Package Details Tab(WHS1942)
Field Name | Description | Options |
---|---|---|
Field Name | Description Options | Display only |
Order Num | The order number of the selected pack ref | Display only |
Line No | The order detail line no for the package | Display only |
Rotation No | The system rotation (batch) for this package | Display only |
Pallet Id | The system pallet id for this package | Display only |
Haz | Displays a flag to determine whether the product on the package is hazardous or not | Y or N |
Packed Cases | The quantity of cases for the pack ref | Display only |
Packed Units | The quantity of units for the pack ref | Display only |
Stockist Code/Sub Code | The owner code and sub code of the order | Display only |
Stock Code | The product code of the goods packed on this pack ref | Display only |
Change Order Status (SOS1270)
The Change Order Status screen allows the user to Hold or release an order dependent on its status.
Field Information
- Select by: - Drop down list that allows the user to select an Order Status (current values include Held, Committed or Pick Confirmed)
- Order Num: - Allows you to enter the number directly or to call a LOV that will display orders at the relevant status dependent on the 'Select by' value
Once the order number has been selected the name and address details will be displayed in the header section, the detail section will display the Product Types for the order and the user can then select a new order status. Upon saving the changes the system will validate the new status and update the record.
NB:The system will validate the Order Status change to ensure that it is a valid change, i.e. it will not be possible to set an order from Committed to Pick Confirmed.
Split Order (SOS5100)
Using the Split Order's screen it will be possible for orders to be split to allow for multiple despatches. Upon entry into the form the user will be able to query an order number at status 1 and a list of the order lines and product codes and order quantities will be displayed. The user will then be able to choose order lines to be split onto a new sales order using radio buttons. Once the user has chosen all the order lines they wish to be transferred, they will be expected to click a “Confirmation” button to create the new order.
Upon confirmation, the order lines chosen will be removed from the current order and a new system order number will be created. The user will be informed of the new system order number. The new order will contain the same header details as the original. The address and order level text details will be duplicated. The total ordered qty, weight and volume will be recalculated for both orders. The order entry date, time and order taker user id will be transferred from the original order number. If the original order is assigned to a route/load, then the new order will also be assigned. Any relevant EDI jobs will process the order as standard.
It will not be possible to split an order that has gone beyond status ‘1’, i.e. has been allocated. Once the new order has been created, it will not be possible to transfer the order lines back to the original order.
POD Confirmation (SOS3000)
An optional process, if a record for Proof of Delivery is required, the following screen can be used to confirm how many cases/units have actually been delivered to the end customer.
Note: in order to use this functionality, ‘POD Required’ flag must be set to ‘Y’ in customer maintenance. (see below)
Orders must despatched and be at the correct status to allow for them to be POD confirmed, i.e. status 'F'
Field Name | Description | Options |
---|---|---|
Order Owner Code ** | The owner of the order to be POD confirmed – will default to current | Must have been created in owner maintenance – LOV available |
Order ** | The order number to be pod confirmed | Must be at status ‘F’ |
Customer Code | The customer code the order was raised against | Display only |
Addr No | The address number the order was delivered to | Display only |
Despatch Date | The date the order was despatch confirmed | Display only |
Date/Time Delivered ** | Prompts for a date and time for actual physical delivery to the end customer | Must be a valid date and time |
POD Received ** | Prompts for confirmation that the POD was actually received from the end customer | Y or N |
Date/Time Received ** | The date and time the POD was received | Must be a valid date and time |
Signed By ** | The name of the person who signed for the delivery | 20 character free text field |
Expected Rtn Date | The date the stock is due to be returned to the warehouse (if a return is required) | Must be a valid date |
Goods Return Note | The return note reference number the order will be returned on | 30 digit numerical field |
ETA Date | The estimate time the goods will arrive at the warehouse | Must be a valid time |
On Time | Specifies whether the order was delivered on time | Y or N |
Totals: Ordered | The total ordered quantity | Display only |
Totals: Despatched | The total quantity despatch confirmed | Display only |
Totals: Proved Del | The actual quantity received on the POD – note this will default to the same as the despatched quantity unless amended | Display only |
Product | The stock code of the order line | Display only |
Rotation No | The system rotation number (batch) of the order line | Display only |
Weight Despd | The total weight of the despatch confirmed quantity | Display only |
Description | The product description of the stock ordered | Display only |
Delivered | The quantity received on the POD – note this will default to the same as the despatched quantity unless amended | Display only |
Del Weight | The total weight of the quantity on the POD – will update if the quantity is amended | Display only |
Buttons | Description |
---|---|
Proof Delivery | Takes the user to POD text which allows them to enter specific information received on the POD 5 x 70 character free text fields |
POD Reason Codes | Takes the user to an additional screen to enter reason codes if the quantity to be POD confirmed is different to the despatched quantity. This will then put the missing stock into a virtual location for investigation |
Confirm POD | Confirms the totals entered as POD confirmed. Once actioned, cannot be reversed |
Cancel | Cancels the POD confirmation (not migrated) |
POD Reason Code
Field Information -
Reason - Reason Code and description which can be either directly entered or selected from a LOV
Not Delivered - The quantity of stock not delivered
Good/Bad - Type of reason code, Good means the stock will be returned to the warehouse
Glossary
Term or Acronym | Meaning |
---|---|
WMS | Warehouse Management System. The OBS WMS is Calidus 3pl |
SOP | Sales Order Process. |
EDI | Electronic Data Interchange. The electronic transfer of documents or business data from one computer system to another computer system, i.e. from one trading partner to another trading partner without human intervention. |
LOV | List of Values |
Document History
Copyright OBS Logistics © 2008
The information contained herein is the property of OBS Logistics and is supplied without liability for errors or omissions. No part may be reproduced or used except as authorised by contract or other written permission. The copyright and foregoing restriction on reproduction and use extend to all media in which the information may be embodied