Здравствуйте! Прошу помощи у людей, разбирающихся лучше меня в PHP и структуре опенкарта... Условия: Стоит модуль OpenStock, для того чтобы можно было задавать количество товара на складе для каждой его вариации (наприм. Есть серьги "Розы" в красном цвете, а есть в черном. Красные на складе есть, а черные только под заказ.) Работает так - выбираешь одну из опций товара, модуль смотрит количество на складе и выдает окошко "В наличии" или "Нет в наличии". Задача: Рядом с названием опции нужно выводить количество товара в этой опции (или делать заблокированными те опции, в которых товара нет). Пример того, как все должно выглядеть. По факту количество товара в определенной опции выводится только после выбора опции (на скриншоте - поле с зеленой галочкой). Решение: ?????????????? Пробовал вставлять такой код в /theme/ТЕМА/product/product.tpl Код: //После вывода лейбла опции <?php echo $var_info['stock']; ?> И в контроллере /controller/product.php ближе к шапке. Код: $this->load->model('openstock/openstock'); $this->load->model('catalog/product'); $var_info = $this->model_openstock_openstock->getRelation($this->request->post['var'], $this->request->post['product_id']); взял я этот код из controller/openstock.php . Переменная выводит ту самую цифру в блоке с зеленой галочкой со скриншота. но ничего не выводится :( Чувствую, что так удаленно ничего и не предложите, что надобно будет воочию посмотреть - пожалуйста, дам доступы в личку. Главное чтоб хоть намекнули куда рыть. Заранее большое спасибо.
NinoZombie, есть модуль для вывода остатка для каждой опции. Хотя не знаю как оно будет работать с опенстоком. Может код в ксмльке вам поможет: Но точно, что надо добавлять quantity для опции и в контроллер.
Спасибо за отклик. Решил проблему скачиванием модуля, который посоветовал Bnopen и переносом данных из опенстоковских таблиц в стандартную таблицу опций. Долго мучался с тем, что опенсток задает зависимость опции в одном столбце, так, что значения ячеек примерно такие "423:556". Кому интересно - вот запрос, которым количество товаров, заполненное для опенстока копирую для стандартных опций: Код: UPDATE `oc_product_option_value` t JOIN `oc_product_option_relation` s ON t.`product_id`=s.`product_id` AND t.product_option_value_id = s.var SET t.quantity=s.stock, t.subtract=1 WHERE s.stock!=0 stock не должен равняться нулю из-за того, что для зависимых опций опенстока создается много дублей по полю var. Каким-то образом я к этому пришел короче, а как объяснить толково - не знаю Теперь встал другой вопрос - как автоматизировать выполнение этого скрипта ? Чтобы он, к примеру, раз в день выполнялся сам.
Добавить в задание cron на хостинге. Вот типа такого: 00 00 * * * echo 'UPDATE "'`oc_product_option_value` t JOIN `oc_product_option_relation` s ON t.`product_id`=s.`product_id` AND t.product_option_value_id = s.var SET t.quantity=s.stock, t.subtract=1 WHERE s.stock!=0' | mysql -uusername -ppassword tablename Только нужно смотреть синтаксис с кавычками. Если что, вот здесь похожее обсуждается: