Magento 2 How to get Bundle Products in GraphQL

We all know Bundle products are almost similar to Grouped products and in this article teach you how to get bundle products. Also we know that each item in a bundle can be based on one of the Simple Product and Virtual Product types.

  • The BundleProduct object contains dynamic_sku, dynamic_price, dynamic_weight, etc ...
  • The BundleItem object contains option_id, title, sku, type, etc ...
  • The BundleItemOption object contains id, label, quantity, can_change_quantity, etc ...

Add the following inline fragment to the output section of your products query to return information to bundle products:

saveCopyzoom_out_map
.. on BundleProduct { dynamic_sku dynamic_price dynamic_weight items { attributes } }

The following query returns BundleProduct information.

Request

saveCopyzoom_out_map
{ products(filter: { sku: { eq: "24-WG080" } }) { total_count items { id name sku url_key stock_status new_from_date new_to_date special_price special_from_date special_to_date __typename short_description { html } description { html } image { url label } small_image { url label } thumbnail { url label } swatch_image media_gallery { url label } ... on BundleProduct { dynamic_sku dynamic_price dynamic_weight price_view ship_bundle_items items { option_id title sku type required position options { id label quantity can_change_quantity price price_type is_default position product { id name sku stock_status __typename } } } } } } }

Response

saveCopyzoom_out_map
{ "data": { "products": { "total_count": 1, "items": [ { "id": 46, "name": "Sprite Yoga Companion Kit", "sku": "24-WG080", "url_key": "sprite-yoga-companion-kit", "stock_status": "IN_STOCK", "new_from_date": null, "new_to_date": null, "special_price": null, "special_from_date": null, "special_to_date": null, "__typename": "BundleProduct", "short_description": { "html": "" }, "description": { "html": "<p>A well-rounded yoga workout takes more than a mat. The Sprite Yoga Companion Kit helps stock your studio with the basics you need for a full-range workout. The kit is composed of four best-selling Luma Sprite accessories in one easy bundle: statis ball, foam block, yoga strap, and foam roller. Choose sizes and colors and leave the rest to us. The kit includes:</p>\n<ul>\n<li> Sprite Statis Ball\n<li> Sprite Foam Yoga Brick\n<li> Sprite Yoga Strap\n<li> Sprite Foam Roller\n</ul>" }, "image": { "url": "http://domain.com/pub/media/catalog/product/cache/1548177c389d2065a93f4e1eaab84907/l/u/luma-yoga-kit-2.jpg", "label": "Sprite Yoga Companion Kit" }, "small_image": { "url": "http://domain.com/pub/media/catalog/product/cache/1548177c389d2065a93f4e1eaab84907/l/u/luma-yoga-kit-2.jpg", "label": "Sprite Yoga Companion Kit" }, "thumbnail": { "url": "http://domain.com/pub/media/catalog/product/cache/1548177c389d2065a93f4e1eaab84907/l/u/luma-yoga-kit-2.jpg", "label": "Sprite Yoga Companion Kit" }, "swatch_image": null, "media_gallery": [ { "url": "http://domain.com/pub/media/catalog/product/cache/1548177c389d2065a93f4e1eaab84907/l/u/luma-yoga-kit-2.jpg", "label": "Image" } ], "dynamic_sku": true, "dynamic_price": true, "dynamic_weight": true, "price_view": "PRICE_RANGE", "ship_bundle_items": "TOGETHER", "items": [ { "option_id": 1, "title": "Sprite Stasis Ball", "sku": "24-WG080", "type": "radio", "required": true, "position": 1, "options": [ { "id": 1, "label": "Sprite Stasis Ball 55 cm", "quantity": 1, "can_change_quantity": true, "price": 0, "price_type": "FIXED", "is_default": true, "position": 1, "product": { "id": 26, "name": "Sprite Stasis Ball 55 cm", "sku": "24-WG081-blue", "stock_status": "IN_STOCK", "__typename": "SimpleProduct" } }, { "id": 2, "label": "Sprite Stasis Ball 65 cm", "quantity": 1, "can_change_quantity": true, "price": 0, "price_type": "FIXED", "is_default": false, "position": 2, "product": { "id": 29, "name": "Sprite Stasis Ball 65 cm", "sku": "24-WG082-blue", "stock_status": "IN_STOCK", "__typename": "SimpleProduct" } }, { "id": 3, "label": "Sprite Stasis Ball 75 cm", "quantity": 1, "can_change_quantity": true, "price": 0, "price_type": "FIXED", "is_default": false, "position": 3, "product": { "id": 32, "name": "Sprite Stasis Ball 75 cm", "sku": "24-WG083-blue", "stock_status": "IN_STOCK", "__typename": "SimpleProduct" } } ] }, { "option_id": 2, "title": "Sprite Foam Yoga Brick", "sku": "24-WG080", "type": "radio", "required": true, "position": 2, "options": [ { "id": 4, "label": "Sprite Foam Yoga Brick", "quantity": 1, "can_change_quantity": true, "price": 0, "price_type": "FIXED", "is_default": true, "position": 1, "product": { "id": 21, "name": "Sprite Foam Yoga Brick", "sku": "24-WG084", "stock_status": "IN_STOCK", "__typename": "SimpleProduct" } } ] }, { "option_id": 3, "title": "Sprite Yoga Strap", "sku": "24-WG080", "type": "radio", "required": true, "position": 3, "options": [ { "id": 5, "label": "Sprite Yoga Strap 6 foot", "quantity": 1, "can_change_quantity": true, "price": 0, "price_type": "FIXED", "is_default": true, "position": 1, "product": { "id": 33, "name": "Sprite Yoga Strap 6 foot", "sku": "24-WG085", "stock_status": "IN_STOCK", "__typename": "SimpleProduct" } }, { "id": 6, "label": "Sprite Yoga Strap 8 foot", "quantity": 1, "can_change_quantity": true, "price": 0, "price_type": "FIXED", "is_default": false, "position": 2, "product": { "id": 34, "name": "Sprite Yoga Strap 8 foot", "sku": "24-WG086", "stock_status": "IN_STOCK", "__typename": "SimpleProduct" } }, { "id": 7, "label": "Sprite Yoga Strap 10 foot", "quantity": 1, "can_change_quantity": true, "price": 0, "price_type": "FIXED", "is_default": false, "position": 3, "product": { "id": 35, "name": "Sprite Yoga Strap 10 foot", "sku": "24-WG087", "stock_status": "IN_STOCK", "__typename": "SimpleProduct" } } ] }, { "option_id": 4, "title": "Sprite Foam Roller", "sku": "24-WG080", "type": "radio", "required": true, "position": 4, "options": [ { "id": 8, "label": "Sprite Foam Roller", "quantity": 1, "can_change_quantity": true, "price": 0, "price_type": "FIXED", "is_default": true, "position": 1, "product": { "id": 22, "name": "Sprite Foam Roller", "sku": "24-WG088", "stock_status": "IN_STOCK", "__typename": "SimpleProduct" } } ] } ] } ] } } }

That's it!!

If you are looking for more GraphQL solutions then check out our another article which is List of GraphQL Queries and Mutations for Magento 2.

I hope this article helps you to find what you were looking for.

Bookmark it for your future reference. Do comment below if you have any other questions on that.

P.S. Do share this article with your team.




Recent Articles
Tags
Newsletter
Chrome Extension
Copyright © 2024 devhooks.in All rights reserved.
Ads OFF toggle_off
wifi_off