Commit c3d12ab0d53e3c5c73e4f38338b97021c60aca60
1 parent
d7b7bdaf
add variantSku
Showing
1 changed file
with
21 additions
and
11 deletions
Show diff stats
models/ProductFrontendSearch.php
@@ -4,7 +4,6 @@ | @@ -4,7 +4,6 @@ | ||
4 | 4 | ||
5 | use artweb\artbox\ecommerce\helpers\FilterHelper; | 5 | use artweb\artbox\ecommerce\helpers\FilterHelper; |
6 | use artweb\artbox\ecommerce\models\Category; | 6 | use artweb\artbox\ecommerce\models\Category; |
7 | - use artweb\artbox\language\models\Language; | ||
8 | use yii\base\Model; | 7 | use yii\base\Model; |
9 | use yii\data\ActiveDataProvider; | 8 | use yii\data\ActiveDataProvider; |
10 | use yii\data\ArrayDataProvider; | 9 | use yii\data\ArrayDataProvider; |
@@ -118,16 +117,22 @@ | @@ -118,16 +117,22 @@ | ||
118 | return $dataProvider; | 117 | return $dataProvider; |
119 | } | 118 | } |
120 | 119 | ||
121 | - /** | ||
122 | - * @param Category $category | ||
123 | - * @param array $params | ||
124 | - * @param bool $in_stock | ||
125 | - * @return mixed | ||
126 | - */ | ||
127 | - public function getSearchQuery($category, $params = [], $in_stock = true) | 120 | + public function getSearchQuery($category = null, $params = [], $in_stock = true) |
128 | { | 121 | { |
129 | 122 | ||
130 | - $query = $category->getProducts(); | 123 | + if (!empty( $category )) { |
124 | + /** @var ActiveQuery $query */ | ||
125 | + /**@var Category $category * */ | ||
126 | + $query = $category->getProducts(); | ||
127 | + | ||
128 | + } else { | ||
129 | + $query = Product::find() | ||
130 | + ->joinWith( | ||
131 | + [ | ||
132 | + 'category.lang', | ||
133 | + ] | ||
134 | + ); | ||
135 | + } | ||
131 | 136 | ||
132 | $query->select([ 'product.*' ]); | 137 | $query->select([ 'product.*' ]); |
133 | $query->joinWith( | 138 | $query->joinWith( |
@@ -171,7 +176,6 @@ | @@ -171,7 +176,6 @@ | ||
171 | ] | 176 | ] |
172 | ); | 177 | ); |
173 | 178 | ||
174 | - | ||
175 | FilterHelper::setQueryParams($query, $params); | 179 | FilterHelper::setQueryParams($query, $params); |
176 | return $query; | 180 | return $query; |
177 | } | 181 | } |
@@ -184,7 +188,13 @@ | @@ -184,7 +188,13 @@ | ||
184 | 188 | ||
185 | public function priceLimits($category = null, $params = []) | 189 | public function priceLimits($category = null, $params = []) |
186 | { | 190 | { |
187 | - $query = $category->getProducts(); | 191 | + if (!empty( $category )) { |
192 | + /** @var ActiveQuery $query */ | ||
193 | + // $query = $category->getRelations('product_categories'); | ||
194 | + $query = $category->getProducts(); | ||
195 | + } else { | ||
196 | + $query = Product::find(); | ||
197 | + } | ||
188 | 198 | ||
189 | $query->select(['MAX('.ProductVariant::tableName() . '.price) as max', 'MIN('.ProductVariant::tableName() . '.price) as min']); | 199 | $query->select(['MAX('.ProductVariant::tableName() . '.price) as max', 'MIN('.ProductVariant::tableName() . '.price) as min']); |
190 | $query->joinWith('variant'); | 200 | $query->joinWith('variant'); |