За разработчици

Разработвай с BasketBooster

Добави AI препоръки, търсене и Shop the Look към WooCommerce или собствен магазин. Документацията по-долу е написана и за хора, и за AI асистенти: прочети я сам или свържи асистента си и го остави той да напише интеграцията.

Работиш с Shopify? Нищо от това не ти трябва. Инсталирай приложението BasketBooster от Shopify App Store и то настройва всичко вътре в темата ти.

Документация за твоя AI асистент (MCP)

Claude Code, Cursor и другите асистенти с MCP поддръжка могат да се свържат директно с нашия сървър за документация. Свързаният асистент може да изброява, чете и търси във всяко ръководство за интеграция, така че заявка от рода на „добави препоръки от BasketBooster на продуктовата ми страница" получава отговор от актуалната документация, а не от паметта на модела.

Claude Code, с една команда:

terminal
claude mcp add --transport http basketbooster-docs https://api.basketbooster.eu/mcp

Cursor, добави в ~/.cursor/mcp.json:

json
{
  "mcpServers": {
    "basketbooster-docs": { "url": "https://api.basketbooster.eu/mcp" }
  }
}

Всеки друг MCP клиент, в .mcp.json на ниво проект:

json
{
  "mcpServers": {
    "basketbooster-docs": {
      "type": "http",
      "url": "https://api.basketbooster.eu/mcp"
    }
  }
}

Сървърът предоставя три инструмента: list_docs, read_doc и search_docs. Ръководствата покриват първите стъпки, вграждането на модулите, пълния API справочник, плъгина за WooCommerce, ключовете и CORS, както и плановете и плащанията. Не ти трябва акаунт или API ключ, за да се свържеш.

Пробвай да попиташ асистента си

  • „Свържи се с документацията на BasketBooster и добави модул „може да ти хареса" в продуктовия ми шаблон."
  • „Как да изпращам събития за покупка към BasketBooster от страницата си за плащане?"
  • „Синхронизирай продуктовия ми каталог с BasketBooster от Node бекенда ми."
  • „Изпращай всяка нова поръчка към BasketBooster от уебхука ми за поръчки."
  • „Защо таблото ми Impact показва нула приписан приход?"

Документация като чист текст (llms.txt)

Нямаш MCP? Всяко ръководство е публикувано и като чист markdown, индексиран на https://api.basketbooster.eu/llms.txt. Всеки файл е обикновен markdown, така че можеш да поставиш адреса в ChatGPT, Claude или редактора си и да работиш направо от него.

Интерактивен API справочник (Swagger)

Разгледай и пробвай публичното API направо в браузъра на https://api.basketbooster.eu/docs. Покрива цялата повърхност за интеграция:

Widget API

/v1/recommendations · /v1/trending · /v1/events · /v1/search · /v1/looks

Извиква се от браузъра на клиента с публичния ти pk_ ключ.

Catalog API

POST /v1/items · DELETE /v1/items/{id}

Изпраща продукти от твоя сървър със секретен API ключ.

Синхронизация на поръчки

POST /v1/orders

Изпраща всяка нова поръчка от уебхука на магазина ти, за да се учи системата от всяка продажба. Заявката е идемпотентна, така че повторните опити са безопасни.

Integration API

/integration/*

Състояние на плъгина, синхронизация на системата, обучение и настройки на модулите.

История на поръчките

POST /orders/upload

CSV импорт, който захранва „Често купувани заедно".

Суровата OpenAPI спецификация е на https://api.basketbooster.eu/openapi.json. Подай я на генератор на код или на AI асистента си.

Проследяване на реализациите и приписване

Модулите <product-recs> отчитат автоматично разглеждания на продукти (detail-page-view), показвания на препоръки (rec-impression) и кликвания по препоръки (rec-click). За тях не е нужен код в сайта ти. Те обаче не виждат бутона за количката и страницата за плащане, така че събитията за добавяне в количката и покупка трябва да идват от твоя магазин. Плъгинът за WooCommerce изпраща и двете вместо теб; при собствен магазин ги свързваш веднъж.

Добавяне в количката, извиква се от твоя обработчик, след като добавянето е успяло:

html
<script>
  ProductRecs.track('add-to-cart', {
    item_id: '123',
    user_id: 'CUSTOMER_ID',  // logged-in customer id, omit for guests
    value: 49.9,             // line value (unit price x quantity)
    currency: 'EUR'
  });
</script>

Покупки: извикай ProductRecs.track('buy', ...) веднъж за всеки ред от поръчката на страницата за потвърждение, или синхронизирай цялата поръчка от сървъра с едно извикване (препоръчително):

terminal
curl -X POST "https://api.basketbooster.eu/v1/orders" \
  -H "X-API-Key: YOUR_SECRET_KEY" -H "Content-Type: application/json" \
  -d '{
    "order_id": "ORDER_1234",
    "user_id": "cust_9",
    "session_id": "s_...",
    "currency": "EUR",
    "items": [{"item_id": "123", "quantity": 2, "price": 19.9}]
  }'

Заявката е идемпотентна по order_id, така че повторните опити са безопасни, а синхронизацията на поръчки никога не се брои срещу квотата ти.

Пази идентификатора на клиента еднакъв

Таблото Impact приписва добавяне в количката или продажба на препоръките само когато търговското събитие и по-ранно кликване или показване на препоръка носят една и съща самоличност на клиента и един и същ продуктов идентификатор, в рамките на 30 дни. Самоличността е user_id, когато го има, иначе автоматичният сесиен идентификатор на модула. Когато се изпращат и двете, user_id печели.

За влезли в профила си клиенти подавай идентификатора на клиента навсякъде: data-user-id при всяко вграждане на модул, user_id при извикванията за добавяне в количката и покупка, и user_id при POST /v1/orders. Ако модулите работят анонимно, а поръчките ти носят идентификатор на клиент, нищо не съвпада и приписването остава нула.

За анонимни клиенти модулът пази сесийния си идентификатор в localStorage["pr_sid"], а извикванията на ProductRecs.track от браузъра го поемат автоматично. За синхронизация на поръчки от сървъра препиши идентификатора в собствена бисквитка и го подай като session_id:

html
<script>
  try {
    var sid = localStorage.getItem('pr_sid');
    if (sid) document.cookie = 'pr_sid=' + encodeURIComponent(sid) +
      '; path=/; max-age=15552000; SameSite=Lax';
  } catch (e) {}
</script>

После прочети бисквитката на сървъра си (тук е показано с PHP):

php
$sid = $_COOKIE['pr_sid'] ?? '';
if (preg_match('/^s_[A-Za-z0-9]+$/', $sid)) {
    $payload['session_id'] = $sid;
}

Изпращаш поръчки от страницата за плащане? HTTP заявка „изпрати и забрави" през суров TLS сокет не работи. Ако запишеш заявката и затвориш сокета, без да прочетеш отговора, заявката се прекъсва, преди сървърът да я обработи: нищо не пристига, а ти не виждаш грешка от твоята страна. Прочети поне реда със статуса на отговора, преди да затвориш (добавя около 100 мс), или използвай нормален HTTP клиент с кратък таймаут. POST /v1/orders отговаря доста под секунда.

Вземи си ключовете

Всичко по-горе работи с данните на твоя магазин веднага щом започнеш безплатния период. Той трае 14 дни и не иска карта. Публичният ти ключ и API ключовете са в таблото.