Перейти к содержимому


Фотография
* * * * - 4 Голосов

Добавление фиксированный суммы к цене корзины в зависимости от выбора чекбокса

рецепт

Сообщений в теме: 102

#21 ilham76

ilham76

Отправлено 04 September 2013 - 19:57

sc сказал(а) 04 Сен 2013 - 18:46:

 

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

В общем благодаря указаниям Дениса и небольшого метода научного тыка кое что получилось. А получилось сделать прибавление статичного значения к общей суме заказа + передача этих значений дальше аж до платежной системы и записи в заказ. Такой способ Вам подойдет если Вы не спрашиваете у покупателя, а просто констатируете стоимость доставки и она единая при любом варианте. Думаю если развить дальше этот вариант, то можно будет подумать как в зависимости от суммы заказа отнять эту статическую постоянную. Если кому то понадобится еще такой вариант где без вариантов прибавляется стоимость то я распишу как я сделал?

 

у меня похоже именно этот вариант..т.е. покупатель просто выбирает варианты доставки (курьерская обычная (290), экспресс(560) и самовывоз(0))...распишите плизз как енто реализовать....


  • 0

там за окном...сказка с несчастливым концом....


#22 sc

sc

Отправлено 04 September 2013 - 20:02

Видимо не понятно написал, я смог сделать, чтобы добавлялась только одна и та же переменная "Доставка - 49 грн." к итоговой сумме заказа. У меня нет вариантов выбора из нескольких, только один. К сожалению я не силен в php и скриптах, но поковыряться могу. Пока только такой вариант получился. Сам же жду ecwallspb, т.к. для следующего проекта потребуется вариант выбора, даже забитый руками в файлы а не сделаный через админку. Главное чтобы работало, поэтому пока жду.


  • 0

yootheme-logo.png
Лицензирование YOOtheme (шаблоны, Widgetkit, ZOO). А так же самые свежие обновления напрямую от ZOOlanders, SH404SEF, Akeeba Backup PRO, Admin Tools PRO, Accordion Menu и д.р. Пишите в ЛС


#23 jomfan

jomfan

Отправлено 06 September 2013 - 14:10

sc покажите пожалуйста свою реализацию, возможно кто-то подскажет с радио батонами.


  • 0

#24 Александр

Александр

Отправлено 14 September 2013 - 14:48

коллеги, подскажите все-таки, у кого какие наработки есть?


  • 0

#25 i001

i001

Отправлено 14 September 2013 - 16:37

теме 3 недели а воз и ныне там)). не так давно тоже нужна была подобная штука..

Рац. предложение заказать эту фичу. я думаю там будет не так много строк кода и цена копеечная, тем более, что желающих много. 


  • 2

#26 jomfan

jomfan

Отправлено 14 September 2013 - 17:17

Я с удовольствием присоединился бы к складчине, но с условием поддержки 1.6 версии.
  • 0

#27 Александр

Александр

Отправлено 14 September 2013 - 19:43

проблема в том, что люди, сделавшие его куда-то слились


  • 0

#28 fiction13

fiction13

Отправлено 15 September 2013 - 20:37

*
Популярное сообщение!

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

 

Скрипт был взят с вышеприведенной страницы, так что все копирайты у автора =)

 

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

 

joomla 2.5.11 + jbzoo 2.0.1

 

Рабочая ссылка на каталог с корзиной: http://economim-vmes...j-organizatorov

 

Порядок действий:

 

1. Файл /media/zoo/applications/jbuniversal/templates/catalog/renderer/basket/_default.php. Меняем весь код tfoot (примерно 101 строка) таблицы на этот:

  1. <tfoot>
  2. <tr>
  3. <td colspan="5" class="right"><strong><span id="summ_delivery_label">Доставка:</span></strong></td>
  4. <td>&nbsp;</td>
  5. <td><span id="summ_delivery">0 р.</span></td>
  6. <td>&nbsp;</td>
  7. </tr>
  8. <tr>
  9. <td colspan="5" class="right"><strong><span id="summ_delivery_label"><?php echo JText::_('JBZOO_CART_TOTAL'); ?>:</span></strong></td>
  10. <td class="jsTotalCount"><?php echo $count; ?></td>
  11. <td class="jsTotalPrice"><span id="summ_full"><?php echo $this->app->jbmoney->toFormat($summa, $currencyConvert); ?></span></td>
  12. <td>
  13. <input type="button" class="button-default jsDeleteAll" value="<?php echo JText::_('JBZOO_CART_REMOVE_ALL'); ?>"/>
  14. </td>
  15. </tr>
  16. </tfoot>

Тот же файл, в конце файла меняем код

  1. <script type="text/javascript">
  2. jQuery(function ($) {
  3. $('.jbzoo .jsJBZooBasket').JBZooBasket({
  4. 'clearConfirm': "<?php echo JText::_('JBZOO_CART_CLEAR_CONFIRM');?>",
  5. 'quantityUrl' : "<?php echo $this->app->jbrouter->basketQuantity($view->appId);?>",
  6. 'deleteUrl' : "<?php echo $this->app->jbrouter->basketDelete($view->appId);?>",
  7. 'clearUrl' : "<?php echo $this->app->jbrouter->basketClear($view->appId);?>"
  8. });
  9. });
  10. </script>

на этот

  1. <script type="text/javascript">
  2. jQuery(function ($) {
  3. $('.jbzoo .jsJBZooBasket').JBZooBasket({
  4. 'clearConfirm': "<?php echo JText::_('JBZOO_CART_CLEAR_CONFIRM');?>",
  5. 'quantityUrl' : "<?php echo $this->app->jbrouter->basketQuantity($view->appId);?>",
  6. 'deleteUrl' : "<?php echo $this->app->jbrouter->basketDelete($view->appId);?>",
  7. 'clearUrl' : "<?php echo $this->app->jbrouter->basketClear($view->appId);?>"
  8. });
  9. $('.delivery input[type=radio]').click(function() {
  10. var deliv_summ;
  11. var deliv_summ_arr;
  12. var deliv_summ_label_arr = $(this).next().text().split(':');
  13. $('#summ_delivery_label').text(deliv_summ_label_arr[0]+':');
  14. deliv_summ_arr = deliv_summ_label_arr[1].split(" р");
  15. deliv_summ = deliv_summ_arr[0].replace(/[()]/,'');
  16. $('#d_id').val(deliv_summ);
  17. $('#d_id_2').val(deliv_summ_label_arr[0]);
  18. $('#summ_delivery').text(deliv_summ + ' р.');
  19. var su = parseInt(<?php echo $summa; ?>)+parseInt(deliv_summ);
  20. var su2 = su+'';
  21. su2 = su2.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1 ");
  22. $('#summ_full').text(su2+' p.');
  23. });
  24. });
  25. </script>
  26. <style>
  27. td.right{ text-align: right;}
  28. td.right span{
  29. width: 99%;
  30. display: inline-block;
  31. text-align: right;
  32. }
  33. </style>
  34.  

2. Файл /media/zoo/applications/jbuniversal/templates/catalog/renderer/basketform/_default.php. Добавляем 2 скрытых input в конец формы (39 строка)

  1. <input type="hidden" id="d_id" name="d_id" value=""/>
  2. <input type="hidden" id="d_id_2" name="d_id_2" value=""/>

3. Файл \media\zoo\applications\jbuniversal\elements\jbbasketitems\tmpl\jbbasketitems.phpМеняем tfoot таблицы на этот:

  1. <tfoot>
  2. <tr>
  3. <td colspan="3">&nbsp;</td>
  4. <td><strong><?php echo $_POST['d_id_2']; ?>:</strong></td>
  5. <td class="jsTotalCount"></td>
  6. <td class="jsTotalPrice"><?php echo $_POST['d_id'];?></td>
  7. </tr>
  8. <tr>
  9. <td colspan="3">&nbsp;</td>
  10. <td><strong><?php echo JText::_('JBZOO_CART_TOTAL'); ?>:</strong></td>
  11. <td class="jsTotalCount"><?php echo $count; ?></td>
  12. <td class="jsTotalPrice"><?php echo $this->app->jbmoney->toFormat($summa, $currency)+$_POST['d_id']; ?></td>
  13. </tr>
  14. </tfoot>

4. Добавляем элемент Радио в форму Order, опции называем как "Доставка по Земле : 500 руб." То есть "(Название доставки) : (Цена доставки) руб." Обратите внимание на двоеточие между названием доставки и ценой.

 

5. Файл /media/zoo/applications/jbuniversal/templates/catalog/renderer/order/order.php. Нужно добавить класс delivery к диву, который обрамляет код 

  1. <?php echo $this->renderPosition('shipping', array('style' => 'order.block')); ?>

Пояснения.

1. В первом пункте мы добавляем низ к таблице заказываемых товаров в таблице:

fec64887417ae7c745b1391983569d10.png

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

 

2. Во втором пункте мы добавили 2 скрытых инпута, значение 1 будет - цена нашей доставки, значене второго инпута - название нашей доставки.

 

3. В третьем пункте мы добавили низ таблицы, которая отображается в письме, которое отправляется на мыло. 

e5a4c507bba7c3d72b9f383b1609f60a.png

 

4. Собственно сами радиокнопки:

68f4c7048b25e3b4db070e24bae20bab.png

 

Собственно все.

 

Не забудьте сделать бэкапы =) Если что не получается, пишите, попробуем разобраться =)


Сообщение отредактировал fiction13: 15 September 2013 - 20:42

  • 5

#29 fiction13

fiction13

Отправлено 16 September 2013 - 06:30

Удалено.


Сообщение отредактировал fiction13: 16 September 2013 - 06:30

  • 0

#30 Александр

Александр

Отправлено 16 September 2013 - 07:45

В целом все отлично, но скрипт отваливается, если человек подумал и решил изменить что-то в корзине.

Правку по скрипту скину чуть позже.

Также докину правку с учетом разных типов доставки для разных регионов.


  • 0





Темы с аналогичным тегами рецепт

Click to return to top of page in style!