Каким образом можно правильно фильтровать доступные доставки в Битрикс?

Как получить список доступных доставок по ID города и ID товара?
  • 7 ноября 2023 г. 11:18
Ответы на вопрос 1
Для правильной фильтрации доступных доставок в Битрикс можно использовать методы API компонента "sale.delivery". 

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

Вот пример кода, позволяющий получить список доступных доставок по заданным параметрам:

```php
// Устанавливаем ID города и товара
$cityId = 123; // ID города
$productId = 456; // ID товара

// Получаем компонент "sale.delivery"
\Bitrix\Main\Loader::includeModule('sale');
$saleDelivery = new \Bitrix\Sale\Delivery\Services\Manager();

// Фильтруем доступные доставки по ID города и ID товара
$availableDeliveries = $saleDelivery->getByAllAvailableShipment($cityId);

// Проходим по каждой доступной доставке
foreach ($availableDeliveries as $delivery) {
    // Получаем ID текущей доставки
    $deliveryId = $delivery['ID'];
    
    // Определяем, доступна ли доставка для заданного товара
    $isDeliveryAvailableForProduct = $saleDelivery->isCompatible(array(), $productId, $deliveryId);
    
    if ($isDeliveryAvailableForProduct) {
        // Доставка доступна для заданного товара
        // Делаем соответствующие действия
    }
}
```

Таким образом, после выполнения данного кода, в переменной `availableDeliveries` будет содержаться массив с доступными доставками для заданного города, а в цикле `foreach` можно проводить дополнительную фильтрацию и выполнять необходимые действия для каждой доступной доставки.
Похожие вопросы