Display data for a specific package using the package.[id].* syntax. When the element lives inside a parent with data-next-package-id, you can use the shorthand package.<property> and the SDK resolves the ID from the parent context.
<!-- Long form — package ID in every path --><div> <h3 data-next-display="package.123.name">Product Name</h3> <span data-next-display="package.123.price">$0</span> <s data-next-display="package.123.price_retail">$0</s> <!-- legacy retail field --></div><!-- Shorthand — package ID inferred from parent --><div data-next-package-id="123"> <h3 data-next-display="package.name">Product Name</h3> <span data-next-display="package.price">$0</span> <s data-next-display="package.price_retail">$0</s> <!-- legacy retail field --></div>
The shorthand makes product card components reusable across packages — use the same markup with a different data-next-package-id.
These fields read package-level Retail Price from Campaigns App. They are preserved for existing campaigns, but new SDK 0.4.x builds should prefer Offer-based before/after pricing from bundle selector, package toggle, cart summary, and upsell price calculations.
Package-level qty is legacy Campaigns App data. For new builds, send the selected quantity from the page or component and use Offers to calculate quantity-tier pricing.