Jump to content
mpn2005

[Поддержка] Обновление цены при выборе опции, без AJAX (OC1.5, OC2)

Recommended Posts

Супер мод! Странно, как раньше мимо него прошел. Поставил 2.0.21 на opencart 1.5.6 и дефолтную тему. Добавил несколько опций обязательных, и несколько необязательных. Объясню на примере кабельного ТВ. Суть в том, что, если, к примеру, выбрать в кач-ве опции - умножение (например, обязательная опция - подписка на услугу, от  1 до 12 мес), а в кач-ве необязательной опции - доп услугу (например, каналы в Ultra HD, с прибавлением к прайсу определенной суммы), то умножение не учитывает доп. опции более 1 раза. Другими словами, если базовая цена услуги 100р/мес, дополнительная услуга Ultra HD - +50р/мес, то при выборе подписки на 2 месяцы, итоговая сумма получается (100*2)+50, а должно быть (100+50)*2. Т.е. доп. опции не умножаются. При этом, если опцию срока подписки сделать дополнительной (not requred), то начинает считать правильно. Можно было бы так оставить, но как быть, если таких опций (умножения) две, три и более? Например, точек оказания услуги - две, т.е. снова нужно умножить прайс на два, и он снова не учтет дополнительные +50р каждый месяц, а учтет только за 1 раз.

Интуиция подсказывает, что решение простое и оно на поверхности, следует в перерасчете использовать все опции, а не только requred, но в каком модуле, mpn2005 или sergiosinicin?

Share this post


Link to post
Share on other sites

Не подскажите, у меня по умолчанию товары выставлены в долларах, но цена в карточке товара отображается в рублях. окшоп 1.5.6.4

Если установить ваш модуль, то цена показывается в долларах.

Надо контроллере принудительно поставить нужную валюту.

Тогда будет считать в указанной валюте.

Share this post


Link to post
Share on other sites

UP!

Необходима корректировка под тему.

Без доступов подробнее сказать не могу.

Скиньте в личку доступ на фтп и в админку, помогу завести.

Share this post


Link to post
Share on other sites

Супер мод! Странно, как раньше мимо него прошел. Поставил 2.0.21 на opencart 1.5.6 и дефолтную тему. Добавил несколько опций обязательных, и несколько необязательных. Объясню на примере кабельного ТВ. Суть в том, что, если, к примеру, выбрать в кач-ве опции - умножение (например, обязательная опция - подписка на услугу, от  1 до 12 мес), а в кач-ве необязательной опции - доп услугу (например, каналы в Ultra HD, с прибавлением к прайсу определенной суммы), то умножение не учитывает доп. опции более 1 раза. Другими словами, если базовая цена услуги 100р/мес, дополнительная услуга Ultra HD - +50р/мес, то при выборе подписки на 2 месяцы, итоговая сумма получается (100*2)+50, а должно быть (100+50)*2. Т.е. доп. опции не умножаются. При этом, если опцию срока подписки сделать дополнительной (not requred), то начинает считать правильно. Можно было бы так оставить, но как быть, если таких опций (умножения) две, три и более? Например, точек оказания услуги - две, т.е. снова нужно умножить прайс на два, и он снова не учтет дополнительные +50р каждый месяц, а учтет только за 1 раз.

Интуиция подсказывает, что решение простое и оно на поверхности, следует в перерасчете использовать все опции, а не только requred, но в каком модуле, mpn2005 или sergiosinicin?

По идее расчёт должен проводиться по очерёдности опций.

Расставьте опции в нужном порядке, должно помочь. Если будут вопросы, скиньте в личку ссылку на страницу товара.

  • +1 1

Share this post


Link to post
Share on other sites

По идее расчёт должен проводиться по очерёдности опций.

Расставьте опции в нужном порядке, должно помочь. Если будут вопросы, скиньте в личку ссылку на страницу товара.

Так и есть. По дефолту product.tpl выводит все опции в одном блоке. А я опции разделил на два блока requred и not-requred и стилями оформил их как две колонки. Соответственно, мод работает правильно, это мои кастомизации внесли путаницу.

Сделано топорно:

  <div id="required-options"> 
        <h4><?php echo $text_required_param; ?></h4>      
        <?php foreach ($options as $option) { ?>
        <?php if ($option['required']) { ?>
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <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['product_option_id'] == '20' || $option['product_option_id'] == '23' || $option['product_option_id'] == '24' || $option['product_option_id'] == '25'|| $option['product_option_id'] == '32' || $option['product_option_id'] == '33') { ?> 
<?php if ($option_value['price']) { ?> 
( <?php echo 'x'; ?> <?php echo round($option_value['price'],2); ?> )
<?php } ?>  
<?php } else if ($option_value['price']) { ?> 
( <?php echo $option_value['price_prefix']; ?> <?php echo $option_value['price']; ?> )
<?php } ?>
            </option>
            <?php } ?>
          </select>
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'radio') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <?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>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'checkbox') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <?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>
        <br />
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <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>
        <br />
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" />
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'textarea') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <textarea name="option[<?php echo $option['product_option_id']; ?>]" cols="40" rows="5"><?php echo $option['option_value']; ?></textarea>
        </div>
        <br />
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <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>
        <br />
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="date" />
        </div>
        <br />
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="datetime" />
        </div>
        <br />
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="time" />
        </div>
        <br />
        <?php } ?>       
        <?php } ?> 
        <?php } ?>
        </div>
                
<div id="no-required-options"> 
        <h4><?php echo $text_no_required_param; ?></h4>      
        <?php foreach ($options as $option) { ?>
        <?php if (!$option['required']) { ?>
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <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>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'radio') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <?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>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'checkbox') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <?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>
        <br />
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <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>
        <br />
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" />
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'textarea') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <textarea name="option[<?php echo $option['product_option_id']; ?>]" cols="40" rows="5"><?php echo $option['option_value']; ?></textarea>
        </div>
        <br />
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <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>
        <br />
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="date" />
        </div>
        <br />
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="datetime" />
        </div>
        <br />
        <?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 } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="time" />
        </div>
        <br />
        <?php } ?>       
        <?php } ?> 

                <?php } ?></div>
      </div>
      <?php } ?>

Share this post


Link to post
Share on other sites

 

Так и есть. По дефолту product.tpl выводит все опции в одном блоке. А я опции разделил на два блока requred и not-requred и стилями оформил их как две колонки. Соответственно, мод работает правильно, это мои кастомизации внесли путаницу.

Сделано топорно:

 

Обработка опций идет по их очерёдности на странице.

Данное деление нарушило порядок следования опций, что приводит к искажению в расчётах.

  • +1 1

Share this post


Link to post
Share on other sites

Ок. Значит, поменял блоки requred-options и no-requred-options местами, т.к. опция срок подписки - последняя в необходимых, и следовательно - она самая последняя в списке всех опций, стилями прибил столбцы по краям области контента, и все работает как надо. Еще раз выражаю автору благодарность и за модуль, и за поддержку!

Edited by devel

Share this post


Link to post
Share on other sites

Обработка опций идет по их очерёдности на странице.

Данное деление нарушило порядок следования опций, что приводит к искажению в расчётах.

Стоит модификатор autocalc_price_option_OC2_v3.0.7.ocmod.xml и настроено на цену xx руб. xx коп. - в категории отображается с отдельными копейками, а вот в карточке товара по старому отображается.

 

Как исправить?

Share this post


Link to post
Share on other sites

 

Ketty83 сказал(а) 04 Июл 2016 - 12:39 AM:snapback.png

mpn2005, в autocalc_price_option_OC2_v3.0.7.ocmod.xml есть автовыбор первой опции?

Пока нет. Как появится минутка, добавлю такую настройку.

Минутка ещё не появилась?  :-)

Share this post


Link to post
Share on other sites

Добавлять ничего не надо. Но надо чтобы всё применилось.

Т.к. могут быть отличия от карточки товара в быстром просмотре.

 

Сейчас пока совсем по времени загружен.

К выходным должно быть уже посвободнее. Если не получится до этого времени реализовать, пишите. Помогу адаптировать.

Здравствуйте! Так ничего и не получилось. Скажите пожалуйста, нет ли какого более менее универсального способа? Если нет, могли бы помочь? Пожалуйста.

Share this post


Link to post
Share on other sites

Минутка ещё не появилась?  :-)

Можешь сам в ручную допилить https://opencartforum.com/topic/59821-%D0%B2%D1%8B%D0%B1%D0%BE%D1%80-%D0%BE%D0%BF%D1%86%D0%B8%D0%B8-%D0%BF%D0%BE-%D1%83%D0%BC%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%B8%D1%8E-ocmod-2x/?do=findComment&comment=581201

Edited by ValeryVydrin

Share this post


Link to post
Share on other sites

Здравствуйте! Так ничего и не получилось. Скажите пожалуйста, нет ли какого более менее универсального способа? Если нет, могли бы помочь? Пожалуйста.

Добрый день.

 

Скинте доступ на фтп в личку.

Для ОС2 нужен ещё доступ в админку.

И ссылки на страницы для тестирования.

Share this post


Link to post
Share on other sites

У нас на сайте стоит 2.0.19, а в примере что выше указал - там не знаю. Это дэмо ваше, которое здесь в первом сообщении темы этой - http://mpn-oc.org/autocalc_price_option_special.html

 

Вами в тег <span> задумано прописывание базовой цены: 

<span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span> - это пример строки из xml-файла.

Как этот атрибут "price=" вытащить из <span>, может получится как-то просто тут же рядом в div? Тогда видать работать не будет... 

Почему возникла необходимость в устранении этого места, согласно возмущению валидатора-теста кода? Задачу сеошники поставили: срочно поубирать все эрорр из кода. Оно понятно что куда не зайди на сайт промерять, то у всех ошибки. Но вот требуется иногда сведение ошибок кода к минимуму, если есть проблемы с продвижением магазина в конкурентной нише.

Обновление:

  • v2.0.22 (27.09.2016) - Прохождение валидации html.

Share this post


Link to post
Share on other sites

Здравствуйте! Так ничего и не получилось. Скажите пожалуйста, нет ли какого более менее универсального способа? Если нет, могли бы помочь? Пожалуйста.

Обновление:

  • v3.0.8 (27.09.2016) - Добавлена настройка - "Выбор первой опции (autocalc)". При включении выбирает первую опцию (radio, select). В настройке магазина на закладке Локализация.
  • +1 1

Share this post


Link to post
Share on other sites

Здравствуйте!

Я похоже обнаружил несовместимость вашего модуля с XDS Coloring theme, т.к при установке вашего модуля в карточке товара перестает работать кнопка "В корзину" для товаров с опциями и при просмотре кода кричит "Uncaught SyntaxError: Unexpected token var" и ссылается на var price. Вот фрагмент кода который он мне выдает через панель разработчика в Chrome:

$('#button-review').on('click', function() {
	$.ajax({
		url: 'index.php?route=product/product/write&product_id=13',
		type: 'post',
		dataType: 'json',
		data: 'name=' + encodeURIComponent($('input[name=\'name\']').val()) + '&text=' + encodeURIComponent($('textarea[name=\'text\']').val()) + '&rating=' + encodeURIComponent($('input[name=\'rating\']:checked').val() ? $('input[name=\'rating\']:checked').val() : '') + '&captcha=' + encodeURIComponent($('input[name=\'captcha\']').val()),
		beforeSend: function() {
			$('#button-review').button('loading');
		},
		complete: function() {
			$('#button-review').button('reset');
			$('#captcha').attr('src', 'index.php?route=tool/captcha#'+new Date().getTime());
			$('input[name=\'captcha\']').val('');
		},
		success: function(json) {
			$('.alert-success, .alert-danger').remove();
			
			if (json['error']) {
				$('.riview-helper').before('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + '<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button></div>');
			}
			
			if (json['success']) {
				$('.riview-helper').before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>').remove();
				
				$('input[name=\'name\']').val('');
				$('textarea[name=\'text\']').val('');
				$('input[name=\'rating\']:checked').prop('checked', false);
				$('input[name=\'captcha\']').val('');
			}
		}
	});
});

$(document).ready(function() {
	$('.thumbnails .images-additional').magnificPopup({
		type:'image',
		delegate: 'a',
		gallery: {
			enabled:true
		}
	});
});

		var price = []; 
var quantity = [];
price[11] = '1 100 р.';
price[12] = '1 100 р.';
price[13] = '1 100 р.';

$('#input-option4').change(function () {
	var productOptionId = $('#input-option4 :selected').val();
	$('#price').html(price[productOptionId]);
	$('#tax').html();
});

		
$(document).ready(function() {	
	$('.thumbnails .main-image').magnificPopup({
		type:'image'
	});
});

$('.images-additional img').click(function(){
	var oldsrc = $(this).attr('src'),
			newsrc = oldsrc.replace('74x74','228x228'),

		var price = []; *Uncaught SyntaxError: Unexpected token var
var quantity = [];
price[11] = '1 100 р.';
price[12] = '1 100 р.';
price[13] = '1 100 р.';

$('#input-option4').change(function () {
	var productOptionId = $('#input-option4 :selected').val();
	$('#price').html(price[productOptionId]);
	$('#tax').html();
});

		
			newhref = $(this).parent().attr('href'),
			number = $(this).attr('data-number');
	
	$('.main-image img').attr('src', newsrc);
	$('.main-image').attr('href', newhref);
	$('.main-image').attr('data-number', number);
	return false;
});


$('.thumbnails .main-image img').click(function(){
	if ($('.thumbnails .images-additional').length > 0) {
		var startnumber = $(this).parent().attr('data-number');
		$('.thumbnails .images-additional').magnificPopup('open', startnumber);
		return false
	} else {
		$(this).magnificPopup('open');
		return false
	}
});

При удалении и замене на стандартный файла product.tpl в system/storage/modification/catalog/view/theme/default/template/product на файл из стандартной поставки ошибка уходит, но при обновлении кэша возвращается. Подскажите пожалуйста как зафиксить данную проблему чтобы либо исправно работал ваш модуль, либо подскажите как полностью удалить последствия установки вашего модуля, т.к при удалении по файлу установки видимо удаляется не всё. 

 

Версия ocStore 2.1.0.2.1

Сайт test.ортохэлс.рф

Карточка товара с ошибкой

Share this post


Link to post
Share on other sites

Добрый день!

У меня стоит ocStore 2.1.0.1 (default)

Проблема состоит в том, что после установки Вашего модуля (autocalc_price_option_OC2_v3.0.7.ocmod) цена на странице товара просто пересчитывается в 0 и нет реакции на опции с наценкой. Думаю что проблема в конфликте модулей, так как устанавливал на пустой ocStore 2.1.0.1 (default) без остальных модулей - все работает. Можете подсказать в чем может быть проблема?

Сайт: http://homeness.evkos.com.ua

 

Заранее спасибо!

Share this post


Link to post
Share on other sites

Все, вопрос снят.

Оказывается нельзя комментировать на странице поле для указания количества единиц товара.

 

Большое спасибо за модуль!!!

Share this post


Link to post
Share on other sites

Спасибо огромное за последнее обновление! Давно ждал функцию выбор первой опции!! раньше в product.tpl решал этот вопрос так:

Находил это: 

<input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="<?php echo $option['product_option_id']; ?>_<?php echo $option_value['product_option_value_id']; ?>" />

и перед  /> дописывал checked при таком решении выбиралось только последняя опция, что для меня не есть хорошо. Спасибо большое!!

Еще вопрос в шаблоне XDS Coloring есть возможность в быстром просмотре сделать автоизменение цены? 

Share this post


Link to post
Share on other sites

Добрый день!

У меня стоит ocStore 2.1.0.1 (default)

Проблема состоит в том, что после установки Вашего модуля (autocalc_price_option_OC2_v3.0.7.ocmod) цена на странице товара просто пересчитывается в 0 и нет реакции на опции с наценкой. Думаю что проблема в конфликте модулей, так как устанавливал на пустой ocStore 2.1.0.1 (default) без остальных модулей - все работает. Можете подсказать в чем может быть проблема?

Сайт: http://homeness.evkos.com.ua

 

Заранее спасибо!

Добрый день.

 

Угадать не возможно.

Надо смотреть код и разбираться.

Скиньте в личку доступ на фтп и в админку. И ссылку на товар для тестирования.

Посмотрю в чём там дело.

Share this post


Link to post
Share on other sites

Здравствуйте!

Я похоже обнаружил несовместимость вашего модуля с XDS Coloring theme, т.к при установке вашего модуля в карточке товара перестает работать кнопка "В корзину" для товаров с опциями и при просмотре кода кричит "Uncaught SyntaxError: Unexpected token var" и ссылается на var price. Вот фрагмент кода который он мне выдает через панель разработчика в Chrome:

При удалении и замене на стандартный файла product.tpl в system/storage/modification/catalog/view/theme/default/template/product на файл из стандартной поставки ошибка уходит, но при обновлении кэша возвращается. Подскажите пожалуйста как зафиксить данную проблему чтобы либо исправно работал ваш модуль, либо подскажите как полностью удалить последствия установки вашего модуля, т.к при удалении по файлу установки видимо удаляется не всё. 

 

Версия ocStore 2.1.0.2.1

Сайт test.ортохэлс.рф

Карточка товара с ошибкой

 

Без доступов сложно что-то сказать.

Нужен доступ на фтп и в админку. И ссылка на товар для тестирования.

Share this post


Link to post
Share on other sites

Спасибо огромное за последнее обновление! Давно ждал функцию выбор первой опции!! раньше в product.tpl решал этот вопрос так:

Находил это: 

<input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="<?php echo $option['product_option_id']; ?>_<?php echo $option_value['product_option_value_id']; ?>" />

и перед  /> дописывал checked при таком решении выбиралось только последняя опция, что для меня не есть хорошо. Спасибо большое!!

Еще вопрос в шаблоне XDS Coloring есть возможность в быстром просмотре сделать автоизменение цены? 

Всё то же самоё что и у других.

По фотографиям и скриншотам не гадаю.

Доступ на фтп и в админку. И ссылку на товар ля тестирования.

Share this post


Link to post
Share on other sites

Всё то же самоё что и у других.

По фотографиям и скриншотам не гадаю.

Доступ на фтп и в админку. И ссылку на товар ля тестирования.

Спасибо mpn2005 за помощь! Скинул доступ в личку, починил все даже глазом не успел моргнуть! Великий человек - великий его модуль!

Так что даже не бойтесь обращаться, этому разработчику можно доверять!

Share this post


Link to post
Share on other sites

Добрый день! Ещё раз спасибо вам за такое замечательное дополнение.

Можно ли сделать автоматический выбор не первой, а второй, третьей.... опции?

Share this post


Link to post
Share on other sites

Добрый день! Ещё раз спасибо вам за такое замечательное дополнение.

Можно ли сделать автоматический выбор не первой, а второй, третьей.... опции?

Добрый день.

Не совсем понятна логика такого выбора. Поясните подробнее что именно надо.

Желательно со ссылкой на страницу товара в личку.

Share this post


Link to post
Share on other sites

А я хочу выразить АВТОРУ огромную благодарность за ваш труд, все ровно встало на опен 2 и на недефолтную тему, без танцев работает как часы и очень порадовалась тому, что еще можно настраивать. Спасибо вам, вы прекрасный человек, творите очень нужные вещи ? У меня ocStore 2.1.0.1

Edited by Anasta90

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By mpn2005
      600.00 руб
      Скачать/Купить дополнение


      [OC3] Опции с вводом количества, артикулом и изображением
      !!! версия для OC3 !!!
      Добавляет новые поля к значениям опций в товаре: Артикул, Изображение (Изображения опций можно задавать непосредственно в товаре)
       
      Версия для ОС2
       
      Демо OpenCart 3.0.2.0:
      Ввод количества (с разделением на товары в корзине) Ввод размера (цена за площадь) Демо для остальных типов опций на подходе...  
      Возможности:
      Добавляет новые поля к значениям опций в товаре: Артикул, Изображение (Изображения опций можно задавать непосредственно в товаре). При добавлении в корзину опции разделяются на отдельные товары. что позволяет изменять количество в корзине. Для каждого значения опции показывается полная стоимость (Для опций с разделением в корзине). Поддерживаемые языки: Русский, Английский, Украинский. Совместимость с модулем Обновление цены при выборе опции, без AJAX OC3 (NEW) Поддержка шаблона UniShop
      Модуль добавляет новые типы опций:
      "Ввод количества (с разделением на товары в корзине)" - Поля ввода количества. При добавлении в корзину опции разделяются на отдельные товары. "Ввод количества" - Поля ввода количества. При добавлении в корзину опции не разделяются на отдельные товары. "Список с количеством" - Список с полем ввода количества.  "Ввод количества (скидка от общей суммы заказа)" - Вместо скидки за количество идёт скидка от общей суммы заказа. Размер скидки указывается в %.  "Ввод размера (цена за площадь)" - Цена за квадратную единицу указывется в цене товара (Единицы длины указываются в товаре). У опции указывается единицы ввода длины ии при расчёте цены производится перевод в единицы товара. Дополнительно есть настройки: минимального размера, максимального размера и размера по умолчанию.  
      Список изменений:
      v3.0.0 (17.06.2018) - Первый релиз модуля v3.0.4 (13.09.2018) - Поддержка шаблона UniShop v3.0.6 (03.12.2018) - Исправления для опции с типом "Ввод размера"  
      Поддержка:
      При возникновении проблем с установкой пишите в личку, помогу с установкой. Для некоторых тем может понадобится доработка модуля. Пишите в личку с указанием доступа на фтп и в админку, а также ссылкой на образец товара, помогу с адаптацией. Поддержка не круглосуточная, отвечу как только буду на связи. При длительном отсутствии всегда сообщаю об этом в профиле. При возникновении вопросов о возможности реализации дополнительного функционала, свяжитесь со мной перед покупкой. Добавил mpn2005 Добавлено 17.06.2018 Категория Опции Системные требования Сайт разработчика Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет Старая цена 0  
    • By mpn2005
      !!! версия для OC3 !!!
      Добавляет новые поля к значениям опций в товаре: Артикул, Изображение (Изображения опций можно задавать непосредственно в товаре)
       
      Версия для ОС2
       
      Демо OpenCart 3.0.2.0:
      Ввод количества (с разделением на товары в корзине) Ввод размера (цена за площадь) Демо для остальных типов опций на подходе...  
      Возможности:
      Добавляет новые поля к значениям опций в товаре: Артикул, Изображение (Изображения опций можно задавать непосредственно в товаре). При добавлении в корзину опции разделяются на отдельные товары. что позволяет изменять количество в корзине. Для каждого значения опции показывается полная стоимость (Для опций с разделением в корзине). Поддерживаемые языки: Русский, Английский, Украинский. Совместимость с модулем Обновление цены при выборе опции, без AJAX OC3 (NEW) Поддержка шаблона UniShop
      Модуль добавляет новые типы опций:
      "Ввод количества (с разделением на товары в корзине)" - Поля ввода количества. При добавлении в корзину опции разделяются на отдельные товары. "Ввод количества" - Поля ввода количества. При добавлении в корзину опции не разделяются на отдельные товары. "Список с количеством" - Список с полем ввода количества.  "Ввод количества (скидка от общей суммы заказа)" - Вместо скидки за количество идёт скидка от общей суммы заказа. Размер скидки указывается в %.  "Ввод размера (цена за площадь)" - Цена за квадратную единицу указывется в цене товара (Единицы длины указываются в товаре). У опции указывается единицы ввода длины ии при расчёте цены производится перевод в единицы товара. Дополнительно есть настройки: минимального размера, максимального размера и размера по умолчанию.  
      Список изменений:
      v3.0.0 (17.06.2018) - Первый релиз модуля v3.0.4 (13.09.2018) - Поддержка шаблона UniShop v3.0.6 (03.12.2018) - Исправления для опции с типом "Ввод размера"  
      Поддержка:
      При возникновении проблем с установкой пишите в личку, помогу с установкой. Для некоторых тем может понадобится доработка модуля. Пишите в личку с указанием доступа на фтп и в админку, а также ссылкой на образец товара, помогу с адаптацией. Поддержка не круглосуточная, отвечу как только буду на связи. При длительном отсутствии всегда сообщаю об этом в профиле. При возникновении вопросов о возможности реализации дополнительного функционала, свяжитесь со мной перед покупкой.
    • By mpn2005
      600.00 руб
      Скачать/Купить дополнение


      [OC3] Обновление цены при выборе опции, без AJAX
      Модуль динамически изменяет цену товара при выборе опции и изменении количества товара.
      Дополнительные действия к цене опции: =, %, *,  /.
       
      Демо:
      OpenCart v3.0.2.0: Демо1 Демо2 (акция)
       
      Возможности:
      Учитывается акция на товар Учитывается скидка на товар Обновление цены с учётом налогов Обновление цены в бонусных баллах (вкл / выкл) Умножение цены на введённое количество товара (вкл / выкл) Акция на опции пропорционально акции на товар  (вкл / выкл) Скидка на опции пропорционально скидке на товар (вкл / выкл) Автоматический выбор первой опции (вкл / выкл) Вывод цены в дополнительной валюте (вкл / выкл) Не показывать цену опции Дополнительные действия к цене опции: =, %, *,  /. Поддержка шаблонов: UniShop, LightShop, NewStore и друие  
      Настройки модуля находятся на закладке Локализация в конфигурации магазина
       
      Версия для OC1.5, OC2
       
      Особенности работы:
      Не используется AJAX, поэтому при подсчёте скидок учитывается только введённое количество (товар, лежащий в корзине, в расчёте не участвует).  
      Поддержка:
      При возникновении проблем с установкой пишите в личку, помогу с установкой. Для некоторых тем может понадобится доработка модуля. Пишите в личку с указанием доступа на фтп и в админку, а также ссылкой на образец товара, помогу с адаптацией. Поддержка не круглосуточная, отвечу как только буду на связи. При длительном отсутствии всегда сообщаю об этом в профиле. При возникновении вопросов о возможности реализации дополнительного функционала, свяжитесь со мной перед покупкой. Добавил mpn2005 Добавлено 21.04.2018 Категория Опции Системные требования Сайт разработчика Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет Старая цена 0  
    • By mpn2005
      Модуль динамически изменяет цену товара при выборе опции и изменении количества товара.
      Дополнительные действия к цене опции: =, %, *,  /.
       
      Демо:
      OpenCart v3.0.2.0: Демо1 Демо2 (акция)
       
      Возможности:
      Учитывается акция на товар Учитывается скидка на товар Обновление цены с учётом налогов Обновление цены в бонусных баллах (вкл / выкл) Умножение цены на введённое количество товара (вкл / выкл) Акция на опции пропорционально акции на товар  (вкл / выкл) Скидка на опции пропорционально скидке на товар (вкл / выкл) Автоматический выбор первой опции (вкл / выкл) Вывод цены в дополнительной валюте (вкл / выкл) Не показывать цену опции Дополнительные действия к цене опции: =, %, *,  /. Поддержка шаблонов: UniShop, LightShop, NewStore и друие  
      Настройки модуля находятся на закладке Локализация в конфигурации магазина
       
      Версия для OC1.5, OC2
       
      Особенности работы:
      Не используется AJAX, поэтому при подсчёте скидок учитывается только введённое количество (товар, лежащий в корзине, в расчёте не участвует).  
      Поддержка:
      При возникновении проблем с установкой пишите в личку, помогу с установкой. Для некоторых тем может понадобится доработка модуля. Пишите в личку с указанием доступа на фтп и в админку, а также ссылкой на образец товара, помогу с адаптацией. Поддержка не круглосуточная, отвечу как только буду на связи. При длительном отсутствии всегда сообщаю об этом в профиле. При возникновении вопросов о возможности реализации дополнительного функционала, свяжитесь со мной перед покупкой.
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.