Title: CostaTech &#8211; Express Checkout for Shop Pay
Author: costatech
Published: <strong>September 16, 2026</strong>
Last modified: September 16, 2026

---

Search plugins

![](https://ps.w.org/costatech-express-checkout-for-shop-pay/assets/icon.svg?rev
=3697932)

# CostaTech – Express Checkout for Shop Pay

 By [costatech](https://profiles.wordpress.org/costatech/)

[Download](https://downloads.wordpress.org/plugin/costatech-express-checkout-for-shop-pay.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/costatech-express-checkout-for-shop-pay/#description)
 * [Reviews](https://wordpress.org/plugins/costatech-express-checkout-for-shop-pay/#reviews)
 *  [Installation](https://wordpress.org/plugins/costatech-express-checkout-for-shop-pay/#installation)
 * [Development](https://wordpress.org/plugins/costatech-express-checkout-for-shop-pay/#developers)

 [Support](https://wordpress.org/support/plugin/costatech-express-checkout-for-shop-pay/)

## Description

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](https://shopify.dev/docs/api/commerce-components/pay/shop-configuration))
 * A webhook signing secret from Shopify admin – required for orders to automatically
   progress from “Pending payment” to “Processing” once payment is confirmed
 * (Optional) a prefix for Shopify order names (e.g. “NZ”), so a WooCommerce order
   number and its corresponding Shopify order are easy to tell apart at a glance

#### Third-party service disclosure

This plugin loads Shop Pay’s JavaScript SDK directly from Shopify’s CDN (`cdn.shopify.
com`) on the cart and checkout pages, so the “Buy with Shop Pay” button can render–
this happens as soon as either page loads, not only after a click. No cart, checkout,
or customer data is sent to Shopify until a shopper actively opens the Shop Pay 
checkout; from that point on, the plugin sends cart and checkout data (product details,
pricing, shipping selection, and – once payment is confirmed – the buyer’s billing/
shipping details) to Shopify’s Storefront API in order to process the payment. See
[Shopify’s Privacy Policy](https://www.shopify.com/legal/privacy) and [Terms of Service](https://www.shopify.com/legal/terms)
for how Shopify handles this data. “Shop Pay” is a trademark of Shopify Inc.; this
plugin is an independent, unofficial integration and is not produced, endorsed, 
or supported by Shopify.

#### Known limitations (v1)

 * Supports a single shipping package per order (most WooCommerce stores). Orders
   that split into multiple shipping packages are not yet supported.
 * Refunds and order capture are handled through your existing WooCommerce/Shop 
   Pay admin workflows – this plugin does not yet automate refund sync between the
   two.

## Screenshots

[⌊Express "Buy with Shop Pay" button on the cart page.⌉⌊Express "Buy with Shop Pay"
button on the cart page.⌉[

Express “Buy with Shop Pay” button on the cart page.

[⌊Shop Pay as an entry in the WooCommerce payment method list.⌉⌊Shop Pay as an entry
in the WooCommerce payment method list.⌉[

Shop Pay as an entry in the WooCommerce payment method list.

[⌊The Shop Pay payment sheet, synced live with the WooCommerce cart.⌉⌊The Shop Pay
payment sheet, synced live with the WooCommerce cart.⌉[

The Shop Pay payment sheet, synced live with the WooCommerce cart.

[⌊Plugin settings screen.⌉⌊Plugin settings screen.⌉[

Plugin settings screen.

## Installation

 1. Install and activate WooCommerce if you haven’t already.
 2. Upload and activate this plugin.
 3. Set up a Shop Pay account and enable Shopify Payments for it, if you haven’t already(
    see [Shopify’s Shop Pay documentation](https://help.shopify.com/en/manual/payments/shop-pay/shop-pay-on-any-platform)).
 4. Go to **WooCommerce > Settings > Payments > Shop Pay Wallet** and enter your Shop
    ID, Client ID, myshopify.com handle, and Storefront API access token – see [Shopify’s Shop configuration guide](https://shopify.dev/docs/api/commerce-components/pay/shop-configuration)
    for where to find each of these in your Shop Pay admin.
 5. In your Shop Pay admin, allowlist your store’s domain as an allowed origin for 
    the Shop channel.
 6. In Shopify admin, go to **Settings > Notifications**, scroll to **Webhooks**, and
    create webhooks for “Order creation” and “Order payment” (format: JSON), pointed
    at the URL shown in this plugin’s settings screen. Paste the shared secret shown
    there into the plugin’s “Webhook signing secret” field. This step is strongly recommended–
    without it, orders will not automatically progress past “Pending payment” once 
    paid.
 7. Enable the gateway and test a full purchase using Shopify Payments’ test mode before
    going live.

## FAQ

### Do I need a Shopify store to use this?

You need a Shop Pay account with Shopify Payments active – this is a separate, dedicated
account for accepting Shop Pay payments, not a full Shopify store replacing WooCommerce.
WooCommerce remains your store and the source of truth for orders, products, and
inventory.

### Does this replace my other payment gateways?

No – it adds Shop Pay as an additional option alongside your existing gateways. 
Shoppers who don’t use Shop Pay check out exactly as before.

### Why does a new order stay at “Pending payment” instead of “Processing”?

This is expected. Shop Pay’s own payment confirmation happens asynchronously, so
the plugin cannot know at the moment of checkout whether a charge will ultimately
be approved – the order stays pending immediately after submission, then relies 
on Shopify’s order-creation webhook to confirm the real outcome and move it to Processing.
This is usually near-instant, but depends on the webhook being set up correctly (
see Installation) and Shopify’s own delivery of it.

### What happens if a payment succeeds but the order doesn’t get marked paid?

Since the WooCommerce order is created before the charge is even submitted, there’s
no separate order-rebuilding step to fail – the order already exists, pending. If
the webhook that would normally move it to Processing is ever delayed, missing, 
or misconfigured, the plugin emails the store admin so it can be checked and resolved
manually.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“CostaTech – Express Checkout for Shop Pay” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ costatech ](https://profiles.wordpress.org/costatech/)

[Translate “CostaTech – Express Checkout for Shop Pay” into your language.](https://translate.wordpress.org/projects/wp-plugins/costatech-express-checkout-for-shop-pay)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/costatech-express-checkout-for-shop-pay/),
check out the [SVN repository](https://plugins.svn.wordpress.org/costatech-express-checkout-for-shop-pay/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/costatech-express-checkout-for-shop-pay/)
by [RSS](https://plugins.trac.wordpress.org/log/costatech-express-checkout-for-shop-pay/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.0.0**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [checkout](https://wordpress.org/plugins/tags/checkout/)[express checkout](https://wordpress.org/plugins/tags/express-checkout/)
   [shopify](https://wordpress.org/plugins/tags/shopify/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/costatech-express-checkout-for-shop-pay/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/costatech-express-checkout-for-shop-pay/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/costatech-express-checkout-for-shop-pay/reviews/)

## Contributors

 *   [ costatech ](https://profiles.wordpress.org/costatech/)

## Support

Issues resolved in last two months:

     0 out of 1

 [View support forum](https://wordpress.org/support/plugin/costatech-express-checkout-for-shop-pay/)