Skip to main content

Tutorial: Setting up a transfer configuration

The aim of this tutorial is to set up a transfer configuration, based on the fulfillment configuration and strategy for a business created as part of the fulfillment config tutorial .

A transfer configuration allows you to transfer inventory from a store (not a DC) to another location. See the general explanation , or how the integration is done .

Important

The transfer configuration is related to the fulfillment configuration. The service levels you use in the transfer configuration:

  • Must be present in your fulfillment configuration.
  • Have the same service level priority as in the fulfillment configuration.

Defining the strategy

We have set up a business with one DC and one store. See the strategy we created for the fulfillment configuration earlier.

In our case, we can only:

  • Enable transfers from our unique store to our unique DC.
  • Offer traditional delivery for the transferred inventory from the store to the DC.

The updated strategy for transfers from our store is defined below:

CountryZip codeFulfillment node idSupported shipping options for transfers
US10*store1_NYCTraditional

Creating the transfer configuration

We use the Add transfer shipping configuration method to create a transfer configuration.

Because we only want to use the TRADITIONAL service level to transfer inventory, our payload for the transfer configuration looks as follows:

{
"transfer_order_configuration": [
{
"from_location_id": "store1_NYC",
"to_location_ids": ["DC01"],
"service_level_ids": ["TRADITIONAL"]
}
]
}
note

We can use * in to_location_ids to allow shipping to any location.

Once we call the Add transfer shipping configuration method, the shipping options for transfers are available in NewStore Fulfillment App.

Use the Get transfer shipping configuration method to view the transfer config set up for your business.

(Optional) Creating a transfer configuration without store fulfillment

In some cases, you may not want to use stores to fulfill orders in your business. In our case, let's use our store (store1_NYC) to transfer inventory, but not fulfill orders.

To do this:

  1. Update the routes in your fulfillment configuration.

    • If you are using the new fulfillment configuration and not the legacy fulfillment configuration API to set up the config, you can use the Routing ruleset API to update the routes by setting the value of zip_code_regions to fake-zip-code.

      Based on the shipping strategy we had defined in our fulfillment configuration in the tutorial , the updated payload to use with the Update routing rules method looks like this:

      {
      "routes": [
      {
      "fulfilled_by": {
      "TRADITIONAL": ["Store Group 0"]
      },
      "destination_region": {
      "country": "US",
      "zip_code_region": "All"
      }
      }
      ],
      "sl_levels_priority": ["TRADITIONAL"],
      "location_groups": {
      "Store Group 0": ["store1_NYC"]
      },
      "zip_code_regions": {
      "All": ["fake-zip-code"]
      }
      }
    • However, if you are still using only the legacy fulfillment configuration API to set up your fulfillment configuration, update the routes in our fulfillment configuration using the Update fulfillment configuration method, and set the value of zip_codes for the store to fake-zip-code.

      The updated routes are as follows:

      {
      "fulfillment_config": {
      "routes": [
      {
      "fulfilled_by": {
      "SAME_DAY_DELIVERY": [
      {
      "provider_rate": "UPS_SAME_DAY_RATE",
      "fulfillment_node_id": "store1_NYC"
      }
      ],
      "TRADITIONAL": [
      {
      "provider_rate": "UPS_TRADITIONAL_RATE",
      "fulfillment_node_id": "store1_NYC"
      }
      ]
      },
      "destination_region": {
      "countries": ["US"],
      "zip_codes": ["fake-zip-code"]
      }
      },
      {
      "fulfilled_by": {
      "TRADITIONAL": [
      {
      "provider_rate": "UPS_TRADITIONAL_RATE",
      "fulfillment_node_id": "DC01"
      }
      ]
      },
      "destination_region": {
      "countries": ["US"],
      "zip_codes": ["*"]
      }
      }
      ]
      }
      }

      The final updated payload for our fulfillment configuration with the legacy fulfillment configuration API looks as follows:

      {
      "fulfillment_config": {
      "routes": [
      {
      "fulfilled_by": {
      "SAME_DAY_DELIVERY": [
      {
      "provider_rate": "UPS_SAME_DAY_RATE",
      "fulfillment_node_id": "store1_NYC"
      }
      ],
      "TRADITIONAL": [
      {
      "provider_rate": "UPS_TRADITIONAL_RATE",
      "fulfillment_node_id": "store1_NYC"
      }
      ]
      },
      "destination_region": {
      "countries": ["US"],
      "zip_codes": ["fake-zip-code"]
      }
      },
      {
      "fulfilled_by": {
      "TRADITIONAL": [
      {
      "provider_rate": "UPS_TRADITIONAL_RATE",
      "fulfillment_node_id": "DC01"
      }
      ]
      },
      "destination_region": {
      "countries": ["US"],
      "zip_codes": ["*"]
      }
      }
      ],
      "provider_rates": {
      "UPS_SAME_DAY_RATE": {
      "service_level": "SAME_DAY_DELIVERY",
      "shipping_type": "same_day_delivery",
      "return_provider_rate": "",
      "shipping_carrier_name": "UPS",
      "use_as_customer_facing_cost": false
      },
      "UPS_TRADITIONAL_RATE": {
      "service_level": "TRADITIONAL",
      "shipping_type": "same_day_delivery",
      "return_provider_rate": "",
      "shipping_carrier_name": "UPS",
      "use_as_customer_facing_cost": false
      }
      },
      "service_levels": {
      "SAME_DAY_DELIVERY": {
      "price": 15,
      "tax_code": "",
      "display_name": "Same day delivery",
      "currency_code": "USD",
      "delivery_time": "Place order by 2pm.",
      "remorse_period": 120,
      "delivery_time_after_cutoff_hour": "Place order by 2pm."
      },
      "TRADITIONAL": {
      "price": 0,
      "tax_code": "",
      "display_name": "Traditional delivery",
      "currency_code": "USD",
      "delivery_time": "3-7 business days",
      "delivery_time_after_cutoff_hour": ""
      }
      },
      "sl_levels_priority": ["SAME_DAY_DELIVERY", "TRADITIONAL"]
      }
      }

      The updated fulfillment configuration ensures that no orders are routed to the store for fulfillment. Only the DC (DC01) can now fulfill orders.

  2. Create the transfer configuration to transfer inventory from your store.

Related topics