Powering your next flash sale
During a recent storefront implementation, I was looking into implementing a New Product Launch use case where a limited-edition product would be introduced to customers, but they cannot purchase it yet. The customers would start purchasing the product at a certain date and time (after enough Marketing activities).
Imagine product A being introduced to the market and there are only 10000 available. A million customers would line up to purchase the product on a certain day and time. Until then, the product page is available without the price and the product is not orderable. In short, you need the following capabilities.
- Need the ability to display the product page without the price.
- The product should become orderable at a certain time
- 1 million burgers should be sold out in 10 minutes
- System should be up and running at peak performance during the sale (imagine 1M customers fighting a single product and there are only10000 Quantity on Hand)
There will be too many add to cart action but only a few customers will be able to purchase it.
Let us see how we can achieve this with Sitecore OrderCloud.
Creating a product for flash sale
The goal is to set up a product so that it is visible to the users but it is not orderable. So as a user, the customer must be able to see the product. To do so, we need the following configuration:
- Product.Active = true
- Catalog exists where:
- Catalog.Active = true
- Buyer is assigned via CatalogAssignment
- Product is assigned via ProductCatalogAssignment
- One of the following is true:
- CatalogAssignment.ViewAllProducts = true, OR
- Category exists in Catalog where
- Active = true
- Product assigned via CategoryProductAssignment
- CategoryAssignment exists where
- Buyer, User, or Group matches the user
- ViewAllProducts = true for first non-null setting up the tree
- ProductAssignment exists for Buyer or any Group the user belongs to (PriceScheduleID not required)
Once these configurations are in place, the product is visible to the user via the me routes. But it is not orderable because there is no Price Schedule. The product is assigned to the catalog and the user is assigned to the catalog.
Create a Price Schedule but DO NOT ASSIGN IT TO THE PRODUCT YET.
Setting up the inventory
Using the API, create an inventory record for the product. Assign quantity available.
- POST v1/products/{productID}/inventoryrecords
So, at this point, the PDP should be displaying all the details except price and inventory is set up in the backend.
Making the Product Orderable
Right when you want the flash sale to begin, you should assign a DefaultPriceScheduleID on the product. If you want a subset of users to not see the default price you still have the option of creating a product assignment in addition to the default price which will essentially override what those users see.
You can create a product assignment which forms a relationship between the product, the price schedule and the party. Adding a default price schedule id will make the product purchasable, show the price on PDP and allow it to be added to cart.
During Add to Cart, add the product to the cart using POST v1/cart/lineitems making sure to include LineItem.InventoryRecordIDin the request body, otherwise the inventory count will not decrease.
Sitecore OrderCloud, as a SaaS-based system, excels in managing high concurrency, enabling sales of a million burgers in under 10 minutes during flash sales. Unlike traditional inventory management systems, OrderCloud surpasses many modern SaaS-based eCommerce platforms. It ensures customers experience peak performance even during periods of high traffic.
The platform effortlessly manages tasks like adding to cart, order submissions, and updating highly concurrent inventory records while maintaining optimal system performance under heavy load. If you are looking for a demo or just have a casual discussion about Sitecore OrderCloud, please feel free to reach out or message me on LinkedIn.
References
- https://ordercloud.io/knowledge-base/product-visibility
- https://ordercloud.io/knowledge-base/inventory-management
- https://ordercloud.io/discover/platform-overview