Completions

Commercial pillar · BOPIS software · Omnichannel fulfillment

BOPIS friction detection: per-location, per-step diagnosis of why each pickup abandonment happens

Manhattan, Salesforce, NewStore, Aptos, Adobe Commerce, Shopify, BigCommerce, Cin7, and FlowHub ship pickup orchestration. They emit completion events. They do not classify abandonment events per location per step per canonical-friction-pattern. Brand-level BOPIS-completion-rate of 86 percent hides the per-location distribution where seven stores at 71 percent generate most of the abandonment volume. Per-location per-step friction detection is operator-side wiring on top of the orchestration primitive.

Published May 30, 2026

The twelve steps where BOPIS abandonment hides

Order-place, order-confirm, fulfillment-route, pick-pack, ready-notify, customer-arrive, locker-or-counter, ID-verify, staff-handoff, customer-receive, receipt-emit, satisfaction-survey. Twelve discrete steps. Each can fail independently. Each location fails differently.

Store #47 has reliable lockers and slow staff handoff — customer-receive step abandonment dominates. Store #112 has fast staff and a broken ready-notify integration — customer-arrive step abandonment dominates because the customer arrived before they were notified. Store #229 has chronic pick-pack errors — abandonment is downstream of the order being unfulfillable rather than the customer experience.

A brand-level completion rate of 86 percent across all locations hides this distribution. The customer-experience team sees one number. Three stores at 96 percent and seven stores at 71 percent average to 86 percent. The seven stores are where 60-plus percent of the abandonment volume comes from. Per-location per-step friction detection makes the distribution visible.

Five canonical friction patterns and how to detect each

Ready-notify lag. Order is ready, the notification fires more than fifteen minutes late, customer arrives before notified, leaves frustrated. Detect by joining pick-pack completion timestamp to push-notification send timestamp per location.

Locker saturation. Locker bank fills, overflow orders route to counter, staff-handoff queue builds, customer wait time exceeds tolerance. Detect by joining locker-fill-rate to staff-handoff-queue-length per location per hour.

Staff-handoff bottleneck. Single staff member running the pickup counter during peak hours, queue forms, customer leaves. Detect by joining customer-arrival rate to active-staff count per location per hour.

ID-verify friction. The ID-check step takes too long or fails repeatedly for legitimate customers, abandonment spikes. Detect by joining ID-verify duration distribution per location per staff member.

Pick-pack error. Wrong item picked, customer arrives and the order is unfulfillable. Abandonment is downstream of the error rather than the customer experience. Detect by joining pick-pack confirmation to customer-arrival outcome per location per pick-staff.

BOPIS and curbside share a friction-detection layer

Curbside pickup substitutes the customer-vehicle-arrive + staff-handoff-to-vehicle + verify-receipt-at-vehicle steps for the locker-or-counter + ID-verify steps. The canonical patterns recompose: curbside ready-notify lag, curbside vehicle-queue saturation, curbside staff-walk-time bottleneck, curbside parking-spot misassignment.

The event-ingestion connectors, the per-location per-step join pipeline, the canonical-pattern classifier, and the downstream action wiring are identical to in-store BOPIS. Only the per-step event schema differs. Operators running both flows benefit from a unified friction-detection layer over one event schema rather than two parallel detection systems.

Frequently asked

What is BOPIS friction detection and why does it need per-location granularity?

BOPIS friction detection is the layer that attributes each pickup abandonment to its root-cause step + root-cause location + root-cause staffing context. The BOPIS flow has roughly twelve discrete steps: order-place, order-confirm, fulfillment-route, pick-pack, ready-notify, customer-arrive, locker-or-counter, ID-verify, staff-handoff, customer-receive, receipt-emit, satisfaction-survey. Each step can fail. Each location can fail differently — store #47 has reliable lockers but slow staff handoff; store #112 has fast staff but a broken ready-notify integration; store #229 has chronic pick-pack errors. Brand-level BOPIS-completion-rate of 86 percent hides the per-location distribution. Three stores at 96 percent and seven stores at 71 percent average to 86 percent. The seven stores at 71 percent are where the abandonment volume actually lives. Per-location per-step friction detection surfaces the specific step + specific location where each unit of abandonment occurred.

Why do Manhattan, Salesforce, NewStore, Aptos, Adobe, Shopify, BigCommerce, Cin7, and FlowHub not solve this?

Those platforms ship BOPIS orchestration — the workflow that moves an order from cart through fulfillment through pickup-handoff. They are excellent at the orchestration primitive. None of them ships the per-location per-step abandonment-classification layer. Manhattan and Salesforce focus on the order-management primitive — they emit completion events but not abandonment-classification events. NewStore and Aptos focus on store-associate workflow — they emit staff-action events but not customer-friction events. Adobe Commerce and Shopify and BigCommerce focus on the ecommerce front-end — they emit cart events but not pickup-floor events. Cin7 and FlowHub focus on inventory and dispensary workflows. The cross-cutting layer that joins ecommerce events to staff events to inventory events to customer-arrival events per location per step is operator-side wiring.

What are the canonical BOPIS friction patterns and how do you detect each?

Five canonical patterns recur across multi-location BOPIS operations. First: ready-notify lag — the order is ready but the notification fires more than fifteen minutes late, customer arrives before notified, leaves frustrated. Detect by joining pick-pack completion timestamp to push-notification send timestamp per location. Second: locker-saturation — locker bank fills, overflow orders route to counter, staff-handoff queue builds, customer wait time exceeds tolerance. Detect by joining locker-fill-rate to staff-handoff-queue-length per location per hour. Third: staff-handoff bottleneck — single staff member running the pickup counter during peak hours, queue forms, customer leaves. Detect by joining customer-arrival rate to active-staff count per location per hour. Fourth: ID-verify friction — the ID-check step takes too long or fails repeatedly for legitimate customers, abandonment spikes. Detect by joining ID-verify duration distribution per location per staff member. Fifth: pick-pack error — wrong item picked, customer arrives and the order is unfulfillable, abandonment is downstream of the error rather than the customer experience. Detect by joining pick-pack confirmation to customer-arrival outcome per location per pick-staff.

How does BOPIS friction detection integrate with omnichannel fulfillment infrastructure?

The friction-detection layer sits downstream of the omnichannel fulfillment infrastructure and upstream of the customer-recovery layer. Upstream it consumes events from the order-management system (Manhattan or Salesforce or NewStore or Aptos), the in-store workflow system (NewStore or Aptos or platform-native), the ecommerce front-end (Adobe Commerce or Shopify or BigCommerce), and the inventory system (Cin7 or FlowHub or platform-native). It joins these event streams per location per step and classifies each abandonment against the canonical patterns. Downstream it emits classified-abandonment events to the customer-recovery pipeline (which fires service-recovery offers per customer per pattern), the staffing-rotation pipeline (which adjusts per-location staffing schedules against pattern frequency), and the attribution pipeline (which joins abandonment patterns to revenue impact + customer-lifetime-value erosion per location). The friction-detection layer is not a system of record; it is the cross-cutting analytics + action layer that joins existing systems.

What is the difference between BOPIS friction detection and curbside-pickup friction detection?

The friction-detection layer is the same architecture but the steps differ. Curbside pickup adds the customer-vehicle-arrive step (customer texts arrival, vehicle pulls into designated spot), the staff-handoff-to-vehicle step (staff walks order to vehicle, hands off), and the verify-receipt-at-vehicle step. It removes the locker-or-counter step and the ID-verify step. The canonical friction patterns recompose: curbside ready-notify lag, curbside vehicle-queue saturation, curbside staff-walk-time bottleneck, and curbside parking-spot misassignment. The detection joins, the classification, and the downstream action pipeline are identical to in-store BOPIS — only the per-step event schema differs. Operators running both BOPIS and curbside benefit from a single friction-detection layer over a unified per-step event schema rather than two parallel detection systems.

What is the typical engagement model for building BOPIS friction detection?

Tier 1 AI Readiness Assessment ($10k, 2-3 weeks) audits the current per-location per-step event coverage, identifies which steps emit events and which are dark, and produces the per-location per-step instrumentation gap map. Tier 2 AI Swarm Setup Sprint ($25-50k, 4-8 weeks) builds the friction-detection layer end-to-end: event-ingestion connectors for each upstream system, per-location per-step join pipeline, canonical-pattern classifier, downstream action wiring to customer-recovery and staffing-rotation and attribution. Tier 3 Fractional CMO with AI Swarm ($15-25k/month, 6-month minimum, 1-2 days/wk embedded) operates the layer in production, extends the canonical-pattern catalog as new patterns emerge per vertical, and coordinates the per-location service-recovery cadence. Operator team owns the per-location per-step event store, the canonical-pattern definitions, and the credentials. Completions owns the orchestration knowledge.

Engage Completions

Start with the AI Readiness Assessment (Tier 1, 2-3 weeks, $10k). Hand off to Tier 2 AI Swarm Setup Sprint ($25-50k, 4-8 weeks). Continue under Tier 3 Fractional CMO with AI Swarm ($15-25k/month, 6-month minimum, 1-2 days/wk embedded).