Local Pickup
Local pickup lets a customer buy online and collect the order from you instead of having it shipped. Three pieces of configuration have to be in place before the option appears at checkout:
- A distribution center with pickup hours. This is the place the customer collects from, and its schedule decides which pickup times they can choose.
- A shipping method marked as a pickup method. This is what puts the option in front of the customer.
- A StoreFront theme recent enough to render the pickup controls at checkout.
Most merchants find the pickup hours first, because they live on a screen you already use. On their own they do nothing a customer can see. If you have pickup days and times saved but no pickup option at checkout, the missing piece is step 2, step 3, or both.
Before you start
You need a distribution center representing the location customers will collect from, and a StoreFront using a theme that supports pickup. Step 4 tells you how to check the theme.
If you take pickup at more than one location, create a distribution center for each one. Pickup hours are set per distribution center, so two locations with different hours need two records.
1. Set pickup hours on the distribution center
Go to Main Menu → Configuration → Checkout → Shipping → Distribution Centers, then select Edit on the location customers will collect from. The pickup settings are on the Pick Up Times tab.
Set the timezone, the minimum lead time you need to have an order ready, the interval between selectable pickup times, a phone number for the customer to call ahead, and the days and hours you accept pickups. For what each field does, see Distribution Center, and for a walkthrough of the tab, see Configuring an order Pickup location.
Fill in hours only for the days you accept pickups. Leave the other days blank. A day left blank offers the customer no pickup times, which is the most common reason a pickup option looks broken on one day of the week and fine on another.
2. Add the pickup shipping method
Go to Main Menu → Configuration → Checkout → Shipping → Methods and select New Method.
The Add Method screen offers three routes. Pickup is not a carrier service, so use the third, A custom shipping method named [Name]. Give it a name your customers will understand, such as "Local Pickup" or "Pick Up In Store". That name is what they see at checkout, and you can change the customer-facing wording later with the Display Name field on the method's Other tab.
Set the cost the same way you would for any other method. If pickup is free, the Cost tab handles that. See Shipping Methods for adding and editing methods, and Shipping Method Configuration for what every tab controls.
The method also has to be marked as a pickup method, so UltraCart asks the customer for a pickup date and time instead of shipping the order.
3. Restrict the method to local customers
Without a restriction, a customer three states away is offered a pickup option they cannot use. Open the method and go to the Restrictions tab.
Scroll down to the Local Delivery / Pickup section and define a radius around the postal code customers collect from. For a worked example of setting a radius, see Local Delivery with Delivery Date Selection Tutorial, which sets a 35 mile radius around a single zip code on this same screen.
Then set Force To Distribution Center on the same tab to the location customers collect from. This routes the order to that location after the customer chooses pickup. Without it, an order can be routed to a distribution center the customer is not driving to.
Force To Distribution Center runs after the shipping method has been chosen, so it does not recalculate the cost of the method. Set the cost on the method itself in step 2.
4. Confirm your theme supports pickup
The pickup controls at checkout are rendered by your StoreFront theme, so a theme older than the version that added pickup support shows the customer nothing, even when steps 1 through 3 are correct.
Your theme's version appears on its icon under StoreFronts → Themes. Check it against the minimum versions in Theme Revision Logs. If your theme is older, see Upgrading a Theme, and duplicate the theme before you upgrade it.
A heavily customized theme can also be on a recent version yet have had the checkout template edited in a way that drops the pickup controls. If the version is high enough and pickup still does not render, that is the next thing to check.
5. Test the checkout
Place a test order against your own StoreFront using an address inside the radius you set in step 3, on a day you accept pickups. The pickup method appears alongside your shipping methods, and choosing it replaces the shipping address with pickup location, date, and time selectors.
Complete and tab out of the shipping address fields before you look for the method. UltraCart recalculates the available methods when the address changes, and a half-entered address returns nothing.
You can also take a pickup order yourself over the phone. See Shipping and delivery for the pickup toggle in back end order entry.
When the order is ready, the Order - Ready for Pickup transactional email tells the customer to come and get it. See Transactional Emails.
When pickup does not appear at checkout
Work through these in order. The first three account for most cases.
- You only set the pickup hours. Pickup hours on a distribution center do not create a checkout option by themselves. You also need the shipping method from step 2.
- The day you are testing has no pickup hours. A blank day offers no times. Test a day you actually accept pickups on.
- Your theme predates pickup support. Check the version, as in step 4.
- An item in the cart excludes the method. An item can be set to "valid only for" a different shipping method, which removes every other method including pickup. Check the item's shipping settings, and test with a cart containing only one item to narrow it down.
- The distribution center does not handle the item. Each item lists which distribution centers can fulfill it. If your pickup location is not one of them, the method will not be offered.
- The address is outside your radius. Widen the radius from step 3, or test with an address closer to the pickup location.
- The method is disabled, or set to back end order entry only. Both hide it from customers while leaving it visible to you in the admin.
To see exactly why a method was excluded, use the packing solution view described in Troubleshooting Shipping. Its No Estimates for Shipping Methods section names the reason for each method that was not offered.
Related documentation
- Configuring an order Pickup location - the Pick Up Times tab, field by field
- Distribution Center - every setting on a distribution center
- Shipping Methods - adding, editing, and disabling methods
- Shipping Method Configuration - what each tab on a method controls
- Troubleshooting Shipping - why a method is not being offered
- Theme Revision Logs - which theme versions support pickup