[Помогите] Вывод количество товаров на складе, на странице продукта

Тема в разделе "OpenCart", создана пользователем vivivor, 18 янв 2013.

  1. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    Нужно сделать условие, если товара в наличии нету - вывод кнопки предзаказа, иначе вывод кнопки.

    Делаю примерно так:
    <?php if ($quantity <= 0) { ?>
    <input type="button" value="Предзаказ" id="button-cart" class="button" />
    <?php } else { ?>
    <input type="button" value="Купить" id="button-cart" class="button" />
    <?php } ?>

    но $quantity не правильно
     
  2. stifutkin

    stifutkin

    Регистрация:
    22 дек 2012
    Сообщения:
    172
    Симпатии:
    43
    vivivor нравится это.
  3. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
  4. WildeRNS

    WildeRNS

    Регистрация:
    6 ноя 2012
    Сообщения:
    151
    Симпатии:
    112
    можно сделать на базе модуля Пред-заказ (на форуме есть)
     
  5. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.049
    Симпатии:
    777
    И такое вообще работает (в смысле, вывод по условию)? У вас же HTML c php здесь не связан. Должно быть так:
    PHP:
    <?php if ($quantity <= 0) { ?>
    <?php 
    echo '<input type="button" value="Предзаказ" id="button-cart" class="button" />' ?>
    <?php 
    } else { ?>
    <?php 
    echo '<input type="button" value="Купить" id="button-cart" class="button" />' ?>
    <?php 
    ?>
    Так в чём проблема? Идёте на строку 209, смотрите, что это за переменная. Идёте в контроллер и смотрите, где она должна быть объявлена. Вообще, в том районе должна быть product_id, может, вы просто стёрли случайно часть имени?
     
    vivivor нравится это.
  6. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    сменил product на product_id, теперь просит quantity )
     
  7. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.049
    Симпатии:
    777
    А откуда вы берёте $quantity? Его нужно передать в том же массиве, из которого берёться $product_id.
     
    vivivor нравится это.
  8. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    PHP:
    $this->data['products'][] = array(
              
    'product_id' => $result['product_id'],
              
    'thumb'      => $image,
              
    'name'      => $result['name'],
              
    'price'      => $price,
              
    'special'    => $special,
              
    'quantity'    => $result['quantity'],
              
    'stock_status'=> $result['stock_status'],
              
    'rating'    => $rating,
              
    'reviews'    => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
              
    'href'      => $this->url->link('product/product''product_id=' $result['product_id']),
            );
          }  
    --- добавлено: 18 янв 2013 в 21:11 ---
    PHP:
    <?php if (&product_id['quantity'] <= 0) { ?>
     
  9. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
  10. WildeRNS

    WildeRNS

    Регистрация:
    6 ноя 2012
    Сообщения:
    151
    Симпатии:
    112
    ну вот, я же говорил, что на нем такое можно :Smile:
     
    vivivor нравится это.
  11. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.049
    Симпатии:
    777
    Получилась какая-то невероятная каша.
    product_id - это не массив, он на том же уровне, что и quantity, ещё и вместо доллара амперсанд.

    Должно быть так:
    PHP:
    <?php if ($quantity<= 0) { ?>
    То есть, как и было в первом вашем примере. Если опечаток не было, оно должно было работать. Если б с quantity были проблемы в контроллере, то и ошибка была б там.
     
    vivivor нравится это.
  12. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    Ух какой ужасный гемор с модулем фильтр про...
    В итоге добился того что хотел(совместимость с модулем предзаказа)

    в filterpro.tpl
    PHP:
    {{if quantity == 0}}
    <
    div class="cart">Выводится кнопка Купить</div>
    {{else}}
    <
    div class="cart">Выводится кнопка Предзаказ</div>
    {{/if}}
    в filterpro.php
    найти строки
    PHP:
    $result[] = array(
    'product_id' => $product['product_id'],
    и добавить после
    PHP:
    'quantity'    => $product['quantity'],
    найти строки
    PHP:
        $this->data['pds_stock'] = $this->language->get('pds_stock');
        
    $this->data['symbol_right'] = $this->currency->getSymbolRight();
        
    $this->data['symbol_left'] = $this->currency->getSymbolLeft();
    и добавить после
    PHP:
    $this->language->load('product/preorder');
          
    $this->data['button_preorder_preorder'] = $this->language->get('button_preorder_preorder');