Если есть опции - заменить кнопку "В корзину"

Тема в разделе "Общие вопросы", создана пользователем Vipsaler, 12 мар 2021.

  1. Vipsaler

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

    Сообщения:
    77
    Симпатии:
    1
    Приветствую! Подскажите решение задачки: если у товара есть опции, то кнопку "В корзину" необходимо заменить на что-либо другое, например на ссылку. Это необходимо сделать на странице категории и в модуле "Рекомендуемые". Спасибо.
     
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.883
    Симпатии:
    1.065
    День добрый. Самостоятельно пробовали решить? Какая версия движка?
     
  3. Vipsaler

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

    Сообщения:
    77
    Симпатии:
    1
    OCstore 2.3.0.2

    Пробовал через <?php if ($options) { ?> .... , но не знаю, что нужно добавить в контроллеры, чтобы работало. Если беру то, что связано с опциями из контроллера product.php - не срабатывает.
     
  4. fanatic

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

    Сообщения:
    1.415
    Симпатии:
    239
    в контрллере, при формировании массива с товарами, проверяем наличие опций
    добавляем к данным товара флаг, типа is_option => 'true or false'
    в шаблоне, с зависимости от флага выводим или в корзину или замену
     
  5. fanatic

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

    Сообщения:
    1.415
    Симпатии:
    239
    в контроллере
    PHP:
                    $options $this->model_catalog_product->getProductOptions($result['product_id']);
                    if(!empty(
    $options)){
                        
    $is_option true;
                    }else{
                        
    $is_option false;
                    }

     
    $data['products'][] = array(
                      
    'is_option' => $is_option,
                      
    'product_id' => $result['product_id'],
                      
    'thumb' => $image,
                      
    'name' => $result['name'],
                      
    'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES'UTF-8')), 0$this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
                      
    'price' => $price,
                      
    'special' => $special,
                      
    'tax' => $tax,
                      
    'minimum' => ($result['minimum'] > 0) ? $result['minimum'] : 1,
                      
    'rating' => $rating,
                      
    'href' => $this->url->link('product/product''path=' $this->request->get['path'] . '&product_id=' $result['product_id'] . $url)
                    );
    в шаблоне

    HTML:
    <?php if($product['is_option']){ ?> 
    //есть опции
    <?php }else{ ?>
    //нет опций
    <?php } ?>
     
  6. fanatic

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

    Сообщения:
    1.415
    Симпатии:
    239
    в контроллере, не тупо скопировать и вставить, а понять что происходит и сделать у себя
     
    Vipsaler нравится это.
  7. Vipsaler

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

    Сообщения:
    77
    Симпатии:
    1
    Получилось! Преогромнейшая благодарность :)