Добрый день! opencart 3.0.3.7 задача на странице товара выводить три вида кнопки покупки. 1. Кнопка Купить показывается только когда товара больше чем 0. 2. Кнопка нет в наличии когда товара 0 или меньше. 3. Кнопка Предзаказ появляется когда товара 0 и в статусе товара стоит Предзаказ. В базе данных oc_product есть столбец stock_status_id. Появляется цифра 8 у товара когда я ставлю статус Предзаказ. Основная проблема в том, что при добавлении на страницу переменной stock_status_id == 8 не видит значение stock_status_id. Не могу понять как сделать так, чтоб шаблон видел эту переменную из базы дынных. В model/catalog/product.php добавлял public function getProduct($product_id) { $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, p.stock_status_id........ В catalog/controller/product/product.php добавлял $data['stock_status_id'] = $product_info['stock_status_id']; Далее добавляю в catalog/view/theme/default/template/product/product.twig <div style="background:#ffecec;padding:10px;margin:10px 0;"> <strong>Отладка:</strong><br/> stock_status_id = {{ stock_status_id }}<br/> quantity = {{ quantity }}<br/> {% if quantity > 0 %} Статус: В наличии {% elseif stock_status_id == 8 %} Статус: Предзаказ {% else %} Статус: Нет в наличии {% endif %} </div> В итоге на странице товара выводится Отладка: stock_status_id = quantity = 0 Статус: Нет в наличии Подскажите пожалуйста, что я делаю не так?
Да это я скопировал из других попыток вывести переменную. Так как вы написали я делал в первую очередь. К сожалению это не работает.
Сделайте в контроллере после $product_info = $this->model_catalog_product->getProduct($product_id); такой вывод для отладки: Код: echo '<pre>'; print_r($product_info); echo '</pre>'; exit; и смотрите есть ли данные stock_status_id
Не забыли ли Вы внести изменения в возращаеммый функцией getProduct массив? Там должно быть 'stock_status_id' => $query->row['stock_status_id']. Может быть, Вам лучше подойдет следующее решение: В представление передается переменная {{ stock }}. Если количество товара 0 или меньше, эта перемепенная равна stock_status. Соответственно в twig может быть следующее: Код: {% if quantity > 0 %} {% set text = "Купить" %} {% else %} {% set text = stock %} {% endif %} "Нет в наличии" - тоже должно быть статусом склада.