CostaTech – Express Checkout for Shop Pay
This plugin brings Shopify’s Shop Pay Wallet to your store. Shoppers get a fast, familiar “Buy with Shop Pay” button – both as an express button above the cart/checkout form, and as a normal entry in your payment method list – that opens Shop Pay’s own hosted payment sheet and completes the purchase
About this tool.
This plugin brings Shopify’s Shop Pay Wallet to your store. Shoppers get a fast, familiar “Buy with Shop Pay” button – both as an express button above the cart/checkout form, and as a normal entry in your payment method list – that opens Shop Pay’s own hosted payment sheet and completes the purchase without leaving your store’s checkout flow.
How it works
The plugin builds a live payment request from the WooCommerce cart (line items, discounts, shipping options, tax) and keeps it in sync with Shop Pay’s payment sheet in real time as the shopper changes their shipping address, delivery method, or discount code. As soon as the shopper submits payment, the plugin creates the matching WooCommerce order immediately – correctly reflecting the price, discount, shipping method, and customer account, exactly as shown in the payment sheet – the same way a normal WooCommerce checkout creates an order before payment is confirmed.
Reliability
Shop Pay’s own payment confirmation is asynchronous: submitting a payment successfully does not, by itself, guarantee the charge will actually be approved. Because of this, the plugin never marks an order as paid purely from that initial response – the order stays at Pending payment immediately after submission, and only Shopify’s own order-creation webhook – which reports the charge’s real, final status – moves it to Processing . If that webhook is delayed or misconfigured, the plugin also emails the store admin so nothing is missed silently. Setting up the webhook (see Installation) is strongly recommended – without it, successful orders will not automatically progress past “Pending payment”.
Note: because the order remains in WooCommerce’s standard “Pending payment” status rather than “On hold”, it is subject to your store’s own “Hold stock (minutes)” setting (WooCommerce > Settings > Products > Inventory), which can automatically cancel pending orders – and release their reserved stock – after that time period. If your webhook is ever significantly delayed, a genuinely-paid order could be auto-cancelled before confirmation arrives; consider setting a generous hold-stock window if this matters for your store.
Requirements
Shop Pay Wallet requires a Shop Pay/Shopify account with Shopify Payments active, separate from your WooCommerce store – this plugin connects to it via Shopify’s Storefront API. You’ll need:
- A dedicated Shop Pay account with Shopify Payments approved for your business
- Your Shop ID, Client ID, myshopify.com handle, and a Storefront API access token (all obtained from your Shop Pay admin – see Shopify’s Shop configuration guide )