fulfillmenttools
API documentationIncident ManagementFeedback
Developer Docs
Developer Docs
  • Developer docs
  • Getting Started
    • Quickstart
    • Integration tutorial
      • Adding facilities
      • Adding listings to facilities
      • Configuring stocks
      • Carrier configuration
      • Placing orders
      • Checkout options
      • Distributed Order Management System (Routing)
      • Local fulfillment configuration
    • Free trial
  • Technical Basics
    • Access to fulfillmenttools
    • Feature status
    • Available regions
    • Backup policies
  • Connecting to fulfillmenttools
    • Client SDKs
    • commercetools connect
    • OpenID connect
      • Configure Microsoft Entra ID / Azure Active Directory
      • Configure Keycloak
  • API
    • Core concepts
      • Authentication & authorization
      • API Versioning & lifecycle
      • Assign user to jobs
      • Localization
      • Resource timestamps
      • Custom attributes
      • Article attributes
      • Recordable attributes
      • Data update guarantees
      • Rate limits & scaling
      • Retries
      • Performance on test vs. production systems
      • Load testing
    • API calls
      • Postman
      • cURL
      • GraphQL Explorer
    • GraphQL API
    • RESTful API
      • Pagination interface
      • RapiDoc
      • OpenAPI 3.0 Spec
    • Eventing
      • Structure of an event
      • Available events
        • Event flows
      • Eventing example
      • Event export
  • Integration Guides
    • Basics
      • Article categories
      • Audits
      • Facilities
      • Facility groups
      • GDPR configuration
      • Listings
      • Remote configuration
      • Receipts
      • Search
      • Subscribe to events
      • Sticker
      • Stocks
      • Storage locations
      • Tags
      • Users
    • Channel inventory
    • Facility discounts
    • Inbound process
    • Outbound stocks
    • Purchase order
    • Receipt
    • Routing strategy
    • Show sticker to clients
    • Stow jobs
  • More Integration Guides
    • Carrier management
      • Introduction to carrier configuration
      • Required data when operating carriers
      • Adding & connecting carriers to facilities
      • Custom carrier
    • Configurations for order fulfillment
      • Picking configuration
      • Packing configuration
      • Handover configuration
      • Printing and document configuration
      • Packing container types
      • Parcel tag configuration
      • Headless order fulfillment
      • Short-pick reasons
      • External documents in order fulfillment
      • Service jobs
      • Load units
      • Running sequence
    • DOMS - distributed order management system (routing)
    • External actions
    • Interfacility transfer
    • Notifications
    • Orders
      • Place your first order
      • Ship-from-store orders
      • Click-and-collect orders
      • Locked orders
      • Order with custom services
      • Bundled items in an order
      • Order process status
    • Availability & promising
    • Returns
Powered by GitBook
On this page
  • Prerequisites
  • Configuration
  • Further Reads
Edit on GitHub
  1. Integration Guides

Outbound stocks

This guide shows how to set up outbound stock tracking.

Prerequisites

  • Picking: The outbound inventory feature can be used only if picking is conducted with our system.

  • Handover: If you want to remove stock from your system only after it has been handed over, you must also use our handover feature.

Configuration

1. Create an outbound storage location

Create a storage location that will be used for items that have already been picked and are ready to be handed over to a shipping provider. The defined location does not need to represent a physical storage space or area but should map the concept of outbound stock. This can be done in the Backoffice or via API.

Make sure the location complies with the following requirements:

  • type must be BULK_STORAGE

  • The stock on an outbound storage location is unavailable for orders, and should not be picked or moved (besides for handover). Therefore, it must have the following trait configuration:

    • ACCESSIBLE: false

    • PICKABLE: false

    • OUTBOUND: true

  • name It is recommended that the name be chosen to convey its function as an outbound location so that users refrain from adjusting stock in that location.

Here's an example API call to create the storage location:

POST https://{YOUR_TENANT_NAME}.api.fulfillmenttools.com/api/facilities/{facilityId}/storagelocations
{
  "name": "Outgoing Goods",
  "tenantLocationId": "outbound-1",
  "type": "BULK_STORAGE",
  "scannableCodes": [],
  "runningSequences": [],
  "traitConfig": [
    {
      "trait": "ACCESSIBLE",
      "enabled": false
    },
    {
      "trait": "PICKABLE",
      "enabled": false
    },
    {
      "trait": "OUTBOUND",
      "enabled": TRUE
    }
  ]
}

If your request was successful, you'll receive a HTTP 201 created response containing the created storage location.

This storage location is a requirement to enable the following configuration. Note down the id of the created storage location from the response, as you will need it in the next step.

2. Enable Configuration

Next, you need to update or create the FacilityInventoryConfiguration to enable outbound tracking. The example below assumes a FacilityInventoryConfiguration is already present. Otherwise, please use the POST endpoint. You can find an example below. Please pay attention to not overwriting previous settings you may have already included in your configuration.

Set the following fields inoutboundStockConfiguration

  • trackOutboundStock is used to (de-)activate the feature without deleting the previously defined settings

  • locationRef references the outbound storage location created in the previous step

  • clearTrigger is used to specify when the stock should be deleted in the respective facility.

    • event

      • Use the event pick-job-closed_event-v1 if the stock should be deleted after picking

      • Use the event handoverjob-handed-over_event-v1 if the stock should be deleted after handing it over to another party (e.g. carrier)

      • More events will be added in the future.

    • tagFilter

      • It can be set to allow further granularity

      • Each entry in the tagFilter array represents a condition, all must be fulfilled.

        • Each value in the allowedValues array represents a possible value, one of which must be matched.

          • If the event is a pickjob event, the conditions will be tried against the tag array in the pickjob.

          • If the event is a handover job event, the conditions will be tried against the tag array in the handover job

PATCH https://{YOUR_TENANT_NAME}.api.fulfillmenttools.com/api/facilities/{facilityId}/configurations/inventory
{
  "version": 2,
  "outboundStockConfiguration": {
    "trackOutboundStock": true,
    "locationRef": "<your location ref>",
    "clearTrigger": [
        {
            "event": "handoverjob-handed-over_event-v1"
        },
        {
            "event": "pick-job-closed_event-v1",
            "tagFilter": [
              {
                "tagId": "order-type",
                "allowedValues": [
                  "production"
                ]
              }
            ]
        }
    ]
  }
}'

If your request was successful, you'll receive a HTTP 201 or 200 response containing the created storage location.

Further Reads

You have successfully enabled outbound location tracking for your facility. To test it out, complete a pick job in this facility and observe the stocks on this location via the stocks endpoint.

Last updated 5 months ago