Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Стоимость заказа в bitrix:sale.basket.basket.line

00 голосов
8
Подскажите как реализовать в bitrix:sale.basket.basket.line вывод общей стоимости заказа.
спросил 17 Июнь, 13 от PSvetka (160 баллов)

8 Ответы

00 голосов
Цитата
InDmitriy пишет:
Подскажите как реализовать в bitrix:sale.basket.basket.line вывод общей стоимости заказа.

Как-то так
Код
<?foreach ($arResult["ITEMS"] as $v)
{
if ($v["DELAY"]=="N" && $v["CAN_BUY"]=="Y")
         {
    $totalproduct += $v['QUANTITY'];  
    $totalmoney += $v["PRICE"]*$v['QUANTITY']; 

} 
}?>
  <p>Количество: <?echo $totalproduct;?> <br />
Сумма: <?echo FormatCurrency($totalmoney, $v["CURRENCY"]);?></p>
ответил 17 Июнь, 13 от Kiriel (2,010 баллов)
00 голосов
Таким образом не считает вообще... Еще заметил баг с некорректным подсчетом кол-ва товаров в стандартном шаблоне, считаются только позиции, а не суммарное кол-во заказанных товаров. К примеру если в заказе 10 одинаковых товаров, строка будет выглядеть "В корзине(1)". Может есть у кого мысли?
ответил 04 Июль, 13 от PSvetka (160 баллов)
00 голосов
Стандартно нельзя вывести
В компоненте bitrix:sale.basket.basket.line вызывается функция
CSaleBasket::GetList
http://dev.1c-bitrix.ru/api_help/sale/classes/csalebasket/csalebasket__getlist.4d82547a.php
с параметром arGroupBy = Array();
Это значит, что выбирается только количество записей в корзине данного пользователя
ответил 07 Окт, 13 от unik (2,560 баллов)
00 голосов
Для такой задачи лучше использовать sale.basket.basket.small
Иначе, вы из sale.basket.basket.line сделаете sale.basket.basket.small.

А количество и цена считается так в sale.basket.basket.small
Код
$quantity = 0;
$sum = 0;
$curr = 'RUB';
if (count($arResult["ITEMS"]>0)):
   foreach ($arResult["ITEMS"] as $arItem):
      $quantity += intval($arItem['QUANTITY']);
      $sum += $arItem['QUANTITY'] * $arItem['PRICE'];
      $curr = $arItem['CURRENCY'];
   endforeach;
endif;
ответил 07 Янв, 14 от Almarea (3,760 баллов)
00 голосов
Цитата
Андрей Антипов пишет:
Стандартно нельзя вывести

В компоненте bitrix:sale.basket.basket.line вызывается функция

CSaleBasket::GetList

http://dev.1c-bitrix.ru/api_help/sale...82547a.php

с параметром arGroupBy = Array();

Это значит, что выбирается только количество записей в корзине данного пользователя


Спасибо Андрей, разъяснили новичку)
ответил 24 Апр, 14 от PSvetka (160 баллов)
00 голосов
Цитата
Дмитрий Яковенко пишет:
Для такой задачи лучше использовать sale.basket.basket.small

Иначе, вы из sale.basket.basket.line сделаете sale.basket.basket.small.



А количество и цена считается так в sale.basket.basket.small

Код
$quantity = 0;

$sum = 0;

$curr = 'RUB';

if (count($arResult["ITEMS"]>0)):

&nbsp;&nbsp;&nbsp;foreach ($arResult["ITEMS"] as $arItem):

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$quantity += intval($arItem['QUANTITY']);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sum += $arItem['QUANTITY'] * $arItem['PRICE'];

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$curr = $arItem['CURRENCY'];

&nbsp;&nbsp;&nbsp;endforeach;

endif;


Дмитрий спасибо, именно то что нужно!
Подскажите еще пожалуйста, как выводить правильные окончания к полученному количеству?
Например: 1 товар, 3 товара, 10 товаров.
ответил 18 Авг, 14 от PSvetka (160 баллов)
00 голосов
У меня вот так сделано
Код
$BASKET_Q_TEXT = "В корзине #NUM# товар#END#";
$arResult['BASKET_INFO'] = array(
        "Q_TEXT" => str_replace("#END#", BasketNumberWordEndings($quantity), str_replace("#NUM#", $quantity, $BASKET_Q_TEXT))
    );
Вместо BASKET_Q_TEXT лучше использовать языковые сообщения и GetMessage
ответил 24 Дек, 14 от Almarea (3,760 баллов)
00 голосов
Здравствуйте .

В шаблоне битрикс 11 в стандартном шаблоне при переходе в корзину пишется общая сума товаров .

Из высше перечисленного не чего не понял

- не как создать sale.basket.basket.small

-
не то как вывести общую сумму sale.basket.basket.line

У меня задача вывести общую сумму текущих товаров в корзине на главной -пример как при переходе на personal/cart/

Код вывода на главной количества -


Код
<?
                     $APPLICATION->IncludeComponent("bitrix:sale.basket.basket.line", ".default", array(
                        "PATH_TO_BASKET" => SITE_DIR."personal/cart/",
                        "PATH_TO_PERSONAL" => SITE_DIR."personal/",
                        "SHOW_PERSONAL_LINK" => "N"
                        ),
                        false,
                        Array('')
                     );
                     ?>
 
bitrix:sale.basket.basket.line -template


Код
 <?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<div id="cart-status">
<?
if (IntVal($arResult["NUM_PRODUCTS"])>0)
{
?>
   <a href="<?=$arParams["PATH_TO_BASKET"]?>"><?echo str_replace('#NUM#', intval($arResult["NUM_PRODUCTS"]), GetMessage('YOUR_CART'))?></a>
<?
}
else
{
?>
   <a href="<?=$arParams["PATH_TO_BASKET"]?>"><?echo GetMessage('YOUR_CART_EMPTY')?></a>
<?
}
?>



</div>

Подскажите пожалуйста как вывести и общую сумму - allSum

С ув. Александр Дементьев
ответил 13 Апр, 15 от Odwin (420 баллов)

Похожие вопросы

0 голосов
1 ответ
спросил 20 Авг, 13 от Maxag (220 баллов)
0 голосов
1 ответ
спросил 23 Дек, 13 от Lisica (900 баллов)
0 голосов
1 ответ
0 голосов
2 ответов
0 голосов
1 ответ
спросил 23 Июль, 15 от levshaszr (200 баллов)