Fulfillment Types
Configure how orders sync to Square with pickup, delivery, or shipment fulfillment.
Orders sync to Square with one of three fulfillment types based on the WooCommerce shipping method used.
Fulfillment Types
| Type | When Used | Details Included |
|---|---|---|
| PICKUP | Local pickup shipping method | Pickup time, recipient info, pickup location |
| DELIVERY | Delivery-mapped shipping method | Delivery time, recipient address |
| SHIPMENT | Standard shipping (default) | Shipping address, carrier info |
Delivery Mapping
Map WooCommerce shipping methods to Square DELIVERY fulfillment for local delivery orders.
Configure Delivery Methods
- Go to SWS Pro > Settings > Orders
- Find the Delivery Mapping section
- Select which shipping methods represent delivery orders
- Click Save Changes
Available Methods
Any WooCommerce shipping method can be mapped:
flat_ratefree_shippinglocal_pickuppickup_location- Custom shipping methods from plugins
Delivery Time Calculation
The delivery time sent to Square is calculated as:
- With Orderable integration: Uses Orderable's delivery time
- Without Orderable: Current time + Preparation time setting
Local Pickup Mapping
Configure how pickup orders sync to specific Square locations.
Configure Pickup Methods
- Go to SWS Pro > Settings > Orders
- Find the Pickup Mapping section
- Select which shipping methods represent pickup orders (default:
local_pickup) - Click Save Changes
Pickup Location Mapping
Map WooCommerce pickup locations to Square locations. Both ways WooCommerce offers pickup are listed (since 10.5.14):
- Zone-based "Local pickup" methods — one Local pickup shipping method per store inside a shipping zone (for example "Pick up at Raymond Terrace" and "Pick up at Glendale" in your Domestic zone). Each method is listed with its zone name. This is the common multi-store setup and works on both the classic and the block checkout.
- Block checkout Local pickup locations — the list of locations under WooCommerce → Settings → Shipping → Local pickup, offered under one method on the checkout block only.
| WooCommerce Location | Square Location |
|---|---|
| Store A | → Square Location A |
| Store B | → Square Location B |
| Store C | → Square Location C |
If no mapping exists for a location, the default Square location is used.
Only Offer Pickup From Stores With Stock
Since 10.5.13. By default WooCommerce offers every pickup location at checkout whatever the cart contains, so a customer can choose a store that does not stock the item and the order lands at a Square location that cannot fulfil it. Turn on Only offer pickup from stores with stock (under the Pickup Location Mapping table) and the plugin checks each mapped pickup location against the per-location stock the sync already keeps on every product:
- A pickup location whose Square location does not have every item in the cart in the quantity ordered is removed from the pickup choices. The customer sees which store lacks which item, for example Pickup from Glendale is unavailable for this order: Blue Mug (0 of 2 in stock).
- When items in one cart sit at different stores (item A only at store 1, item B only at store 2), no store can fulfil the whole order, so every pickup location is removed and the customer is told so. Shipping and delivery options are never affected, so the customer can still check out.
- When one store has everything and the other has only part of it, only the store that has everything is offered.
The check uses the stock counts Square last reported per location (shown in the Square stock by location panel on the product), so it adds no Square call to the checkout and is refreshed by the same webhooks that keep WooCommerce stock in step. It errs on the side of offering a store: a pickup location or zone pickup method left as Default Square Location, a product with no per-location data yet (not linked to Square, or not synced since the per-location map was introduced), and a product with stock management off or backorders allowed are always offered. It applies to both kinds of pickup listed above: block checkout locations and zone-based Local pickup methods (zone methods since 10.5.14).
The wording the customer sees can be changed under Orders → Storefront wording → Pickup, and developers can override the decision per store or per item with the sws_pickup_stock_gate_rate_available and sws_pickup_stock_gate_item_available filters.
This setting only changes which pickup locations are offered. The order itself still syncs to the mapped Square location in full (pickup orders are never split across locations), exactly as before.
Location Detection Priority
When determining which Square location to use for pickup:
- WooCommerce block checkout pickup location
- Pickup location index/name from order meta
- Checkout Field Pro location
- Default Square location (fallback)
Default Behavior
Orders using standard shipping methods (not mapped to delivery or pickup) sync as SHIPMENT fulfillment type with:
- Full shipping address
- Shipping method name
- No scheduled time
Troubleshooting
Wrong fulfillment type
- Check shipping method mapping configuration
- Verify the order used the expected shipping method
- Review delivery and pickup method lists
Pickup location incorrect
- Check pickup location mapping
- Verify WooCommerce pickup location data
- Confirm location detection priority order
Delivery time missing
- Enable Orderable integration or configure preparation time
- Check open hours configuration
- Verify delivery mapping is correct