Description
Preconditions and environment
When adding a bundle product to the wishlist via GraphQL, all available options are returned, even if some are not selected by the customer. This causes the default price to be shown instead of the customized price based on the selected options.
- Magento Version: The issue occurs on Magento 2.4.7-p3.
- Product Type: The issue occurs with Bundle Products in the catalog.
- Customer Wishlist: The customer must have at least one bundle product added to their wishlist.
- Selected Options: The customer must select specific options for the bundle product before adding it to the wishlist.
- GraphQL Queries: The issue is reproduced when using the GraphQL API for querying the wishlist.
Steps to reproduce
- Add a bundle product to the wishlist using the GraphQL mutation addProductsToWishlist.
- Select specific options for the bundle product (e.g., different sizes and colors).
- Query the wishlist using the GetWishlist query.
- Observe that all bundle options are returned, leading to the default price being shown.
Expected result
Only the selected bundle options should be returned in the GraphQL response, and the price should reflect the selected configuration (customized price).
Actual result
All options for the bundle product are returned, causing the default price to be displayed instead of the price for the selected options.
Additional information
query GetWishlist {
customer {
wishlists {
id
items {
id
qty
product {
name
sku
... on GroupedProduct {
grouped_items {
product {
name
sku
}
qty
}
}
... on BundleProduct {
items {
option_id
title
required
type
options {
id
label
quantity
product {
sku
name
price_range {
minimum_price {
final_price {
value
}
}
}
}
}
}
}
}
}
}
}
}
Output
{
"data": {
"customer": {
"wishlists": [
{
"id": "73",
"items": [
{
"id": 170,
"qty": 1,
"product": {
"name": "Sprite Yoga Companion Kit",
"sku": "24-WG080",
"items": [
{
"option_id": 1,
"title": "Sprite Stasis Ball",
"required": true,
"type": "radio",
"options": [
{
"id": 18,
"label": "Sprite Foam Yoga Brick",
"quantity": 1,
"product": {
"sku": "24-WG084",
"name": "Sprite Foam Yoga Brick",
"price_range": {
"minimum_price": {
"final_price": {
"value": 5
}
}
}
}
},
{
"id": 19,
"label": "Sprite Foam Roller",
"quantity": 1,
"product": {
"sku": "24-WG088",
"name": "Sprite Foam Roller",
"price_range": {
"minimum_price": {
"final_price": {
"value": 19
}
}
}
}
}
]
},
{
"option_id": 2,
"title": "Sprite Foam Yoga Brick",
"required": true,
"type": "radio",
"options": [
{
"id": 20,
"label": "Sprite Stasis Ball 55 cm",
"quantity": 1,
"product": {
"sku": "24-WG081-pink",
"name": "Sprite Stasis Ball 55 cm",
"price_range": {
"minimum_price": {
"final_price": {
"value": 23
}
}
}
}
},
{
"id": 22,
"label": "Sprite Stasis Ball 65 cm",
"quantity": 1,
"product": {
"sku": "24-WG082-gray",
"name": "Sprite Stasis Ball 65 cm",
"price_range": {
"minimum_price": {
"final_price": {
"value": 27
}
}
}
}
},
{
"id": 28,
"label": "Sprite Stasis Ball 75 cm",
"quantity": 1,
"product": {
"sku": "24-WG083-gray",
"name": "Sprite Stasis Ball 75 cm",
"price_range": {
"minimum_price": {
"final_price": {
"value": 32
}
}
}
}
}
]
},
{
"option_id": 3,
"title": "Sprite Yoga Strap",
"required": true,
"type": "radio",
"options": [
{
"id": 23,
"label": "Sprite Stasis Ball 55 cm",
"quantity": 1,
"product": {
"sku": "24-WG081-gray",
"name": "Sprite Stasis Ball 55 cm",
"price_range": {
"minimum_price": {
"final_price": {
"value": 23
}
}
}
}
}
]
},
{
"option_id": 4,
"title": "Sprite Foam Roller",
"required": true,
"type": "radio",
"options": [
{
"id": 24,
"label": "Sprite Stasis Ball 75 cm",
"quantity": 1,
"product": {
"sku": "24-WG083-gray",
"name": "Sprite Stasis Ball 75 cm",
"price_range": {
"minimum_price": {
"final_price": {
"value": 32
}
}
}
}
},
{
"id": 25,
"label": "Sprite Stasis Ball 65 cm",
"quantity": 1,
"product": {
"sku": "24-WG082-blue",
"name": "Sprite Stasis Ball 65 cm",
"price_range": {
"minimum_price": {
"final_price": {
"value": 27
}
}
}
}
}
]
}
]
}
}
]
}
]
}
}
}
Release note
No response
Triage and priority
- Severity: S0 - Affects critical data or functionality and leaves users without workaround.
- Severity: S1 - Affects critical data or functionality and forces users to employ a workaround.
- Severity: S2 - Affects non-critical data or functionality and forces users to employ a workaround.
- Severity: S3 - Affects non-critical data or functionality and does not force users to employ a workaround.
- Severity: S4 - Affects aesthetics, professional look and feel, “quality” or “usability”.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status