Опция товара minishop2 с дополнительным полем

Добрый день.

Стоит, на первый взгляд, простая задача, но не знаю с какой стороны подступится.
Требуется сделать опцию «Вышивка» к товару, т.е. что бы кликнув на чекбокс можно было добавить такую опцию к товару и увеличить стоимость товара на установленную сумму (например 100 р.). Но! Надо, что бы вместе с такой опцией можно было бы в текстовое поле добавить сам текст вышивки и что бы он вместе с опцией ушел в заказ. Пересмотрел несколько дополнений (msOptionsPrice2, msFieldsManager, msAddLinked) и не могу понять — могу я с их помощью реализовать задуманное или нет?

Или надо писать что-то свое?

Буду благодарен за любую идею или подсказку. Спасибо.
Nikita
10 апреля 2017, 16:51
modx.pro
3
2 640
0

Комментарии: 7

Наумов Алексей
10 апреля 2017, 20:12
0
1. Делаете поле у товара
2. выводите его на странице как опцию значит
3. пишете небольшой свой js, дабы при установке галочки показывалось поле Текст вышивки, у которого пропишите ручками name и иные атрибуты, что бы оно выглядело как опция товара, тогда эта информация попадет в заказ
4. наценку +100 рублей делайте через любое дополнение, которое это может
    Nikita
    10 апреля 2017, 21:07
    0
    Алексей, спасибо за ответ.

    Пп. 1-3, естественно, уже сделал. У меня вопрос — как связать их с тем же msOptionsPrice2...?
      Володя
      10 апреля 2017, 21:56
      0
      а что представляет из себя текст вышивки? Если типа файла то можно прикрепить его к модификации вместо изображения.
        Nikita
        10 апреля 2017, 22:30
        1
        0
        По идее — обычный текст. Логика такая: человек жмет галку «добавить вышивку» открывается текстовое поле и он туда вписывает, например, свои инициалы: «И.В. Пупкин» или любой другой текст, который он хочет вышить на рубашке/футболке.
          Володя
          11 апреля 2017, 07:26
          5
          +2
          примерно так можно
          s6200.h3.modhost.pro/katalog/11999.html
          joxi.ru/E2pMqLGS9YgaRA
          {foreach $options as $name => $values}
              <div class="form-group">
                  <label class="col-md-2 control-label" for="option_{$name}">{('ms2_product_' ~ $name) | lexicon}:</label>
                  <div class="col-md-10">
                      <select name="options[{$name}]" class="input-sm form-control" id="option_{$name}">
                          {foreach $values as $value}
                              <option value="{$value}">{$value}</option>
                          {/foreach}
                      </select>
                  </div>
              </div>    
                  
                  
              <div class="form-group form-inline embroidery_parent" style="display:none;">    
                  <label class="col-md-2 control-label" for="option_{$name}"></label>
                  <div class="col-md-10">
          			<input type="text" name="options[embroidery_text]" placeholder="Текст вышивки" class="input-sm form-control" value="">
          		</div>
              </div>
              
          {/foreach}
          
          <script>
          $(document).on('change', '.ms2_form', function (e) {   
              
              var embroidery = $(this).find('select[name="options[embroidery]"]');
              var embroidery_text = $(this).find('input[name="options[embroidery_text]"]');
              if (embroidery.val() == 'да') {
                  embroidery_text.closest('.embroidery_parent').show();
              }
              else {
                  embroidery_text.closest('.embroidery_parent').hide();
                  embroidery_text.val('');
              }
          });
          </script>
            Nikita
            11 апреля 2017, 17:01
            0
            Владимир! Спасибо большое за помощь, очень помогли )))
              Володя
              11 апреля 2017, 17:18
              0
              пожалуйста!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    7