Transfer Locations
What This Is
Transfer Locations are the third-party relay points that an order passes through before it reaches the customer on a pickup or delivery route. A transfer location represents a physical site—typically a partner depot, consolidation hub, or handoff point—that sits between your warehouse and the final pickup location.
Each transfer location stores its own address, contact details, bilingual pickup note, and opening hours. When a fulfillment request is routed through a transfer location, the system uses those details to send the correct pickup email to the customer.
When You Would Use It
Use Transfer Locations when:
- your fulfillment flow involves a relay or interim handoff point that customers must collect from
- you need to give customers accurate pickup address and hours for a partner site rather than your own warehouse
- your pickup confirmation emails must reflect the last stop in a multi-leg transfer chain instead of the originating inventory location
Do not confuse Transfer Locations with Inventory Locations. Inventory Locations own your stock and ship it out. Transfer Locations are the downstream relay points that orders pass through on the way to the customer.
Before You Start
Before you create a transfer location, make sure:
- you have the full physical address and the postal code exists in the system's shipping postal codes
- you know the contact name and email for the site
- you have the opening-hours schedule the customer should be told about
- you are aware that transferring orders through this site means pickup detail emails will use this location's address and note, not the inventory location's
How To Use It In The Admin
- Go to
Settings > Transfer Locations. - Click Add transfer location to open the create dialog.
- On the General tab, fill in:
- Name — the display name for the transfer site
- Phone — the site's phone number (CA/US format)
- Address — address line 1, optional address line 2, city, country, state, and postal code
- Contact Name and Contact Email — the individual responsible at the site
- Pickup Note (EN) and Pickup Note (FR) — a bilingual message that appears in the customer's pickup confirmation email when this location is the final stop
- Switch to the Opening Hours tab to configure when the site is open each day. For each day, add one or more time windows using the
+button. - Click Save.
To edit an existing transfer location, find it in the table and click the edit icon. The same General and Opening Hours tabs are available.
What It Changes In The Storefront
Transfer Locations do not display directly on the storefront.
They affect the customer experience indirectly through the pickup confirmation email:
- when a fulfillment request is confirmed and
auto_send_pickup_details_on_confirmationis on for the inventory location, the system now resolves the last transfer location in the chain (rather than the inventory location) as the pickup address - the pickup note and address in the customer email come from that transfer location
If there are no transfer locations on the request, the system falls back to the inventory location's address and note.
Common Tasks
Add a new transfer location
Open Settings > Transfer Locations, click Add transfer location, fill in the General and Opening Hours tabs, and save.
Edit an existing transfer location
Find the transfer location in the list and click the edit icon. Update any fields and save.
Update opening hours for a transfer location
Open the edit dialog, switch to the Opening Hours tab, and add or remove time windows for each day.
Add or revise the pickup note
Open the edit dialog, go to the General tab, and update the Pickup Note (EN) and Pickup Note (FR) fields. These notes appear verbatim in the customer's pickup email.
Delete a transfer location
Use the delete action in the row. Deleting a transfer location does not automatically detach it from fulfillment requests that already reference it.
Rules, Limits, And Things To Watch
- The postal code entered must exist in the system's shipping postal codes table. An unrecognised postal code will fail validation.
- Phone numbers must follow CA or US format.
- Pickup notes are bilingual. If a note is only filled in for one language, the customer receives only that language's note.
- Opening hours are stored using the spatie/opening-hours normalised format. Multiple time windows per day are supported.
- When a fulfillment request has transfer locations, the last transfer location in the route becomes the pickup address and note source for the confirmation email.
- Pickup emails are only sent automatically when
auto_send_pickup_details_on_confirmationis enabled on the fulfillment request's inventory location.
Troubleshooting
The customer's pickup email shows the wrong address
Check which location is last in the fulfillment request's transfer chain. The system uses the highest transfer_shipping_order value. If the intended site is not last, reorder the transfer locations on the fulfillment request.
The pickup note is missing from the customer email
Confirm that the Pickup Note field is filled in for the correct language on the transfer location. An empty note field sends an empty note to the email template.
I cannot save a transfer location because of a postal code error
Make sure the postal code exists in the shipping postal codes table. If it does not, it must be added before the transfer location can be saved.
I deleted a transfer location but it still appears on a fulfillment request
Deleting a transfer location removes the record but does not automatically clean up existing fulfillment request pivot associations. Review the fulfillment request and remove the stale reference.
Related Features
- Inventory Locations
- Fulfillment Requests
- Calendar Rules
Sources
packages/admin/src/Livewire/Admin/Settings/TransferLocations/DataTable/CreateDialog.phppackages/admin/src/Livewire/Admin/Settings/TransferLocations/DataTable/EditDialog.phppackages/framework/src/Models/TransferLocation.phppackages/framework/src/Actions/TransferLocation/CreateTransferLocation.phppackages/framework/src/Actions/TransferLocation/UpdateTransferLocation.phppackages/framework/src/Models/FulfillmentRequest.phppackages/framework/src/Listeners/FulfillmentRequest/SendPickupDetailsOnFulfillmentRequestConfirmed.php