From acp-agentic-commerce
Implements ACP discount extension for coupon codes in checkout sessions: handles submitted codes, applied discounts with line-item allocations, rejected codes, and totals updates.
npx claudepluginhub orcaqubits/agentic-commerce-skills-plugins --plugin acp-agentic-commerceThis skill is limited to using the following tools:
**Fetch live docs**:
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Automates semantic versioning and release workflow for Claude Code plugins: bumps versions in package.json, marketplace.json, plugin.json; verifies builds; creates git tags, GitHub releases, changelogs.
Fetch live docs:
site:github.com agentic-commerce-protocol rfcs discount_extension for the discount extension RFCsite:github.com agentic-commerce-protocol examples discount-extension for discount exampleshttps://developers.openai.com/commerce/specs/checkout/ for how discounts interact with checkoutsite:github.com agentic-commerce-protocol spec json-schema discount for the discount JSON schemaThe discount extension adds coupon/promo code support to ACP checkout sessions. It's a built-in extension that follows the extensions framework with independent versioning.
discountdiscount@2026-01-27)$.CheckoutSessionCreateRequest.discounts and related locationsdiscounts.codes[] with discount codes the buyer wants to applyWhen a code is rejected, the merchant returns a reason:
discount_code_expired — Code has expireddiscount_code_invalid — Code doesn't existdiscount_code_combination_disallowed — Can't combine with other active discountsdiscount_code_minimum_not_met — Cart total below minimum thresholddiscount_code_usage_limit_reached — Code has been used too many timesdiscount_code_already_applied — Code is already active on this sessiondiscount_code_user_not_logged_in — Discount requires an authenticated userdiscount_code_user_ineligible — User does not qualify for this discountWhen a discount is applied, the merchant shows how the discount is distributed:
path field (e.g., $.line_items[0])path to the target line item and the discount amountApplied discounts affect the totals[] array:
items_discount — Total discount on itemsdiscount — Order-level discountstotal accordinglyThe discount extension follows capability negotiation:
discount in capabilities.extensions[]Fetch the discount extension RFC and JSON schema for exact field names, error code enumeration, and allocation structure before implementing.