#1
Отправлено 23 Июнь 2014 - 22:39
#2
Отправлено 24 Июнь 2014 - 04:23
#3
Отправлено 24 Июнь 2014 - 23:02
Сake (24 Июнь 2014 - 04:23) писал:
#4
Отправлено 25 Июнь 2014 - 02:27
<!-- Доставка --> {% FOR cart_items_delivery %} <tr> <td><div class="delivery" title="Доставка {cart_items_delivery.NAME}"></div></td> <td> Доставка {cart_items_delivery.NAME} <!-- Если указана зона доставки --> {% IF cart_items_delivery.WITH_DELIVERY_ZONE %} <span>({cart_items_delivery.DELIVERY_ZONE_DESC})</span> {% ENDIF %} </td> <td class="a-center"> 1 шт </td> <td> <span class="cart-price"> <span class="price">{cart_items_delivery.END_PRICE | money_format}</span> </span> </td> </tr> {% ENDFOR %}
и замените его на
<!-- Доставка --> {% FOR cart_items_delivery %} <tr> <td><div class="delivery" title="Доставка {cart_items_delivery.NAME}"></div></td> <td> Доставка {cart_items_delivery.NAME} <!-- Если указана зона доставки --> {% IF cart_items_delivery.WITH_DELIVERY_ZONE %} <span>({cart_items_delivery.DELIVERY_ZONE_DESC})</span> {% ENDIF %} </td> <td class="a-center delivery-out-price"> 1 шт </td> <td> <span class="cart-price"> <span class="price">{cart_items_delivery.END_PRICE | money_format}</span> </span> </td> </tr> {% ENDFOR %}
далее найдите
{% FOR cart_items %} <tr> <td><div class="image goods-image-icon-square"><a href="{cart_items.GOODS_URL}"><img class="goods-image-icon" src="{% IF cart_items.GOODS_IMAGE_EMPTY %}{ASSETS_IMAGES_PATH}no-photo-icon.png{% ELSE %}{cart_items.GOODS_IMAGE_ICON}{% ENDIF %}"></a></div></td> <td> <a href="{cart_items.GOODS_URL}" class="cartFormTbodyHeader"> {cart_items.GOODS_NAME} <!-- Если у товара есть отличительные свойства для модификации товара, допишем их к названию товара --> {% IFNOT cart_items.distinctive_properties_empty %}<span>({% FOR distinctive_properties %}{cart_items.distinctive_properties.NAME}: {cart_items.distinctive_properties.VALUE}{% IFNOT cart_items.distinctive_properties.last %}, {% ENDIF %}{% ENDFOR %})</span>{% ENDIF %} </a> </td> <td class="a-center" width="50"> {cart_items.ORDER_LINE_QUANTITY} {cart_items.GOODS_MOD_MEASURE_NAME} </td> <td width="100"> <span class="cart-price"> <span class="price">{cart_items.ORDER_LINE_PRICE_NOW | money_format}</span> </span> </td> </tr> {% ENDFOR %}
и замените его на
{% FOR cart_items %} <tr> <td><div class="image goods-image-icon-square"><a href="{cart_items.GOODS_URL}"><img class="goods-image-icon" src="{% IF cart_items.GOODS_IMAGE_EMPTY %}{ASSETS_IMAGES_PATH}no-photo-icon.png{% ELSE %}{cart_items.GOODS_IMAGE_ICON}{% ENDIF %}"></a></div></td> <td> <a href="{cart_items.GOODS_URL}" class="cartFormTbodyHeader"> {cart_items.GOODS_NAME} <!-- Если у товара есть отличительные свойства для модификации товара, допишем их к названию товара --> {% IFNOT cart_items.distinctive_properties_empty %}<span>({% FOR distinctive_properties %}{cart_items.distinctive_properties.NAME}: {cart_items.distinctive_properties.VALUE}{% IFNOT cart_items.distinctive_properties.last %}, {% ENDIF %}{% ENDFOR %})</span>{% ENDIF %} </a> </td> <td class="a-center quantity" width="50"> {cart_items.ORDER_LINE_QUANTITY} {cart_items.GOODS_MOD_MEASURE_NAME} </td> <td width="100"> <span class="cart-price"> <span class="price" rel="{cart_items.ORDER_LINE_PRICE_OLD}">{cart_items.ORDER_LINE_PRICE_NOW | money_format}</span> </span> </td> </tr> {% ENDFOR %}
далее в файл main.js добавьте код
$(function() { if($('.delivery-out-price').length) { var deliveryCount = 0; $('#shopping-cart-table tbody tr').each(function() { if(parseInt($(this).find('.cart-price .price').attr('rel'))) { deliveryCount += parseInt($(this).closest('tr').find('.quantity').text()); } }); $('.delivery-out-price').text(deliveryCount + ' шт'); } });
#6
Отправлено 26 Июнь 2014 - 00:47
По сути у вас небыл указан класс "delivery-out-price". В файле main.js при этом должен присутствовать код (указанный ранее)
$(function() { if($('.delivery-out-price').length) { var deliveryCount = 0; $('#shopping-cart-table tbody tr').each(function() { if(parseInt($(this).find('.cart-price .price').attr('rel'))) { deliveryCount += parseInt($(this).closest('tr').find('.quantity').text()); } }); $('.delivery-out-price').text(deliveryCount + ' шт'); } });
#7
Отправлено 26 Июнь 2014 - 09:05
Сake (26 Июнь 2014 - 00:47) писал:
По сути у вас небыл указан класс "delivery-out-price". В файле main.js при этом должен присутствовать код (указанный ранее)
$(function() { if($('.delivery-out-price').length) { var deliveryCount = 0; $('#shopping-cart-table tbody tr').each(function() { if(parseInt($(this).find('.cart-price .price').attr('rel'))) { deliveryCount += parseInt($(this).closest('tr').find('.quantity').text()); } }); $('.delivery-out-price').text(deliveryCount + ' шт'); } });
Извиняюсь, не тот код в прошлом сообщении привёл. Сейчас в страницу оформления заказа полностью скопировал указанный код. В main.js тот класс прописан. Начало считаться количество товаров в корзине, но с учётом товаров, у которых старая цена равна нулю (монтаж посуды). "Общая сумма" монтажа считаться не начала. Сейчас показывает "0", а должна быть сумма всех "старых цен".
#8
Отправлено 27 Июнь 2014 - 01:34
$(function() { if($('.delivery-out-price').length) { var deliveryCount = 0; $('#shopping-cart-table tbody tr').each(function() { if(parseInt($(this).find('.cart-price .price').attr('rel'))) { deliveryCount += parseInt($(this).closest('tr').find('.quantity').text()); } }); $('.delivery-out-price').text(deliveryCount + ' шт'); } });
заменить на
$(function() { if($('.delivery-out-price').length) { var deliveryCount = 0; var deliveryPrice = 0; $('#shopping-cart-table tbody tr').each(function() { var oldPrice = parseFloat($(this).find('.cart-price .price').attr('rel')); if(oldPrice) { deliveryCount += parseInt($(this).closest('tr').find('.quantity').text()); deliveryPrice += oldPrice; } }); $('.delivery-out-price').text(deliveryCount + ' шт'); $('.delivery-out-price').closest('tr').find('.price .num').text(number_format(deliveryPrice, 0, ',', ' ')); } });
после этого сумма и количество будет подсчитываться.
#9
Отправлено 27 Июнь 2014 - 10:06
Сake (27 Июнь 2014 - 01:34) писал:
$(function() { if($('.delivery-out-price').length) { var deliveryCount = 0; $('#shopping-cart-table tbody tr').each(function() { if(parseInt($(this).find('.cart-price .price').attr('rel'))) { deliveryCount += parseInt($(this).closest('tr').find('.quantity').text()); } }); $('.delivery-out-price').text(deliveryCount + ' шт'); } });
заменить на
$(function() { if($('.delivery-out-price').length) { var deliveryCount = 0; var deliveryPrice = 0; $('#shopping-cart-table tbody tr').each(function() { var oldPrice = parseFloat($(this).find('.cart-price .price').attr('rel')); if(oldPrice) { deliveryCount += parseInt($(this).closest('tr').find('.quantity').text()); deliveryPrice += oldPrice; } }); $('.delivery-out-price').text(deliveryCount + ' шт'); $('.delivery-out-price').closest('tr').find('.price .num').text(number_format(deliveryPrice, 0, ',', ' ')); } });
после этого сумма и количество будет подсчитываться.
#10
Отправлено 28 Июнь 2014 - 03:57
$('.delivery-out-price').closest('tr').find('.price .num').text(number_format(deliveryPrice, 0, ',', ' '));
на
$('.delivery-out-price').closest('tr').find('.price .num').text(number_format(deliveryPrice * deliveryCount, 0, ',', ' '));
#11
Отправлено 28 Июнь 2014 - 12:55
Сake (28 Июнь 2014 - 03:57) писал:
$('.delivery-out-price').closest('tr').find('.price .num').text(number_format(deliveryPrice, 0, ',', ' '));
на
$('.delivery-out-price').closest('tr').find('.price .num').text(number_format(deliveryPrice * deliveryCount, 0, ',', ' '));
не знаю по какой причине, но заработал предыдущий вариант. Видимо я удалил старые товары из корзины и добавил новые и переменные пересчитались. С заменой считалось количество два раза. Теперь стоимость монтажа не считается в общей сумме "Итого:".
#12
Отправлено 03 Июль 2014 - 03:10
$('.delivery-out-price').closest('tr').find('.price .num').text(number_format(deliveryPrice, 0, ',', ' '));
и замените её на
$('.delivery-out-price').closest('tr').find('.price .num').text(number_format(deliveryPrice, 0, ',', ' ')); var total = $('#shopping-cart-table tfoot .price .num'); total.text(number_format(parseFloat(total.text().replace(/\W+/, '')) + deliveryPrice, 0, ',', ' '));
#13
Отправлено 03 Июль 2014 - 20:41
Сake (03 Июль 2014 - 03:10) писал:
$('.delivery-out-price').closest('tr').find('.price .num').text(number_format(deliveryPrice, 0, ',', ' '));
и замените её на
$('.delivery-out-price').closest('tr').find('.price .num').text(number_format(deliveryPrice, 0, ',', ' ')); var total = $('#shopping-cart-table tfoot .price .num'); total.text(number_format(parseFloat(total.text().replace(/\W+/, '')) + deliveryPrice, 0, ',', ' '));
#14
Отправлено 04 Июль 2014 - 04:50
#16
Отправлено 08 Июль 2014 - 03:16
replace(/\W+/, '')
на
replace(/\s+/g, '')
#17
Отправлено 08 Июль 2014 - 16:45
Сake (08 Июль 2014 - 03:16) писал:
replace(/\W+/, '')
на
replace(/\s+/g, '')
Спасибо. Теперь всё отображается верно.
А есть возможность на следующей странице, там где "Ваш заказ успешно оформлен!" так же как и на 4-ом шаге показать цену монтажа(сейчас 0 руб) и так же учесть их в "ИТОГО:"
#18
Отправлено 09 Июль 2014 - 03:14
#19
Отправлено 09 Июль 2014 - 09:10
Сake (09 Июль 2014 - 03:14) писал:
На скриншотах "4-й шаг" заказа и следующая страница оформленного заказа. Информация из первого не попадает во второй.
#20
Отправлено 10 Июль 2014 - 04:07
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных