Reference · built on requestOperator by FibricOrders & fulfillment

Pickup Expiry

Finds pickup orders past their hold window, counted in open days, and proposes the reminder or the cancel, restock, and refund.

About

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.

    With Shopify, Twilio

  • Count only open days

    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.

    With Square, Holidays & FX Reference

  • Cancel a Square pickup and refund

    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.

    With Square

  • Clear Awaiting Pickup in BigCommerce

    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.

    With BigCommerce, Klaviyo

Requirements

  • 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.

Request Pickup Expiry ↗

Questions and answers

What gets approved, and by whom?
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.

For project-specific requirements, contact Fibric.