Confusion around migrating Product Subscription extensions to Purchase Options extensions (missing add/create/remove targets)

I’m currently working on migrating our legacy product_subscription extension to the new Purchase Options UI extension.

With the legacy product_subscription extension, apps were able to hook into four extension modes, which allowed full control over the purchase option lifecycle:

Extension modes

  • Add – Add an existing purchase option to a product or variant

  • Create – Create a new purchase option

  • Edit – Edit an existing purchase option

  • Remove – Remove an existing purchase option from a product or variant

This made it possible for apps to fully customize the add, create, edit, and remove experiences within the Shopify admin.

While migrating to the new Purchase Options extension, I only see a single available target:

admin.product-purchase-option.action.render

From what I can tell, this target is only rendered when clicking the edit icon on an existing purchase option. This effectively means the extension can only customize the edit experience.

I’m not seeing any equivalent extension targets for:

  • adding an existing purchase option

  • creating a new purchase option

  • removing a purchase option

My question:
Is this limitation intentional?

Specifically:

  • Are Purchase Options extensions expected to be edit-only by design?

  • Is there another extension target intended for controlling the add/create/remove experiences?

  • If not, what is the recommended migration path for apps that previously relied on the full set of extension modes provided by product_subscription?

I want to make sure I’m not missing something, as this appears to be a significant functional difference compared to the legacy extension.

Any clarification would be greatly appreciated.

1 Like

Hey @rgylling :waving_hand: thanks for reaching out.

I’ve confirmed internally that this is by design on our side.

Shopify now owns the native Purchase Options card UI (including add/remove experiences), and the admin.product-purchase-option.action.render target is the only extension point, specifically for customizing the create/edit flow. This is part of our “division of responsibilities” model where Shopify handles the standard UI patterns natively while apps focus on the configuration experience.

For your migration, you’ll want to use that single action target for create/edit customization and subscribe to selling_plan_groups/create and selling_plan_groups/update webhooks to stay informed of changes and trigger any app-side logic. There’s no current public roadmap for additional targets matching the legacy extension’s four modes, but if this is a blocker I’m definitely happy to pass along a feature request - just let me know. Hope that helps clarify things!