Technical Deep Dives with Oracle Commerce Cloud: Implementing Buy Online, Pickup In-Store

By: Mat Herron, CommercePros Community Writer

Buy Online, Pickup In-Store (BOPIS) is now a common shopping behavior: Seventy percent of U.S. online consumers buy online, pickup in-store to some degree, while 5 percent of U.S. online consumers use it every time they make a purchase with a retailer that has in-store pickup enabled.


Oracle Commerce Cloud's BOPIS functionality allows a customer to order items online and choose a store location where they can pick them up. Merchants can offer customers the option of paying either online or in-store, and the Oracle Commerce Cloud solution includes an “online-only” flag for products and SKUs to differentiate items that can be picked up in-store from those that cannot. Buy Online, Pickup In-Store is supported via API and new, out-of-the-box Storefront widgets.

Creating Store Locations and Inventory

Oracle Commerce Cloud features API support for several types of Buy Online, Pickup In-Store. Shoppers can pick the store location where goods are in-store, available for immediate pickup, and where the shopper pays online or in-store. It also allows shoppers to pick the store location where goods are unavailable in-store, and also supports instances where a merchant ships goods from an online inventory location to a shopper’s selected store location.


Merchants can use the API to associate a site to a list of store locations, or designate a store location as an inventory location or a pickup location. They can also use it to retrieve inventory counts for a list of SKUs and a list of locations associated with the current site. Additionally, a new “pay in-store” payment group type has been added to support the “in-store pickup” option.


Oracle Commerce Cloud’s API supports all Buy Online, Pickup In-Store-related data, including a pickup location (the location where customers pick up items) and a new property called inventory location (the location where an order will be fulfilled). Several optional data fields are supported, including first name, last name and telephone number of authorized pickup person; date and time that the item will be available for pickup, and date and time that the shopper prefers to pick up their item or items. Finally, Oracle Commerce Cloud webhooks have been updated to support all Buy Online, Pickup In-Store data, and an admin payment setting enables a pay in-store option.

Updating Your Storefront

OCC Storefront includes six widgets that allow for a seamless buyer experience:  Product Details, Shopping Cart, Shipping Options, Checkout Order Summary, Payments, and Order Confirmation and Details.


The Product Details widget allows shoppers to check if the selected SKU is available for in-store pickup. They can enter store search criteria (e.g. postal code, city, name), and retrieve inventory details for matching stores. Shoppers can then select the desired store and add the SKU to their shopping cart.


Once inside the Shopping Cart widget, shoppers can select the delivery method for each line item on cart. The widget’s Mixed Cart Model allows for certain items to be delivered to the customer’s home and others to be picked up. If an item is available for in-store pickup, the shopper can find and select a store. A mini-cart icon will display if the item is selected for store pickup.


The Storefront’s Shipping Options widget manages all shipping options at checkout (i.e. home delivery, pickup in-store). For items being picked up in-store, the shopper can enter the name and telephone number of the person picking up the order, and choose split shipping across multiple addresses even if Buy Online, Pickup In-Store is not supported.


The Storefront’s Checkout Order Summary widget displays a list of shipping groups and a summary of each shipping group. Shoppers can expand or collapse shipping group information.


Within the Payments widget, if an order contains only “in-store pickup items,” the shopper can select to pay in-store or pay online. If the order contains a mix of items to be picked up in-store and home delivered, the shopper must pay online. If the order contains more than one store location for pick up, the shopper must pay for all items online.


Lastly, the Order Confirmation and Details widget displays all BOPIS-related details per shipping group. Please note: B2B versions of both widgets have also been consolidated, therefore original B2B widgets are deprecated.


The Storefront’s new Staged Checkout Layout includes a new, out of the box instance of a progress tracker stack that uses custom display templates to display the progress tracker vertically on the layout. The following stages are included: Shipping, Payment, and Review Order. Additionally, both “Goods Ready for Pickup” and “Goods Have Been Picked Up” confirmation emails have been added. Shipping group information and store pickup details are now available in the notification data for all order-related emails.

Testing Buy Online, Pickup In-Store

The following are end-to-end test case considerations for OCC merchants: The shopper should be able to place a Buy Online, Pickup In-Store order, a multi-store Buy Online, Pickup In-Store order, and/or a mixed order (Buy Online, Pickup In-Store and home delivery). The shopper should be able to cancel or return a Buy Online, Pickup In-Store order, return a mixed order, edit a Buy Online, Pickup In-Store order, edit a mixed order, exchange a Buy Online, Pickup In-Store order, and exchange a Buy Online, Pickup In-Store mixed order.


This article contains information from a presentation by Oracle Commerce Cloud Product Managers Elaine Niblock, Shari Sykes, and Shea Nolan. For more information on Buy Online, Pickup In-Store in Oracle Commerce Cloud and to see a live demo, watch the full video at Oracle Video Hub (login required), and be sure to visit the Oracle Commerce Cloud Group (login required) for technical content, discussions, and assistance. Public documentation for Oracle Commerce Cloud Buy Online, Pickup In-Store is available here.
Technical Deep Dives with Oracle Commerce Cloud: Implementing Buy Online, Pickup In-Store