This page explains the specifications, usage conditions, and behavior by payment method for "Oversell Protection," a function that prevents "overselling (excess sales)" where orders are placed exceeding the available stock.
1. Overview and Purpose
During large-scale sales such as flash sales, stock levels can fluctuate in the brief moment between when a customer clicks Shopify's checkout button and when the payment is completed, sometimes resulting in orders exceeding physical stock. Oversell Protection is a feature designed to minimize overselling due to stockouts during the payment process for KOMOJU payments.
2. About Feature Provision
The core logic of this feature is controlled by Shopify, the platform provider.
- Scope of Feature Provision by Shopify: This feature is based on the specifications of the payment API provided by Shopify.
- Main Entity for Final Verification: Shopify's system is ultimately responsible for validating stock availability and deciding whether to approve or decline the payment.
- Operation: Our ability to investigate operations is limited to the information we currently possess. Please be aware in advance that we may ask you to consult with Shopify regarding the success or failure of inventory allocation in the payment flow, as well as any system-related malfunctions.
3. Usage Conditions and Limitations
Usage Conditions
This feature is currently provided as a beta version, and an application is required to enable it.
- Application Method: Please log in to your admin screen using an account with owner authority and contact us via the contact form (link to the form).
- Scope of Application: All target payment methods will be enabled at once (it is not possible to disable only specific payment methods).
- Target Payment Methods: Credit Card / Convenience Store (excluding 7-Eleven) / PayPay / au PAY / d-barai / Rakuten Pay
System Requirements (Cases Where Not Applicable)
This feature will not apply if the following settings are configured:
- The Shopify setting "Continue selling when out of stock" is enabled.
- The Shopify setting "Track quantity" is turned off.
- "No redirect" is selected for credit card payments (only "external redirection" is supported).
- "Show combined" is selected for smartphone payments like PayPay (only "Show individually by brand" is supported).
Important: Notes on Combined UseIf you use payment methods that do not support this feature or combine it with other third-party payment providers, KOMOJU cannot guarantee a complete absence of overselling. Please keep in mind that unless inventory control works across all payment paths, the risk of overselling remains.
4. Flow to Payment Completion and Timing of Inventory Checks
Based on Shopify's standard specifications, the behavior of the inventory check varies depending on the payment method.
The key factor is the elapsed time between "Session Confirm" (inventory verification) and "Payment Resolve" (payment finalization).
A. Credit Card / Convenience Store Payments
Since these payment methods do not require redirection to external payment pages and are completed entirely on the KOMOJU host page, all processes are normally carried out within 3 minutes. Therefore, the likelihood of overselling occurring is very low.
- Timing of Inventory Check: When the customer clicks the "Pay" button on the KOMOJU host page (Payment Resolve function).
- In Case of Stockout: If there is no stock at the time "Pay" is clicked, the customer is redirected back to the Shopify screen and a stockout error is displayed. No order or payment records will be created in either Shopify or KOMOJU.
B. Smartphone Payments (PayPay / au PAY / d-barai / Rakuten Pay)
For payment methods that redirect to external payment pages, checks are performed in the following two stages:
- Before Redirection (Session Confirm): Stock availability is checked before transitioning to the external payment page.
- Return to KOMOJU (Payment Resolve): When the customer returns to KOMOJU after finishing the external payment, it is determined whether Shopify will perform another stock check.