An order marked ready for pickup that nobody collects ties up stock and, eventually, a refund conversation. Pickup Expiry reads each location's ready orders: Shopify fulfillments in READY_FOR_PICKUP, Square pickup fulfillments in PREPARED, BigCommerce orders in Awaiting Pickup. It counts the days since the order became ready against your hold policy, using the location's business hours and public holidays so closed days do not count.
At the reminder day it drafts a customer message with the hours and the release date. At the release day it drafts the cancellation with restock and the refund. You approve each step, and the order carries a note saying what happened and why.
This is a reference listing. It documents what Fibric would read from Pickup Expiry and what it could propose, based on the vendor's published interfaces. Fibric builds it under a managed deployment when you request it; selecting it here installs nothing.
Inputs
Shopify fulfillments with displayStatus READY_FOR_PICKUP and the time they entered it, at each location with local pickup
Square pickup fulfillments in state PREPARED, with ready_at, pickup_at, pickup_window_duration, and expires_at
BigCommerce orders in status Awaiting Pickup, status_id 8, and how long they have been there
Business hours per location: Square business_hours periods with day_of_week, start_local_time, and end_local_time, and the location's IANA timezone
Public holidays for the store's country, so a closed day does not count against the hold window
Delivery status of reminders already sent, so a customer is not messaged twice for the same order
Proposed actions
Target capability: propose a reminder to the customer by SMS or email, naming the location, its hours, and the date the order will be released
Target capability: propose a Shopify orderCancel with reason, restock true, notifyCustomer, and a staffNote once the release date passes
Target capability: propose moving a Square pickup fulfillment to CANCELED through UpdateOrder, then a RefundPayment for the amount paid
Target capability: propose a BigCommerce status change from Awaiting Pickup to Cancelled and the refund from a refund quote
Target capability: propose extending the hold for an order when the customer replies, so it leaves the expiry list
Proposed actions are target capabilities. Every action runs propose-first and needs a validated deployment and the appropriate permissions.
What you can build
Remind, then release, in Shopify
An order sits in READY_FOR_PICKUP past your reminder day. Propose an SMS through Twilio with the store hours. If it is still uncollected on the release day, propose orderCancel with restock and a refund to the original payment method.
Square business_hours give each location's open periods, and the holiday calendar marks closed days. The hold window counts open days only, so a long weekend does not expire an order.
When a PREPARED pickup passes its window, propose UpdateOrder setting the fulfillment state to CANCELED and a RefundPayment for the amount paid. You approve both in one step.
Orders in status 8 past the reminder day get a proposed Klaviyo message. On the release date, propose the status change to Cancelled and the refund from a refund quote.
A commerce connector that marks pickup orders as ready and exposes cancellation and refund: Shopify, Square, or BigCommerce
Store hours per location, from Square business_hours or a schedule you supply for platforms that do not expose them
A hold policy: days before the reminder, days before release, and whether closed days count
A messaging connector with a customer-facing sender, such as Twilio, Klaviyo, or Postmark
Authentication
Read access to orders and locations in your storefront or point of sale, write access to cancel and refund, and a sending credential on your messaging connector, each granted as that listing describes.
Limits
Shopify's Admin API does not expose store hours on a Location, so hours for Shopify stores come from a schedule you maintain
Shopify orderCancel is refused while a payment authorization is pending or a return is in progress; those orders are listed instead
A Square refund cannot exceed the payment's total_money minus completed refunds, and a payment can become too old to refund
Restocking returns inventory to the location that held it; it does not move stock between locations
Access and pricing
Reference listing. Fibric builds the operator under a managed deployment when you request it. Your quote covers the build, capabilities, usage, and support.
Two kinds of proposal. A reminder: the customer, the channel, and the message text. A release: the cancellation with its reason, the restock, and the refund amount. Each is approved separately. A release is not proposed until a reminder was approved and delivered.
What is recorded on an expired order?
Per order: the time it became ready, the open days counted, each reminder with its delivery status, the release proposal, who approved it, the cancellation and refund ids the platform returned, and the staff note written on the order.
Does it ever cancel or refund on its own?
No. Every cancellation and refund is a proposal a person approves, and no message is sent without approval. Orders with a pending authorization, an open return, or a reply from the customer are held back and listed for review.
Ask about Pickup Expiry
Ask about the capabilities and requirements in this listing.
This operator is developed, published, and supported by Fibric. Third-party names and logos identify the systems an integration connects to; they are the property of their respective owners, who are not affiliated with Fibric and do not sponsor or endorse this listing. Trademark policy