Shipping Fulfillment Workflow
Use this runbook when a workspace sells physical products and operators need to ship, track, return, or refund orders through Sophosic.
Outcome
At the end:
- Shipping settings are ready for checkout and fulfillment.
- Product parcel details support rate shopping and labels.
- A paid order can move from ready to ship to fulfilled.
- Operators can buy a single label or batch labels.
- Customers can view order and tracking status.
- Returns, refund ownership, and troubleshooting paths are clear.
Before You Start
Collect:
- Workspace slug and console URL.
- Public site URL.
- Shipping origin address.
- Supported destination zones.
- Carrier/provider credentials and owner.
- Package sizes, label printer format, and packing process.
- Return policy, refund policy, and restocking rules.
- Payment test boundary approved by the payments owner.
Label buys and return-label buys can create live carrier charges. Refunds can move real money. Do not run those actions against a live workspace unless the owner approves the cost, accounting treatment, and cleanup path.
Step 1: Configure Shipping Settings
Console surfaces: Shipping > Settings, Settings > Shipping.
Actions:
- Open Shipping settings.
- Confirm ship-from origin.
- Set default weight unit and dimension unit.
- Enable only supported carriers.
- Configure markup or handling fee.
- Configure free-shipping threshold if the workspace offers one.
- Save and reload the page.
Verify:
- The saved origin is the real fulfillment location.
- Units match the team’s scale and label process.
- Carrier list matches the provider account.
- Checkout policy and shipping policy say the same thing.
Failure checks:
- A missing origin blocks rate shopping and label creation.
- A mismatched country or postal code can produce no carrier rates.
- Markup and free-shipping thresholds can make totals look wrong even when rates work.
Step 2: Create Package Presets
Console surface: Shipping > Settings > Packages.
Actions:
- Add the standard boxes, mailers, or envelopes the team uses.
- Enter length, width, height, dimension unit, weight, weight unit, and package type.
- Mark the most common preset as the default package.
- Save each preset.
Verify:
- The default preset pre-fills label creation.
- Preset names are operator-friendly.
- Package values match the physical supplies.
Failure checks:
- A preset without a weight still requires the operator to add weight before rates can load.
- The wrong default package can silently create bad rates.
Step 3: Configure Product Shipping Settings
Console surface: Products.
For each shippable product:
- Confirm the product requires shipping.
- Enter weight and weight unit.
- Enter dimensions and dimension unit.
- Select package type when needed.
- Configure flat shipping fee if the product has a special rate.
- Confirm free-shipping eligibility.
- Confirm inventory behavior.
Verify on sites:
- The product appears in the shop.
- A non-shippable product does not ask for shipping unexpectedly.
- A shippable product collects a shipping address.
- Checkout totals respond to shipping address and product quantity.
Step 4: Create A Test Order
Sites surfaces:
/shop./shop/{productSlug}./cart./checkout./checkout/success.
Actions:
- Add a shippable product to cart.
- Change quantity.
- Enter customer and shipping details.
- Select shipping.
- Confirm tax, discount, shipping, and total.
- Complete or stop at the approved payment boundary.
Verify in console:
- Order appears in Orders.
- Payment status matches the test path.
- Shipping address is present.
- Line items and inventory look right.
- The order appears in Shipping when it is paid and ready to ship.
Step 5: Buy A Single Label
Console surfaces: Orders, Shipping.
Actions:
- Open the order detail page.
- Confirm payment status and fulfillment status.
- Confirm ship-to address.
- Confirm parcel data from product or package preset.
- Fetch rates.
- Select the intended carrier service.
- Choose label format.
- Decide whether to notify the customer.
- Buy the label only after owner approval.
Verify:
- Shipment appears on the order.
- Label URL is available.
- Tracking number and tracking URL are present when provider returns them.
- Fulfillment status moves to fulfilled or partially fulfilled.
- Customer order page shows shipment details.
Failure checks:
- Address validation messages.
- Missing or zero parcel weight.
- Missing dimensions for the selected package mode.
- Expired rate.
- Unsupported carrier service.
- Provider credentials or account status.
Step 6: Batch Buy Labels
Console surface: Shipping.
Actions:
- Open the ready-to-ship queue.
- Select multiple paid orders.
- Choose Batch buy labels.
- Review every row, parcel, and selected rate.
- Remove unresolved or suspicious rows.
- Select label format.
- Confirm customer notification behavior.
- Buy labels only after owner approval.
Verify:
- Batch detail shows succeeded and failed rows.
- Each succeeded order has a shipment.
- Failed rows are not assumed fulfilled.
- No duplicate labels were bought for the same order.
Failure checks:
- Mixed package needs can make the default preset wrong for some rows.
- One bad address should not block review of the whole queue.
- A failed row should be corrected and retried deliberately.
Step 7: Verify Tracking
Console surfaces: Orders, Shipping.
Customer surfaces:
/orders./orders/{orderId}./{site}/track/{tracking}.
Actions:
- Open the order shipment in console.
- Confirm tracking number, carrier, service, and tracking URL.
- Open the customer order detail page.
- Open the public tracking page for the tracking number.
- Confirm status and event timeline are understandable.
Verify:
- Wrong-workspace or unknown tracking numbers do not reveal another tenant’s shipment.
- Public tracking uses the workspace brand.
- Carrier status changes do not erase operator notes.
Failure checks:
- Tracking can stay pre-transit until the carrier accepts the package.
- Webhook delays are normal; check provider event history before declaring failure.
- Customer-visible status should match the latest saved shipment event, not an operator guess.
Step 8: Complete Order Fulfillment
Console surface: Orders.
Actions:
- Confirm the packed item matches the order line items.
- Print and attach the label.
- Hand off to the carrier.
- Record internal notes when the handoff is manual.
- Watch for delivered, returned, or exception events.
Verify:
- Fulfillment status is honest for all items.
- Tracking status reflects carrier progress.
- Customer support can answer from the order page.
- Inventory changes match the shipping outcome.
Step 9: Test Returns And Refunds
Console surfaces: Shipping > Returns, Orders, Payments.
Actions:
- Open the order and confirm shipment state.
- Create a return authorization when the customer should send an item back.
- Buy a return label only when approved.
- Confirm return tracking appears when available.
- Receive and inspect the returned item.
- Decide restock, exchange, partial refund, full refund, or no refund based on policy.
- Issue the refund through the approved payment path.
- Record the reason and owner in order notes.
Verify:
- Return/RMA status, shipment status, order status, payment status, and inventory agree.
- Customer notification matches the operator decision.
- Refund amount and reason are visible to the team.
Failure checks:
- A return label does not automatically refund the order.
- A refund does not automatically prove the item was returned.
- Voiding an outbound label is different from refunding the customer.
Step 10: Run Launch QA
Use this before real traffic or a new shipping workflow launch.
Products
Pass condition: Every shippable product has weight, dimensions, package type, inventory, tax, and visibility configured.
Shipping settings
Pass condition: Origin, units, carriers, package presets, markup, free-shipping threshold, zones, and rates are approved.
Checkout
Pass condition: Address entry, shipping options, tax, discounts, and totals match policy.
Single fulfillment
Pass condition: One approved test order can produce a label and tracking entry.
Batch fulfillment
Pass condition: Batch review catches missing data and records success or failure per row.
Customer pages
Pass condition: Order history and public tracking pages show understandable status.
Returns
Pass condition: RMA, return label, restock, and refund owners are known.
Support
Pass condition: Operators know how to answer tracking, delay, damaged item, and refund questions.
Do not launch until every launch-critical workflow has passed, been disabled, or been deferred with owner approval.
Daily Shipping Operations
Run this each shipping day:
- Open Shipping and review ready-to-ship orders.
- Confirm paid orders, addresses, and inventory.
- Buy labels for orders that are ready.
- Batch buy only after reviewing each row.
- Pack and hand off shipments.
- Review in-transit exceptions.
- Review delivered orders and customer replies.
- Review returns and refund requests.
- Record handoff notes for unresolved items.
Troubleshooting
Order is missing from Shipping
Confirm payment status, shipping address, product requires shipping, and fulfillment status
Rates do not load
Confirm origin, destination, parcel weight, parcel dimensions, carrier settings, provider credentials, and rate request errors
Label buy fails
Confirm selected rate is current, the provider account is healthy, address validation passed, and the package mode is supported
Batch buy has mixed results
Open batch detail, separate succeeded rows from failed rows, and retry only corrected failures
Tracking page 404s
Confirm the tracking number, workspace slug, shipment association, and whether the number belongs to this tenant
Tracking status is stale
Check provider webhook delivery, carrier scan timing, tracking number, and latest saved shipment event
Fulfillment status looks wrong
Compare order line items, shipments, tracking status, returns, and any voided labels
Return label fails
Confirm outbound shipment, return address, parcel data, owner/admin permission, and provider support
Refund amount is wrong
Confirm item totals, shipping amount, tax, discounts, prior refunds, return condition, and payment account
Customer received confusing email
Check notification toggle, template, tracking URL, production domain, and customer contact details
Done Criteria
- Shipping configuration is saved and verified.
- Product shipping fields are complete.
- Checkout can quote shipping.
- A paid order can be fulfilled.
- Label, batch, tracking, return, and refund paths are understood.
- Customer order and tracking pages are verified.
- Operators know daily review and troubleshooting routines.