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 ruslaneh
      Есть ли на opencart 3 модуль который позволял бы менять цену в зависимости от опций?(описание прочитайте).
      Да в инете есть такие модули.
      Суть в том что есть 2 опции:
      Взрослый билет - 500р
      Детский билет - 300р
      Требуется модуль, который менял бы цену в зависимости от количества билетов. 
      Т.е 5 взрослых билетов и 2 детских - итоговая цена = 3100р.
    • By Serg9988
      500.00 руб
      Скачать/Купить дополнение


      Уведомление о наличии PRO Opencart2
      Уведомление о наличии товара PRO
      Зачем нужен модуль?
      Данны модуль позволяет увеличить количество продаж, за счет уведомления клиента о том, что интересующий его товар появился в продаже.    Соответственно вы не теряете потенциального клиента на товар которого в определенный момент не было в наличии.
       
      Модуль позволяет отслеживать желания ваших покупателей и заказывать у поставщика именно те товары, которых нет в наличии у вас на складе, но  которыми интересуются ваши покупатели.  
      Модуль собираем эмейлы потенциальных покупателей которые можно использовать в последующих разсылках акций и распродаж.  
       
      Краткое описание:
      Модуль позволяет покупателю заказать уведомление о поступлении товара в магазин.
      Модуль заменяет кнопку "Купить" на кнопку "Уведомить", если товара нет на складе или выбранной покупателем опции у товара нет в наличии.
      Работает по:
      количеству товара на складе по количеству опций на товаре по статусу товара  

      Возможности:
       
       История запросов уведомлений от пользователей в панели администратора   Возможность ручного отключения уведомлений   Обработка всего уведомления одним нажатием   Автоматическая отправка уведомлений о поступлении товара (CRON)    Уведомляет покупателя после изменения количества товара в ручную Работает по количеству опций на товаров (необязательно включается в настройке модуля) добавлена возможность покупателю указать желаемое количество товара при котором его уведомлять о поступлении при вводе желаемого количества товара для покупки, модуль на лету проверяет достаточно ли товара на складе  История заявок в личном кабинете покупателя  Пользователь может видеть историю своих уведомлений   Добавление любых произвольных полей в окно заказа уведомления (телефон, адрес, и тд)  Конструктор писем с возможностью подстановки данных оставленных покупателем  (в том числе доп. поля) Уведомление о новых заявках в административном меню  Сортировка и фильтрация списка заявок по цене, модеи, названию, артикулу, количеству товара Управление цветом кнопок модуля с админки  
       
       

       
       
       
       
      К модулю идет инструкция где подробно описано как установить и настроить модуль. 
      Адаптация, правки вида модуля и другие работы на не стандартном шаблоне делаются за отдельную плату.
       
      Модуль работает на шаблонах:
        Moneymaker2
       Journal
       Unishop
       
      Модуль совместим с модулями:
      uni_tabs
      owlcarousel
       
      ознакомится с документацией - ДОКУМЕНТАЦИЯ
       
      Системные/технические требования:
      Протестировано на следующих версиях : 
      ocstore 2.0*,2.1*,2.2*.2.3*, 3.0* opencart 2.0*,2.1*,2.2*.2.3*, 3.0*  
      Модуль не тестировался и его работа не гарантируется на всякого рода зборках ocstore или opencart от студий или отдельных разработчиков. Работа гарантируется только на чистых официальных сборках!
       
      Для работы модуля требуется:
      PHP Version: 5.6.x или выше
       
       
      Возможности:
       
       

       
       
      В планах реализовать:
      возможность создания собственных полей на форму с возможностью использовать их в письмах - Реализовано с версии 9.6 отправка уведомлений по смс построение отчетов по заявкам и выгрузка их в Exsel  
       
      Дизайн модуля адаптивен и корректно работает на мобильных устройствах:
       

       
      Установка:
       Скачайте архив с нужной версией модуля. Модуль с версии 9.5 работает только на opencart 2.3 и выше и OCStore 2.3 и выше.  Зайдите в административную панель сайта в раздел "Дополнения/Установка дополнений" и установите модуль  Зайдите в раздел "Дополнения/Менеджер дополнений" и обновите кеш  Зайдите в раздел "Дополнения/Дополнения/Модули" Установите модуль "SM Уведомить о наличии PRO"  Зайдите в редактирование модуля (введите ключ активации или сделайте запрос на получение ключа ) активируйте модуль переведя опцию "Статус" в позицию "Включен.              Сохраните настройки  Подключите модуль на страницы Главная, категории, товары и тд. (Раздел Дизайн/Схемы)  
      Состав модуля:
      полная инструкция с описанием работы и установки модуля; файлы модуля; файл для тестирования настроек сервера;  
      ДЕМО 
      Страница товара с опциями (кнопка купить будет подменена только если выбрать опцию количество которой <=0)
      login/pass - demo/demo
       
      Полное описание:
       
      Все работы по стилизации модуля под ваш шаблон (цвет кнопки, форма размер и тд.) проводяться исключительно на платной основе.
       
      Что нового:
       
      Обновление:
       
      Условия использования:
      Лицензия на модуль выдается на следующих условиях:
      1 лицензия = 1 покупка = 1 доменное имя.
      То есть - один раз купив, вы получаете ключ для работы модуля только на одном доменном имени, одном магазине!
       
      Приобретая лицензию (покупая дополнение), Вы автоматически соглашаетесь со следующими положениями:
       
      Для получения лицензионного ключа напишите мне в личном сообщении от имени того, на кого покупался модуль:
      Название модуля Доменное имя вашего магазина Доменное имя тестовой площадки (если таковая имеется) Ваш адрес электронной почты, куда выслать ключ  
      Дополнительные лицензии вы можете получить купив модуль на сайте http://myopencart.club/
      На 4-ю и более покупку действует скидка. Чтобы получить скидку пишите в личку или на почту.
      Вопросы, пожелания можно писать в форум или на почту support@myopencart.club
       
      Добавил Serg9988 Добавлено 30.03.2016 Категория Письма, почта, рассылки, sms Системные требования Сайт разработчика http://myopencart.club Метод активации По запросу в ЛС
      По запросу на почту
      По емейлу Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет Старая цена 600  
    • By walkietalkie
      Всем доброго времени суток!
       
      Подскажите, пожалуйста, есть ли модуль для админки, который позволит указывать цвет товара с цветовой палитры? Либо, на крайний случай, чтобы в выпадающем списке с перечнем цветов рядом с их именами были графические изображения?
       
      Пример того, как требуется, чтоб выглядела опция, смотрите на картинке
       
      Заранее спасибо!

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


      Option As a Link (Опция как ссылка)
      Модуль добавляет к опциям возможность указать ссылку на товар.
      При выборе опции на сайте покупатель будет перенаправлен на страницу товара.
       
      Не требуется создавать дополнительную опцию и привязывать каждый товар просто заполните его с помощью автоподстановки.
      Если товар не указан опция работает как стандартная.
       
       
       
       
       
       
      Добавил SirGrey Добавлено 01.12.2019 Категория Опции Системные требования Сайт разработчика https://proportfolio.ru/ Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3 ocStore 3.0
      2.3 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет Старая цена 0  
    • By SirGrey
      Модуль добавляет к опциям возможность указать ссылку на товар.
      При выборе опции на сайте покупатель будет перенаправлен на страницу товара.
       
      Не требуется создавать дополнительную опцию и привязывать каждый товар просто заполните его с помощью автоподстановки.
      Если товар не указан опция работает как стандартная.
       
       
       
       
       
       
  • 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.