Інтеграція МойСклад із сайтом
При ручному веденні каталогу та замовлень у двох системах неминучі розбіжності. Товар закінчився на складі, але на сайті залишається в продажу — клієнти оформлюють повернення. Або менеджер вносить зміну ціни в МойСклад, забуваючи оновити на сайті. Інтеграція через 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 товарів потрібно використовувати пагінацію та кешування.
- Відсутність обробки помилок: якщо API тимчасово недоступний, замовлення можуть загубитися. Ми використовуємо чергу з повторними спробами.
Процес роботи
- Аналіз — вивчаємо ваш каталог, склади, сценарії обробки замовлень. Фіксуємо поточні проблеми.
- Проєктування — обираємо схему синхронізації (одностороння / двостороння), визначаємо періодичність, налаштовуємо маппінг полів.
- Реалізація — пишемо інтеграційний модуль на PHP (Laravel). Підключаємо REST API, webhooks, обробку помилок.
- Тестування — перевіряємо синхронізацію на тестовому каталозі, імітуємо замовлення, звіряємо залишки.
- Деплой — переносимо в продакшен, налаштовуємо моніторинг. Навчаємо вашу команду.
Що входить у роботу
- Документація — опис схеми інтеграції, endpoint'ів, обробки помилок.
- Доступи — налаштування токенів, webhook'ів, прав користувачів.
- Навчання — інструкція для менеджерів з роботи з синхронізованими даними.
- Підтримка — гарантія 3 місяці на виявлені баги. Консультації з розширення функціоналу.
Орієнтовний термін — від 4 до 7 днів для базового сценарію (товари, залишки, замовлення). Вартість розраховується індивідуально — залиште заявку, і ми оцінимо ваш проєкт за 1 день. Замовте інтеграцію МойСклад із вашим сайтом — позбудьтеся рутини та помилок. Зв'яжіться з нами для консультації.







