Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

On this page, it will be explained the below topics:


Fulfilment Workflow

Fulfilment is created three times daily

Selecting the orders that can be fulfilled

Orders are fulfilled if they comply with the below requirements:

  1. Select all orders with the status Paid, Partially Refunded, Partially Paid) according to the product type (Warranty, eBooks, Coupon, Audio File and Fixed Price Warranty)

  2. Select all orders with Reshipping status and the same product type above.

Creating the fulfillments

Prior to sending orders to be fulfilled, the system verifies the below:

  1. Check if there were any problems last time the system ran the orders, which need to be fulfilled, if any issue is spotted the system will correct the order(s)

  2. Remove orders with email such as "test.com"

  3. Remove orders with Partially Refunded status

  4. Remove old fulfillments that have been set as Reship, as order status, and have a Fatal Shipping Error as fulfilment status

  5. Set with a Backorders status, Partially Paid orders in order to request the full remaining payment from the customer

  6. Set the order status to Shipping for orders with Paid status, Shipping error, Reshipping and Partially refunded

  7. Set the fulfilment tatus New (1), in order to prepare the system for the next step which is: to assign the warehouse

  8. Fix old processed fulfillments – the system has a list of warehouse response errors, so in some cases, the system will automatically recover those fulfillments to the queue

  9. Update the Inventory fields: Reserved New and Reserved Sent

Assign a Warehouse

Orders are assigned to a specific Warehouse by following the below rules:

  1. Only active warehouses, set as Fulfillment Center and with API Integration will be used

  2. Check for fulfillments with status Error (4) that was processed 36 hours ago and enqueue them – the status is set as New (1)

  3. Select all fulfillments with the status New (1)

  4. Select all Warehouse Products with available quantity [deducting from the quantity reserved for Pre-sale – not paid yet]

  5. Check if there is any package group (DFO is the only one that uses it)

Remove orders from the fulfilment queue

Orders that adhere to the below requirements are removed from the fulfilment queue:

  1. Ignore fulfillments in which SKU hasn’t been included in any warehouse and without available stock

  2. Check shipping countries

  3. Send to backorder fulfillments without warehouse (no available stock)

  4. Update the inventory by checking the warehouse priority

Include orders from the fulfilment queue

Orders that obey the below requirements are included in the fulfilment queue:

  1. Select all fulfillments with status New (1) and without any previously assigned warehouse, grouping by email/zip code

  2. Check if a warehouse is available (according to the shipping countries, available quantity, distance, and priority), then orders can fit one of the below scenarios:

A. If a warehouse is available

B. If no warehouse is available

  1. Update fulfillment with this new warehouse

  2. Update inventory

  1. Send these fulfillments to backorder

  2. Add the reason into order notes table

Fulfillments are sent to warehouses three times per day

  1. For the warehouses that have automatic stock reconciliation, the inventory is updated and just continues if this process is successful

  2. Create packages for fulfilment with status New (1) and with assigned warehouse

  3. Update fulfilment status to Processing (9)

  4. DFO is the only one that group packages, which needs to comply with the below rules:

    1. A single package may contain products of multiple fulfilments

    2. It is necessary to limit the weight of the package (according to each warehouse)

    3. If the warehouse limit weight per package is not null, use this value (Kg)

    4. If the warehouse limit weight per package is null, the packages will not be split based on weight

  5. The system will also try to group similar SKUs in the same package

  6. Before sending the fulfillments to the warehouse, the availability of stock will be checked between the products in the package and the warehouse’s real-time stock quantity

  7. When the warehouse's real-time inventory is not sufficient, the system sends these orders to the backorder

  8. Right after the shipment, each warehouse returns a response via the API, which is handled according to the documentation for each warehouse

  9. The result of the API is updated in the system can be:

    1. If successful, the fulfilment will be set to status Sent (2)

    2. If successful and the warehouse provide the tracking number in the same response, the fulfilment status is set to Processed (3)

    3. If error, the fulfilment status will be set Error (4)

  10. Moreover, for all cases, the processing details field is filled in when available with additional information

  11. The inventory is also updated again

  12. Ultimately, the system checks the processing details looking for some warehouse’s duplicate answers (security) and in the case finds one or some, it updates the fulfilment process according to the response, so to avoid future errors.

Tracking Numbers information are received four times a day

In order to check with the Warehouses database if any tracking information is available, the system will follow the below steps.

  1. Get all fulfillments with status Sent (4) that were sent to the warehouse 12 hours ago

  2. Try getting the tracking number by API from the warehouses

  3. Updates the system with the return of the warehouse (each warehouse has specific documentation)

    1. If a successful response is returned, then set the fulfilment status to Processed (3), as well as fill in the courier name and other processing details

    2. If a failed response is returned, then, set the fulfilment status to Waiting for Tracking Number (7). The system will try again later.

Recovering Fulfillment Information

Recover Shipments Information

  • Fulfillments with status Error (4) will be set as New (1), after 3 hours.

  • This process will be carried out in twelve attempts.

Recover Tracking Information

Once a week, the system tries to recover all pending tracking numbers from the last 3 months.

Recover Orders that have not been Processed

If something happens during the process of sending the orders to be fulfilled to the warehouse, and they have their fulfilment status set to Processing (9), the system will recover their status to New (1) so that it resumes processing on the next shipment.

Backorder Workflow

Backorders are processed four times per day

4.1.    Insufficient quantity

4.1.1.Select of fulfillments sent to the warehouses, but which are reject for know reasons, such as insufficient quantity, failure, rejected and others

4.1.2.Set fulfillment status to 8 – Backorder, add it to backorders and update orders status to 26 – Backorder, in addition to including notes in order notes for orders that do not have thank you cards

4.1.3.Remove thank you card reference

4.1.4.Re-submits orders without the thank you cart (set fulfillment status to 1 – New)

4.2.   Reconcile Inventory

4.2.1. For warehouses that have stock conciliation, the available quantity is updated

4.3.   Update Pre-Sale Inventory

4.3.1.Update WarehouseQuantityReservedPreSale field by deducting future sales backorders

4.4.   Process unpaid partially paid orders

4.4.1.Feed the FutureSaleBackorders table with orders that are Partially Paid, not yet charged, with stock available for that, so that we can request payment

4.5.   Fix backorders

4.5.1. In cases where we had a problem during processing, the system ensures that we will proceed correctly

4.5.1.1.             Remove any eventually backorders that do not have fulfillments with status 8 – Backorder

4.5.1.2.             Add to backorder table fulfillments with status 8 – Backorder that eventually are not already in backorder

4.5.1.3.             Updates the order status to 26 - Backorder for fulfillments that are in status 8 - Backorder and whose orders are not in Backorder

4.5.1.4.             Whenever the create fulfillments process fails, recreate the reshipments

4.6.   Process backorders

4.6.1.Process priority orders first, then the others

4.6.2.Get dates to process (ascending order)

4.6.3.Select all backorder for each day, by priority adding Partially Paid orders that were paid

4.6.4.Grouping rule

4.6.4.1.             Active: group orders by email

4.6.4.2.             Not active: do not apply any group rule

4.6.5.Try to find a warehouse available to delivery the products

4.6.6.Remove from FutureSalesBackorders (Pre-sale) orders that have warehouse to delivery

4.6.7.Set fulfillments status to 1 – New and assign the warehouse

4.6.8.Update the inventory

4.6.9.Update quantity reserved for pre-sale

4.6.10.   Checks that there is no negative value for quantity reserved pre-sale and quantity available

4.6.11.   Remove fulfillment from backorder’s table

4.6.12.   Update order status to 3 – Shipping

4.7.   Create fulfillments

4.7.1. See item 1

4.8.   Remove from queue test orders

4.8.1. Set fulfillment status to 6 – Removed from queue where customer name is Automation or Tester or something like fake

4.9.   Check duplicates

4.9.1.For security reasons, check if there are any fulfillments with same shipping reference with status not equal to 6 – Removed from queue

4.10.                    Assign warehouse

4.10.1.   See item 2

4.11.                    Process orders with 100% of available products

4.11.1.   Backorders group by email and all products available to delivery

4.12.                    Reconcile inventory

4.12.1.   For warehouses that have stock conciliation, quantity available is update

 

III - Orders greater than 50%

  1. This process is responsible for processing all pending orders in a specific situation, so it is described separately.

5.1.    Group all backorders by order number and related upsell order

5.2.    Check the increases in the warehouses since last time that this process runs, to avoid process orders without available stock

5.3.    Check if there is available warehouse

5.3.1.Must have available stock

5.3.2.Must delivery in that country

5.3.3.If the delivery country is US, CA or MX and the warehouse is in US or CA the system will accept as a valid warehouse

5.3.4.Check warehouse distance

5.3.5.Confirm that inventory is available in that selected warehouse

5.3.6.If the products, which have stock available, do we have more than 50% or the SKU is in exception list and with inventory available we will send this fulfillment

5.3.6.1.             Set fulfillment status to 1 and add a note to processing details

5.3.6.2.             Remove from Future Sales Backorder if necessary

5.3.6.3.             Update order status to 3 – Shipping

5.3.6.4.             Update CRM inventory

5.3.6.5.             Remove from backorder

5.3.6.6.             Update WarehouseProductIncreases for optimization

5.3.6.7.             Check for any SKU exceptions that were not sent using this current warehouse

5.3.6.8.             If exists, the system will choose the best warehouse according to the same rules above and processed with the same actions to send this fulfillment

CRM UI Fulfilment Status

Database Fulfilment Status

New

1

Sent

2

Processed

3

Error

4

5

6

Waiting for Tracking Number

7

8

Processing

9

  • No labels