1 способ устаревший, но самый простой
Добавляем следующий код в element.php (т.е. до объявления компонента) в составном компоненте catalog. Пример ссылки корень сайта/local/template/имя шаблона/components/bitrix/catalog/название нашего компонента/element.php
if (CModule::IncludeModule("sale") && CModule::IncludeModule("catalog"))
{
if (isset($_POST['id']) && isset($_POST['quantity']) && $_POST['quantity'] != '1') {
$PRODUCT_ID = intval($_POST['id']);
$QUANTITY = intval($_POST['quantity']) - 1;
Add2BasketByProductID(
$PRODUCT_ID,
$QUANTITY
);
}
else {
echo "Нет параметров ";
}
}
else {
echo "Не подключены модули";
}
В шаблоне детальной страницы добавляем либо форму, например:
<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="2" style="text-align:center;"/>
<input type="submit" name="<?echo $arParams["ACTION_VARIABLE"]."ADD2BASKET"?>" value="В корзину">
</form>
Либо любой код html и уже в js коде ссылаемся на файл обработчик где помещяем php код из начала статьи