Автонаполнение каталога товаров из API поставщиков 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Автонаполнение каталога товаров из API поставщиков 1С-Битрикс
Средний
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1321
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    914
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    810
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    709
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1043

Многие интернет-магазины на 1С-Битрикс сталкиваются с проблемой: вручную обновлять цены, остатки и карточки товаров от нескольких поставщиков — это часы рутинной работы каждый день. При этом данные быстро устаревают, а ошибки ручного ввода приводят к потерям. Мы предлагаем автоматизированное решение: интеграцию с API поставщиков, которая работает стабильно и без вашего участия. Наш опыт показывает, что грамотная синхронизация снижает нагрузку на менеджеров и повышает точность данных до 99%. Свяжитесь с нами — оценим объём работ и подберём оптимальную архитектуру для вашего проекта.

API поставщика — лучший способ получать данные: актуальность близка к реальному времени, нет рисков парсинга, можно запрашивать только изменённые позиции. Сложность в другом: каждый поставщик проектировал своё API самостоятельно, и интеграция с каждым — отдельный проект с уникальными особенностями. Мы гарантируем, что решение будет масштабируемым и легко адаптируемым под новых поставщиков.

Как устроена интеграция с API поставщиков?

Типичные архитектуры API поставщиков

  • REST JSON — наиболее распространён. Пагинация бывает через page/per_page, offset/limit или курсор (next_cursor). Важно обрабатывать все три варианта в своём клиенте.
  • SOAP/XML-RPC — встречается у старых систем. Работаем через PHP SoapClient.
  • FTP с JSON/XML-дампами — формально API, но по сути фид. Поставщик обновляет файл на FTP каждые N часов.
  • Webhook от поставщика — редкость, но идеальный вариант: поставщик сам присылает изменения.

Слой абстракции для нескольких поставщиков

Если поставщиков несколько — не пишем отдельные интеграции «как получится». Определяем единый контракт:

interface SupplierClientInterface {
    public function getProducts(int $page, int $limit): array;
    public function getProduct(string $externalId): ?array;
    public function getUpdatedSince(\DateTime $since): array;
    public function getStocks(): array;
    public function getPrices(): array;
}

Каждый поставщик реализует этот интерфейс. Оркестратор работает только с интерфейсом — добавление нового поставщика не требует изменений в логике импорта.

Инкрементальная синхронизация

Полный перебор всего каталога при каждом запуске — неэффективно для больших объёмов. Большинство API поддерживают получение изменений с момента последней синхронизации:

$lastSync = $this->getLastSyncTime($supplierId);
$changes = $client->getUpdatedSince($lastSync);

Храним время последней успешной синхронизации в Highload-блоке или в кастомной таблице. При ошибке — не обновляем время, следующий запуск повторит проблемный период.

Обработка rate limits

API поставщиков часто имеют ограничения на количество запросов: 100 req/min, 1000 req/hour. Нарушение ведёт к бана IP или временной блокировке.

Реализация rate limiter:

Пример RateLimiter ```php class RateLimiter { private int $requestsPerMinute; private array $timestamps = [];
public function throttle(): void {
    $this->timestamps[] = microtime(true);
    $this->timestamps = array_filter($this->timestamps, fn($t) => $t > microtime(true) - 60);
    if (count($this->timestamps) >= $this->requestsPerMinute) {
        $waitTime = 60 - (microtime(true) - $this->timestamps[0]);
        usleep((int)($waitTime * 1_000_000));
    }
}

}

</details>

### Что даёт единый интерфейс для работы с разными поставщиками?

Единый интерфейс `SupplierClientInterface` позволяет добавлять нового поставщика без изменения кода импорта. Это снижает время на интеграцию и уменьшает риски ошибок. В нашей практике был случай, когда клиенту потребовалось подключить трёх поставщиков электрокомпонентов — ниже описан этот опыт.

### Трансформация данных API в структуру Битрикса

API возвращает данные в своей схеме — нужен маппинг в поля инфоблока. Конфигурируемый маппинг (хранится в Highload-блоке, редактируется в административной части) позволяет менять связи полей без деплоя:

| Поле API | Поле Битрикса | Трансформация |
|----------|---------------|---------------|
| `product_name` | `NAME` | trim() |
| `sku` | `XML_ID` | as-is |
| `price_rub` | `CATALOG_PRICE_1` | float |
| `qty_available` | `CATALOG_QUANTITY` | int |
| `category_path` | `IBLOCK_SECTION_ID` | маппинг разделов |

### Кейс: интеграция с 3 поставщиками электрокомпонентов

Этот кейс из нашей практики. **Задача:** три поставщика, REST API, суммарно 85 000 SKU, обновление каждые 2 часа.

**Проблемы:**
- Поставщик А: rate limit 200 req/min, нет endpoint для инкрементальных обновлений — полная выгрузка каждый раз
- Поставщик Б: OAuth2 токены истекают через 1 час — нужен refresh-механизм
- Поставщик В: пагинация через курсор, курсор невалиден через 30 мин — нельзя прерывать

**Решение для А:** параллельный запрос к API в 3 потока, полный цикл 85 000 позиций за 35 минут.
**Решение для Б:** фоновое обновление токена за 5 минут до истечения, хранение в Redis.
**Решение для В:** синхронный последовательный обход, lock на время обхода.

**Результат:** система работает стабильно, среднее отставание данных от поставщика — 2 часа 15 минут. Это сократило время ручного обновления на 40%, сэкономив клиенту более 15 часов менеджерской работы в неделю.

### Пошаговый план интеграции

1. Анализ документации API поставщика и тестирование endpoint'ов (1-2 дня)
2. Разработка клиента API с авторизацией, пагинацией, retry (2-3 дня)
3. Настройка маппинга полей и трансформация данных (1-2 дня)
4. Реализация инкрементальной синхронизации (1 день)
5. Интеграция с Битриксом и тестирование (2-3 дня)
6. Документация и обучение ваших сотрудников (1-2 дня)
7. Поддержка после запуска (дополнительная опция)

### Что входит в работу

- Анализ документации API поставщика и тестирование endpoint'ов
- Разработка клиента API с авторизацией, пагинацией, retry
- Настройка маппинга полей и трансформация данных
- Реализация инкрементальной синхронизации
- Интеграция с Битриксом и тестирование
- Документация и обучение ваших сотрудников
- Поддержка после запуска (дополнительная опция)

### Ориентировочные сроки

| Этап | Срок |
|------|------|
| Анализ документации API, тестирование endpoint'ов | 1–2 дня |
| Разработка клиента API (авторизация, пагинация, retry) | 2–3 дня |
| Трансформация данных, маппинг полей | 1–2 дня |
| Инкрементальная синхронизация | 1 день |
| Интеграция с Битриксом, тестирование | 2–3 дня |

Итого: 7–11 рабочих дней на одного поставщика. Повторная интеграция с аналогичным API — вдвое быстрее.

Чтобы обсудить ваш проект и получить точную оценку, свяжитесь с нами. Закажите демо-версию интеграции — мы покажем, как система работает на реальных данных.