Как добавить чекбокс в корзине в Битрикс и передать его значение в заказе?

Как мне правильно получить и сохранить значение чекбокса товара в заказе? Я пробовал различные подходы, такие как добавление свойств к товару и изменение шаблона корзины, но все равно не могу корректно получить значение чекбокса (checked или нет). Может быть, кто-то сталкивался с подобной задачей и может поделиться опытом?
  • 17 июня 2024 г. 8:11
Ответы на вопрос 1
Для добавления чекбокса в корзину в Битрикс и передачи его значения в заказ, вам нужно внести некоторые изменения в файл шаблона корзины и файл обработчика отправки заказа.

1. В файле шаблона корзины (например, /bitrix/templates/your_template/components/bitrix/sale.basket.basket/main/template.php) добавьте следующий код перед кнопкой "Оформить заказ":
```html
<input type="checkbox" name="your_checkbox_name" value="1" /> Ваш текст для чекбокса
```

2. В файле обработчика отправки заказа (например, /bitrix/templates/your_template/components/bitrix/sale.order.ajax/main/ajax.php) добавьте следующий код для сохранения значения чекбокса в заказе:
```php
$checkboxValue = isset($_POST['your_checkbox_name']) ? 'Да' : 'Нет';
// Сохранение значения чекбокса в свойство заказа
CSaleOrderPropsValue::Add(array(
    'ORDER_ID' => $orderId, // ID заказа
    'ORDER_PROPS_ID' => $yourOrderPropertyId, // ID свойства заказа, куда нужно сохранить значение чекбокса
    'NAME' => 'Название свойства', // Название свойства
    'CODE' => 'название_свойства', // Код свойства
    'VALUE' => $checkboxValue, // Значение чекбокса
));
```

Где:
- `your_checkbox_name` - имя чекбокса, которое вы указали в шаблоне корзины
- `yourOrderPropertyId` - ID свойства заказа, куда вы хотите сохранить значение чекбокса (его можно найти в административной части Битрикса)
- `Название свойства` и `название_свойства` - название и код свойства, которое будет отображаться в заказе

После выполнения этих шагов, значение чекбокса будет сохранено в заказе и вы сможете его просмотреть в административной части Битрикса.
Похожие вопросы