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


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

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

рецепт

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

#21 ilham76

ilham76

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

 

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

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

 

у меня похоже именно этот вариант..т.е. покупатель просто выбирает варианты доставки (курьерская обычная (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 строка) таблицы на этот:

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

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

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

на этот

<script type="text/javascript">
    jQuery(function ($) {
        $('.jbzoo .jsJBZooBasket').JBZooBasket({
            'clearConfirm': "<?php echo JText::_('JBZOO_CART_CLEAR_CONFIRM');?>",
            'quantityUrl' : "<?php echo $this->app->jbrouter->basketQuantity($view->appId);?>",
            'deleteUrl'   : "<?php echo $this->app->jbrouter->basketDelete($view->appId);?>",
            'clearUrl'    : "<?php echo $this->app->jbrouter->basketClear($view->appId);?>"
        });
		$('.delivery input[type=radio]').click(function() {
			var deliv_summ;
			var deliv_summ_arr;
			var deliv_summ_label_arr =  $(this).next().text().split(':');
			$('#summ_delivery_label').text(deliv_summ_label_arr[0]+':');
			deliv_summ_arr = deliv_summ_label_arr[1].split(" р");
			deliv_summ = deliv_summ_arr[0].replace(/[()]/,'');
			$('#d_id').val(deliv_summ);
			$('#d_id_2').val(deliv_summ_label_arr[0]);
			$('#summ_delivery').text(deliv_summ + ' р.');
			var su = parseInt(<?php echo $summa; ?>)+parseInt(deliv_summ); 
			var su2 = su+''; 
			su2 = su2.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1 ");
			$('#summ_full').text(su2+' p.');			
        });
    });
</script>
<style>
	td.right{ text-align: right;}
	td.right span{ 
		width: 99%;
		display: inline-block;
		text-align: right;
	}
</style>

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

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

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

            <tfoot>
            <tr>
                <td colspan="3">&nbsp;</td>
                <td><strong><?php echo $_POST['d_id_2']; ?>:</strong></td>
                <td class="jsTotalCount"></td>
                <td class="jsTotalPrice"><?php echo $_POST['d_id'];?></td>
            </tr>			
            <tr>
                <td colspan="3">&nbsp;</td>
                <td><strong><?php echo JText::_('JBZOO_CART_TOTAL'); ?>:</strong></td>
                <td class="jsTotalCount"><?php echo $count; ?></td>
                <td class="jsTotalPrice"><?php echo $this->app->jbmoney->toFormat($summa, $currency)+$_POST['d_id']; ?></td>
            </tr>
            </tfoot>

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

 

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

<?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!