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

Добавление нескольких товаров в корзину

00 голосов
7
Проблема в следющем
Код
<form action="<?=POST_FORM_ACTION_URI?>" method="post">
                <input type="hidden" name="<?echo $arParams["ACTION_VARIABLE"]?>" value="ADD2BASKET">
      <input type="hidden" name="<?echo $arParams["PRODUCT_ID_VARIABLE"]?>" value="<?echo $arResult["ID"]?>">
                <input id="quantity" name="<?=$arParams["PRODUCT_QUANTITY_VARIABLE"]?>" type="text" size="3" value="1" style="text-align:center;"/>
                    <input type="submit" name="<?echo $arParams["ACTION_VARIABLE"]."ADD2BASKET"?>" value="<?echo GetMessage("CATALOG_BUY")?>">
               </form>

При нажатии на кнопку "купить" в корзину добавляетс только один товар, независимо от указанного количества.
print_r($_POST); перед вызовом компонента выдает пустой массив..
если передавать данные формы через get, то поля id и action пропадают..

делаю все через стандартный компонент catalog. Не работают ни на странице элемента, ни на странице со списком товаров
спросил 05 Июль, 13 от dQ (180 баллов)

7 Ответы

00 голосов
Цитата
Alexandr Fedorof пишет:
При нажатии на кнопку "купить" в корзину добавляетс только один товар, независимо от указанного количества.
print_r($_POST); перед вызовом компонента выдает пустой массив..
если передавать данные формы через get, то поля id и action пропадают..

делаю все через стандартный компонент catalog. Не работают ни на странице элемента, ни на странице со списком товаров


на что надо обратить внимание
в компоненте может стоять редирект (LocalRedirect)
при этом компонент отрабатывает лишь один товар и делает редирект
в связи с чем вы не видите уже POST
ответил 05 Июль, 13 от jenia (1,500 баллов)
00 голосов
точнее даже не в компоненте catalog
а в одном из компонентов, в котором происходит обработка добавления товара
ответил 16 Авг, 13 от jenia (1,500 баллов)
00 голосов
а что касается количества - затрудняюсь сейчас сказать - надо посмотреть компонент
ответил 15 Ноя, 13 от jenia (1,500 баллов)
00 голосов
Цитата
Алексей Коваленко пишет:
на что надо обратить внимание
в компоненте может стоять редирект (LocalRedirect)
при этом компонент отрабатывает лишь один товар и делает редирект
в связи с чем вы не видите уже POST


Да, редирект в компоненте есть.. даже 2 - один на корзину (если товар покупается) и второй на эту же страницу (если товар просто добавляется в корзину) оба редиректа должны выполняться после ф-ции Add2BasketByProductID($productID, $QUANTITY, $product_properties)

Код
if(!$strError && Add2BasketByProductID($productID, $QUANTITY, $product_properties))
         {            
            if ($action == "BUY")
               LocalRedirect($arParams["BASKET_URL"]);
            else
               LocalRedirect($APPLICATION->GetCurPageParam("", array($arParams["PRODUCT_ID_VARIABLE"], $arParams["ACTION_VARIABLE"])));
         }
         else
         {
            if ($ex = $GLOBALS["APPLICATION"]->GetException())
               $strError = $ex->GetString();
            else
               $strError = GetMessage("CATALOG_ERROR2BASKET").".";
         }

Но даже закомментировав оба редиректа, в $_POST пусто.. других вызывов этой ф-ции в компоненте нету..
ответил 24 Фев, 14 от dQ (180 баллов)
00 голосов
Может на странице или в шаблонах используется ещё какой-то компонент, который первый обрабатывает покупку. Соотв, до вашего закомментированного кода не доходит....
ответил 15 Июнь, 14 от sickmind (4,660 баллов)
00 голосов
Цитата
Александр Черкасов пишет:
Может на странице или в шаблонах используется ещё какой-то компонент, который первый обрабатывает покупку. Соотв, до вашего закомментированного кода не доходит....

Alexandr Fedorof, проверьте на всякий случай предположение Александра
если это так, то это может быть и причиной потери количества
ответил 14 Окт, 14 от jenia (1,500 баллов)
00 голосов
На странце кроме каталога есть только цепочка навигации.. В шаблоне каталога тоже ничего не подключается дополнительно..
Всем спасибо за помощь!

В итоге забил на использование стандартных возможностей покупки: убрал параметр "action" в запросе, и отдельно поставил добавление в корзину ф-цией Add2BasketByProductID(), т.к. разбираться дальше нет времени.
ответил 14 Фев, 15 от dQ (180 баллов)

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

0 голосов
1 ответ
0 голосов
0 ответов
0 голосов
2 ответов
0 голосов
3 ответов
0 голосов
1 ответ
спросил 14 Июль, 13 от vlastelin (120 баллов)