Facilities

Our customers can manage their facility in this section and make specific changes here. This section is visible & can be edited by users equipped with the role admin or supervisor.

In the facility view, we show facility specific data. Each facility has a name and an address consisting of a street, house number, zip code, town and country. Moreover every facility has a business type telling whether it is a Ship-from-Store business, a Click & Collect business or both. In order to handle different carriers in our tenant system, one can assign different carriers to one facility. With this information a fencing can be implemented where orders which need to be shipped by a chosen carrier are routed to a facility where this carrier is active.

Facility data

Facility name

A facility has both an external as well as an internal name. The external name is for example used as the name of the sender address on a shipping label - and most likely features the company name itself. The internal name can be used to differentiate between the different facilities, like “Fulfillmenttools Cologne HQ”.

Based on the enabled carrier within the tenant, those carriers have to be enabled in turn for a particular facility as well. To do so, one can decide to enable a carrier one-by-one on facility level. A dedicated fence (see the DOMS section) ensures that only orders will be routed to a facility which has enabled the particular carrier the customer has chosen for.

Facility type & status

In case a facility should not be selected via the facility chooser, the facility status can be set to offline. A facility with the status “suspended” can still be selected in the facility chooser. Additionally, a facility will only be considered in DOMS routing decisions if it is set to “online” - facilities with status “suspended” or “offline” are ignored by the DOMS for upcoming order routings. This is true for both Click&Collect as well as Ship-from-Store facilities.

A facility can be differentiated by its type namely whether it is a “store” with offline customers or a “warehouse”. In case the type “warehouse” was chosen, there is no possibility to set offline stock, since a warehouse does not have to deal with offline customers that walk in.

Service type

When setting the service type of a facility, the user is able to choose either “Ship-from-Store” or “Click & Collect”. Only facilities with the “Ship-from-Store” service type will be taken into consideration by the DOMS when routing a Ship-from-Store order. Additionally, only facilities with the “Ship-from-Store” service type will have the offline stock setting, because a facility that is “Click & Collect” only is not considered by the DOMS for routing decisions. Instead, the webshop already made the decision that this facility will get the Click & Collect order.

The service type has also impact on what can be seen and set in the settings-section within the backoffice as well as on which tabs one can access in the app.

Impact on the app:

  • The label section within the app is only shown if the service type “Ship-from-Store” is set for this facility

  • The Click & Collect handover section within the app is only shown if the service type “Click & Collect” is set for this facility

  • The Ship-from-Store handover section within the app is only shown if the service type “Ship-from-Store” is set for this facility

  • The switch (offering to order a label or picking another task) within the app when reaching EOP is only shown if the service type “Ship-from-Store” is set

Impact on the backoffice:

If one has selected a Click & Collect-only Facility and enters the backoffice settings the offline-stock setting is not shown as well as the setting for defining the replenishment timespan in case the infinite stock mode is active. We do this due to the fact that there is no routing logic for a Click & Collect Order and therefore those settings would not have any impact.

When setting up a tenant or when changes occur one can easily create a new facility or edit an existing facility within the frontend. Certain fields like the tenantFacilityId can only be added via the backend. Furthermore there is a possibility to delete an already existing facility within the backend.

Average fulfillment duration

It is possible to add a lead time or buffer time to each facility, which represents the average time a task needs to be fulfilled from the pickjob create timestamp to the event where the pickjob is ready to be shipped/picked up. In this way, it can be calculated whether successful completion at the site can be guaranteed.

The default when creating a facility is set to 240 minutes. This value can be changed via our API. When changing this value, it is used for all newly created facilities.

Users of our platform have the possibility to define

  • a SfS cutoff time for a specific facility carrier connection

  • a tenant-wide default value as well as

  • a tenant-wide cutoff time for click and collect orders via our API.

Those cutoff times in combination with the concept of a lead time, allows us to predict whether or not an incoming order can be fulfilled in time in order to be shipped via a certain carrier.

Fulfillment times

Fulfillment times are more or less equivalent to the opening times of a facility, yet can be different - for example the opening time of a facility might be from 09:00 - 20:00, but fulfillment might only happen between 10:00-18:00 due to opening and closing of stores, staff shortages on certain shifts, etc.. Opening times can be set within our network view as well as in our facility view for a specific facility.

Fulfillment times are used at various places within our platform when it comes to timing. One occurrence is when a target time is generated or when it is evaluated whether a time-triggered reroute should take place. For the latter, the counter for each picking task is only running within the fulfillment times of a facility. If the current time is outside the fulfillment time, counting is paused and will resume as soon as the fulfillment time is reached again the next day. Fulfillment times can be configured for each day individually. Additionally, certain days can have no fulfillment time at all, e.g. sundays or holidays.

Because fulfillment times are playing a crucial role in our platform, there is also a fallback on tenant level in case those times are not configured for a specific facility. By default, those fallback fulfillment times are from Monday to Saturday, 09:00-17:00.

Fulfillment times and closing days for multiple facilities

Fulfillment times and closing days are configurable within the facility setting. Nevertheless there is also a function within the network overview settings where a user can set the fulfillment times and closing days for multiple facilities. This comes in handy if several facilities need an update or when one wants to set up a new tenant or introduce a bunch of new facilities to the platform. Here the user can also set the capacities for the set time slots.

If a bulk update on fulfillment times and closing days is saved, already submitted times are overwritten for the selected facilities!

Fulfillment capacity

One can set a capacity for each fulfillment - time slot within the facility settings in the backoffice and via API. The capacity is a number and reflects the possibility to fulfill an order (a capacity equals one task/ pickjob). When routing an order to a facility which carries capacity information we reserve and block (reduce) a capacity for this order in the next available free capacity slot. To ensure that fulfillment capacities are considered within the routing, the Fence or Rating for capacity have to be activated!

What does “next free capacity slot” mean?

  • Example 1: Order is placed @ 14:30 and the following network information is available:

    • Facility 1: Slot: 12:00-15:00 / max. capacity: 10 → p. hour 3,3 - @14:30 (cutoff time) free capacity is 1,65 → round down = 1 order capacity available for 14:30

    • Facility 2: 14:00-15:00 / cap.10 → p. hour 10 - @ 14:30 → 5 order capacity available for 14:30 -> Facility 1 and Facility 2 get the same penalty

  • Example 2: Order is placed @ 14:59

    • Facility 1: 12:00-15:00 cap: 10 → p. hour 3,3 -@14:59 → 0,055 → round down = 0 order capacity available for 14:59

    • Facility 2: 14-15 cap.10 → p. hour 10 - @ 14:59 → 0,167 → round down = 0 order capacity available for 14:59 -> Facility 1 and Facility 2 get the same penalty

      -> looking at the next free slot

If an order gets rerouted (manually or event triggered) or is manually assigned elsewhere the reserved capacity of the “old” corresponding facility is cancelled and the capacity can be used / planned again.

If capacities are changed - only new upcoming orders are affected by this change. We do not rearrange orders which were already routed due to the fact, that capacity information has been changed.

If a capacity information is a decimal number we round down the number.

Next to checking the capacity, we also consider the temporal feasibility of whether the task can be picked before the targettime. In case the time at which the order was created plus the average picking duration exceeds the targettime, then the next upcoming slot is selected. If the targettime is a hard targettime (see next paragraph) it might happen that the order can not be routed and therefore has the status unroutable.

Calculating the target time when looking at capacities:

Setting maximum capacities per day/fulfillment slot can have an impact on the calculated target time of a pickjob. In case there is no fulfillment capacity left before the CEP-pick up time on the same day the order is placed, the target time is adjusted to the next free capacity slot and its corresponding pick up time.

Nevertheless if the target time is defined within the order (we call this “hard” target time), we simply pass on the target time.

In order to do this we check for the next pickup-time of the selected carrier which is reachable when the order is picked within the planned fulfillment-slot. Only if the pickup-time can be reached including free capacity this pickup time is selected as the new target time

  • Example:

    • Order comes in on monday 14:00

    • avg. fulfillment duration 30 min

    • Order should be fulfilled by DHL, DHL' pickup-time is daily 16:00

    • if we do not plan capacities (rating / fence is inactive) the TT would be monday 16:00

    • if we do plan capacities and the slot is planned < monday 15:30 the TT would be monday 16:00

    • if we do plan capacities and the slot is planned e.g. wednesday 15:00 the TT would be wednesday 16:00

      • we use the starting point of the future capacity slot

        • if starting point + avg. duration < pickup time (1) then pickup time (1) otherwise pickup time (2 (next TT))

        • if date now is within the slot, we use date now + avg. duration < pickup time (1) then pickup time

  • If our time triggered reroute function is active and the targettime, without this feature active would be after the time triggered timeframe, the targettime would be: PJ created + set reroute timeframe

  • If our time triggered reroute function is active and the targettime, without this feature active would be before the time triggered timeframe and it can be met (pj created + avg. FF duration < PJ created + set reroute timeframe), the targettime would be: carrier cutoff time, which can be met

    • e.g. 14:00Pj created / 2 hours time to start picking / 30 min avg. FF duration / Carrier cutoff 15:00 ---> Targettime would be 15:00

    • e.g. 14:00Pj created / 2 hours time to start picking / 3 hours! avg. FF duration / Carrier cutoff 15:00 ---> Targettime would be 16:00

To make sure that our systems does not occupy capacities that are too far in the future. We introduced the setting “Time frame for future capacity planning”, which is a limit which defines how many days in the future capacities can be used and “booked”. This is the base for our capacity Fence.

This value includes always the capacity of a calendar day (and not days with fulfillment-times (opening-day))

This value can be set as a tenant wide default via the api and/or via the backoffice or for a specific facility (only via API). If one changes the default only the facilities using the default value changes - facilities which have their own number saved, are not changed (even if this value is the same as the default).

Example:

  • e.g. today is Monday 14:00

  • the parameter is set to 3 Days

  • → the capacity till thursday (including thursday) can be used for planning.

Capacities do have an own collection within the database where one can find the already planned capacity for a slot.

The collection is called ocff-XXX-git/pre/prd.routing-v1-reservation-slot

Stock buffer

Define your offline stock (see Ratings)

For each facility you can set how much stock you do not want to be considered by DOMS for incoming “Ship-from-Store” orders. The offline stock can be set manually on facility level by defining a relative quantity (in %). If the calculated offline stock is a decimal number, we will round off the figures. The offline stock setting is only available for facilities that have the service type “Ship-from-Store” because for Click & Collect no stock has to be reserved. Depending on how heavily your facility is frequented by offline customers, setting a higher offline stock is reasonable to assure enough stock on the shelf.

Storage Principles

Storage principles concerning stock properties (such as best-before) date can be defined for each facility. The principle “unmixed storage” means that the same item with different properties (e.g. BBD) must not be stored on the same storage location. Enabling unmixed storage in the backoffice configurations has the following effects:

  • If a user tries to stow the same items with different properties on the same storage location, a user prompt is shown.

  • For storage location recommendations only locations are shown where the unmixed storage principle is met.

The unmixed storage configuration should be disabled if stock properties are not relevant while stowing or relocating items.

How to add facilities?
  1. Select “Network View”

  2. Click on “Facilities” to reach the facility overview

  3. Click on “Add facility”

  4. Enter facility data and save facility

How to set fulfillment times and capacities?
  1. Select “Network View”

  2. Click on “Facilities” to reach the facility overview

  3. Click on the setting sign

  4. Define store individual fulfillment times and capacity

How to set closing times?
  1. Select “Network View”

  2. Click on “Facilities” to reach the facility overview

  3. Click on the setting sign

  4. Click on “Add day”

  5. Define store individual closing times

How to set average average fulfillment duration?
  1. Select “Network View”

  2. Click on “Facilities” to reach the facility overview

  3. Click on the setting sign

  4. Either activate the tenant-wide default duration or you can define a specific value for a facillity

How to connect carrier to a facility?
  1. Select “Network View”

  2. Click on “Facilities” to reach the facility overview

  3. Click on the setting sign

  4. Activate all the carrier, that should pick up shipments from a specific store

  5. Enter or change the Carrier Credentials and click on “Save”

How to set average fulfillment duration?
  1. Select “Network View”

  2. Click on “Facilities” to reach the facility overview

  3. Click on the setting sign

  4. Either activate the tenant-wide default duration or you can define a specific value for a facitlity

How to activate short-pick?
  1. Select “Network View”

  2. Click on “Facilities” to reach the facility overview

  3. Click on the setting sign

  4. Enable this feature, if the stock should be set to 0 in case of an shortpick

How to use fulfillment capacity for capacity planning

Last updated