Эндпоинт client/get-stores (actionGetStores) фильтровал только по
products_1c.view=1, но не по видимости карточки city_store. Из-за этого
в список «Наши салоны» чат-бота протекали закрытые/скрытые точки
(visible=0) — показывалось 33 магазина вместо 26 (Нижний Новгород).
Добавлен фильтр city_store.visible=1 (в PHP, т.к. связь store идёт через
via и join был бы хрупким) — по образцу CityStore::getAllActiveIdName/
getNames, где корректный список всегда берётся с visible='1'.
$stores = Products1c::find()->with('store')->where(['tip' => 'city_store'])->andWhere(['view' => '1'])->all();
$result = [];
foreach ($stores as $store) {
- if (!empty($store->store->name ?? null)) {
- $result[] = ['id' => $store->id, 'name' => $store->store->name];
+ $card = $store->store ?? null;
+ // BR-512: показываем только видимые (не закрытые/скрытые) салоны — как везде по CityStore
+ // (visible='1'). Иначе в список чат-бота протекают закрытые точки (было 33 вместо 26).
+ if (!empty($card->name) && (int)$card->visible === 1) {
+ $result[] = ['id' => $store->id, 'name' => $card->name];
}
}
return $this->asJson(['response' => $result]);