diff --git a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php index a4b9add01..04d81be0f 100644 --- a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php @@ -3,7 +3,7 @@ namespace Webkul\Admin\DataGrids; use Webkul\Ui\DataGrid\DataGrid; -use DB; +use Illuminate\Support\Facades\DB; /** * ProductDataGrid Class @@ -19,16 +19,44 @@ class ProductDataGrid extends DataGrid protected $itemsPerPage = 10; + protected $locale = 'all'; + + protected $channel = 'all'; + + public function __construct() + { + parent::__construct(); + + $this->locale = request()->get('locale') ?? 'all'; + $this->channel = request()->get('channel') ?? 'all'; + } + public function prepareQueryBuilder() { $queryBuilder = DB::table('product_flat') ->leftJoin('products', 'product_flat.product_id', '=', 'products.id') ->leftJoin('attribute_families', 'products.attribute_family_id', '=', 'attribute_families.id') ->leftJoin('product_inventories', 'product_flat.product_id', '=', 'product_inventories.product_id') - ->select('product_flat.product_id as product_id', 'products.sku as product_sku', 'product_flat.name as product_name', 'products.type as product_type', 'product_flat.status', 'product_flat.price', 'attribute_families.name as attribute_family', DB::raw('SUM(' . DB::getTablePrefix() . 'product_inventories.qty) as quantity')) - ->where('channel', core()->getCurrentChannelCode()) - ->where('locale', app()->getLocale()) - ->groupBy('product_flat.product_id'); + ->select( + 'product_flat.product_id as product_id', + 'products.sku as product_sku', + 'product_flat.name as product_name', + 'products.type as product_type', + 'product_flat.status', + 'product_flat.price', + 'attribute_families.name as attribute_family', + DB::raw('SUM(' . DB::getTablePrefix() . 'product_inventories.qty) as quantity') + ); + + if ($this->locale !== 'all') { + $queryBuilder->where('locale', $this->locale); + } + + if ($this->channel !== 'all') { + $queryBuilder->where('channel', $this->channel); + } + + $queryBuilder->groupBy('product_flat.product_id'); $this->addFilter('product_id', 'product_flat.product_id'); $this->addFilter('product_name', 'product_flat.name'); diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 25a79fa1a..f99d7b842 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -776,7 +776,8 @@ return [ 'seo' => 'Home page SEO', 'seo-title' => 'Meta title', 'seo-description' => 'Meta description', - 'seo-keywords' => 'Meta keywords' + 'seo-keywords' => 'Meta keywords', + ], 'sliders' => [ @@ -1263,7 +1264,9 @@ return [ 'order-number-length' => 'Order Number Length', 'order-number-suffix' => 'Order Number Suffix', 'default' => 'Default', - 'sandbox' => 'Sandbox' + 'sandbox' => 'Sandbox', + 'all-channels' => 'All', + 'all-locales' => 'All' ] ] ]; diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/index.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/index.blade.php index 60c77b361..f01b54c2b 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/index.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/index.blade.php @@ -6,9 +6,45 @@ @section('content')
+ get('locale') ?: null; ?> + get('channel') ?: null; ?>