Интеграция МойСклад с сайтом
При ручном ведении каталога и заказов в двух системах неизбежны расхождения. Товар закончился на складе, но на сайте остаётся в продаже — клиенты оформляют возвраты. Или менеджер вносит изменение цены в МойСклад, забывая обновить на сайте. Интеграция через REST API решает эти проблемы: данные актуальны в реальном времени, заказы передаются автоматически, статусы обновляются через webhooks. Мы настроим двусторонний обмен между вашим сайтом и МойСклад за 4–7 дней. За это время вы исключите ручной ввод, ошибки и задержки. Типичный клиент с каталогом 1000 товаров экономит около 40 000 ₽ в месяц после интеграции, а потери от ошибок в остатках снижаются с 15 000–25 000 ₽ до почти нуля. Наша команда имеет 5+ лет опыта и реализовала 30+ интеграций с МойСклад для интернет-магазинов с каталогами от 500 до 50 000 товаров. Оцените эффективность на своём проекте — свяжитесь с нами для консультации.
Проблемы, которые решает интеграция
Ручная синхронизация товаров и заказов между сайтом и складской системой — источник ошибок и задержек. Типичные проблемы:
- Ошибки в остатках — товар числится в наличии, а по факту его нет. Клиенты оформляют заказы, которые невозможно выполнить. По статистике, такие ситуации возникают в 5–10% заказов.
- Дублирование данных — товар заведён и в МойСклад, и в админке сайта. При изменении цены нужно править в двух местах, что занимает до 30 минут в день.
- Потеря заказов — заказ создан на сайте, но не попал в МойСклад. Менеджеры не видят его и не обрабатывают. В среднем теряется 1–3% заказов.
- Задержки в обновлении статусов — клиент не получает уведомление об отгрузке, растёт количество вопросов в поддержку. Сокращение времени обновления с часов до минут снижает нагрузку на support на 40%.
Интеграция устраняет эти проблемы: данные актуальны в реальном времени, заказы передаются автоматически.
Почему REST API МойСклад — оптимальный выбор?
МойСклад предоставляет REST API (JSON API 1.2) с Bearer-аутентификацией. Это современный, стабильный протокол, который поддерживает все необходимые операции: товары, остатки, заказы, контрагенты, документы. В отличие от устаревших SOAP-интеграций, REST API быстрее, проще в отладке и не требует сложных схем. Среднее время ответа API — 100–300 мс, что позволяет обновлять каталог из 10 000 товаров за 5–10 минут.
Базовый URL: https://api.moysklad.ru/api/remap/1.2/. Авторизация — Personal Access Token:
$client = Http::withToken(env('MOYSKLAD_TOKEN'))
->baseUrl('https://api.moysklad.ru/api/remap/1.2/');
Как мы реализуем синхронизацию?
Синхронизация товаров
Получаем список товаров с остатками и изображениями, маппим на структуру вашего сайта. Пример запроса:
// Получить список товаров с остатками
$products = $client->get('entity/product', [
'limit' => 100,
'offset' => 0,
'expand' => 'productFolder,images'
])->json()['rows'];
foreach ($products as $p) {
Product::updateOrCreate(
['moysklad_id' => $p['id']],
[
'name' => $p['name'],
'sku' => $p['article'] ?? null,
'price' => $p['salePrices'][0]['value'] / 100, // МойСклад хранит в копейках
'category' => $p['productFolder']['name'] ?? null
]
);
}
Остатки через отчёт
Используем отчёт report/stock/all для получения актуальных остатков по всем складам:
// Остатки по складам
$stock = $client->get('report/stock/all', [
'stockMode' => 'positiveOnly'
])->json()['rows'];
foreach ($stock as $item) {
Product::where('moysklad_id', $item['meta']['href'])
->update(['stock' => $item['stock']]);
}
Создание заказа в МойСклад
При оформлении заказа на сайте создаём его в МойСклад через entity/customerorder:
$order = $client->post('entity/customerorder', [
'organization' => ['meta' => [
'href' => "https://api.moysklad.ru/api/remap/1.2/entity/organization/{$orgId}",
'type' => 'organization'
]],
'agent' => ['meta' => [
'href' => "https://api.moysklad.ru/api/remap/1.2/entity/counterparty/{$agentId}",
'type' => 'counterparty'
]],
'positions' => array_map(fn($item) => [
'quantity' => $item->quantity,
'price' => $item->unit_price, // в копейках
'assortment' => ['meta' => [
'href' => "https://api.moysklad.ru/api/remap/1.2/entity/product/{$item->moysklad_id}",
'type' => 'product'
]]
], $order->items->toArray())
])->json();
Webhook от МойСклад
Подписываемся на изменения документов. При обновлении статуса заказа (например, «Отгружен») webhook уведомляет ваш сайт:
$client->post('entity/webhook', [
'url' => 'https://yoursite.ru/webhooks/moysklad',
'action' => 'UPDATE',
'entityType' => 'customerorder'
]);
Как настроить webhook для мгновенного обновления статусов?
Webhook — наиболее эффективный способ получать уведомления об изменениях в МойСклад. При настройке укажите URL вашего сайта, который будет принимать POST-запросы. Важно обрабатывать повторные отправки: МойСклад может дублировать события при сбоях. Мы реализуем идемпотентность через проверку updatedAt. Средняя задержка доставки — 1–3 секунды.
Сравнение: интеграция через API vs ручной ввод
| Критерий | Интеграция через API | Ручной ввод |
|---|---|---|
| Время обновления остатков | 1–5 минут | Несколько часов / дней |
| Ошибки в заказах | 0.1% (из-за сбоев API) | 5–10% |
| Загрузка менеджеров | Автоматически | Полная занятость |
| Стоимость при 1000 заказов/мес | Окупается за 2 месяца | Постоянные затраты на зарплату |
Сроки этапов интеграции
| Этап | Длительность |
|---|---|
| Анализ и проектирование | 1–2 дня |
| Реализация модуля | 2–3 дня |
| Тестирование | 1–2 дня |
| Деплой и обучение | 1 день |
Типичные ошибки при интеграции
- Неверный маппинг полей (например, путаница между артикулом и ID).
- Игнорирование лимитов API: МойСклад ограничивает 1000 запросов в минуту. При каталоге >10 000 товаров нужно использовать пагинацию и кэширование.
- Отсутствие обработки ошибок: если АПИ временно недоступен, заказы могут потеряться. Мы используем очередь с повторными попытками.
Процесс работы
- Анализ — изучаем ваш каталог, склады, сценарии обработки заказов. Фиксируем текущие проблемы.
- Проектирование — выбираем схему синхронизации (односторонняя / двусторонняя), определяем периодичность, настраиваем маппинг полей.
- Реализация — пишем интеграционный модуль на PHP (Laravel). Подключаем REST API, webhooks, обработку ошибок.
- Тестирование — проверяем синхронизацию на тестовом каталоге, имитируем заказы, сверяем остатки.
- Деплой — переносим в продакшен, настраиваем мониторинг. Обучаем вашу команду.
Что входит в работу
- Документация — описание схемы интеграции, endpoint'ов, обработки ошибок.
- Доступы — настройка токенов, webhook'ов, прав пользователей.
- Обучение — инструкция для менеджеров по работе с синхронизированными данными.
- Поддержка — гарантия 3 месяца на выявленные баги. Консультации по расширению функционала.
Ориентировочный срок — от 4 до 7 дней для базового сценария (товары, остатки, заказы). Стоимость рассчитывается индивидуально — оставьте заявку, и мы оценим ваш проект за 1 день. Закажите интеграцию МойСклад с вашим сайтом — избавьтесь от рутины и ошибок. Свяжитесь с нами для консультации.







