Skip to content

Commit 296788e

Browse files
committed
MC-20636: Order Details : Order Details by Order Number
- refactor provider
1 parent ea590a4 commit 296788e

File tree

3 files changed

+19
-20
lines changed

3 files changed

+19
-20
lines changed

app/code/Magento/SalesGraphQl/Model/Resolver/OrderItem/DataProvider.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,6 @@ private function fetch()
131131
$itemOptions = $this->optionsProcessor->getItemOptions($orderItem);
132132
$bundleOptions = $orderItem->getProductType() === 'bundle' ?
133133
$this->optionsProcessor->getBundleOptions($orderItem) : [];
134-
$bundleOptions1 = $orderItem->getProductType() === 'bundle' ?
135-
$this->optionsProcessor->getBundleOptions($orderItem) : [];
136134

137135
$this->orderItemList[$orderItem->getItemId()] = [
138136
'id' => base64_encode($orderItem->getItemId()),
@@ -154,8 +152,7 @@ private function fetch()
154152
'quantity_invoiced' => $orderItem->getQtyInvoiced(),
155153
'quantity_canceled' => $orderItem->getQtyCanceled(),
156154
'quantity_returned' => $orderItem->getQtyReturned(),
157-
'bundle_options' => $orderItem->getProductType() === 'bundle' ?
158-
$this->optionsProcessor->getBundleOptions($orderItem) : [],
155+
'bundle_options' => $bundleOptions,
159156
];
160157

161158
}

app/code/Magento/SalesGraphQl/Model/Resolver/OrderItem/OptionsProcessor.php

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -107,21 +107,23 @@ private function processAttributesInfo(array $attributesInfo): array
107107
public function getBundleOptions(\Magento\Sales\Api\Data\OrderItemInterface $item): array
108108
{
109109
$bundleOptions = [];
110-
if ($item instanceof \Magento\Sales\Model\Order\Item) {
111-
$options = $item->getProductOptions();
112-
} else {
113-
$options = $item->getOrderItem()->getProductOptions();
114-
}
115-
if (isset($options['bundle_options'])) {
116-
//$bundleOptions = $this->serializer->unserialize($options['bundle_options']);
117-
foreach ($options['bundle_options'] as $bundleOptionKey => $bundleOption) {
118-
$bundleOptions[$bundleOptionKey]['values'] = $bundleOption['value'] ?? [];
119-
$bundleOptions[$bundleOptionKey]['label'] = $bundleOption['label'];
120-
foreach ($bundleOptions[$bundleOptionKey]['values'] as $bundleOptionValueKey => $bundleOptionValue) {
121-
$bundleOptions[$bundleOptionKey]['values'][$bundleOptionValueKey]['product_sku'] = $bundleOptionValue['title'];
122-
$bundleOptions[$bundleOptionKey]['values'][$bundleOptionValueKey]['product_name'] = $bundleOptionValue['title'];
123-
$bundleOptions[$bundleOptionKey]['values'][$bundleOptionValueKey]['quantity_ordered'] = $bundleOptionValue['qty'];
124-
$bundleOptions[$bundleOptionKey]['values'][$bundleOptionValueKey]['id'] = base64_encode((string)$bundleOptionValueKey);
110+
if ($item->getProductType() === 'bundle') {
111+
if ($item instanceof \Magento\Sales\Model\Order\Item) {
112+
$options = $item->getProductOptions();
113+
} else {
114+
$options = $item->getOrderItem()->getProductOptions();
115+
}
116+
if (isset($options['bundle_options'])) {
117+
//$bundleOptions = $this->serializer->unserialize($options['bundle_options']);
118+
foreach ($options['bundle_options'] as $bundleOptionKey => $bundleOption) {
119+
$bundleOptions[$bundleOptionKey]['items'] = $bundleOption['value'] ?? [];
120+
$bundleOptions[$bundleOptionKey]['label'] = $bundleOption['label'];
121+
foreach ($bundleOptions[$bundleOptionKey]['items'] as $bundleOptionValueKey => $bundleOptionValue) {
122+
$bundleOptions[$bundleOptionKey]['items'][$bundleOptionValueKey]['product_sku'] = $bundleOptionValue['title'];
123+
$bundleOptions[$bundleOptionKey]['items'][$bundleOptionValueKey]['product_name'] = $bundleOptionValue['title'];
124+
$bundleOptions[$bundleOptionKey]['items'][$bundleOptionValueKey]['quantity_ordered'] = $bundleOptionValue['qty'];
125+
$bundleOptions[$bundleOptionKey]['items'][$bundleOptionValueKey]['id'] = base64_encode((string)$bundleOptionValueKey);
126+
}
125127
}
126128
}
127129
}

app/code/Magento/SalesGraphQl/etc/schema.graphqls

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ type BundleOrderItem implements OrderItemInterface {
8787

8888
type SelectedBundleOptionItems {
8989
label: String!
90-
values: [OrderItem] @doc(description: "A list of products that represent the values of the parent option")
90+
items: [OrderItem] @doc(description: "A list of products that represent the values of the parent option")
9191
}
9292

9393
type OrderItemOption @doc(description: "Represents order item options like selected or entered") {

0 commit comments

Comments
 (0)