Інтеграція Wix з зовнішніми сервісами через API
Wix — закрита платформа — не можна додати довільний серверний код або змінити інфраструктуру. Інтеграції будуються через два механізми: Velo (раніше Corvid) — вбудоване JavaScript-середовище виконання на основі Node.js, і Wix Headless API — REST/GraphQL API для роботи з даними веб-сайту зовні.
Velo: серверний код всередині Wix
Velo дозволяє писати серверні функції (jsw-файли), які виконуються на серверах Wix і можуть звертатися до зовнішніх API:
// backend/crmIntegration.jsw
import { fetch } from 'wix-fetch';
import { getSecret } from 'wix-secrets-backend';
export async function syncContactToCRM(contactData) {
const apiKey = await getSecret('CRM_API_KEY');
const response = await fetch('https://api.yourcrm.com/v1/contacts', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: contactData.email,
name: contactData.name,
phone: contactData.phone,
source: 'wix_website',
}),
});
if (!response.ok) {
throw new Error(`CRM sync failed: ${response.status}`);
}
return response.json();
}
Ключі зберігаються в wix-secrets-backend — вбудованому сховищі секретів, не в коді. Функції jsw викликаються з фронтенду через import:
// Клієнтський код сторінки
import { syncContactToCRM } from 'backend/crmIntegration';
$w('#submitButton').onClick(async () => {
try {
await syncContactToCRM({
email: $w('#emailInput').value,
name: $w('#nameInput').value,
phone: $w('#phoneInput').value,
});
$w('#successMessage').show();
} catch (err) {
console.error('Sync error:', err);
}
});
Wix Automations + HTTP запити
Без Velo, для простих сценаріїв: Wix Automations (триггери на події форми, замовлення, реєстрацію) підтримують дію "HTTP request". Дозволяє надіслати POST/GET на зовнішній URL при наступленні події. Це zero-code варіант для відправлення в CRM, Zapier або n8n.
Обмеження: немає обробки відповіді, немає умовної логіки, немає повторних спроб при помилці.
Wix Headless API: робота з даними веб-сайту ззовні
Wix надає REST API для доступу до колекцій даних, замовлень, контактів. Аутентифікація через OAuth 2.0:
# Отримання токена
curl -X POST https://www.wixapis.com/oauth2/token \
-H "Content-Type: application/json" \
-d '{
"clientId": "YOUR_CLIENT_ID",
"clientSecret": "YOUR_CLIENT_SECRET",
"grantType": "client_credentials"
}'
// Читання колекції даних через API
$response = Http::withToken($accessToken)
->post('https://www.wixapis.com/wix-data/v2/items/query', [
'dataCollectionId' => 'Products',
'query' => [
'filter' => ['active' => true],
'sort' => [['fieldName' => 'createdDate', 'order' => 'DESC']],
'paging' => ['limit' => 50],
],
]);
$items = $response->json('dataItems');
Типовий кейс: зовнішня CRM або ERP читає замовлення з Wix для обробки, або записує дані у кастомні колекції веб-сайту.
Webhooks з Wix
Wix підтримує вихідні webhooks для подій: новий контакт, нове замовлення, зміна статусу замовлення. Налаштування в панелі розробника (Wix Developers → Webhooks). При наступленні події Wix надсилає POST на зазначений URL.
Верифікація підпису — через JWT з публічним ключем Wix:
import { verify } from 'jsonwebtoken';
import jwksClient from 'jwks-rsa';
const client = jwksClient({
jwksUri: 'https://www.wix.com/.well-known/jwks.json',
});
async function verifyWixWebhook(token) {
const decoded = verify(token, async (header, cb) => {
const key = await client.getSigningKey(header.kid);
cb(null, key.getPublicKey());
});
return decoded;
}
Обмеження платформи
Velo має обмеження за часом виконання функцій (близько 14 секунд) і обсягом пам'яті. Для довгих операцій (масовий експорт, синхронізація великого каталогу) потрібен зовнішній сервіс, який Wix викликає через webhook, а не навпаки.
Також немає можливості встановити npm-пакети довільно — тільки список одобрених Wix пакетів. Список доступний у редакторі Velo.
Типові інтеграції
- Відправлення лідів з Wix-форм у amoCRM/Bitrix24 через jsw-функцію
- Синхронізація товарів Wix Store з зовнішною обліковою системою через Headless API
- Сповіщення про нові замовлення в Telegram/Slack через Automations → HTTP request
Налаштування простої односторонньої інтеграції (форма → CRM) займає 2–4 години. Двостороння синхронізація каталогу або замовлень через Headless API — 1–3 робочих дні.







