@@ -41,7 +41,6 @@ class CheckAvailability implements ResolverInterface
41
41
*/
42
42
private $ stockStatusRepository ;
43
43
44
-
45
44
/**
46
45
* CheckAvailability constructor
47
46
*
@@ -68,6 +67,8 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value
68
67
}
69
68
70
69
/**
70
+ * Check item status available or unavailable
71
+ *
71
72
* @param Item $cartItem
72
73
* @return bool
73
74
*/
@@ -76,31 +77,31 @@ private function checkProductQtyStatus($cartItem):bool
76
77
$ requestedQty = 0 ;
77
78
$ previousQty = 0 ;
78
79
80
+ if (!$ cartItem ->getQuote ()->getItems ()) {
81
+ return false ;
82
+ }
83
+
84
+ foreach ($ cartItem ->getQuote ()->getItems () as $ item ) {
85
+ if ($ item ->getItemId () == $ cartItem ->getItemId ()) {
86
+ $ requestedQty = $ item ->getQtyToAdd () ?? $ item ->getQty ();
87
+ $ previousQty = $ item ->getPreviousQty () ?? 0 ;
88
+ }
89
+ }
90
+
79
91
if ($ cartItem ->getProductType () == self ::PRODUCT_TYPE_BUNDLE ) {
80
92
$ qtyOptions = $ cartItem ->getQtyOptions ();
81
- $ requestedQty = $ cartItem ->getQtyToAdd () ?? $ cartItem ->getQty ();
82
- $ previousQty = $ cartItem ->getPreviousQty () ?? 0 ;
83
- $ totalReqQty = $ previousQty + $ requestedQty ;
84
-
85
- foreach ($ qtyOptions as $ qtyOption ) {
93
+ $ totalRequestedQty = $ previousQty + $ requestedQty ;
94
+ foreach ($ qtyOptions as $ qtyOption ) {
86
95
$ productId = (int ) $ qtyOption ->getProductId ();
87
96
$ requiredItemQty = (float ) $ qtyOption ->getValue ();
88
- if ($ totalReqQty ) {
89
- $ requiredItemQty = $ requiredItemQty * $ totalReqQty ;
97
+ if ($ totalRequestedQty ) {
98
+ $ requiredItemQty = $ requiredItemQty * $ totalRequestedQty ;
90
99
}
91
-
92
100
if ($ this ->getProductStockStatus ($ productId , $ requiredItemQty )) {
93
101
return false ;
94
102
}
95
103
}
96
104
} else {
97
- foreach ($ cartItem ->getQuote ()->getItems () as $ item ) {
98
-
99
- if ($ item ->getItemId () == $ cartItem ->getItemId ()) {
100
- $ requestedQty = $ item ->getQtyToAdd () ?? $ item ->getQty ();
101
- $ previousQty = $ item ->getPreviousQty () ?? 0 ;
102
- }
103
- }
104
105
$ requiredItemQty = $ requestedQty + $ previousQty ;
105
106
$ productId = (int ) $ cartItem ->getProduct ()->getId ();
106
107
if ($ this ->getProductStockStatus ($ productId , $ requiredItemQty )) {
@@ -111,6 +112,8 @@ private function checkProductQtyStatus($cartItem):bool
111
112
}
112
113
113
114
/**
115
+ * Get product qty
116
+ *
114
117
* @param int $productId
115
118
* @param float $requiredQuantity
116
119
* @return bool
0 commit comments