> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://docs.downpay.app/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# 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](#1-overview)

* [How Downpay attaches a deposit](#2-how-downpay-attaches-a-deposit)
* [Common causes](#3-common-causes)
* [How to diagnose](#4-how-to-diagnose)
* [Fix: Custom or AI-generated add to cart buttons](#5-fix-custom-or-ai-generated-add-to-cart-buttons)
* [Fix: Third-party apps](#6-fix-third-party-apps)

---
---

# 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](https://docs.downpay.app/en/article/enable-quick-add-button-to-support-deposits-1p8744m))
* **Headless or custom storefronts** that do not use Shopify's standard product form (see our [headless and custom storefront documentation](https://docs.downpay.app/en/article/using-downpay-headless-with-hydrogen-13fqczn/))

## 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:

```javascript
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:

```javascript
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](https://shopify.dev/docs/api/storefront/latest/mutations/cartLinesAdd) 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](#on-this-page)
