Інтеграція МойСклад з веб-сайтом
МойСклад — хмарна система управління товарами, замовленнями й складом. Популярна у малого й середнього бізнесу як альтернатива 1С: простіша в налаштуванні, має зручний REST API й не вимагає локального сервера. Інтеграція дозволяє синхронізувати каталог, залишки й замовлення.
API МойСклад
МойСклад надає REST API (JSON API 1.2). Авторизація через Bearer-токен (Personal Access Token). Базовий URL: https://api.moysklad.ru/api/remap/1.2/.
$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
]
);
}
Залишки через звіт
// Залишки за складами
$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']]);
}
Створення замовлення у МойСклад
$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 від МойСклад
МойСклад підтримує webhooks при зміні документів (замовлення оновлено, відправлено). Підписка через API:
$client->post('entity/webhook', [
'url' => 'https://yoursite.ru/webhooks/moysklad',
'action' => 'UPDATE',
'entityType' => 'customerorder'
]);
Готові бібліотеки
МойСклад не має офіційного PHP-SDK, але є community-бібліотеки. Рекомендується написати тонку обертку над HTTP-клієнтом — офіційний API добре задокументований і рідко змінюється.
Час інтеграції: 4–7 днів для двосторонньої синхронізації товарів, залишків та замовлень.







