Skip to content

fix!: Cherrypick catalog variant schema fix into 2026-04-08 version#356

Merged
jingyli merged 1 commit intoUniversal-Commerce-Protocol:release/2026-04-08from
jingyli:cp-fix
Apr 13, 2026
Merged

fix!: Cherrypick catalog variant schema fix into 2026-04-08 version#356
jingyli merged 1 commit intoUniversal-Commerce-Protocol:release/2026-04-08from
jingyli:cp-fix

Conversation

@jingyli
Copy link
Copy Markdown
Contributor

@jingyli jingyli commented Apr 13, 2026

Description

This is a cherrypick request for a breaking schema fix that should've been part of the 2026-04-08 UCP version cut. See #353 for more details.

Type of change

  • Breaking change (fix or feature that would cause existing
    functionality to not work as expected, including removal of schema files
    or fields
    )
  • Documentation update

Is this a Breaking Change or Removal?

If you checked "Breaking change" above, or if you are removing any schema
files or fields:

  • I have added ! to my PR title (e.g., feat!: remove field).
  • I have added justification below.
## Breaking Changes / Removal Justification

Schema fix should have been caught and merged prior to version cut on 2026-04-08. This is a CP request to see if it can be patched back into the release.

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

…l#353)

Completes a rename decided in PR Universal-Commerce-Protocol#195 (get_product operation) but never
  executed on variant.json. The get_product operation introduced three
  distinct concepts that were previously conflated:

    request.selected  — what the user chose (input parameter)
    product.selected  — what the server resolved (response, post-relaxation)
    variant.options   — what the variant IS (intrinsic, immutable)

  A variant's option values (Color: Blue, Size: Large) are intrinsic
  identity — they don't change based on user selections or server
  relaxation. The old name "selected_options" implied a relationship to
  user selection state that doesn't exist at the variant level.

  Schema: variant.selected_options → variant.options
  Docs: update variant examples in mcp.md and rest.md
@jingyli jingyli requested review from a team and dwdii April 13, 2026 13:33
@jingyli jingyli added the TC review Ready for TC review label Apr 13, 2026
@jingyli jingyli requested a review from carol-w-tech April 13, 2026 13:33
@jingyli jingyli requested review from a team as code owners April 13, 2026 13:33
@jingyli jingyli requested review from richmolj and westeezy April 13, 2026 13:33
Copy link
Copy Markdown
Contributor

@igrigorik igrigorik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ty for staging this!

@jingyli jingyli merged commit 6373733 into Universal-Commerce-Protocol:release/2026-04-08 Apr 13, 2026
9 checks passed
@jingyli jingyli deleted the cp-fix branch April 13, 2026 18:51
@jingyli jingyli added this to the 2026-04-08 milestone Apr 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

TC review Ready for TC review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants