Skip to content

Commit 412ee8d

Browse files
committed
MC-41810: Cannot add bundle product with more than 1 checkbox option to the cart via Graphql
1 parent ad9e07b commit 412ee8d

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

app/code/Magento/Bundle/Model/Product/Type.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -732,7 +732,11 @@ protected function _prepareProduct(\Magento\Framework\DataObject $buyRequest, $p
732732
if ((is_array($selections) && count($selections) > 0) || !$isStrictProcessMode) {
733733
$uniqueKey = [$product->getId()];
734734
$selectionIds = [];
735-
$qtys = $buyRequest->getBundleOptionQty();
735+
if ($buyRequest->getBundleOptionsData()) {
736+
$qtys = $buyRequest->getBundleOptionsData();
737+
} else {
738+
$qtys = $buyRequest->getBundleOptionQty();
739+
}
736740

737741
// Shuffle selection array by option position
738742
usort($selections, [$this, 'shakeSelections']);

app/code/Magento/QuoteBundleOptions/Model/Cart/BuyRequest/BundleDataProvider.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ public function execute(CartItem $cartItem): array
3838

3939
[$optionType, $optionId, $optionValueId, $optionQuantity] = $optionData;
4040
if ($optionType == self::OPTION_TYPE) {
41-
$bundleOptionsData['bundle_option'][$optionId][$optionValueId] = $optionValueId;
42-
$bundleOptionsData['bundle_option_qty'][$optionId][$optionValueId] = $optionQuantity;
41+
$bundleOptionsData['bundle_option'][$optionId] = $optionValueId;
42+
$bundleOptionsData['bundle_option_qty'][$optionId] = $optionQuantity;
43+
$bundleOptionsData['bundle_options_data'][$optionId][$optionValueId] = $optionQuantity;
4344
}
4445
}
4546
//for bundle options with custom quantity
@@ -55,8 +56,9 @@ public function execute(CartItem $cartItem): array
5556
[$optionType, $optionId, $optionValueId] = $optionData;
5657
if ($optionType == self::OPTION_TYPE) {
5758
$optionQuantity = $option->getValue();
58-
$bundleOptionsData['bundle_option'][$optionId][$optionValueId] = $optionValueId;
59-
$bundleOptionsData['bundle_option_qty'][$optionId][$optionValueId] = $optionQuantity;
59+
$bundleOptionsData['bundle_option'][$optionId] = $optionValueId;
60+
$bundleOptionsData['bundle_option_qty'][$optionId] = $optionQuantity;
61+
$bundleOptionsData['bundle_options_data'][$optionId][$optionValueId] = $optionQuantity;
6062
}
6163
}
6264

0 commit comments

Comments
 (0)