Fulfillment Context


There are many cases in which your organization may need to have different carrier accounts or other behavior changes within the same fulfillment center. For example, you may have multiple carrier accounts in order to simplify accounting if you ship both on your own behalf and for 3PL customers/other partners.

To handle this use case, the Shipium's APIs provide the Fulfillment Context. This enables Shipium to use the appropriate carrier accounts, settings, etc. within a given API call, based on assigned "contexts" for entities such as a carrier account.


Assume your company ships for two different purposes as described above: your own internal shipments (retail) and shipments you are fulfilling for someone else (3PL). Your accountants have worked with operations to set up two different sets of carrier accounts, one for each of these shipping "contexts", so that they can track the costs independently.

In this case you may have, for example, two different FedEx accounts, one for retail and one for 3PL.

You would define two corresponding Fulfillment Contexts, "retail" and "3pl" to enable API calls to refer to the appropriate carrier accounts.

In the future, if you start using the same structure with additional carriers, you just need to label the new accounts with the appropriate Fulfillment Context and the account-switching will take care of itself, no matter which carrier is used.

Configuring Carrier accounts with Fulfillment Contexts

To associate a Fulfillment Context with a given carrier account, do the following:

  1. Navigate to the carrier account in the UI menu by going to Configure > Carrier Accounts.
  2. Click Edit for the carrier account you are interested in.
  3. Click Edit in the top right of the Carrier Account Details page.
  4. The Configure Carrier Account dialog is displayed; scroll down to the Fulfillment Contexts section.
  5. Enter the name of the new Fulfillment Context associated with this carrier account (retail in the example below) and click + Add Fulfillment Contexts to add the new context.



If you have additional contexts for this carrier account, you can add more than one, though this is generally unnecessary.


Configuring a Fulfillment Context

Using a Fulfillment Context in API calls

If you do not specify a fulfillment context, every carrier account is eligible for use. If you don't have multiple carrier accounts for the same carrier in the same FC or other reasons to specify a particular account, then you can effectively ignore the Fulfillment Context concept.

Specifying Fulfillment Context in API calls

When making a carrier selection call, you can specify a new (optional) property, fulfillmentContext within the shipmentParameters object, as shown below. By specifying the name of a Fulfillment Context that has been associated with one or more carrier accounts, you can limit carrier selection to those carriers.

   "shipmentParameters": {
     "fulfillmentContext": "retail"

One account with multiple Fulfillment Contexts

If you have a single carrier account for which you have specified multiple Fulfillment Contexts, specifying any of these will include this account for costing purposes.

This feature has been added for specific kinds of 3PL use cases and, unless you really need it, you probably want between 0 and 1 Fulfillment Contexts for any given carrier account.