Table of Contents

ASNs and RMAs

Colin Updated by Colin

ShipStream's robust process for receiving and processing inbound inventory helps you ensure that the inventory you receive matches what you expected and is counted accurately, yet efficiently. The data captured during this process is detailed for maximum accountability. There are three types of "deliveries" that behave very similarly with the minor differences being mainly the ancillary data fields.

  • ASN—Advanced Shipment Notices (new inventory from a supplier)
  • RMA—Return Merchandise Authorizations (returns from a customer)
  • Other Delivery—Any other user-created delivery that isn't an ASN or RMA

These deliveries can all be managed under the Receiving menu in ShipStream. They also all use the same API methods under the "delivery" namespace.

Screenshot of Receiving > ASNs page
For the pre-2025.0 documentation, please see here.

Receiving Workflow

At a high level, the workflow to receive an ASN, RMA or Other Delivery is as follows:

  1. Accept by specifying a count of the number of containers received (typically either the number of pallets for ASNs, the number of packages for RMAs, or just one for a floor-loaded trailer)
  2. Process the containers by counting the actual inventory received (and collect lot numbers and serial numbers as needed)
  3. Put-away the processed inventory making it available for sale upon "commit"

The following diagram depicts how this process works, starting with a New delivery and ending with a Complete delivery.

The above diagram is slightly over-simplified because each "container" can be processed independently and has its own status. So, for example, the contents of one container could be already counted, put-away and available for sale, while another container from the same delivery would have just been accepted or may not even be known to exist yet.

Additionally, a container can be processed into one or more put-aways, and any number of containers of the same delivery type can be processed to the same put-away. For example, one could process a large batch of RMAs at once and then put them all away in one pass, or one floor-loaded trailer could be processed to multiple put-aways, so one portion can be put-away and committed while the other portion is still being processed.

How these container items are distributed is determined by the user during processing.

Create a Delivery

Ideally, a delivery is created before it arrives on site, although it is also possible to create an empty delivery on the fly. Deliveries can be created via the user interface or API.

To create a new delivery from the user interface, the steps are the same for Admin and Client users, in this example we'll create an ASN:

  1. Navigate to the grid corresponding to the type of delivery you want to create: Receiving > ASNs.
  2. Click Create New ASN.
  3. Select a Merchant and Warehouse.
  4. Click Add Products and select the products and quantity for each expected to be received and then click Add Selected Product(s) to ASN. This step can be repeated as many times as needed.
  5. Fill out the remaining form fields. Providing details about the delivery will help ensure that it is properly identified upon receipt.
  6. Click Submit ASN
The Expected Containers does not have to be an exact count, but it can help correctly identify a delivery. If the expected number is not what is received, this can be a red flag to watch for. It is also used to pre-populate the number of received containers when the user is prompted to receive each container.

ASN Special Fields

ASNs have three additional fields: Shipment Type, BOL, and SCAC. The latter two may be configured at System > Configuration > Warehouse > ASNs > General to be either Disabled, Optional or Required depending on your preferences.

Shipment Type

The Shipment Type helps determine which other fields should be optional or required. The options are:

  • International Maritime Freight
  • International Air Freight
  • FTL Freight
  • LTL Freight
  • Parcel
  • Other/Unknown
Bill of Lading

The Bill of Lading is a legal document commonly used in freight shipping and issued by the carrier to detail the goods being shipped and the destination. This field is not displayed for Parcel or Other/Unknown shipment types.

SCAC

The SCAC (Standard Carrier Alpha Code) is typically clearly marked on a shipper's containers and can be useful for identifying the carrier for International Maritime Freight type shipments. This field accepts 2 to 4 characters as these codes are assigned by a central authority. A list of common SCACs is provided, but the user may provide any 2-4 character code.

Accept a Delivery

Accepting a delivery indicates that it has physically arrived at the correct warehouse. This step involves submitting the number of "containers" (used in a general sense, not necessarily a standard metal shipping container) that were received.

You can define your own container types by navigating to Receiving > Container Types. Having accurate accounting of container types can improve your billing accuracy and also allow for more accurate tare weights.
Accepting a delivery container sets the Weighed At timestamp, which is used as the Origination Date for lot tracking and the basis for calculating the Receive By Deadline.

You may use the Admin UI or the Scanner UI to accept a delivery. Each process is described below.

Admin UI

  1. If the delivery has a tracking number, scan it to navigate directly to the delivery page. Otherwise, use the Global Search or search the appropriate grid from the Receiving menu until you find the correct delivery.
  2. Click Accept Delivery and submit the dialog. Here you may enter a different number of containers than what was "expected" depending on your observations and desired processes.
    Example: If you have a truck full of pallets and each one is complex and will take some time to process, you will benefit from accepting each one individually. However, if the entire truck contains all the same SKU and they are easy to count (i.e. no lot or serial numbers, no teardown required), accepting the delivery as one "container" may make for faster processing.
    Choosing to Accept all containers allows you to receive all containers as the same type and bypass the next step in case you are not interested in capturing weights or notes.
  3. If you chose Accept all containers, you can skip this step. Upon submitting the dialog in step 3, you will be automatically navigated to the Containers tab. Click Receive Next and provide the details for the container.
The Weight can be pulled directly from a scale if it is connected to the Device Hub by clicking the button beside the Weight field.
  1. Repeat step 3 until all containers are received.

Once all containers are received, the delivery status will be Ready To Process, and you are ready to begin processing!

If the delivery was created on-the-fly or otherwise with no line items, the status will remain Accepted until the expected items are added to the delivery. Once the line items are added, it will then advance to Ready to Process automatically.

Scanner UI

  1. From the Scanner home page, tap Delivery.
  2. Scan a tracking number, BOL or other identifier, enter a value to search by, or use the drill-down menus to locate the correct delivery.
  3. Confirm that the details of the delivery are correct, adjust the Received Containers field, and tap Accept Delivery. The "Unknown containers" will be created in the amount entered, and the status will advance to Accepting.
You may repeat this step and change the number of Received Containers if needed. New containers may be added, or unknown containers may be removed to match the new number entered, but accepted containers will not be deleted.
  1. Enter the container details and tap Save Container for each container until all containers have been accepted.
The Weight can be pulled directly from a scale if it is connected to the Device Hub by tapping the ↻ button beside the Weight field.
As each container is added, a label will be sent to the selected label printer. This label should be affixed securely to the container as it will identify it uniquely and be required for the processing step.

Example container label:

  1. After the last container has been submitted, you will have an opportunity to review your work and make adjustments if needed. Tap Yes to add another container or No, all done! to finalize the acceptance.

The delivery status will now be Ready To Process, and you are ready to begin processing!

If the delivery was created on-the-fly or otherwise with no line items, the status will remain Accepted until the expected items are added to the delivery. Once the line items are added, it will then advance to Ready to Process automatically.

Closing a Delivery

ASNs and Other Deliveries have an Open or Closed status that indicates whether more containers can be accepted. Typically, the only reason to leave a delivery open would be when you are waiting for the remainder of the shipment to arrive. Closing deliveries keeps them organized so they don't clutter your list of expected deliveries and allows integrations to know when a delivery is truly completed.

The Auto-Close feature causes a delivery to be closed automatically upon receipt of the last container. For example, if you indicate there are four containers upon initial receipt, when the fourth container is accepted, the delivery will transition from Open to Closed.

Once closed, the delivery can still be re-opened until the delivery is Complete by clicking Re-Open on the delivery page.

While the Auto-Close property can be set for each delivery, it defaults to using the value stored in the configuration, which is located at System > Configuration > ASNs/Other Deliveries > General > Auto-Close Default. This can be set differently for different Merchants to best suit your needs.

Processing

The processing step consists of the following components:

  • identifying items received and matching them to line items on the delivery
  • counting the quantity of items received
  • noting any damaged or missing items (shortages)
  • noting any unexpected items or quantities (overages)
  • capturing lot and expiration data
  • capturing serial numbers
Unlike the accepting step, this process is more involved and benefits greatly from using a barcode scanner throughout, so it is strongly recommended to use the Scanner UI.

Admin UI

You can fully process the delivery through the Admin UI, although it is recommended to perform the counting steps in the Scanner UI for the best accuracy and efficiency.

You will also use this UI when approving or rejecting exceptions that someone created while processing a delivery in the Scanner UI.
  1. Navigate to the delivery page by:
    1. scanning a barcode associated with the delivery
      The types of labels that can be scanned include Container Labels and Tracking Numbers.
    2. navigating to Receiving > ASNs, Receiving > RMAs or Receiving > Other Deliveries and using the grid to locate
  2. Click Process to load the Processing page
  3. Click Count to open the Count dialog and submit the count value
    1. Select the correct Source according to which container you are counting from
    2. Select the correct Destination according to the target you are counting to
    3. If you choose "Create new Put-Away", be sure to print the Put-Away Label and keep it with the counted inventory for later for the Put-Away step.
    4. Enter an amount and choose Add, Subtract or Update according to how you want to change the current count.
    5. When you select the Count field, the previous amount will be shown to the right.
    6. Click Submit to apply the count change
  4. Repeat step 3 until all items have been counted
You can click Add Item to add items to the delivery that are missing from the items list.
  1. Report any damaged goods by clicking Shortage and submitting the dialog.
  2. When you are finished processing a container, click the container in the left sidebar and click Finish Processing. This will allow any in-place Put-Aways to become Ready for put-away.
  3. If you have any Put-Aways that are not yet closed but ready to be closed, click on it in the sidebar and click Close.
Leave the put-away open if you want to process multiple deliveries of the same type to a single put-away.
  1. Upon finishing the last container and approving all exceptions, the processing is finished!
See the Processing Exceptions section below for more information about shortages and overages.

Scanner UI

  1. From the Scanner home page, tap Processing.
  2. Scan the container label for the delivery you would like to process.
  3. Tap Start Processing to enter the main processing page where you can see the progress and begin collecting the information about the received inventory.
    1. If there are Processing Comments for the delivery, they will be shown with a modal dialog to ensure they are brought to the attention of the user as well as displayed at the top of the page throughout the process. Tap Confirm to dismiss the modal.

Main processing page:

Change the Put-Away Target

Depending on the circumstances and your defined processes, you may wish to "process" each container to different types of "Put-Away Targets". Tap Change at the top right of the screen to change the target.

  • Process In-Place - This is the default behaviour whereby the container label will be re-used for put-away. In-place works well when there is a one-to-one relationship between received containers and the put-away process. Be sure to keep your container label printed during the Delivery step in-tact for the put-away process.
  • New Put-Away - This creates a new put-away and immediately prints a Put-Away Label. This allows you to either combine multiple deliveries or containers into a single Put-Away, or split a container into multiple smaller Put-Aways or any combination thereof.
  • Existing Put-Away - There is not a button for this option, rather you just scan the existing Put-Away Label to select it.
  • License Plate - Similar to a Put-Away Label, this allows you to split and combine containers. The License Plate is meant to be a pre-generated label that is either disposable or re-usable and affixed to an inventory control cone or similar device.
Change the Source Container

From the main processing page, the container highlighted in the list of containers indicates which container you are counting from. You can scan a delivery container label or tap on its row in the list of containers to change the source.

Process Item

With the correct target and source selected you are ready to process each item. Scan an item's barcode to navigate to the Process Item page.

Note the buttons highlighted with the yellow arrows. You can use these to print additional product barcode labels, update the weight, or update the dimensions.
  1. As the note at the bottom of the screen says, tap Count or double-scan the product barcode to enter the counting step.
The "double-scan" refers to rapidly scanning the product barcode two times in a row (within a half-second), similar to double-clicking with a mouse. This allows the user to open the Process Item page (one scan) and begin counting (double-scan) without having to tap on a screen for better hands-free operation.
  1. Use the count dialog to obtain and submit an accurate count of the number of units of the item on the source container. This amount must only include the items on the source container and not any other containers.

Upon submitting the count, you will be returned to the main processing page.

The progress bar indicates the estimated weight based on the count, product unit weight and tare weight of the container compared to the observed weight if this was captured during the accepting step. The color of the bar will be blue unless the counted weight is over the observed weight, in which case it will be one of the other colors seen in the chart below representing a range of 102% to 132%+ of the expected value.
  1. Repeat steps 4 and 5 for all items on the source container
  2. Tap the green Finish {Container} and answer Yes to "Are you sure?".
  3. Scan a different source container and perform steps 4 through 6 until all containers are fully processed.

Processing Exceptions

A processing exception indicates that what was counted during processing does not match what was expected when the ASN was created. There are three types of exceptions that may occur:

  • Overage - More was counted than was expected.
  • Shortage/Damaged - Units were damaged and unsellable.
  • Shortage/Missing - Less was counted than was expected.

Overages are created automatically after a container is "finished", while shortages are created by the user by tapping the Shortage button.

After submitting the shortage:

Approving and Rejecting

When a delivery has exceptions after processing, the status will not advance to Processed, but rather it will be Processing Exception. The Exceptions can be seen at the bottom of the main page:

To address the exceptions, click Process to open the Processing page. You can then choose to Accept or Reject each exception based on its merits.

  • Approve - The submitted count will be accepted as the correct number.
  • Reject - The submitted count will be returned to the amount excluding the excepted amount. You should then update the count as appropriate.

Any unapproved overages will appear on the Put-Away under Awaiting Approval and will not be possible to put-away until the overage is approved.

Once all exceptions have been finalized, the delivery status may advance to Processed (if there are no other containers being processed). If any exceptions were rejected, the delivery will remain in Processing status until a user finishes the processing, allowing for recounts as necessary.

The steps to process the exceptions are as follows:

  1. Navigate to the delivery page in the Admin UI by scanning a barcode or use the Global Search or search the appropriate grid from the Receiving menu until you find the correct delivery.
  2. Click Process.
  3. Click Accept or Reject for each exception and Submit the dialog with an optional comment. When rejecting overages, you may need to specify which Put-Away the inventory belongs to.
  4. If you rejected one or more exceptions, click to Container in the left sidebar (1) and click Finish Processing (2) to finalize the container again after making any corrections needed.

Put-Away

The inventory received must be "put-away" before it can be made available. Please see the Put-Aways page for more detailed information about processing Put-Aways.

Committing Inventory

Inventory put on the shelf using a Put-Away is not immediately made available for sale. The Put-Away or the associated delivery must be committed for the inventory to transfer from Put-Away to Available.

Inventory becoming "Available" has implications for connected integrations as this often results in an immediate update of the inventory and availability on upstream shopping carts, marketplaces, etc. as well as webhooks and automatic allocation of backorders to the newly available inventory.

Depending on the merchant's preferences, they may wish to "gatekeep" the commit process. For example, the merchant may wish to update their product pricing before inventory "goes live". To this end, there is an Auto-Commit option on the ASN or Other Delivery.

While the Auto-Commit property can be set for each delivery, it defaults to using the value stored in the configuration, which is located at System > Configuration > ASNs/Other Deliveries > General > Auto-Commit Default. This can be set differently for different Merchants to best suit your needs.

If a delivery has Auto-Commit enabled, either through the default configuration or the override on the individual delivery, each Put-Away will be automatically committed as the Put-Away is completed and once the final one is committed, the delivery will advance to either Committed or Complete (if it is still open).

The Commit step may be completed by either Organization Users or Client Users.

Receive By Deadline

If enabled, the Receive By Deadline feature will help you track when an ASN, RMA or Other Delivery container should be received, by setting a Receive By Deadline time on the delivery. This value is set when the delivery is accepted according to the configuration.

The configuration is located in a separate section for each delivery type at System > Configuration > Warehouse > {ASNs, RMAs or Other Deliveries} > Receive By Deadline and consists of four values used in the formula to derive the correct Receive By Deadline.

  • Receive By Deadline - The number of business days in the future to set the deadline. If empty, the Receive By Deadline feature will be disabled.
  • Receive By Cutoff Time - The time after which the current day is considered to be "over" such that the next business day will be considered the first day it was received.
  • Receive By Rollover Time - When the cutoff time is passed, the deadline will be set to this time of day.
  • Holidays - The days that are not counted as business days.

Example: If the Deadline is 2 days, the Cutoff Time is noon and the Rollover Time is 10am:

  • A delivery received on Monday at 9am would have a Receive By Deadline of Wednesday at 9am (48 hours).
  • A delivery received on Monday at 1pm would have a Receive By Deadline of Thursday at 10am (69 hours).
The times are evaluated in the warehouse's timezone, but you may also override these times for each warehouse.

You may also manually override the Receive By Deadline by clicking Update Deadline on the delivery page. A message will be added to the delivery's History noting the old and new deadline.

Email Notifications

You may elect to send email notifications at specific moments in the lifecycle of an ASN, RMA or Other Delivery. The email will be sent to a Default Contact which is a reference to one of the configured Email Addresses (red arrow), and/or any Additional Contacts which may be a comma-separated list of email addresses.

See System > Configuration > Warehouse > {ASNs, RMAs, Other Deliveries} > {Status} where {Status} is one of:

  • New - a delivery is created
  • Accepted -  a delivery advances to Accepted (created on-the-fly or with zero SKUs)
  • Ready to Process - a delivery status advances to Ready To Process
    • The Only Accepted option allows you to specify that the email is only sent if the status was previously Accepted. That is, only if the delivery was accepted while it was empty and then a user added items to it after it was accepted.
  • Processing -  events occuring during and on completion of processing
  • Put-Away -  when a delivery is put-away
  • Completed - when a delivery is committed to inventory or otherwise completed
  • Canceled - when a delivery is canceled or voided

Example email:

Actionable Reports

Actionable Reports are email notices sent once a day at 8am in the morning to provide merchants with a quick snapshot of their deliveries.

How did we do?

Actionable Reports

Contact