-
-
Notifications
You must be signed in to change notification settings - Fork 3.9k
feat(promotions): add product_variant attribute #14086
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
🦋 Changeset detectedLatest commit: eb915df The changes in this PR will be included in the next version bump. This PR includes changesets to release 74 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
@WazZro is attempting to deploy a commit to the medusajs Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR is being reviewed by Cursor Bugbot
Details
Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
| required: false, | ||
| field_type: "multiselect", | ||
| operators: Object.values(operatorsMap), | ||
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Variant ID Path Mismatch
The product_variant attribute uses value: "items.variant.id" but the test expects "items.variant_id". Since variant_id is a direct field on cart items (not a nested relation), the path should be "items.variant_id" to match the API response structure and the test expectations.
| required: false, | ||
| field_type: "multiselect", | ||
| operators: Object.values(operatorsMap), | ||
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Align Data Paths for API and Rule Evaluation
The product_variant attribute uses value: "items.variant.id" but the test expects "items.variant_id". Since variant_id is a direct field on cart items (not a nested relation), the path should be "items.variant_id" to match the API response structure and enable proper rule evaluation.
- Introduced a new rule attribute for product variants in the promotions system, allowing for multiselect options. - Updated the API route to handle product_variant, modifying the response structure to include SKU in the label when applicable. - Adjusted rule query configurations to accommodate the new product_variant attribute. - Enhanced integration tests to validate the new functionality. This change improves the flexibility of promotions by allowing product variants to be used as criteria.
6255a9b to
eb915df
Compare
| } else { | ||
| label = title | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Ambiguous product variant labels in response
The generated label for product variants includes only the variant title and SKU. This results in indistinguishable options when multiple products share generic variant names (e.g., "Small"). Users cannot differentiate which product a variant belongs to without the product title in the label.
| } else { | ||
| label = title | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Ambiguous product variant labels in response
The generated label for product variants includes only the variant title and SKU. This results in indistinguishable options when multiple products share generic variant names (e.g., "Small" or "Red") or when SKUs are similar. Users cannot differentiate which product a variant belongs to without the product title explicitly included in the label.
Summary
What — What changes are introduced in this PR?
Why — Why are these changes relevant or necessary?
This change improves the flexibility of promotions by allowing product variants to be used as criteria.
Testing — How have these changes been tested, or how can the reviewer test the feature?
Added test to http tests. Not sure if it is enought
Checklist
Please ensure the following before requesting a review:
yarn changesetand follow the promptsNote
Adds
product_variantas a promotions rule attribute and updates value-options API to return variant labels including SKU.product_variantto items target rule attributes inrule-attributes-map.product_variantquery config inrule-query-configuration(entryPoint: product_variant,valueAttr: id).product_variant:title,sku, andid."<title> (SKU: <sku>)"when available.product_variantattribute and validate value options for variants across products.integration-tests-httpand@medusajs/medusa.Written by Cursor Bugbot for commit eb915df. This will update automatically on new commits. Configure here.