diff --git a/packages/Webkul/Paypal/src/Helpers/Ipn.php b/packages/Webkul/Paypal/src/Helpers/Ipn.php index 8a0f7257c..022a4e3bf 100755 --- a/packages/Webkul/Paypal/src/Helpers/Ipn.php +++ b/packages/Webkul/Paypal/src/Helpers/Ipn.php @@ -144,10 +144,11 @@ class Ipn */ protected function postBack() { - if (array_key_exists('test_ipn', $this->post) && 1 === (int) $this->post['test_ipn']) + if (array_key_exists('test_ipn', $this->post) && 1 === (int) $this->post['test_ipn']) { $url = 'https://www.sandbox.paypal.com/cgi-bin/webscr'; - else + } else { $url = 'https://www.paypal.com/cgi-bin/webscr'; + } // Set up request to PayPal $request = curl_init(); diff --git a/packages/Webkul/Paypal/src/Payment/Paypal.php b/packages/Webkul/Paypal/src/Payment/Paypal.php index eba0c1a98..8a9b55822 100755 --- a/packages/Webkul/Paypal/src/Payment/Paypal.php +++ b/packages/Webkul/Paypal/src/Payment/Paypal.php @@ -39,7 +39,6 @@ abstract class Paypal extends Payment $cartItems = $this->getCartItems(); foreach ($cartItems as $item) { - foreach ($this->itemFieldsFormat as $modelField => $paypalField) { $fields[sprintf($paypalField, $i)] = $item->{$modelField}; } diff --git a/packages/Webkul/Product/src/Config/imagecache.php b/packages/Webkul/Product/src/Config/imagecache.php index 9dd290040..b93d2e94a 100644 --- a/packages/Webkul/Product/src/Config/imagecache.php +++ b/packages/Webkul/Product/src/Config/imagecache.php @@ -52,9 +52,9 @@ return array( */ 'templates' => array( - 'small' => 'Webkul\Product\CacheFilters\Small', + 'small' => 'Webkul\Product\CacheFilters\Small', 'medium' => 'Webkul\Product\CacheFilters\Medium', - 'large' => 'Webkul\Product\CacheFilters\Large', + 'large' => 'Webkul\Product\CacheFilters\Large', ), /* diff --git a/packages/Webkul/Product/src/Config/product_types.php b/packages/Webkul/Product/src/Config/product_types.php index 41903f5a9..faf0b7d8f 100644 --- a/packages/Webkul/Product/src/Config/product_types.php +++ b/packages/Webkul/Product/src/Config/product_types.php @@ -1,40 +1,45 @@ [ - 'key' => 'simple', - 'name' => 'Simple', + 'simple' => [ + 'key' => 'simple', + 'name' => 'Simple', 'class' => 'Webkul\Product\Type\Simple', - 'sort' => 1 + 'sort' => 1 ], + 'configurable' => [ - 'key' => 'configurable', - 'name' => 'Configurable', + 'key' => 'configurable', + 'name' => 'Configurable', 'class' => 'Webkul\Product\Type\Configurable', - 'sort' => 2 + 'sort' => 2 ], - 'virtual' => [ - 'key' => 'virtual', - 'name' => 'Virtual', + + 'virtual' => [ + 'key' => 'virtual', + 'name' => 'Virtual', 'class' => 'Webkul\Product\Type\Virtual', - 'sort' => 3 + 'sort' => 3 ], - 'grouped' => [ - 'key' => 'grouped', - 'name' => 'Grouped', + + 'grouped' => [ + 'key' => 'grouped', + 'name' => 'Grouped', 'class' => 'Webkul\Product\Type\Grouped', - 'sort' => 4 + 'sort' => 4 ], + 'downloadable' => [ - 'key' => 'downloadable', - 'name' => 'Downloadable', + 'key' => 'downloadable', + 'name' => 'Downloadable', 'class' => 'Webkul\Product\Type\Downloadable', - 'sort' => 5 + 'sort' => 5 ], - 'bundle' => [ - 'key' => 'bundle', - 'name' => 'Bundle', + + 'bundle' => [ + 'key' => 'bundle', + 'name' => 'Bundle', 'class' => 'Webkul\Product\Type\Bundle', - 'sort' => 6 + 'sort' => 6 ] ]; \ No newline at end of file diff --git a/packages/Webkul/Product/src/Database/Eloquent/Builder.php b/packages/Webkul/Product/src/Database/Eloquent/Builder.php index 9fe67f9b1..50a665971 100755 --- a/packages/Webkul/Product/src/Database/Eloquent/Builder.php +++ b/packages/Webkul/Product/src/Database/Eloquent/Builder.php @@ -32,7 +32,7 @@ class Builder extends BaseBuilder : $this->model->newCollection(); return $this->paginator($results, $total, $perPage, $page, [ - 'path' => Paginator::resolveCurrentPath(), + 'path' => Paginator::resolveCurrentPath(), 'pageName' => $pageName, ]); } diff --git a/packages/Webkul/Product/src/Database/Factories/ProductAttributeValueFactory.php b/packages/Webkul/Product/src/Database/Factories/ProductAttributeValueFactory.php index 4da6ddaf0..0adcfd13a 100644 --- a/packages/Webkul/Product/src/Database/Factories/ProductAttributeValueFactory.php +++ b/packages/Webkul/Product/src/Database/Factories/ProductAttributeValueFactory.php @@ -16,6 +16,7 @@ $factory->defineAs(ProductAttributeValue::class, 'sku', function (Faker $faker) 'attribute_id' => 1, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'name', function (Faker $faker) { return [ 'product_id' => function () { @@ -27,6 +28,7 @@ $factory->defineAs(ProductAttributeValue::class, 'name', function (Faker $faker) 'attribute_id' => 2, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'url_key', function (Faker $faker) { return [ 'product_id' => function () { @@ -36,6 +38,7 @@ $factory->defineAs(ProductAttributeValue::class, 'url_key', function (Faker $fak 'attribute_id' => 3, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'tax_category_id', function (Faker $faker) { return [ 'product_id' => function () { @@ -46,6 +49,7 @@ $factory->defineAs(ProductAttributeValue::class, 'tax_category_id', function (Fa 'attribute_id' => 4, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'new', function (Faker $faker) { return [ 'product_id' => function () { @@ -55,6 +59,7 @@ $factory->defineAs(ProductAttributeValue::class, 'new', function (Faker $faker) 'attribute_id' => 5, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'featured', function (Faker $faker) { return [ 'product_id' => function () { @@ -64,6 +69,7 @@ $factory->defineAs(ProductAttributeValue::class, 'featured', function (Faker $fa 'attribute_id' => 6, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'visible_individually', function (Faker $faker) { return [ 'product_id' => function () { @@ -73,6 +79,7 @@ $factory->defineAs(ProductAttributeValue::class, 'visible_individually', functio 'attribute_id' => 7, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'status', function (Faker $faker) { return [ 'product_id' => function () { @@ -82,6 +89,7 @@ $factory->defineAs(ProductAttributeValue::class, 'status', function (Faker $fake 'attribute_id' => 8, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'short_description', function (Faker $faker) { return [ 'product_id' => function () { @@ -93,6 +101,7 @@ $factory->defineAs(ProductAttributeValue::class, 'short_description', function ( 'attribute_id' => 9, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'description', function (Faker $faker) { return [ 'product_id' => function () { @@ -104,6 +113,7 @@ $factory->defineAs(ProductAttributeValue::class, 'description', function (Faker 'attribute_id' => 10, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'price', function (Faker $faker) { return [ 'product_id' => function () { @@ -113,6 +123,7 @@ $factory->defineAs(ProductAttributeValue::class, 'price', function (Faker $faker 'attribute_id' => 11, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'cost', function (Faker $faker) { return [ 'product_id' => function () { @@ -123,6 +134,7 @@ $factory->defineAs(ProductAttributeValue::class, 'cost', function (Faker $faker) 'attribute_id' => 12, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'special_price', function (Faker $faker) { return [ 'product_id' => function () { @@ -132,6 +144,7 @@ $factory->defineAs(ProductAttributeValue::class, 'special_price', function (Fake 'attribute_id' => 13, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'special_price_from', function (Faker $faker) { return [ 'product_id' => function () { @@ -142,6 +155,7 @@ $factory->defineAs(ProductAttributeValue::class, 'special_price_from', function 'attribute_id' => 14, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'special_price_to', function (Faker $faker) { return [ 'product_id' => function () { @@ -152,6 +166,7 @@ $factory->defineAs(ProductAttributeValue::class, 'special_price_to', function (F 'attribute_id' => 15, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'meta_title', function (Faker $faker) { return [ 'product_id' => function () { @@ -163,6 +178,7 @@ $factory->defineAs(ProductAttributeValue::class, 'meta_title', function (Faker $ 'attribute_id' => 16, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'meta_keywords', function (Faker $faker) { return [ 'product_id' => function () { @@ -174,6 +190,7 @@ $factory->defineAs(ProductAttributeValue::class, 'meta_keywords', function (Fake 'attribute_id' => 17, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'meta_description', function (Faker $faker) { return [ 'product_id' => function () { @@ -185,6 +202,7 @@ $factory->defineAs(ProductAttributeValue::class, 'meta_description', function (F 'attribute_id' => 18, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'width', function (Faker $faker) { return [ 'product_id' => function () { @@ -194,6 +212,7 @@ $factory->defineAs(ProductAttributeValue::class, 'width', function (Faker $faker 'attribute_id' => 19, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'height', function (Faker $faker) { return [ 'product_id' => function () { @@ -203,6 +222,7 @@ $factory->defineAs(ProductAttributeValue::class, 'height', function (Faker $fake 'attribute_id' => 20, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'depth', function (Faker $faker) { return [ 'product_id' => function () { @@ -212,6 +232,7 @@ $factory->defineAs(ProductAttributeValue::class, 'depth', function (Faker $faker 'attribute_id' => 21, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'weight', function (Faker $faker) { return [ 'product_id' => function () { @@ -221,6 +242,7 @@ $factory->defineAs(ProductAttributeValue::class, 'weight', function (Faker $fake 'attribute_id' => 22, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'color', function (Faker $faker) { return [ 'product_id' => function () { @@ -230,6 +252,7 @@ $factory->defineAs(ProductAttributeValue::class, 'color', function (Faker $faker 'attribute_id' => 23, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'size', function (Faker $faker) { return [ 'product_id' => function () { @@ -239,6 +262,7 @@ $factory->defineAs(ProductAttributeValue::class, 'size', function (Faker $faker) 'attribute_id' => 24, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'brand', function (Faker $faker) { return [ 'product_id' => function () { @@ -250,6 +274,7 @@ $factory->defineAs(ProductAttributeValue::class, 'brand', function (Faker $faker }, ]; }); + $factory->defineAs(ProductAttributeValue::class, 'guest_checkout', function ( Faker $faker) { return [ 'product_id' => function() { diff --git a/packages/Webkul/Product/src/Database/Factories/ProductDownloadableLinkFactory.php b/packages/Webkul/Product/src/Database/Factories/ProductDownloadableLinkFactory.php index d7e0a45e0..e2cb8668e 100644 --- a/packages/Webkul/Product/src/Database/Factories/ProductDownloadableLinkFactory.php +++ b/packages/Webkul/Product/src/Database/Factories/ProductDownloadableLinkFactory.php @@ -11,6 +11,7 @@ $factory->define(ProductDownloadableLink::class, function (Faker $faker) { $now = date("Y-m-d H:i:s"); $filename = 'ProductImageExampleForUpload.jpg'; $filepath = '/tests/_data/'; + return [ 'url' => '', 'file' => $filepath . $filename, diff --git a/packages/Webkul/Product/src/Database/Factories/ProductDownloadableLinkTranslation.php b/packages/Webkul/Product/src/Database/Factories/ProductDownloadableLinkTranslation.php index 28800751e..1a9ecdcfc 100644 --- a/packages/Webkul/Product/src/Database/Factories/ProductDownloadableLinkTranslation.php +++ b/packages/Webkul/Product/src/Database/Factories/ProductDownloadableLinkTranslation.php @@ -8,8 +8,8 @@ use Webkul\Product\Models\ProductDownloadableLinkTranslation; $factory->define(ProductDownloadableLinkTranslation::class, function (Faker $faker) { return [ - 'locale' => 'en', - 'title' => $faker->word, + 'locale' => 'en', + 'title' => $faker->word, 'product_downloadable_link_id' => function () { return factory(ProductDownloadableLink::class)->create()->id; }, diff --git a/packages/Webkul/Product/src/Database/Factories/ProductFactory.php b/packages/Webkul/Product/src/Database/Factories/ProductFactory.php index da90315f4..e07b3169e 100644 --- a/packages/Webkul/Product/src/Database/Factories/ProductFactory.php +++ b/packages/Webkul/Product/src/Database/Factories/ProductFactory.php @@ -7,6 +7,7 @@ use Webkul\Product\Models\Product; $factory->define(Product::class, function (Faker $faker) { $now = date("Y-m-d H:i:s"); + return [ 'sku' => $faker->uuid, 'created_at' => $now, diff --git a/packages/Webkul/Product/src/Database/Factories/ProductReviewFactory.php b/packages/Webkul/Product/src/Database/Factories/ProductReviewFactory.php index aa3cb85f1..34926b1c0 100644 --- a/packages/Webkul/Product/src/Database/Factories/ProductReviewFactory.php +++ b/packages/Webkul/Product/src/Database/Factories/ProductReviewFactory.php @@ -6,7 +6,7 @@ use Faker\Generator as Faker; use Webkul\Product\Models\ProductReview; $factory->define(ProductReview::class, function (Faker $faker, array $attributes) { - if (!array_key_exists('product_id', $attributes)) { + if (! array_key_exists('product_id', $attributes)) { throw new InvalidArgumentException('product_id must be provided. You may use $I->haveProduct() to generate a product'); } diff --git a/packages/Webkul/Product/src/Helpers/AbstractProduct.php b/packages/Webkul/Product/src/Helpers/AbstractProduct.php index f7efa7ae4..b8c82bc25 100755 --- a/packages/Webkul/Product/src/Helpers/AbstractProduct.php +++ b/packages/Webkul/Product/src/Helpers/AbstractProduct.php @@ -59,8 +59,9 @@ abstract class AbstractProduct */ public function setProductFlat($product) { - if (array_key_exists($product->id, $this->productFlat)) + if (array_key_exists($product->id, $this->productFlat)) { return; + } if (! $product instanceof ProductFlat) { $this->productFlat[$product->id] = ProductFlatProxy::modelClass() diff --git a/packages/Webkul/Product/src/Helpers/BundleOption.php b/packages/Webkul/Product/src/Helpers/BundleOption.php index 396a83a6e..38120fef8 100644 --- a/packages/Webkul/Product/src/Helpers/BundleOption.php +++ b/packages/Webkul/Product/src/Helpers/BundleOption.php @@ -65,12 +65,12 @@ class BundleOption extends AbstractProduct private function getOptionItemData($option) { return [ - 'id' => $option->id, - 'label' => $option->label, - 'type' => $option->type, + 'id' => $option->id, + 'label' => $option->label, + 'type' => $option->type, 'is_required' => $option->is_required, - 'products' => $this->getOptionProducts($option), - 'sort_order' => $option->sort_order + 'products' => $this->getOptionProducts($option), + 'sort_order' => $option->sort_order ]; } @@ -86,10 +86,10 @@ class BundleOption extends AbstractProduct foreach ($option->bundle_option_products as $index => $bundleOptionProduct) { $products[$bundleOptionProduct->id] = [ - 'id' => $bundleOptionProduct->id, - 'qty' => $bundleOptionProduct->qty, - 'price' => $bundleOptionProduct->product->getTypeInstance()->getProductPrices(), - 'name' => $bundleOptionProduct->product->name, + 'id' => $bundleOptionProduct->id, + 'qty' => $bundleOptionProduct->qty, + 'price' => $bundleOptionProduct->product->getTypeInstance()->getProductPrices(), + 'name' => $bundleOptionProduct->product->name, 'product_id' => $bundleOptionProduct->product_id, 'is_default' => $bundleOptionProduct->is_default, 'sort_order' => $bundleOptionProduct->sort_order diff --git a/packages/Webkul/Product/src/Helpers/ConfigurableOption.php b/packages/Webkul/Product/src/Helpers/ConfigurableOption.php index 8651eaf2f..a92104c13 100755 --- a/packages/Webkul/Product/src/Helpers/ConfigurableOption.php +++ b/packages/Webkul/Product/src/Helpers/ConfigurableOption.php @@ -55,8 +55,9 @@ class ConfigurableOption extends AbstractProduct { static $variants = []; - if (count($variants)) + if (count($variants)) { return $variants; + } foreach ($product->variants as $variant) { if ($variant->isSaleable()) { @@ -78,15 +79,15 @@ class ConfigurableOption extends AbstractProduct $options = $this->getOptions($product, $this->getAllowedProducts($product)); $config = [ - 'attributes' => $this->getAttributesData($product, $options), - 'index' => isset($options['index']) ? $options['index'] : [], - 'regular_price' => [ + 'attributes' => $this->getAttributesData($product, $options), + 'index' => isset($options['index']) ? $options['index'] : [], + 'regular_price' => [ 'formated_price' => core()->currency($product->getTypeInstance()->getMinimalPrice()), - 'price' => $product->getTypeInstance()->getMinimalPrice() + 'price' => $product->getTypeInstance()->getMinimalPrice() ], 'variant_prices' => $this->getVariantPrices($product), 'variant_images' => $this->getVariantImages($product), - 'chooseText' => trans('shop::app.products.choose-option') + 'chooseText' => trans('shop::app.products.choose-option') ]; return $config; @@ -128,8 +129,9 @@ class ConfigurableOption extends AbstractProduct $attributeValue = $product->{$productAttribute->code}; - if ($attributeValue == '' && $product instanceof \Webkul\Product\Models\ProductFlat) + if ($attributeValue == '' && $product instanceof \Webkul\Product\Models\ProductFlat) { $attributeValue = $product->product->{$productAttribute->code}; + } $options[$productAttributeId][$attributeValue][] = $productId; @@ -163,11 +165,11 @@ class ConfigurableOption extends AbstractProduct $attributeId = $attribute->id; $attributes[] = [ - 'id' => $attributeId, - 'code' => $attribute->code, - 'label' => $attribute->name ? $attribute->name : $attribute->admin_name, + 'id' => $attributeId, + 'code' => $attribute->code, + 'label' => $attribute->name ? $attribute->name : $attribute->admin_name, 'swatch_type' => $attribute->swatch_type, - 'options' => $attributeOptionsData + 'options' => $attributeOptionsData ]; } } @@ -190,10 +192,10 @@ class ConfigurableOption extends AbstractProduct if (isset($options[$attribute->id][$optionId])) { $attributeOptionsData[] = [ - 'id' => $optionId, - 'label' => $attributeOption->label ? $attributeOption->label : $attributeOption->admin_name, + 'id' => $optionId, + 'label' => $attributeOption->label ? $attributeOption->label : $attributeOption->admin_name, 'swatch_value' => $attribute->swatch_type == 'image' ? $attributeOption->swatch_value_url : $attributeOption->swatch_value, - 'products' => $options[$attribute->id][$optionId] + 'products' => $options[$attribute->id][$optionId] ]; } } diff --git a/packages/Webkul/Product/src/Helpers/ProductImage.php b/packages/Webkul/Product/src/Helpers/ProductImage.php index 98b6e49c3..a61df05ac 100755 --- a/packages/Webkul/Product/src/Helpers/ProductImage.php +++ b/packages/Webkul/Product/src/Helpers/ProductImage.php @@ -21,8 +21,9 @@ class ProductImage extends AbstractProduct */ public function getGalleryImages($product) { - if (! $product) + if (! $product) { return []; + } $images = []; @@ -31,18 +32,18 @@ class ProductImage extends AbstractProduct continue; $images[] = [ - 'small_image_url' => url('cache/small/' . $image->path), - 'medium_image_url' => url('cache/medium/' . $image->path), - 'large_image_url' => url('cache/large/' . $image->path), + 'small_image_url' => url('cache/small/' . $image->path), + 'medium_image_url' => url('cache/medium/' . $image->path), + 'large_image_url' => url('cache/large/' . $image->path), 'original_image_url' => url('cache/original/' . $image->path), ]; } if (! $product->parent_id && ! count($images)) { $images[] = [ - 'small_image_url' => asset('vendor/webkul/ui/assets/images/product/small-product-placeholder.png'), - 'medium_image_url' => asset('vendor/webkul/ui/assets/images/product/meduim-product-placeholder.png'), - 'large_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.png'), + 'small_image_url' => asset('vendor/webkul/ui/assets/images/product/small-product-placeholder.png'), + 'medium_image_url' => asset('vendor/webkul/ui/assets/images/product/meduim-product-placeholder.png'), + 'large_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.png'), 'original_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.png') ]; } @@ -62,16 +63,16 @@ class ProductImage extends AbstractProduct if ($images && $images->count()) { $image = [ - 'small_image_url' => url('cache/small/' . $images[0]->path), - 'medium_image_url' => url('cache/medium/' . $images[0]->path), - 'large_image_url' => url('cache/large/' . $images[0]->path), + 'small_image_url' => url('cache/small/' . $images[0]->path), + 'medium_image_url' => url('cache/medium/' . $images[0]->path), + 'large_image_url' => url('cache/large/' . $images[0]->path), 'original_image_url' => url('cache/original/' . $images[0]->path), ]; } else { $image = [ - 'small_image_url' => asset('vendor/webkul/ui/assets/images/product/small-product-placeholder.png'), - 'medium_image_url' => asset('vendor/webkul/ui/assets/images/product/meduim-product-placeholder.png'), - 'large_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.png'), + 'small_image_url' => asset('vendor/webkul/ui/assets/images/product/small-product-placeholder.png'), + 'medium_image_url' => asset('vendor/webkul/ui/assets/images/product/meduim-product-placeholder.png'), + 'large_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.png'), 'original_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.png'), ]; } diff --git a/packages/Webkul/Product/src/Helpers/ProductType.php b/packages/Webkul/Product/src/Helpers/ProductType.php index 68c523b50..352e03857 100644 --- a/packages/Webkul/Product/src/Helpers/ProductType.php +++ b/packages/Webkul/Product/src/Helpers/ProductType.php @@ -29,6 +29,7 @@ class ProductType extends AbstractProduct public static function getAllTypesHavingVariants(): array { $havingVariants = []; + foreach (config('product_types') as $type) { if (self::hasVariants($type['key'])) { array_push($havingVariants, $type['key']); diff --git a/packages/Webkul/Product/src/Helpers/Review.php b/packages/Webkul/Product/src/Helpers/Review.php index 6d109f729..1ecb2e209 100755 --- a/packages/Webkul/Product/src/Helpers/Review.php +++ b/packages/Webkul/Product/src/Helpers/Review.php @@ -21,8 +21,9 @@ class Review extends AbstractProduct { static $reviews = []; - if(array_key_exists($product->id, $reviews)) + if (array_key_exists($product->id, $reviews)) { return $reviews[$product->id]; + } return $reviews[$product->id] = $product->reviews()->where('status', 'approved'); } @@ -37,8 +38,9 @@ class Review extends AbstractProduct { static $avgRating = []; - if(array_key_exists($product->id, $avgRating)) + if (array_key_exists($product->id, $avgRating)) { return $avgRating[$product->id]; + } return $avgRating[$product->id] = number_format(round($product->reviews()->where('status', 'approved')->avg('rating'), 2), 1); } @@ -53,8 +55,9 @@ class Review extends AbstractProduct { static $totalReviews = []; - if(array_key_exists($product->id, $totalReviews)) + if (array_key_exists($product->id, $totalReviews)) { return $totalReviews[$product->id]; + } return $totalReviews[$product->id] = $product->reviews()->where('status', 'approved')->count(); } @@ -69,8 +72,9 @@ class Review extends AbstractProduct { static $totalRating = []; - if(array_key_exists($product->id, $totalRating)) + if (array_key_exists($product->id, $totalRating)) { return $totalRating[$product->id]; + } return $totalRating[$product->id] = $product->reviews()->where('status','approved')->sum('rating'); } diff --git a/packages/Webkul/Product/src/Helpers/Toolbar.php b/packages/Webkul/Product/src/Helpers/Toolbar.php index cee7e5fdc..0e73cec14 100755 --- a/packages/Webkul/Product/src/Helpers/Toolbar.php +++ b/packages/Webkul/Product/src/Helpers/Toolbar.php @@ -19,12 +19,12 @@ class Toolbar extends AbstractProduct public function getAvailableOrders() { return [ - 'name-asc' => 'from-a-z', - 'name-desc' => 'from-z-a', + 'name-asc' => 'from-a-z', + 'name-desc' => 'from-z-a', 'created_at-desc' => 'newest-first', - 'created_at-asc' => 'oldest-first', - 'price-asc' => 'cheapest-first', - 'price-desc' => 'expensive-first' + 'created_at-asc' => 'oldest-first', + 'price-asc' => 'cheapest-first', + 'price-desc' => 'expensive-first' ]; } /** @@ -49,7 +49,7 @@ class Toolbar extends AbstractProduct $keys = explode('-', $key); return request()->fullUrlWithQuery([ - 'sort' => current($keys), + 'sort' => current($keys), 'order' => end($keys) ]); } @@ -90,10 +90,11 @@ class Toolbar extends AbstractProduct { $params = request()->input(); - if (isset($params['sort']) && $key == $params['sort'] . '-' . $params['order']) + if (isset($params['sort']) && $key == $params['sort'] . '-' . $params['order']) { return true; - else if (! isset($params['sort']) && $key == 'created_at-desc') + } else if (! isset($params['sort']) && $key == 'created_at-desc') { return true; + } return false; } @@ -108,8 +109,9 @@ class Toolbar extends AbstractProduct { $params = request()->input(); - if (isset($params['limit']) && $limit == $params['limit']) + if (isset($params['limit']) && $limit == $params['limit']) { return true; + } return false; } @@ -124,8 +126,9 @@ class Toolbar extends AbstractProduct { $params = request()->input(); - if (isset($params['mode']) && $key == $params['mode']) + if (isset($params['mode']) && $key == $params['mode']) { return true; + } return false; } @@ -140,8 +143,9 @@ class Toolbar extends AbstractProduct { $params = request()->input(); - if (isset($params['mode'])) + if (isset($params['mode'])) { return $params['mode']; + } return 'grid'; } diff --git a/packages/Webkul/Product/src/Helpers/View.php b/packages/Webkul/Product/src/Helpers/View.php index 1cf9002df..06507a32f 100755 --- a/packages/Webkul/Product/src/Helpers/View.php +++ b/packages/Webkul/Product/src/Helpers/View.php @@ -60,12 +60,12 @@ class View extends AbstractProduct } $data[] = [ - 'id' => $attribute->id, - 'code' => $attribute->code, - 'label' => $attribute->name, - 'value' => $value, + 'id' => $attribute->id, + 'code' => $attribute->code, + 'label' => $attribute->name, + 'value' => $value, 'admin_name' => $attribute->admin_name, - 'type' => $attribute->type, + 'type' => $attribute->type, ]; } diff --git a/packages/Webkul/Product/src/Http/Controllers/ProductController.php b/packages/Webkul/Product/src/Http/Controllers/ProductController.php index e910a2ae0..de2c4cf0a 100755 --- a/packages/Webkul/Product/src/Http/Controllers/ProductController.php +++ b/packages/Webkul/Product/src/Http/Controllers/ProductController.php @@ -157,9 +157,9 @@ class ProductController extends Controller } $this->validate(request(), [ - 'type' => 'required', + 'type' => 'required', 'attribute_family_id' => 'required', - 'sku' => ['required', 'unique:products,sku', new \Webkul\Core\Contracts\Validations\Slug] + 'sku' => ['required', 'unique:products,sku', new \Webkul\Core\Contracts\Validations\Slug] ]); $product = $this->productRepository->create(request()->all()); @@ -287,7 +287,7 @@ class ProductController extends Controller return redirect()->back(); } - if (!$data['massaction-type'] == 'update') { + if (! $data['massaction-type'] == 'update') { return redirect()->back(); } @@ -296,8 +296,8 @@ class ProductController extends Controller foreach ($productIds as $productId) { $this->productRepository->update([ 'channel' => null, - 'locale' => null, - 'status' => $data['update-options'] + 'locale' => null, + 'status' => $data['update-options'] ], $productId); } @@ -328,8 +328,8 @@ class ProductController extends Controller foreach ($this->productRepository->searchProductByAttribute(request()->input('query')) as $row) { $results[] = [ - 'id' => $row->product_id, - 'sku' => $row->sku, + 'id' => $row->product_id, + 'sku' => $row->sku, 'name' => $row->name, ]; } diff --git a/packages/Webkul/Product/src/Http/Requests/ProductForm.php b/packages/Webkul/Product/src/Http/Requests/ProductForm.php index 3cb33842d..a4b0f9e2a 100755 --- a/packages/Webkul/Product/src/Http/Requests/ProductForm.php +++ b/packages/Webkul/Product/src/Http/Requests/ProductForm.php @@ -71,23 +71,25 @@ class ProductForm extends FormRequest $product = $this->product->find($this->id); $this->rules = array_merge($product->getTypeInstance()->getTypeValidationRules(), [ - 'sku' => ['required', 'unique:products,sku,' . $this->id, new \Webkul\Core\Contracts\Validations\Slug], - 'images.*' => 'mimes:jpeg,jpg,bmp,png', + 'sku' => ['required', 'unique:products,sku,' . $this->id, new \Webkul\Core\Contracts\Validations\Slug], + 'images.*' => 'mimes:jpeg,jpg,bmp,png', 'special_price_from' => 'nullable|date', - 'special_price_to' => 'nullable|date|after_or_equal:special_price_from', - 'special_price' => ['nullable', new \Webkul\Core\Contracts\Validations\Decimal, 'lt:price'] + 'special_price_to' => 'nullable|date|after_or_equal:special_price_from', + 'special_price' => ['nullable', new \Webkul\Core\Contracts\Validations\Decimal, 'lt:price'] ]); foreach ($product->getEditableAttributes() as $attribute) { - if ($attribute->code == 'sku' || $attribute->type == 'boolean') + if ($attribute->code == 'sku' || $attribute->type == 'boolean') { continue; + } $validations = []; - if (! isset($this->rules[$attribute->code])) + if (! isset($this->rules[$attribute->code])) { array_push($validations, $attribute->is_required ? 'required' : 'nullable'); - else + } else { $validations = $this->rules[$attribute->code]; + } if ($attribute->type == 'text' && $attribute->validation) { array_push($validations, @@ -97,15 +99,17 @@ class ProductForm extends FormRequest ); } - if ($attribute->type == 'price') + if ($attribute->type == 'price') { array_push($validations, new \Webkul\Core\Contracts\Validations\Decimal); + } if ($attribute->is_unique) { array_push($validations, function ($field, $value, $fail) use ($attribute) { $column = ProductAttributeValue::$attributeTypeFields[$attribute->type]; - if (! $this->attributeValue->isValueUnique($this->id, $attribute->id, $column, request($attribute->code))) + if (! $this->attributeValue->isValueUnique($this->id, $attribute->id, $column, request($attribute->code))) { $fail('The :attribute has already been taken.'); + } }); } diff --git a/packages/Webkul/Product/src/Listeners/ProductFlat.php b/packages/Webkul/Product/src/Listeners/ProductFlat.php index 338ade5fd..71e29ce67 100644 --- a/packages/Webkul/Product/src/Listeners/ProductFlat.php +++ b/packages/Webkul/Product/src/Listeners/ProductFlat.php @@ -59,17 +59,17 @@ class ProductFlat * @var object */ public $attributeTypeFields = [ - 'text' => 'text', - 'textarea' => 'text', - 'price' => 'float', - 'boolean' => 'boolean', - 'select' => 'integer', + 'text' => 'text', + 'textarea' => 'text', + 'price' => 'float', + 'boolean' => 'boolean', + 'select' => 'integer', 'multiselect' => 'text', - 'datetime' => 'datetime', - 'date' => 'date', - 'file' => 'text', - 'image' => 'text', - 'checkbox' => 'text' + 'datetime' => 'datetime', + 'date' => 'date', + 'file' => 'text', + 'image' => 'text', + 'checkbox' => 'text' ]; /** @@ -169,11 +169,13 @@ class ProductFlat static $superAttributes = []; - if (! array_key_exists($product->attribute_family->id, $familyAttributes)) + if (! array_key_exists($product->attribute_family->id, $familyAttributes)) { $familyAttributes[$product->attribute_family->id] = $product->attribute_family->custom_attributes; + } - if ($parentProduct && ! array_key_exists($parentProduct->id, $superAttributes)) + if ($parentProduct && ! array_key_exists($parentProduct->id, $superAttributes)) { $superAttributes[$parentProduct->id] = $parentProduct->super_attributes()->pluck('code')->toArray(); + } if (isset($product['channels'])) { foreach ($product['channels'] as $channel) { @@ -194,27 +196,30 @@ class ProductFlat foreach ($channel->locales as $locale) { $productFlat = $this->productFlatRepository->findOneWhere([ 'product_id' => $product->id, - 'channel' => $channel->code, - 'locale' => $locale->code + 'channel' => $channel->code, + 'locale' => $locale->code ]); if (! $productFlat) { $productFlat = $this->productFlatRepository->create([ 'product_id' => $product->id, - 'channel' => $channel->code, - 'locale' => $locale->code + 'channel' => $channel->code, + 'locale' => $locale->code ]); } foreach ($familyAttributes[$product->attribute_family->id] as $attribute) { - if ($parentProduct && ! in_array($attribute->code, array_merge($superAttributes[$parentProduct->id], ['sku', 'name', 'price', 'weight', 'status']))) + if ($parentProduct && ! in_array($attribute->code, array_merge($superAttributes[$parentProduct->id], ['sku', 'name', 'price', 'weight', 'status']))) { continue; + } - if (in_array($attribute->code, ['tax_category_id'])) + if (in_array($attribute->code, ['tax_category_id'])) { continue; + } - if (! Schema::hasColumn('product_flat', $attribute->code)) + if (! Schema::hasColumn('product_flat', $attribute->code)) { continue; + } if ($attribute->value_per_channel) { if ($attribute->value_per_locale) { @@ -274,12 +279,13 @@ class ProductFlat if ($parentProduct) { $parentProductFlat = $this->productFlatRepository->findOneWhere([ 'product_id' => $parentProduct->id, - 'channel' => $channel->code, - 'locale' => $locale->code + 'channel' => $channel->code, + 'locale' => $locale->code ]); - if ($parentProductFlat) + if ($parentProductFlat) { $productFlat->parent_id = $parentProductFlat->id; + } } $productFlat->save(); @@ -290,7 +296,7 @@ class ProductFlat if ($route == 'admin.catalog.products.update') { $productFlat = $this->productFlatRepository->findOneWhere([ 'product_id' => $product->id, - 'channel' => $channel->code, + 'channel' => $channel->code, ]); if ($productFlat) { diff --git a/packages/Webkul/Product/src/Models/Product.php b/packages/Webkul/Product/src/Models/Product.php index ce9ab9d08..8db9c3cd7 100755 --- a/packages/Webkul/Product/src/Models/Product.php +++ b/packages/Webkul/Product/src/Models/Product.php @@ -192,8 +192,9 @@ class Product extends Model implements ProductContract */ public function getTypeInstance() { - if ($this->typeInstance) + if ($this->typeInstance) { return $this->typeInstance; + } $this->typeInstance = app(config('product_types.' . $this->type . '.class')); @@ -306,8 +307,9 @@ class Product extends Model implements ProductContract */ public function getCustomAttributeValue($attribute) { - if (! $attribute) + if (! $attribute) { return; + } $channel = request()->get('channel') ?: (core()->getCurrentChannelCode() ?: core()->getDefaultChannelCode()); diff --git a/packages/Webkul/Product/src/Models/ProductAttributeValue.php b/packages/Webkul/Product/src/Models/ProductAttributeValue.php index 8c4e1c1ef..eef296c43 100755 --- a/packages/Webkul/Product/src/Models/ProductAttributeValue.php +++ b/packages/Webkul/Product/src/Models/ProductAttributeValue.php @@ -15,17 +15,17 @@ class ProductAttributeValue extends Model implements ProductAttributeValueContra * @var array */ public static $attributeTypeFields = [ - 'text' => 'text_value', - 'textarea' => 'text_value', - 'price' => 'float_value', - 'boolean' => 'boolean_value', - 'select' => 'integer_value', + 'text' => 'text_value', + 'textarea' => 'text_value', + 'price' => 'float_value', + 'boolean' => 'boolean_value', + 'select' => 'integer_value', 'multiselect' => 'text_value', - 'datetime' => 'datetime_value', - 'date' => 'date_value', - 'file' => 'text_value', - 'image' => 'text_value', - 'checkbox' => 'text_value', + 'datetime' => 'datetime_value', + 'date' => 'date_value', + 'file' => 'text_value', + 'image' => 'text_value', + 'checkbox' => 'text_value', ]; protected $fillable = [ diff --git a/packages/Webkul/Product/src/Repositories/ProductAttributeValueRepository.php b/packages/Webkul/Product/src/Repositories/ProductAttributeValueRepository.php index 689e262c0..745030e6b 100755 --- a/packages/Webkul/Product/src/Repositories/ProductAttributeValueRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductAttributeValueRepository.php @@ -60,8 +60,9 @@ class ProductAttributeValueRepository extends Repository $attribute = $this->attributeRepository->findOneByField('code', $data['attribute_code']); } - if (! $attribute) + if (! $attribute) { return; + } $data[ProductAttributeValue::$attributeTypeFields[$attribute->type]] = $data['value']; diff --git a/packages/Webkul/Product/src/Repositories/ProductBundleOptionProductRepository.php b/packages/Webkul/Product/src/Repositories/ProductBundleOptionProductRepository.php index ae9f172ce..51b0ecf3e 100644 --- a/packages/Webkul/Product/src/Repositories/ProductBundleOptionProductRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductBundleOptionProductRepository.php @@ -36,8 +36,9 @@ class ProductBundleOptionProductRepository extends Repository 'product_bundle_option_id' => $productBundleOption->id, ], $bundleOptionProductInputs)); } else { - if (is_numeric($index = $previousBundleOptionProductIds->search($bundleOptionProductId))) + if (is_numeric($index = $previousBundleOptionProductIds->search($bundleOptionProductId))) { $previousBundleOptionProductIds->forget($index); + } $this->update($bundleOptionProductInputs, $bundleOptionProductId); } @@ -55,8 +56,9 @@ class ProductBundleOptionProductRepository extends Repository */ public function setIsDefaultFlag(&$data) { - if (! count($data['products'])) + if (! count($data['products'])) { return; + } $haveIsDefaulFlag = false; @@ -68,7 +70,8 @@ class ProductBundleOptionProductRepository extends Repository } } - if (! $haveIsDefaulFlag && $data['is_required']) + if (! $haveIsDefaulFlag && $data['is_required']) { $data['products'][key($data['products'])]['is_default'] = 1; + } } } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Repositories/ProductBundleOptionRepository.php b/packages/Webkul/Product/src/Repositories/ProductBundleOptionRepository.php index aa384a21a..e9dcdaa36 100644 --- a/packages/Webkul/Product/src/Repositories/ProductBundleOptionRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductBundleOptionRepository.php @@ -60,8 +60,9 @@ class ProductBundleOptionRepository extends Repository } else { $productBundleOption = $this->find($bundleOptionId); - if (is_numeric($index = $previousBundleOptionIds->search($bundleOptionId))) + if (is_numeric($index = $previousBundleOptionIds->search($bundleOptionId))) { $previousBundleOptionIds->forget($index); + } $this->update($bundleOptionInputs, $bundleOptionId); } diff --git a/packages/Webkul/Product/src/Repositories/ProductDownloadableLinkRepository.php b/packages/Webkul/Product/src/Repositories/ProductDownloadableLinkRepository.php index 969c13844..e1f9b02d4 100755 --- a/packages/Webkul/Product/src/Repositories/ProductDownloadableLinkRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductDownloadableLinkRepository.php @@ -34,9 +34,9 @@ class ProductDownloadableLinkRepository extends Repository foreach ($data as $type => $file) { if (request()->hasFile($type)) { return [ - $type => $path = request()->file($type)->store('product_downloadable_links/' . $productId), + $type => $path = request()->file($type)->store('product_downloadable_links/' . $productId), $type . '_name' => $file->getClientOriginalName(), - $type . '_url' => Storage::url($path) + $type . '_url' => Storage::url($path) ]; } } diff --git a/packages/Webkul/Product/src/Repositories/ProductDownloadableSampleRepository.php b/packages/Webkul/Product/src/Repositories/ProductDownloadableSampleRepository.php index 748bef239..41bcfd53d 100755 --- a/packages/Webkul/Product/src/Repositories/ProductDownloadableSampleRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductDownloadableSampleRepository.php @@ -33,9 +33,9 @@ class ProductDownloadableSampleRepository extends Repository { if (request()->hasFile('file')) { return [ - 'file' => $path = request()->file('file')->store('product_downloadable_links/' . $productId), + 'file' => $path = request()->file('file')->store('product_downloadable_links/' . $productId), 'file_name' => request()->file('file')->getClientOriginalName(), - 'file_url' => Storage::url($path) + 'file_url' => Storage::url($path) ]; } diff --git a/packages/Webkul/Product/src/Repositories/ProductFlatRepository.php b/packages/Webkul/Product/src/Repositories/ProductFlatRepository.php index 2d2295854..68f48eedd 100644 --- a/packages/Webkul/Product/src/Repositories/ProductFlatRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductFlatRepository.php @@ -25,8 +25,9 @@ class ProductFlatRepository extends Repository */ public function getCategoryProductMaximumPrice($category = null) { - if (! $category) + if (! $category) { return $this->model->max('max_price'); + } return $this->model ->leftJoin('product_categories', 'product_flat.product_id', 'product_categories.product_id') diff --git a/packages/Webkul/Product/src/Repositories/ProductGroupedProductRepository.php b/packages/Webkul/Product/src/Repositories/ProductGroupedProductRepository.php index bcccbb05b..dcd32e309 100644 --- a/packages/Webkul/Product/src/Repositories/ProductGroupedProductRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductGroupedProductRepository.php @@ -35,8 +35,9 @@ class ProductGroupedProductRepository extends Repository 'product_id' => $product->id, ], $linkInputs)); } else { - if (is_numeric($index = $previousGroupedProductIds->search($linkId))) + if (is_numeric($index = $previousGroupedProductIds->search($linkId))) { $previousGroupedProductIds->forget($index); + } $this->update($linkInputs, $linkId); } diff --git a/packages/Webkul/Product/src/Repositories/ProductImageRepository.php b/packages/Webkul/Product/src/Repositories/ProductImageRepository.php index d9cecef05..6d69e5ba8 100755 --- a/packages/Webkul/Product/src/Repositories/ProductImageRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductImageRepository.php @@ -41,7 +41,7 @@ class ProductImageRepository extends Repository if (Str::contains($imageId, 'image_')) { if (request()->hasFile($file)) { $this->create([ - 'path' => request()->file($file)->store($dir), + 'path' => request()->file($file)->store($dir), 'product_id' => $product->id ]); } diff --git a/packages/Webkul/Product/src/Repositories/ProductInventoryRepository.php b/packages/Webkul/Product/src/Repositories/ProductInventoryRepository.php index 470a91a67..997dc2d18 100755 --- a/packages/Webkul/Product/src/Repositories/ProductInventoryRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductInventoryRepository.php @@ -35,9 +35,9 @@ class ProductInventoryRepository extends Repository $qty = is_null($qty) ? 0 : $qty; $productInventory = $this->findOneWhere([ - 'product_id' => $product->id, + 'product_id' => $product->id, 'inventory_source_id' => $inventorySourceId, - 'vendor_id' => isset($data['vendor_id']) ? $data['vendor_id'] : 0 + 'vendor_id' => isset($data['vendor_id']) ? $data['vendor_id'] : 0 ]); if ($productInventory) { @@ -46,10 +46,10 @@ class ProductInventoryRepository extends Repository $productInventory->save(); } else { $this->create([ - 'qty' => $qty, - 'product_id' => $product->id, + 'qty' => $qty, + 'product_id' => $product->id, 'inventory_source_id' => $inventorySourceId, - 'vendor_id' => isset($data['vendor_id']) ? $data['vendor_id'] : 0 + 'vendor_id' => isset($data['vendor_id']) ? $data['vendor_id'] : 0 ]); } } diff --git a/packages/Webkul/Product/src/Repositories/ProductRepository.php b/packages/Webkul/Product/src/Repositories/ProductRepository.php index 5538d42ae..aab13503f 100755 --- a/packages/Webkul/Product/src/Repositories/ProductRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductRepository.php @@ -83,8 +83,9 @@ class ProductRepository extends Repository $product = $product->getTypeInstance()->update($data, $id, $attribute); - if (isset($data['channels'])) + if (isset($data['channels'])) { $product['channels'] = $data['channels']; + } Event::dispatch('catalog.product.update.after', $product); @@ -125,14 +126,17 @@ class ProductRepository extends Repository ->where('product_flat.locale', $locale) ->whereNotNull('product_flat.url_key'); - if ($categoryId) + if ($categoryId) { $qb->where('product_categories.category_id', $categoryId); + } - if (is_null(request()->input('status'))) + if (is_null(request()->input('status'))) { $qb->where('product_flat.status', 1); + } - if (is_null(request()->input('visible_individually'))) + if (is_null(request()->input('visible_individually'))) { $qb->where('product_flat.visible_individually', 1); + } $queryBuilder = $qb->leftJoin('product_flat as flat_variants', function($qb) use($channel, $locale) { $qb->on('product_flat.id', '=', 'flat_variants.parent_id') @@ -182,8 +186,9 @@ class ProductRepository extends Repository $query2 = $query2->where(function($query3) use($aliasTemp, $column, $temp) { foreach($temp as $code => $filterValue) { - if (! is_numeric($filterValue)) + if (! is_numeric($filterValue)) { continue; + } $columns = $aliasTemp . '.' . $column; $query3 = $query3->orwhereRaw("find_in_set($filterValue, $columns)"); @@ -214,7 +219,7 @@ class ProductRepository extends Repository { $product = app(ProductFlatRepository::class)->findOneWhere([ 'url_key' => $slug, - 'locale' => app()->getLocale(), + 'locale' => app()->getLocale(), 'channel' => core()->getCurrentChannelCode(), ]); @@ -238,7 +243,7 @@ class ProductRepository extends Repository { return app(ProductFlatRepository::class)->findOneWhere([ 'url_key' => $slug, - 'locale' => app()->getLocale(), + 'locale' => app()->getLocale(), 'channel' => core()->getCurrentChannelCode(), ]); } @@ -334,9 +339,9 @@ class ProductRepository extends Repository foreach ($attribute->options as $option) { $superAttrbutes[$key]['options'][] = [ - 'id' => $option->id, - 'admin_name' => $option->admin_name, - 'sort_order' => $option->sort_order, + 'id' => $option->id, + 'admin_name' => $option->admin_name, + 'sort_order' => $option->sort_order, 'swatch_value' => $option->swatch_value, ]; } diff --git a/packages/Webkul/Product/src/Type/AbstractType.php b/packages/Webkul/Product/src/Type/AbstractType.php index e23cc83ed..2dee00aa8 100644 --- a/packages/Webkul/Product/src/Type/AbstractType.php +++ b/packages/Webkul/Product/src/Type/AbstractType.php @@ -203,10 +203,10 @@ abstract class AbstractType } $attributeValue = $this->attributeValueRepository->findOneWhere([ - 'product_id' => $product->id, + 'product_id' => $product->id, 'attribute_id' => $attribute->id, - 'channel' => $attribute->value_per_channel ? $data['channel'] : null, - 'locale' => $attribute->value_per_locale ? $data['locale'] : null + 'channel' => $attribute->value_per_channel ? $data['channel'] : null, + 'locale' => $attribute->value_per_locale ? $data['locale'] : null ]); if (! $attributeValue) { @@ -495,8 +495,9 @@ abstract class AbstractType { $rulePrice = app('Webkul\CatalogRule\Helpers\CatalogRuleProductPrice')->getRulePrice($this->product); - if ((is_null($this->product->special_price) || ! (float) $this->product->special_price) && ! $rulePrice) + if ((is_null($this->product->special_price) || ! (float) $this->product->special_price) && ! $rulePrice) { return false; + } if (! (float) $this->product->special_price) { if ($rulePrice) { @@ -532,11 +533,11 @@ abstract class AbstractType { return [ 'regular_price' => [ - 'price' => core()->convertPrice($this->product->price), + 'price' => core()->convertPrice($this->product->price), 'formated_price' => core()->currency($this->product->price) ], - 'final_price' => [ - 'price' => core()->convertPrice($this->getMinimalPrice()), + 'final_price' => [ + 'price' => core()->convertPrice($this->getMinimalPrice()), 'formated_price' => core()->currency($this->getMinimalPrice()) ] ]; @@ -580,19 +581,19 @@ abstract class AbstractType $products = [ [ - 'product_id' => $this->product->id, - 'sku' => $this->product->sku, - 'quantity' => $data['quantity'], - 'name' => $this->product->name, - 'price' => $convertedPrice = core()->convertPrice($price), - 'base_price' => $price, - 'total' => $convertedPrice * $data['quantity'], - 'base_total' => $price * $data['quantity'], - 'weight' => $this->product->weight ?? 0, - 'total_weight' => ($this->product->weight ?? 0) * $data['quantity'], + 'product_id' => $this->product->id, + 'sku' => $this->product->sku, + 'quantity' => $data['quantity'], + 'name' => $this->product->name, + 'price' => $convertedPrice = core()->convertPrice($price), + 'base_price' => $price, + 'total' => $convertedPrice * $data['quantity'], + 'base_total' => $price * $data['quantity'], + 'weight' => $this->product->weight ?? 0, + 'total_weight' => ($this->product->weight ?? 0) * $data['quantity'], 'base_total_weight' => ($this->product->weight ?? 0) * $data['quantity'], - 'type' => $this->product->type, - 'additional' => $this->getAdditionalOptions($data) + 'type' => $this->product->type, + 'additional' => $this->getAdditionalOptions($data) ] ]; diff --git a/packages/Webkul/Product/src/Type/Bundle.php b/packages/Webkul/Product/src/Type/Bundle.php index bc4e7bc87..55e9b5120 100644 --- a/packages/Webkul/Product/src/Type/Bundle.php +++ b/packages/Webkul/Product/src/Type/Bundle.php @@ -127,8 +127,9 @@ class Bundle extends AbstractType { $product = parent::update($data, $id, $attribute); - if (request()->route()->getName() != 'admin.catalog.products.massupdate') + if (request()->route()->getName() != 'admin.catalog.products.massupdate') { $this->productBundleOptionRepository->saveBundleOptons($data, $product); + } return $product; } @@ -180,8 +181,9 @@ class Bundle extends AbstractType } } - if (! $haveRequiredOptions) + if (! $haveRequiredOptions) { $minPrice = count($minPrices) ? min($minPrices) : 0; + } return $minPrice; } @@ -213,8 +215,9 @@ class Bundle extends AbstractType } } - if (! $haveRequiredOptions && count($minPrices)) + if (! $haveRequiredOptions && count($minPrices)) { $minPrice = min($minPrices); + } return $minPrice; } @@ -248,8 +251,9 @@ class Bundle extends AbstractType protected function haveRequiredOptions() { foreach ($this->product->bundle_options as $option) { - if ($option->is_required) + if ($option->is_required) { return true; + } } return false; @@ -267,8 +271,9 @@ class Bundle extends AbstractType foreach ($this->product->bundle_options as $option) { foreach ($option->bundle_option_products as $index => $bundleOptionProduct) { if (in_array($option->type, ['multiselect', 'checkbox'])) { - if (! isset($optionPrices[$option->id][0])) + if (! isset($optionPrices[$option->id][0])) { $optionPrices[$option->id][0] = 0; + } $optionPrices[$option->id][0] += $bundleOptionProduct->qty * $bundleOptionProduct->product->getTypeInstance()->getMinimalPrice(); } else { @@ -299,8 +304,9 @@ class Bundle extends AbstractType foreach ($this->product->bundle_options as $option) { foreach ($option->bundle_option_products as $index => $bundleOptionProduct) { if (in_array($option->type, ['multiselect', 'checkbox'])) { - if (! isset($optionPrices[$option->id][0])) + if (! isset($optionPrices[$option->id][0])) { $optionPrices[$option->id][0] = 0; + } $optionPrices[$option->id][0] += $bundleOptionProduct->qty * $bundleOptionProduct->product->price; } else { @@ -339,21 +345,22 @@ class Bundle extends AbstractType return [ 'from' => [ 'regular_price' => [ - 'price' => core()->convertPrice($this->getRegularMinimalPrice()), + 'price' => core()->convertPrice($this->getRegularMinimalPrice()), 'formated_price' => core()->currency($this->getRegularMinimalPrice()) ], - 'final_price' => [ - 'price' => core()->convertPrice($this->getMinimalPrice()), + 'final_price' => [ + 'price' => core()->convertPrice($this->getMinimalPrice()), 'formated_price' => core()->currency($this->getMinimalPrice()) ] ], - 'to' => [ + + 'to' => [ 'regular_price' => [ - 'price' => core()->convertPrice($this->getRegularMaximamPrice()), + 'price' => core()->convertPrice($this->getRegularMaximamPrice()), 'formated_price' => core()->currency($this->getRegularMaximamPrice()) ], - 'final_price' => [ - 'price' => core()->convertPrice($this->getMaximamPrice()), + 'final_price' => [ + 'price' => core()->convertPrice($this->getMaximamPrice()), 'formated_price' => core()->currency($this->getMaximamPrice()) ] ] @@ -405,11 +412,13 @@ class Bundle extends AbstractType */ public function prepareForCart($data) { - if (isset($data['bundle_options'])) + if (isset($data['bundle_options'])) { $data['bundle_options'] = array_filter($this->validateBundleOptionForCart($data['bundle_options'])); + } - if (! isset($data['bundle_options']) || ! count($data['bundle_options'])) + if (! isset($data['bundle_options']) || ! count($data['bundle_options'])) { return trans('shop::app.checkout.cart.integrity.missing_options'); + } $products = parent::prepareForCart($data); @@ -418,8 +427,9 @@ class Bundle extends AbstractType $cartProduct = $product->getTypeInstance()->prepareForCart(array_merge($data, ['parent_id' => $this->product->id])); - if (is_string($cartProduct)) + if (is_string($cartProduct)) { return $cartProduct; + } $cartProduct[0]['parent_id'] = $this->product->id; $cartProduct[0]['quantity'] = $data['quantity']; @@ -452,11 +462,12 @@ class Bundle extends AbstractType foreach ($data['bundle_options'] as $optionId => $optionProductIds) { foreach ($optionProductIds as $optionProductId) { - if (! $optionProductId) + if (! $optionProductId) { continue; + } $optionProduct = $this->productBundleOptionProductRepository->findOneWhere([ - 'id' => $optionProductId, + 'id' => $optionProductId, 'product_bundle_option_id' => $optionId ]); @@ -465,7 +476,7 @@ class Bundle extends AbstractType if (! isset($products[$optionProduct->product_id])) { $products[$optionProduct->product_id] = [ 'product_id' => $optionProduct->product_id, - 'quantity' => $qty, + 'quantity' => $qty, ]; } else { $products[$optionProduct->product_id] = array_merge($products[$optionProduct->product_id], [ @@ -486,8 +497,9 @@ class Bundle extends AbstractType */ public function compareOptions($options1, $options2) { - if ($this->product->id != $options2['product_id']) + if ($this->product->id != $options2['product_id']) { return false; + } return $options1['bundle_options'] == $options2['bundle_options'] && $options1['bundle_option_qty'] == $this->getOptionQuantities($options2); @@ -530,15 +542,17 @@ class Bundle extends AbstractType $labels = []; foreach ($optionProductIds as $optionProductId) { - if (! $optionProductId) + if (! $optionProductId) { continue; + } $optionProduct = $this->productBundleOptionProductRepository->find($optionProductId); $qty = $data['bundle_option_qty'][$optionId] ?? $optionProduct->qty; - if (! isset($data['bundle_option_qty'][$optionId])) + if (! isset($data['bundle_option_qty'][$optionId])) { $bundleOptionQuantities[$optionId] = $qty; + } $labels[] = $qty . ' x ' . $optionProduct->product->name . ' ' . core()->currency($optionProduct->product->getTypeInstance()->getMinimalPrice()); } @@ -546,8 +560,8 @@ class Bundle extends AbstractType if (count($labels)) { $data['attributes'][$option->id] = [ 'attribute_name' => $option->label, - 'option_id' => $option->id, - 'option_label' => implode(', ', $labels), + 'option_id' => $option->id, + 'option_label' => implode(', ', $labels), ]; } } @@ -569,8 +583,9 @@ class Bundle extends AbstractType foreach ($data['bundle_options'] as $optionId => $optionProductIds) { foreach ($optionProductIds as $optionProductId) { - if (! $optionProductId) + if (! $optionProductId) { continue; + } if (isset($data['bundle_option_qty'][$optionId])) { $optionQuantities[$optionId] = $data['bundle_option_qty'][$optionId]; @@ -603,8 +618,9 @@ class Bundle extends AbstractType $price += $childItem->base_price * $childItem->quantity; } - if ($price == $item->base_price) + if ($price == $item->base_price) { return; + } $item->base_price = $price; $item->price = core()->convertPrice($price); diff --git a/packages/Webkul/Product/src/Type/Configurable.php b/packages/Webkul/Product/src/Type/Configurable.php index 213fd6499..5d667f58e 100644 --- a/packages/Webkul/Product/src/Type/Configurable.php +++ b/packages/Webkul/Product/src/Type/Configurable.php @@ -106,8 +106,9 @@ class Configurable extends AbstractType $this->createVariant($product, $permutation, $variantData); } else { - if (is_numeric($index = $previousVariantIds->search($variantId))) + if (is_numeric($index = $previousVariantIds->search($variantId))) { $previousVariantIds->forget($index); + } $variantData['channel'] = $data['channel']; $variantData['locale'] = $data['locale']; @@ -135,12 +136,12 @@ class Configurable extends AbstractType { if (! count($data)) { $data = [ - "sku" => $product->sku . '-variant-' . implode('-', $permutation), - "name" => "", - "inventories" => [], - "price" => 0, - "weight" => 0, - "status" => 1 + 'sku' => $product->sku . '-variant-' . implode('-', $permutation), + 'name' => '', + 'inventories' => [], + 'price' => 0, + 'weight' => 0, + 'status' => 1 ]; } @@ -165,21 +166,21 @@ class Configurable extends AbstractType foreach (core()->getAllChannels() as $channel) { foreach (core()->getAllLocales() as $locale) { $this->attributeValueRepository->create([ - 'product_id' => $variant->id, + 'product_id' => $variant->id, 'attribute_id' => $attribute->id, - 'channel' => $channel->code, - 'locale' => $locale->code, - 'value' => $data[$attributeCode] + 'channel' => $channel->code, + 'locale' => $locale->code, + 'value' => $data[$attributeCode] ]); } } } else { foreach (core()->getAllChannels() as $channel) { $this->attributeValueRepository->create([ - 'product_id' => $variant->id, + 'product_id' => $variant->id, 'attribute_id' => $attribute->id, - 'channel' => $channel->code, - 'value' => $data[$attributeCode] + 'channel' => $channel->code, + 'value' => $data[$attributeCode] ]); } } @@ -187,17 +188,17 @@ class Configurable extends AbstractType if ($attribute->value_per_locale) { foreach (core()->getAllLocales() as $locale) { $this->attributeValueRepository->create([ - 'product_id' => $variant->id, + 'product_id' => $variant->id, 'attribute_id' => $attribute->id, - 'locale' => $locale->code, - 'value' => $data[$attributeCode] + 'locale' => $locale->code, + 'value' => $data[$attributeCode] ]); } } else { $this->attributeValueRepository->create([ - 'product_id' => $variant->id, + 'product_id' => $variant->id, 'attribute_id' => $attribute->id, - 'value' => $data[$attributeCode] + 'value' => $data[$attributeCode] ]); } } @@ -205,9 +206,9 @@ class Configurable extends AbstractType foreach ($permutation as $attributeId => $optionId) { $this->attributeValueRepository->create([ - 'product_id' => $variant->id, + 'product_id' => $variant->id, 'attribute_id' => $attributeId, - 'value' => $optionId + 'value' => $optionId ]); } @@ -231,19 +232,19 @@ class Configurable extends AbstractType $attribute = $this->attributeRepository->findOneByField('code', $attributeCode); $attributeValue = $this->attributeValueRepository->findOneWhere([ - 'product_id' => $id, + 'product_id' => $id, 'attribute_id' => $attribute->id, - 'channel' => $attribute->value_per_channel ? $data['channel'] : null, - 'locale' => $attribute->value_per_locale ? $data['locale'] : null + 'channel' => $attribute->value_per_channel ? $data['channel'] : null, + 'locale' => $attribute->value_per_locale ? $data['locale'] : null ]); if (! $attributeValue) { $this->attributeValueRepository->create([ - 'product_id' => $id, + 'product_id' => $id, 'attribute_id' => $attribute->id, - 'value' => $data[$attribute->code], - 'channel' => $attribute->value_per_channel ? $data['channel'] : null, - 'locale' => $attribute->value_per_locale ? $data['locale'] : null + 'value' => $data[$attribute->code], + 'channel' => $attribute->value_per_channel ? $data['channel'] : null, + 'locale' => $attribute->value_per_locale ? $data['locale'] : null ]); } else { $this->attributeValueRepository->update([ @@ -267,21 +268,25 @@ class Configurable extends AbstractType $superAttributeCodes = $product->parent->super_attributes->pluck('code'); foreach ($product->parent->variants as $variant) { - if ($variant->id == $product->id) + if ($variant->id == $product->id) { continue; + } $matchCount = 0; foreach ($superAttributeCodes as $attributeCode) { - if (! isset($data[$attributeCode])) + if (! isset($data[$attributeCode])) { return false; + } - if ($data[$attributeCode] == $variant->{$attributeCode}) + if ($data[$attributeCode] == $variant->{$attributeCode}) { $matchCount++; + } } - if ($matchCount == $superAttributeCodes->count()) + if ($matchCount == $superAttributeCodes->count()) { return true; + } } return false; @@ -314,9 +319,9 @@ class Configurable extends AbstractType public function getTypeValidationRules() { return [ - 'variants.*.name' => 'required', - 'variants.*.sku' => 'required', - 'variants.*.price' => 'required', + 'variants.*.name' => 'required', + 'variants.*.sku' => 'required', + 'variants.*.price' => 'required', 'variants.*.weight' => 'required', ]; } @@ -329,8 +334,9 @@ class Configurable extends AbstractType */ public function canBeMovedFromWishlistToCart($item) { - if (isset($item->additional['selected_configurable_option'])) + if (isset($item->additional['selected_configurable_option'])) { return true; + } return false; } @@ -358,8 +364,9 @@ class Configurable extends AbstractType $minPrices[] = $price->min_price; } - if (empty($minPrices)) + if (empty($minPrices)) { return 0; + } return min($minPrices); } @@ -401,39 +408,41 @@ class Configurable extends AbstractType */ public function prepareForCart($data) { - if (! isset($data['selected_configurable_option']) || ! $data['selected_configurable_option']) + if (! isset($data['selected_configurable_option']) || ! $data['selected_configurable_option']) { return trans('shop::app.checkout.cart.integrity.missing_options'); + } $data = $this->getQtyRequest($data); $childProduct = $this->productRepository->find($data['selected_configurable_option']); - if (! $childProduct->haveSufficientQuantity($data['quantity'])) + if (! $childProduct->haveSufficientQuantity($data['quantity'])) { return trans('shop::app.checkout.cart.quantity.inventory_warning'); + } $price = $childProduct->getTypeInstance()->getFinalPrice(); $products = [ [ - 'product_id' => $this->product->id, - 'sku' => $this->product->sku, - 'quantity' => $data['quantity'], - 'name' => $this->product->name, - 'price' => $convertedPrice = core()->convertPrice($price), - 'base_price' => $price, - 'total' => $convertedPrice * $data['quantity'], - 'base_total' => $price * $data['quantity'], - 'weight' => $childProduct->weight, - 'total_weight' => $childProduct->weight * $data['quantity'], + 'product_id' => $this->product->id, + 'sku' => $this->product->sku, + 'quantity' => $data['quantity'], + 'name' => $this->product->name, + 'price' => $convertedPrice = core()->convertPrice($price), + 'base_price' => $price, + 'total' => $convertedPrice * $data['quantity'], + 'base_total' => $price * $data['quantity'], + 'weight' => $childProduct->weight, + 'total_weight' => $childProduct->weight * $data['quantity'], 'base_total_weight' => $childProduct->weight * $data['quantity'], - 'type' => $this->product->type, - 'additional' => $this->getAdditionalOptions($data) + 'type' => $this->product->type, + 'additional' => $this->getAdditionalOptions($data) ], [ - 'parent_id' => $this->product->id, + 'parent_id' => $this->product->id, 'product_id' => (int) $data['selected_configurable_option'], - 'sku' => $childProduct->sku, - 'name' => $childProduct->name, - 'type' => 'simple', + 'sku' => $childProduct->sku, + 'name' => $childProduct->name, + 'type' => 'simple', 'additional' => ['product_id' => (int) $data['selected_configurable_option'], 'parent_id' => $this->product->id] ] ]; @@ -449,8 +458,9 @@ class Configurable extends AbstractType */ public function compareOptions($options1, $options2) { - if ($this->product->id != $options2['product_id']) + if ($this->product->id != $options2['product_id']) { return false; + } return $options1['selected_configurable_option'] === $options2['selected_configurable_option']; } @@ -470,8 +480,8 @@ class Configurable extends AbstractType $data['attributes'][$attribute->code] = [ 'attribute_name' => $attribute->name ? $attribute->name : $attribute->admin_name, - 'option_id' => $option->id, - 'option_label' => $option->label ? $option->label : $option->admin_name, + 'option_id' => $option->id, + 'option_label' => $option->label ? $option->label : $option->admin_name, ]; } @@ -520,8 +530,9 @@ class Configurable extends AbstractType { $price = $item->child->product->getTypeInstance()->getFinalPrice(); - if ($price == $item->base_price) + if ($price == $item->base_price) { return; + } $item->base_price = $price; $item->price = core()->convertPrice($price); diff --git a/packages/Webkul/Product/src/Type/Downloadable.php b/packages/Webkul/Product/src/Type/Downloadable.php index fa7cd8c9b..d5c270dd1 100644 --- a/packages/Webkul/Product/src/Type/Downloadable.php +++ b/packages/Webkul/Product/src/Type/Downloadable.php @@ -125,11 +125,13 @@ class Downloadable extends AbstractType */ public function isSaleable() { - if (! $this->product->status) + if (! $this->product->status) { return false; + } - if ($this->product->downloadable_links()->count()) + if ($this->product->downloadable_links()->count()) { return true; + } return false; } @@ -143,11 +145,11 @@ class Downloadable extends AbstractType { return [ // 'downloadable_links.*.title' => 'required', - 'downloadable_links.*.type' => 'required', - 'downloadable_links.*.file' => 'required_if:type,==,file', - 'downloadable_links.*.file_name' => 'required_if:type,==,file', - 'downloadable_links.*.url' => 'required_if:type,==,url', - 'downloadable_links.*.downloads' => 'required', + 'downloadable_links.*.type' => 'required', + 'downloadable_links.*.file' => 'required_if:type,==,file', + 'downloadable_links.*.file_name' => 'required_if:type,==,file', + 'downloadable_links.*.url' => 'required_if:type,==,url', + 'downloadable_links.*.downloads' => 'required', 'downloadable_links.*.sort_order' => 'required', ]; } @@ -160,14 +162,16 @@ class Downloadable extends AbstractType */ public function prepareForCart($data) { - if (! isset($data['links']) || ! count($data['links'])) + if (! isset($data['links']) || ! count($data['links'])) { return trans('shop::app.checkout.cart.integrity.missing_links'); + } $products = parent::prepareForCart($data); foreach ($this->product->downloadable_links as $link) { - if (! in_array($link->id, $data['links'])) + if (! in_array($link->id, $data['links'])) { continue; + } $products[0]['price'] += core()->convertPrice($link->price); $products[0]['base_price'] += $link->price; @@ -186,8 +190,9 @@ class Downloadable extends AbstractType */ public function compareOptions($options1, $options2) { - if ($this->product->id != $options2['product_id']) + if ($this->product->id != $options2['product_id']) { return false; + } return $options1['links'] == $options2['links']; } @@ -203,14 +208,15 @@ class Downloadable extends AbstractType $labels = []; foreach ($this->product->downloadable_links as $link) { - if (in_array($link->id, $data['links'])) + if (in_array($link->id, $data['links'])) { $labels[] = $link->title; + } } $data['attributes'][0] = [ 'attribute_name' => 'Downloads', - 'option_id' => 0, - 'option_label' => implode(', ', $labels), + 'option_id' => 0, + 'option_label' => implode(', ', $labels), ]; return $data; @@ -227,14 +233,16 @@ class Downloadable extends AbstractType $price = $item->product->getTypeInstance()->getFinalPrice(); foreach ($item->product->downloadable_links as $link) { - if (! in_array($link->id, $item->additional['links'])) + if (! in_array($link->id, $item->additional['links'])) { continue; + } $price += $link->price; } - if ($price == $item->base_price) + if ($price == $item->base_price) { return; + } $item->base_price = $price; $item->price = core()->convertPrice($price); diff --git a/packages/Webkul/Product/src/Type/Grouped.php b/packages/Webkul/Product/src/Type/Grouped.php index 0d1559f43..848f58b7e 100644 --- a/packages/Webkul/Product/src/Type/Grouped.php +++ b/packages/Webkul/Product/src/Type/Grouped.php @@ -98,8 +98,9 @@ class Grouped extends AbstractType { $product = parent::update($data, $id, $attribute); - if (request()->route()->getName() != 'admin.catalog.products.massupdate') + if (request()->route()->getName() != 'admin.catalog.products.massupdate') { $this->productGroupedProductRepository->saveGroupedProducts($data, $product); + } return $product; } @@ -137,8 +138,9 @@ class Grouped extends AbstractType $minPrices[] = $groupOptionProduct->associated_product->getTypeInstance()->getMinimalPrice(); } - if (empty($minPrices)) + if (empty($minPrices)) { return 0; + } return min($minPrices); } @@ -162,14 +164,16 @@ class Grouped extends AbstractType */ public function prepareForCart($data) { - if (! isset($data['qty']) || ! is_array($data['qty'])) + if (! isset($data['qty']) || ! is_array($data['qty'])) { return trans('shop::app.checkout.cart.integrity.missing_options'); + } $products = []; foreach ($data['qty'] as $productId => $qty) { - if (! $qty) + if (! $qty) { continue; + } $product = $this->productRepository->find($productId); @@ -178,14 +182,16 @@ class Grouped extends AbstractType 'quantity' => $qty, ]); - if (is_string($cartProducts)) + if (is_string($cartProducts)) { return $cartProducts; + } $products = array_merge($products, $cartProducts); } - if (! count($products)) + if (! count($products)) { return trans('shop::app.checkout.cart.integrity.qty_missing'); + } return $products; } diff --git a/packages/Webkul/Product/src/Type/Simple.php b/packages/Webkul/Product/src/Type/Simple.php index f13c1c39a..0afdb7853 100644 --- a/packages/Webkul/Product/src/Type/Simple.php +++ b/packages/Webkul/Product/src/Type/Simple.php @@ -44,11 +44,13 @@ class Simple extends AbstractType */ public function isSaleable() { - if (! $this->product->status) + if (! $this->product->status) { return false; + } - if ($this->haveSufficientQuantity(1)) + if ($this->haveSufficientQuantity(1)) { return true; + } return false; } @@ -61,6 +63,7 @@ class Simple extends AbstractType public function haveSufficientQuantity($qty) { $backorders = core()->getConfigData('catalog.inventory.stock_options.backorders'); + return $qty <= $this->totalQuantity() ? true : $backorders; } } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Type/Virtual.php b/packages/Webkul/Product/src/Type/Virtual.php index d5e6d4ad3..e13b1f978 100644 --- a/packages/Webkul/Product/src/Type/Virtual.php +++ b/packages/Webkul/Product/src/Type/Virtual.php @@ -51,11 +51,13 @@ class Virtual extends AbstractType */ public function isSaleable() { - if (! $this->product->status) + if (! $this->product->status) { return false; + } - if ($this->haveSufficientQuantity(1)) + if ($this->haveSufficientQuantity(1)) { return true; + } return false; }