Помощь Как реализовать модель в товарах

Тема в разделе "Opencart", создана пользователем and1, 23 май 2014.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. and1

    and1 Постоялец

    Регистр.:
    24 июл 2011
    Сообщения:
    96
    Симпатии:
    11
    Всем привет!
    Такой вопрос: Есть магазин с чехлами для iphone и samsung (пока только 2 производителя). Есть модель чехла, при этом эта модель может подходить к нескольким телефонам, например iphone 4 iphone 5 iphone 5s и так далее.
    Подскажите как реализовать дополнительное поле с выбором модели телефона или может есть модуль для этого?
    Вот как выглядит товар сейчас:
    [​IMG]
     
  2. sidoruk2000

    sidoruk2000 Постоялец

    Регистр.:
    19 окт 2012
    Сообщения:
    112
    Симпатии:
    27
    извините если не правильно понял вопрос, но выбор модели можно реализовать через опции, удобство поиска можно организовать через вывод данного товара в соответствующей категории (чехлы для 4 айфон. чехлы для 5 айфон и т.д.) либо разместить фильтр который будет отбирать.
     
  3. and1

    and1 Постоялец

    Регистр.:
    24 июл 2011
    Сообщения:
    96
    Симпатии:
    11
    Есть чехол, он для iphone, при этом он подходит для моделей 4 5 и т.д. Просто чтобы не звонить каждый раз и не узнавать под какую модель делать чехол, хотелось бы чтобы сразу можно было выбрать какая модель телефона. Опции глянуть, но что-то не совсем понял, что там надо сделать :( Можно поподробнее?
     
  4. sidoruk2000

    sidoruk2000 Постоялец

    Регистр.:
    19 окт 2012
    Сообщения:
    112
    Симпатии:
    27
    [QUOTE="and1, post: 2280330, member: 262499" Можно поподробнее?[/QUOTE]

    В админке заходите в верхнем меню КАТАЛОГ---ОПЦИИ, добавляете опцию МОДЕЛЬ ТЕЛЕФОНА , добавляете все возможные модели телефонов. Далее при создании (редактировании) товара, переходите во вкладку ОПЦИИ, слева в поле ввода вводите название опции (как пример модель телефона) и выбираете в появившемся списке нужную опцию. Справа появится поле ввода опций. Необходимо ставите да. Дальше в поле ввыода опций выбираете опцию, колличество ставте 1000 и так добавляете все модели телефонов, к которым подходит данный чехол. Сохраняете и в карточке товара появится выпадающий список с выбором модели телефона. С вас лайк :)
     
    and1 нравится это.
  5. and1

    and1 Постоялец

    Регистр.:
    24 июл 2011
    Сообщения:
    96
    Симпатии:
    11
    Сделал все получилось все работает круто и красиво. Вопрос номер 2 как сделать, чтобы в модуле Simple можно было менять модель эту из опций? Если такое вообще возможно....
     
    Последнее редактирование: 26 май 2014
  6. sidoruk2000

    sidoruk2000 Постоялец

    Регистр.:
    19 окт 2012
    Сообщения:
    112
    Симпатии:
    27
    теоретически возможно, нужно колупать код. Ранее такого не делал, извините не помогу.
     
  7. and1

    and1 Постоялец

    Регистр.:
    24 июл 2011
    Сообщения:
    96
    Симпатии:
    11
    Да и практически не сложно, нашел код куда выводит данные:
    product.php
    Код:
    $this->data['discounts'] = array();
    
           foreach ($discounts as $discount) {
             $this->data['discounts'][] = array(
               'quantity' => $discount['quantity'],
               'price'  => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')))
             );
           }
    
           $this->data['options'] = array();
    
           foreach ($this->model_catalog_product->getProductOptions($this->request->get['product_id']) as $option) {
             if ($option['type'] == 'select' || $option['type'] == 'radio' || $option['type'] == 'checkbox' || $option['type'] == 'image') {
               $option_value_data = array();
    
               foreach ($option['option_value'] as $option_value) {
                 if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) {
                   if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) {
                     $price = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
                   } else {
                     $price = false;
                   }
    
                   $option_value_data[] = array(
                     'product_option_value_id' => $option_value['product_option_value_id'],
                     'option_value_id'  => $option_value['option_value_id'],
                     'name'  => $option_value['name'],
                     'image'  => $this->model_tool_image->resize($option_value['image'], 50, 50),
                     'price'  => $price,
                     'price_prefix'  => $option_value['price_prefix']
                   );
                 }
               }
    
               $this->data['options'][] = array(
                 'product_option_id' => $option['product_option_id'],
                 'option_id'  => $option['option_id'],
                 'name'  => $option['name'],
                 'type'  => $option['type'],
                 'option_value'  => $option_value_data,
                 'required'  => $option['required']
               );          
             } elseif ($option['type'] == 'text' || $option['type'] == 'textarea' || $option['type'] == 'file' || $option['type'] == 'date' || $option['type'] == 'datetime' || $option['type'] == 'time') {
               $this->data['options'][] = array(
                 'product_option_id' => $option['product_option_id'],
                 'option_id'  => $option['option_id'],
                 'name'  => $option['name'],
                 'type'  => $option['type'],
                 'option_value'  => $option['option_value'],
                 'required'  => $option['required']
               );            
             }
           }
    
    simplecheckout_cart.php
    Код:
    $option_data = array();
    
      foreach ($product['option'] as $option) {
      if ($option['type'] != 'file') {
      $value = $option['option_value'];  
      } else {
      $encryption = new Encryption($this->config->get('config_encryption'));
      $option_value = $encryption->decrypt($option['option_value']);
      $filename = substr($option_value, 0, strrpos($option_value, '.'));
      $value = $filename;
      }
      
      $option_data[] = array(
      'name'  => $option['name'],
      'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value)
      );
      }
    
    Не влезло в одно сообщение :(
     
  8. and1

    and1 Постоялец

    Регистр.:
    24 июл 2011
    Сообщения:
    96
    Симпатии:
    11
    product.tpl
    Код:
    <?php if ($options) { ?>
             <div class="options">
               <h2><?php echo $text_option; ?></h2>
               <?php foreach ($options as $option) { ?>
               <?php if ($option['type'] == 'select') { ?>
               <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
                 <?php if ($option['required']) { ?>
                 <span class="required">*</span>
                 <?php } ?>
                 <strong><?php echo $option['name']; ?>:</strong>
                 <select name="option[<?php echo $option['product_option_id']; ?>]">
                   <option value=""><?php echo $text_select; ?></option>
                   <?php foreach ($option['option_value'] as $option_value) { ?>
                   <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                   <?php if ($option_value['price']) { ?>
                   (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                   <?php } ?>
                   </option>
                   <?php } ?>
                 </select>
               </div>
               <?php } ?>
               <?php if ($option['type'] == 'radio') { ?>
               <div id="option-<?php echo $option['product_option_id']; ?>" class="option multi">
                 <?php if ($option['required']) { ?>
                 <span class="required">*</span>
                 <?php } ?>
                 <strong><?php echo $option['name']; ?>:</strong>
                 <div>
                   <?php foreach ($option['option_value'] as $option_value) { ?>
                   <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" />
                   <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                     <?php if ($option_value['price']) { ?>
                     (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                     <?php } ?>
                   </label>
                   <br />
                   <?php } ?>
                 </div>
               </div>
               <?php } ?>
               <?php if ($option['type'] == 'checkbox') { ?>
               <div id="option-<?php echo $option['product_option_id']; ?>" class="option multi">
                 <?php if ($option['required']) { ?>
                 <span class="required">*</span>
                 <?php } ?>
                 <strong><?php echo $option['name']; ?>:</strong>
                 <div>
                   <?php foreach ($option['option_value'] as $option_value) { ?>
                   <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" />
                   <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                     <?php if ($option_value['price']) { ?>
                     (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                     <?php } ?>
                   </label>
                   <br />
                   <?php } ?>
                 </div>
               </div>
               <?php } ?>
               <?php if ($option['type'] == 'image') { ?>
               <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
                 <?php if ($option['required']) { ?>
                 <span class="required">*</span>
                 <?php } ?>
                 <strong><?php echo $option['name']; ?>:</strong>
                 <table class="option-image">
                   <?php foreach ($option['option_value'] as $option_value) { ?>
                   <tr>
                     <td style="width: 1px;"><input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /></td>
                     <td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" /></label></td>
                     <td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                         <?php if ($option_value['price']) { ?>
                         (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                         <?php } ?>
                       </label></td>
                   </tr>
                   <?php } ?>
                 </table>
               </div>
               <?php } ?>
               <?php if ($option['type'] == 'text') { ?>
               <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
                 <?php if ($option['required']) { ?>
                 <span class="required">*</span>
                 <?php } ?>
                 <strong><?php echo $option['name']; ?>:</strong>
                 <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" />
               </div>
               <?php } ?>
               <?php if ($option['type'] == 'textarea') { ?>
               <div id="option-<?php echo $option['product_option_id']; ?>" class="option multi">
                 <?php if ($option['required']) { ?>
                 <span class="required">*</span>
                 <?php } ?>
                 <strong><?php echo $option['name']; ?>:</strong>
                 <textarea name="option[<?php echo $option['product_option_id']; ?>]" cols="40" rows="5"><?php echo $option['option_value']; ?></textarea>
               </div>
               <?php } ?>
               <?php if ($option['type'] == 'file') { ?>
               <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
                 <?php if ($option['required']) { ?>
                 <span class="required">*</span>
                 <?php } ?>
                 <strong><?php echo $option['name']; ?>:</strong>
                 <input type="button" value="<?php echo $button_upload; ?>" id="button-option-<?php echo $option['product_option_id']; ?>" class="button">
                 <input type="hidden" name="option[<?php echo $option['product_option_id']; ?>]" value="" />
               </div>
               <?php } ?>
               <?php if ($option['type'] == 'date') { ?>
               <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
                 <?php if ($option['required']) { ?>
                 <span class="required">*</span>
                 <?php } ?>
                 <strong><?php echo $option['name']; ?>:</strong>
                 <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="date" />
               </div>
               <?php } ?>
               <?php if ($option['type'] == 'datetime') { ?>
               <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
                 <?php if ($option['required']) { ?>
                 <span class="required">*</span>
                 <?php } ?>
                 <strong><?php echo $option['name']; ?>:</strong>
                 <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="datetime" />
               </div>
               <?php } ?>
               <?php if ($option['type'] == 'time') { ?>
               <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
                 <?php if ($option['required']) { ?>
                 <span class="required">*</span>
                 <?php } ?>
                 <strong><?php echo $option['name']; ?>:</strong>
                 <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="time" />
               </div>
               <?php } ?>
               <?php } ?>
             </div>
             <?php } ?>
    
    simplecheckout_cart.tpl
    Код:
    <div class="options">
      <?php foreach ($product['option'] as $option) { ?>
      &nbsp;<small> - <?php echo $option['name']; ?>: <?php echo $option['value']; ?></small><br />
      <?php } ?>
    
    Но знаний пока не хватает, чтобы дописать. Может кто поможет. Файлы тут. Заранее спасибо!