We have a POS app that calculates and applies custom discounts to the POS cart. Recently Shopify has released product exchanges to POS. Is there an extension target coming that will allow apps to apply discounts to exchanged items?
Heres the situation: currently a ‘VIP‘ customer returns a product to exchange with another. The returned product had the ‘VIP‘ discount applied through our app. The staff selects the new product the customer would like but is currently unable to apply the discount through our app on the new item. They then have to manually work out what the discount would be and apply it to the item.
Hi @Chris_Walker
From digging into this, it does look like this is a current limitation - The current POS exchange flow doesn’t have extension targets that give apps Cart API access during the exchange product selection step, so there’s no way to programmatically apply discounts to the new items being added in an exchange.
The exchange-related extension targets that exist today (pos.exchange.post.block.render, pos.exchange.post.action.render, etc.) only fire after the exchange is completed, and they provide the Order API rather than the Cart API — so they’re designed for post-exchange workflows like analytics, receipts, and follow-ups, not for modifying the cart during the exchange.
For now, the workaround your staff is using (manually calculating and applying the discount) is unfortunately the expected path. A couple of things worth noting:
- Post-exchange targets are still in beta (invite-only feature preview, requires POS UI extensions version 2025-07+ and POS app 9.31.0+). The exchange extension surface is still being built out.
- I’d strongly recommend filing a feature request through the Shopify Partners dashboard or reaching out to your Partner Manager if you have one. Requesting in-exchange Cart API access (similar to what’s available on the standard cart screen) would help the POS team prioritize this.
The POS UI extensions platform has been expanding rapidly — cart details targets, draft order targets, and post-exchange targets have all been added recently — so this is an area that’s actively evolving.
For reference: