Перейти к содержанию
T-ray

Автопересчет цены при выб. опции товара. 1.4.8b [Доработка]

Рекомендуемые сообщения

Во общем, так и не дождавшись предложений в этой теме viewtopic.php?f=15&t=418 по совершенствованию алгоритма, выкладываю свою доработку по автоматическому пересчету цены при выборе опции товара.

Сейчас решение под 1.4.8b работает так:

При изменении значения опции пересчитывается цена на клиенте (JAVASCRIPT), затем AJAX запрос к серверу чтобы отформатировать значение цены.

Во вложении файлы из которых выкусывать доработку.

Все новые/измененные участки кода помечены тегами:

100618 ALNAUA Add javascript price recalculate Begin
и

100618 ALNAUA Add javascript price recalculate End
т.е. все что между этими тегами переносим себе в теже файлы, в тоже место.

Не забудьте сделать резервные копии своих файлов, чтобы восстановиться, если напортачите с переносом.

AutoCalculatePrice.zip

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Замечательно работает и на 1.4.7Благодарю

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пока для себя не брал , но всегда пригодится полезная доработка ... Респект!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тоже присоединяюсь к благодарностям! :D) Пока еще не тестил, но если люди говорят, что работает, значит все должно быть хорошо! :D Спасибо, T-Ray

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А простите, это не опасно там? :(Я имеел ввиду всякие там инъекци и т.п., потому что слышал, что применение AJAX повышает подобный риск???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выкладывали уже здесь подобное еще для версии 1.4.0. У меня до сих пор работает на любой версии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выкладывали уже здесь подобное еще для версии 1.4.0. У меня до сих пор работает на любой версии.

Если можно, дайте ссылку, пожалуйста. https://opencartforum.com/public/style_emoticons/default/icon_question.gifХочется посмотреть какое там решение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все прекрасно работает, делал для v1.4.9.1Наверное, что-то пропустили в кодеСпасибо доработчику!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа, а как убрать визуализацию надбавки к основной стоимости? Т.е. сделать так, чтобы при выборе, например, при выборе нужного размера, в выпадающем меню не отображался + и разница с первоначальной стоимостью?

Если кто знаком с Джумла+Виртумарт, то там при добавлении атрибута товара, напротив него сразу ставишь цену, а не вычитаешь разницу о наименьшей цены и в клиентской части сайта напротив атрибута отображается полная стоимость.

Собственно, хочу узнать как реализовать такую возможность в опенкарте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа, а как убрать визуализацию надбавки к основной стоимости? Т.е. сделать так, чтобы при выборе, например, при выборе нужного размера, в выпадающем меню не отображался + и разница с первоначальной стоимостью?

<?php //100618 ALNAUA Add javascript price recalculate End ?>
         <?php if ($option_value['price']) { ?>
         <?php echo $option_value['prefix']; ?><?php echo $option_value['price']; ?>
на

<?php //100618 ALNAUA Add javascript price recalculate End ?>
          <?php if ($option_value['price']) { ?>
          <?php echo $option_value['price']; ?>
И в свойствах атрибута поставить "наценка: нет", тогда получается ты просто задаешь цену у каждого атрибута безо всяких + и - Изменено пользователем afwollis
edit -> save

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Очень приятно было бы увидеть такое же решение с остатками, если кто-то уже сделал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если налог на товар выключен, то на ocStore v0.1.5 работает отлично. Если же налог включён, то при загругке страницы сперва показывает правельную цену (цена + налог), а потом соскакивает на цену без налога и стоимость опции добавляется к цене без налога.

Добавочную стоимость опции показывает правильно - с налогом.

В корзине всё правильно отображается: основная + дополнительная цена без налога, налог и общая стоимость.)

Как исправить эту ошибку?

Что-то я не нашёл, в атрибутах строки "наценка: нет"?!

Чтобы в опциях не отображались "+50" (ни плюс, не добавочная стоимость) достаточно ли удалить:

<?php if ($option_value['price']) { ?>
         <?php echo $option_value['prefix']; ?><?php echo $option_value['price']; ?>
         <?php } ?>
Не повлияет ли это на работоспособность магазина? Изменено пользователем afwollis
edit -> save

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пожалуйста, кто-нибуть, помогите решить эту проблему. Очень нужен этот модуль.

Зарание СПАСИБО!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у меня цена исчезла но + осталса, помогите пожалуйста!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у меня цена исчезла но + осталса, помогите пожалуйста!!!

Я сделал так

Товар (Nokia 5530) цена 10000р.

Атрибуты:

Только телефон +0 (она стоит первой)

С флешкой +8 гиг +1000р.

С флешкой +16гиг +1200р.

С ноутбуком +9000р

Атрибуты работают

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Люди, а кто-нибудь придумал уже, как разграничить остатки, чтобы на каждой опции показывался свой остаток, а не общий? Поделитесь? Или носом тыкните, мож где уже обсуждали..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. Очень полезная штука, за реализацию огромное спасибо.

Но тут вот какая штука. Пользуюсь ocstore_v0.2.2 и переделал под свой лад вывод атрибутов в радио стиле вот по этому описанию https://opencartforum.com/topic/1384-%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BA%D0%BD%D0%BE%D0%BF%D0%BA%D0%B8-%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%BE/page__p__8566__hl__%D1%80%D0%B0%D0%B4%D0%B8%D0%BE__fromsearch__1#entry8566 и как теперь основную цену менять не знаю. Делал все по инструкции, точнее, заменил все как надо, добавил, и загвоздка в

<tr>
                    <td><?php echo $option['name']; ?>:<br />
                      <?php //100618 ALNAUA Add javascript price recalculate Begin ?>
                      <?php /*<select name="option[<?php echo $option['option_id']; ?>]"> */?>
                      <select name="option[<?php echo $option['option_id']; ?>]" onchange="recalculateprice();">
                      <?php //100618 ALNAUA Add javascript price recalculate End ?>
                        <?php foreach ($option['option_value'] as $option_value) { ?>
                          <?php //100618 ALNAUA Add javascript price recalculate Begin ?>
                          <?php /*<option value="<?php echo $option_value['option_value_id']; ?>"><?php echo $option_value['name']; ?> */?>
                          <option value="<?php echo $option_value['option_value_id']; ?>" price="<?php echo $option_value['price_value']; ?>"><?php echo $option_value['name']; ?>
                          <?php //100618 ALNAUA Add javascript price recalculate End ?>
                        <?php if ($option_value['price']) { ?>
                        <?php echo $option_value['prefix']; ?><?php echo $option_value['price']; ?>
                        <?php } ?>
                        </option>
                        <?php } ?>
                      </select></td>
                  </tr>
как мне изменить основную цену используя радиокнопку из выше указанной темы? код радиокнопок:

<?php foreach ($option['option_value'] as $option_value) { ?>
         <input type="radio" name="option[<?php echo $option['option_id']; ?>]" value="<?php echo $option_value['option_value_id']; ?>"><?php echo $option_value['name']; ?>
         <?php if ($option_value['price']) { ?>
             <?php echo $option_value['price']; ?>
         <?php } ?>
         <?php } ?>
В ПХП не силен, но насколько понимаю все сводиться к тому что бы "прикрутить" к

<input type="radio" name="option[<?php echo $option['option_id']; ?>]" value="<?php echo $option_value['option_value_id']; ?>"><?php echo $option_value['name']; ?>
это

onclick="recalculateprice();"
и это

price="<?php echo $option_value['price_value']; ?>"

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день.

А есть такое решение для версии Open cart 1.5.1?

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемые форумчане, произвел изменения согласно данной темы. Версия 1.4.9.4

В карточке товара цена меняется - безумно приятно.

Одна возник уже вышеупомянутый недочет: при добавлении товара в корзину, стоимость товара становится равна базовой стоимости товара. Т.е. наценка не срабатывает. А при добавлении товара в корзину, не указывается его атрибут (в моем случае - объем).

Вернул бэкапные файлы (catalog/view/theme/default/template/product/product.tpl и catalog/controller/product/product.php), на которых все работало до этого.

Пример старых файлов на старом хостинге тут.

Пример бэкапных файлов, с которыми уже не работает тут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Люди добрые, хотя бы направление подскажите, куда копать.

Заменил на дефолтные:

catalog/view/theme/default/template/product/product.tpl

catalog/controller/product/product.php

system/library/cart.php

Проблема не исчезает. Товар добавляется в корзину без учета атрибутов, т.е. стакается независимо от выбранных значений опции, и не добавляется наценка в зависимости от все тех же опций. Ссылки на работающий магазин и неработающий магазин в предыдущем посте...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не подскажете как сделать так, чтобы задавать в админке цену товара сразу с определенным атрибутом, а не плюсовать стоимость атрибута к основной. Т.е. чтобы было например так:

Ipod $100 основная цена

и ниже в выпадающем списке:

2ГБ $100

4ГБ $130

8ГБ $170

16ГБ $230

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Товар добавляется в корзину без учета атрибутов, т.е. стакается независимо от выбранных значений опции, и не добавляется наценка в зависимости от все тех же опций. С

У меня тоже самое. Установлена последняя версия. Товар добавляется без начисления стоимости опции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На 1.5.1.3 Кто нибудь делал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.