OpenCart 3.x вывод количества товара в категории

Тема в разделе "Дизайн, оформление и шаблоны", создана пользователем Dragg0n, 27 апр 2018.

  1. Dragg0n

    Dragg0n Новичок

    Сообщения:
    19
    Симпатии:
    0
    Доброго времени суток. В разделе обзора товара понадобилось вывести количество с склада.

    Ну думаю не сложно - открываю статью одну, вторую, третью...
    Везде:

    1. Открываем файл catalog/controller/product/category.php
    2. Находим: 'product_id' => $result['product_id'],
    3. Добавляем: 'stock' => $result['quantity'],
    4. Открываем catalog/view/theme/default/template/product/category.tpl
    5. В нужное место вставляем <?php echo $product['stock']; ?>
    6. РАДУЕМСЯ

    Собственно радоваться не получается - не работает :(

    Как теперь надо делать?
     

    Вложения:

    • 1.jpg
      1.jpg
      Размер файла:
      52 КБ
      Просмотров:
      149
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    4.190
    Симпатии:
    1.439
    tpl в opencart 3x :D
     
  3. Dragg0n

    Dragg0n Новичок

    Сообщения:
    19
    Симпатии:
    0
    Я тоже посмеялся - но забил на расширение
     
  4. alf89

    alf89 Пользователь

    Сообщения:
    79
    Симпатии:
    9
    Вот так попробуйте {{ product['stock'] }}
     
    Dragg0n нравится это.
  5. Dragg0n

    Dragg0n Новичок

    Сообщения:
    19
    Симпатии:
    0
    Огромное спасибо - работает :)
     
  6. Arturqaaa

    Arturqaaa Новичок

    Сообщения:
    11
    Симпатии:
    0
    Доброго времени суток, при решении задачи возникла проблема, вывелся не остаток на складе, а количество к покупке. Подскажите , где копать? очевидно, что проблема кроется в изменениях , внесенных шаблоном , но куда именно шаблон внес изменения?
     
  7. Ravilr

    Ravilr Специалист

    Сообщения:
    4.190
    Симпатии:
    1.439
    Это как понять?
     
  8. Arturqaaa

    Arturqaaa Новичок

    Сообщения:
    11
    Симпатии:
    0
    На первом изображении у товара "в наличии 1 шт." На втором изображении видно , что "остаток 777"
    forum.png forum2.png
     
  9. karpov

    karpov Продвинутый пользователь

    Сообщения:
    1.534
    Симпатии:
    246
    Не обновили кеш модификатора? С контроллерами не ошиблись и с местом вставки? Попробуйте в контроллере прописать цифру вручную. Если не прокатит, то точно с местом перепутали.
     
  10. Arturqaaa

    Arturqaaa Новичок

    Сообщения:
    11
    Симпатии:
    0
    Кеш модификатора обновил, так как до обновления переменная в принципе не выводилась
    С контроллерами возможно ошибся, но провел такую проверку.
    1) /catalog/controller/product/category.php удалил добавленную мной
    строку 'quantity' => $result['quantity'], которую я вставил после
    $data['products'][] = array(
    'product_id' => $result['product_id'],
    2) Обновил кеш модификатора
    3) Лицезрел отсутствие вывода вообще какого-либо значения в переменной product.quantity

    Сделал вывод, что саму переменную я добавил в правильное место, да и прописав в контроллере цифру вручную , получил на выходе прописанную цифру.

    Подскажите, какой файл берет значение из базы данных?
     
  11. Arturqaaa

    Arturqaaa Новичок

    Сообщения:
    11
    Симпатии:
    0
    Определил что искомый мной файл (который выгружает из базы данных) - это

    catalog/model/catalog/product.php

    в нем я нашел следующую строку

    $sql = "SELECT p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special";

    Мне кажется именно она влияет на результат.
    Это я предполагаю из-за того, что в нем содержится

    pd2.quantity = '1'

    В силу отсутствия знаний в php (только начинаю заниматься веб-разработкой) не могу понять, что это все значит и зачем оно надо.
     
  12. Ravilr

    Ravilr Специалист

    Сообщения:
    4.190
    Симпатии:
    1.439
    Вставьте перед $data['products'][] = array(
    это var_dump($result);

    и увидите что у вас в массиве. Может и по каким то причинам нет у вас quantity
     
  13. Arturqaaa

    Arturqaaa Новичок

    Сообщения:
    11
    Симпатии:
    0
    opanki.png

    Вот что у меня получилось, и я, честно говоря, ошарашен результатом

    opanki2.png
     
  14. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    924
    Симпатии:
    241
    Вы в шаблон категории вот так выводите: {{ product.quantity }} ?
     
  15. Arturqaaa

    Arturqaaa Новичок

    Сообщения:
    11
    Симпатии:
    0
    да
     
  16. Arturqaaa

    Arturqaaa Новичок

    Сообщения:
    11
    Симпатии:
    0
    Подскажите, как мне понять происхождение этой единицы, ну то есть как отследить что именно выводится пользователю?
     
  17. Ravilr

    Ravilr Специалист

    Сообщения:
    4.190
    Симпатии:
    1.439
    Это говорит о том, что все у вас должно быть нормально, если что то другое (модификатор) не удаляет эту строку.
    Я так понял, прямыми инструкциями вам не помочь. Видимо придется искать вам ошибку у себя...
     
  18. Arturqaaa

    Arturqaaa Новичок

    Сообщения:
    11
    Симпатии:
    0
    а как и где посмотреть, что именно делает модификатор?, надеюсь правильно вопрос поставил
     
  19. Ravilr

    Ravilr Специалист

    Сообщения:
    4.190
    Симпатии:
    1.439
    В папке system\storage\modification
    есть файлы, которые формируются после работы модификатора.
     
  20. Arturqaaa

    Arturqaaa Новичок

    Сообщения:
    11
    Симпатии:
    0
    drevo.png

    У меня нету :( стоит русская сборка opencart Version 3.0.2.0 (rs.3)