get31 Опубликовано 18 января, 2023 Жалоба Поделиться Опубликовано 18 января, 2023 (изменено) Добрый день. Подскажите пожалуйста, как вывести варианты с нулевым количеством в карточке товара? Сейчас варианты скрываются если в view/Product.php есть: foreach($this->variants->get_variants(array('product_id'=>$product->id, 'in_stock'=>true)) as $v) Если заменить на: foreach($this->variants->get_variants(array('product_id'=>$product->id)) as $v) То все работает как надо, но встречается другая проблема, а именно: если все варианты по нулям, и потом заменить какой-то из вариантов на бесконечность, то карточка товара показывает, что товара нет в наличии. Изменено 18 января, 2023 пользователем get31 Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 18 января, 2023 Жалоба Поделиться Опубликовано 18 января, 2023 (изменено) — Изменено 18 января, 2023 пользователем alexivchenko Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 18 января, 2023 Жалоба Поделиться Опубликовано 18 января, 2023 2 часа назад, get31 сказал: Добрый день. Подскажите пожалуйста, как вывести варианты с нулевым количеством в карточке товара? Сейчас варианты скрываются если в view/Product.php есть: foreach($this->variants->get_variants(array('product_id'=>$product->id, 'in_stock'=>true)) as $v) Если заменить на: foreach($this->variants->get_variants(array('product_id'=>$product->id)) as $v) То все работает как надо, но встречается другая проблема, а именно: если все варианты по нулям, и потом заменить какой-то из вариантов на бесконечность, то карточка товара показывает, что товара нет в наличии. разлогиньтесь ) Цитата Ссылка на сообщение Поделиться на другие сайты
get31 Опубликовано 18 января, 2023 Автор Жалоба Поделиться Опубликовано 18 января, 2023 35 минут назад, shooroop сказал: разлогиньтесь ) юмор так себе... но а если серьезно, то когда выводит что товара нет в наличии, если дважды нажать в админке сохранить товар, то выводит нормально, но зачем нажимать дважды?)) Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 18 января, 2023 Жалоба Поделиться Опубликовано 18 января, 2023 2 часа назад, get31 сказал: юмор так себе... но а если серьезно, то когда выводит что товара нет в наличии, если дважды нажать в админке сохранить товар, то выводит нормально, но зачем нажимать дважды?)) на чистой симпле такого не наблюдаю Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 19 января, 2023 Жалоба Поделиться Опубликовано 19 января, 2023 12 часов назад, get31 сказал: встречается другая проблема, а именно: если все варианты по нулям, и потом заменить какой-то из вариантов на бесконечность, то карточка товара показывает, что товара нет в наличии. В стандартном шаблоне отдельного товара нигде не используется количество. Поэтому вопрос индивидуальный. Если хотите получить содержательный ответ, но надо выкладывать все свои изменения. Скорее всего, количество у Вас берет из ПЕРВОГО попавшегося варианта, поэтому и результат такой. Цитата Ссылка на сообщение Поделиться на другие сайты
get31 Опубликовано 19 января, 2023 Автор Жалоба Поделиться Опубликовано 19 января, 2023 1 час назад, phukortsin сказал: В стандартном шаблоне отдельного товара нигде не используется количество. Поэтому вопрос индивидуальный. Если хотите получить содержательный ответ, но надо выкладывать все свои изменения. Скорее всего, количество у Вас берет из ПЕРВОГО попавшегося варианта, поэтому и результат такой. Проверил на стандартной, да действительно. Изменений много, что уже запутался))) Но в стандартной вообще не выводятся варианты c 0 даже если убрать 'in_stock'=>true, а значит у меня тоже не отображается. в ProductView.php у меня: $product_url = $this->request->get('product_url', 'string'); if(empty($product_url)) return false; // Выбираем товар из базы $product = $this->products->get_product((string)$product_url); if(empty($product) || (!$product->visible && empty($_SESSION['admin']))) return false; $product->images = $this->products->get_images(array('product_id'=>$product->id)); $product->image = reset($product->images); $product->colors = array(); $variants = array(); foreach($this->variants->get_variants(array('product_id'=>$product->id, 'in_stock'=>true)) as $v) { $variants[$v->id] = $v; if($v->name){ if(!in_array($v->name, $product->colors)) $product->colors[] = $v->name; } } $product->variants = $variants; // Вариант по умолчанию if(($v_id = $this->request->get('variant', 'integer'))>0 && isset($variants[$v_id])) $product->variant = $variants[$v_id]; else $product->variant = reset($variants); $product->features = $this->features->get_product_options(array('product_id'=>$product->id)); $product->features = $this->featuresgroupe->get_product_gfoptions(array('product_id'=>$product->id)); $temp_options = array(); foreach($product->features as $option) { $temp_options[$option->feature_id]->feature_id = $option->feature_id; $temp_options[$option->feature_id]->name = $option->name; $temp_options[$option->feature_id]->values[] = $option->value; } foreach($temp_options as $id => $option) $temp_options[$id]->value = implode(', ', $temp_options[$id]->values); $product->features = $temp_options; Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 19 января, 2023 Жалоба Поделиться Опубликовано 19 января, 2023 3 часа назад, get31 сказал: Но в стандартной вообще не выводятся варианты c 0 даже если убрать 'in_stock'=>true, а значит у меня тоже не отображается. Совершенно неверное утверждение. Если Вы делали изменения, тем более много изменений, в которых уже сами с трудом ориентируетесь, то отображение в стандартной Simpla, вообще говоря, с отображением у Вас никак не связано... Цитата Ссылка на сообщение Поделиться на другие сайты
get31 Опубликовано 19 января, 2023 Автор Жалоба Поделиться Опубликовано 19 января, 2023 1 час назад, phukortsin сказал: Совершенно неверное утверждение. Если Вы делали изменения, тем более много изменений, в которых уже сами с трудом ориентируетесь, то отображение в стандартной Simpla, вообще говоря, с отображением у Вас никак не связано... Проверил на стандартной симпле, вроде разобрался. Сейчас пробую на своем, может уже путаюсь потому как долго сижу))) Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.