Dynamic checkout buttons break checkout for products with fixed selling plans

Topic summary

Dynamic checkout ‘Buy Now’ buttons fail to pass the required selling plan for products that are only sold via a selling plan, triggering the error ‘Variant can only be purchased with a selling plan’. This occurs despite using {{ form | payment_button }}, which supports selling plans.

Observed behaviors:

  • Working: POST to /wallets/checkouts.json includes selling_plan_id on the line item; checkout completes.
  • Broken: GET to /cart/… with traffic_source=buy_now returns 410 Gone (from disk cache), attempting a cached cart without a selling plan.

Both stores use Dawn 12.0 with similar payment settings and identical template output. The payment button wrapper shows data-has-selling-plan=‘true’ and data-has-fixed-selling-plan=‘true’, indicating selling plan awareness. The reporter suspects over-aggressive caching in Shopify’s JS deciding between POST vs redirect.

Another merchant reports the same issue when clicking Add to Cart on products sold only with a selling plan.

Shopify acknowledged the issue, investigated, and later shipped an update to cart handling for subscriptions/selling plans. After the update, the problem persists (repro link provided with storefront password ‘downpay’).

Status: unresolved and ongoing. No workaround or fix has been provided yet; awaiting further guidance from Shopify.

Summarized with AI on January 6. AI used: gpt-5.

Hi Denis,

Thanks for flagging this - that does sound strange as it seems two different stores with the same version of Dawn are handling add to carts differently. I’ll connect with our teams internally to identify what might be happening here.