Rite Aid: Buy Online, Pick Up In Store (BOPIS) 

The Challenge

On the surface, “buy online, pick up in store” sounds straightforward. 

In reality, it rarely is. 

Rite Aid operates more than 2,000 stores across the U.S., each with its own hours, inventory, and fulfillment capabilities. What seems like a simple customer experience actually depends on a lot of moving parts working together consistently and in real time. 

For it to work the way customers expect, the system needs to know exactly what’s available at a specific store at that moment. Orders need to reach store teams quickly and accurately. Customers need clear communication on when their order is ready. Payment needs to reflect what actually happens in-store, not just online. 

All of that has to work across thousands of locations, every day. 

This is where strategy and execution come together. 

Building Store Awareness 

Every store operates a little differently. Different hours. Different services. Different constraints. 

So we treated each location as its own environment. 

We built store profiles that account for address, contact details, operating hours, and time zone. Time zone awareness became critical. An order placed at 8 PM in California should not create confusion for a store that is already closed on the East Coast. 

From there, we layered in capability. Not every store offers the same services such as curbside pickup, drive-through, or same-day delivery. The experience adapts in real time so customers only see what is actually possible at their selected location. 

Simple on the front end. Thoughtful on the back end. 

Real-Time Inventory That Actually Reflects Reality 

Inventory is where these experiences often break down. 

If a customer adds something to their cart, they expect it to be there when they check out. That requires more than periodic syncing. It requires real-time validation. 

We integrated directly with Manhattan’s inventory system to check availability at the store level. These checks happen early, not just at checkout, so customers are not surprised later in the process. 

Under the hood, each store functions as its own inventory source within Adobe Commerce. When an order is placed, the system reserves that inventory immediately, preventing overlap or overselling. 

We also accounted for edge cases such as inventory shifting between add-to-cart and checkout, duplicate reservations, and delayed updates. Safeguards were built to keep the experience reliable. 

Because trust is built in moments like this.  

Making Sure Orders Actually Reach the Store 

Placing an order is one thing. Getting it to the right place at the right time is another. 

Once checkout is complete, the order is sent to the store through Manhattan’s fulfillment API, including everything the store team needs to act such as items, payment details, pickup instructions, and store identification. 

Integrations are not always perfect. Systems fail. Connections drop. 

So we planned for that. 

If an order does not go through on the first attempt, it is automatically retried in the background. Multiple attempts. Configurable timing. Full visibility into what happened and when. 

Nothing gets lost. Nothing gets stuck quietly in the background. 

Pharmacy orders required an additional layer with their own logic and compliance considerations, so we built a parallel flow to support that complexity. When Built-In Tools Aren't Enough 

Shopify does a solid job out of the box, but some scenarios call for added protection, especially if suspicious behavior continues. 

Keeping Customers in the Loop 

Communication does not stop after checkout. 

As orders move through fulfillment such as picked, packed, ready, or collected, the store system sends updates back to the platform through REST APIs. These updates power customer notifications and trigger the next steps in the process. 

It becomes a two-way conversation between systems designed to keep the experience clear and predictable. 

Payment That Reflects Real-World Behavior 

One important nuance is that customers should not be charged until they actually receive their order. 

We structured payment to authorize at checkout but capture only after pickup is confirmed. 

Each payment provider handles this differently, so we created a layer that standardizes the process across Authorize.net, PayPal, Afterpay, and others. 

If an order is never picked up, the system cancels it after a defined period and releases the authorization automatically. 

Clean. Accountable. Aligned with the real-world experience.  

Supporting More Than Just Pickup 

Not every order ends at the store. 

For shipped orders, we integrated with Logicbroker to route fulfillment to the right vendors. The system evaluates shipping method, checks fraud status through Signifyd, and ensures orders are released at the right time. 

We also added monitoring across the pipeline so teams can quickly spot and resolve issues before they impact customers. 

Same-Day Delivery When Speed Matters 

For customers who want it faster, we integrated DoorDash. 

Delivery windows are calculated based on store hours, and the delivery flow is handled separately from pickup to avoid confusion. 

It is another layer of flexibility built into the same ecosystem. 

Curbside, Built for Real Life 

Curbside pickup became essential in recent years. 

We created a simple way for customers to signal when they have arrived. From there, the store team is notified and can bring the order out directly. 

No friction. No guesswork. 

What We Learned Along the Way 

Work like this always surfaces lessons. 

Real-time systems need to be fast, but they also need to be resilient. We optimized inventory calls so they would not slow down checkout and built fallback logic to keep things moving when systems lag. 

Edge cases matter more than expected. Mixed carts, regional fees, and tax differences all required intentional handling to avoid breaking the experience. 

Visibility is everything. With multiple systems working together, we built monitoring and logging across every integration point so issues can be identified early and resolved quickly. 

In some areas, like refunds, we made a deliberate choice to keep things manual. Automation is not always the right answer when complexity introduces risk. 

In Summary 

This was not a plug-and-play feature. 

It was a connected system designed to reflect how stores actually operate across time zones, services, and thousands of locations. 

From real-time inventory and store-aware logic to resilient order syncing and thoughtful payment handling, every piece was built to support a consistent and reliable experience at scale. 

Because at the end of the day, this is not just about enabling a feature. 

It is about building trust, one order at a time. 

Project Credit: This project was completed while members of the Aysnd team were part of Something Digital (later Rightpoint). The work shown here represents the experience and contributions of those team members prior to the founding of Aysnd.


Let’s build something that works. 

If you’re navigating challenges like this, we’d love to be part of the conversation.

Connect with us

Aysnd

Aysnd is a digital agency offering web design, development, and ecommerce solutions, driven by creativity, collaboration, and conscious strategies to elevate your impact.

https://www.aysnd.com
Previous
Previous

The Alchemy of Purpose

Next
Next

Growing the Good at Aysnd