Deposit not applied at checkout

If Downpay is installed and configured but the deposit is not being applied at checkout, this guide walks you through the most common reasons it happens and how to fix them. This is usually caused by a part of the page's add to cart flow that is outside of Downpay's standard integration, such as a custom button, a third-party app, or a page builder.


On this page:


Overview




Overview


If a customer selects the deposit option on your product page but is charged the full price at checkout, it typically means the product was added to the cart without a selling plan attached. This can happen for a number of reasons unrelated to Downpay itself.


How Downpay attaches a deposit


Downpay signals a deposit purchase to Shopify by attaching a selling plan ID to the cart line item. It does this by injecting a hidden selling_plan field into any standard Shopify product form on the page and by storing the selected value at window.downpay.selected_selling_plan_id.


If the cart request is made without that selling plan field, Shopify has no deposit instruction and processes the order at full price.


Common causes


  • Custom or AI-generated add to cart buttons that call /cart/add.js directly via fetch without reading the selling plan from Downpay
  • Third-party apps (page builders, product options, upsells, custom cart drawers, etc.) that handle their own add to cart flow and do not pass the selling plan through
  • Quick add buttons on collection or home pages that bypass the product form entirely (see our quick add button guide)
  • Headless or custom storefronts that do not use Shopify's standard product form (see our headless and custom storefront documentation)


How to diagnose


The fastest way to confirm the issue is to check whether selling_plan is present on the cart line item after adding the product.


  1. Add the product to your cart with the deposit option selected
  2. Visit yourstore.myshopify.com/cart.js in your browser
  3. In the response, find the item and look for a selling_plan_allocation field


If selling_plan is null or missing, the selling plan was not included in the cart request and that is the source of the problem.


Fix: Custom or AI-generated add to cart buttons


Note: These changes apply only to the custom section. No changes to your main theme or other product pages are needed. If you are not comfortable editing your theme code, we recommend working with a Shopify developer or agency.


If the issue is on a product page with a custom-built or AI-generated add to cart button, the button's JavaScript needs to read the selected selling plan from Downpay and include it in the cart payload.


Replace your existing fetch('/cart/add.js', ...) call with the following:


var sellingPlanId = (window.downpay && window.downpay.selected_selling_plan_id) || null;
var cartPayload = { id: variantId, quantity: 1 };
if (sellingPlanId) cartPayload.selling_plan = sellingPlanId;

fetch('/cart/add.js', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(cartPayload)
});


When a customer selects full price, selected_selling_plan_id is null and the field is omitted. Shopify handles that correctly as a regular purchase.


If your custom section also handles variant switching, make sure it dispatches the correct event so Downpay can recalculate the deposit amount in the widget:


document.dispatchEvent(new CustomEvent('theme:variant:change', {
bubbles: true,
detail: { variant: matched } // replace "matched" with your selected variant object
}));


Fix: Third-party apps


If the issue is caused by a third-party app handling the add to cart flow, the fix needs to come from that app. Downpay cannot inject the selling plan into another app's request.


Steps to resolve:


  1. Identify which app is handling the add to cart action on the affected page
  2. Contact that app's support team and explain that their cart request needs to include the selling_plan parameter when a selling plan is selected.
  3. Point them to Shopify's documentation on selling plan cart requests if needed


If the app cannot support selling plans, it may not be compatible with Downpay on that page and you may wish to review our compatibility list to find another app that works with Downpay.



Template email when contacting apps about this issue


Use the email template below when contacting other Shopify apps about this issue.


 
Hi [App Name] Support,

I'm using your app alongside Downpay (a Shopify deposit and split payment app) and running into a compatibility issue.

When your app handles the add to cart action, it is not including the selling_plan parameter in the cart request. Downpay relies on this parameter to attach a deposit purchase option to the cart line item. Without it, Shopify processes the order at full price instead of splitting the payment.

The fix on your end would be to check for a selected selling plan before submitting the cart request and include it in the payload if one is present. The selected selling plan ID is available at window.downpay.selected_selling_plan_id on the page.

The cart request should look something like this:

{
"id": variantId,
"quantity": 1,
"selling_plan": sellingPlanId
}

Shopify's documentation on selling plan cart requests may be helpful here:
https://shopify.dev/docs/api/storefront/latest/mutations/cartLinesAdd

Happy to share more details or connect you with the Downpay team if that would help move things along.

Thanks,
[Your name]
[Store name]




Jump to top


Updated on: 13/04/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!