callbotagent.aiDokumentacja
v1 · Contract draft
ENPL
Otwórz panel
Zapowiedź

Dokumentacja poglądowa. Interfejs jest w trakcie udostępniania — przykłady mają charakter zapowiedzi, a finalne wartości potwierdzimy przy starcie.

Reguły sprzedaży i ograniczenia

Zasób Sales Rules steruje tym, co system może zaproponować w rozmowie: zamianę wariantu, dosprzedaż (upsell), sprzedaż komplementarną (cross-sell) oraz ograniczenia ilości i ceny. Regułę identyfikujesz swoim external_rule_id, więc upsert jest idempotentny.

Base URL: https://api.callbotagent.ai/api/v1/commerce. Żądania podpisujesz HMAC (X-CBA-Key-Id, X-CBA-Timestamp, X-CBA-Signature); mutacje dodają Idempotency-Key.

Model reguły

Pole Typ Opis
external_rule_id string Twój identyfikator reguły (klucz upsertu).
rule_type enum substitution | upsell | cross_sell | quantity_limit | price_constraint.
priority integer Kolejność stosowania, gdy pasuje więcej niż jedna reguła (wyższy = wcześniej).
applies_to object Zakres: category, external_product_id lub external_variant_id.
action object Efekt reguły, np. suggest_variant, min_quantity, max_quantity, price_floor.
enabled boolean Czy reguła jest aktywna.

Reguły wskazują produkty i warianty po Twoich identyfikatorach z zasobu ./products.md. Zarchiwizowany produkt automatycznie wyłącza powiązane reguły.

Operacje

PUT /sales-rules/{externalRuleId}

Idempotentny upsert reguły. Scope rules:write.

curl -X PUT https://api.callbotagent.ai/api/v1/commerce/sales-rules/RULE-UPSELL-01 \
  -H "X-CBA-Key-Id: cba_test_••••••••" \
  -H "X-CBA-Timestamp: 2026-07-10T12:34:56Z" \
  -H "X-CBA-Signature: v1=9f8c2a...e41" \
  -H "Idempotency-Key: rule-upsell-01-01" \
  -H "Content-Type: application/json" \
  -d '{
    "external_rule_id": "RULE-UPSELL-01", "rule_type": "upsell", "priority": 10,
    "applies_to": { "category": "sieci/routery" },
    "action": { "suggest_variant": "SKU-ROUTER-01-PRO", "max_quantity": 3 },
    "enabled": true
  }'
# 200 OK → { "external_rule_id": "RULE-UPSELL-01", "outcome": "upserted", "enabled": true }

GET /sales-rules

Lista z paginacją opaque cursor (?cursor=…&limit=50, maks. 200) i filtrem rule_type. Scope rules:read.

GET /sales-rules/{externalRuleId}

Zwraca pojedynczą regułę; brak zasobu → 404 resource_not_found.

DELETE /sales-rules/{externalRuleId}

Archiwizacja, nigdy hard delete. Reguła zostaje oznaczona jako nieaktywna i przestaje być stosowana, ale pozostaje w historii. Operacja jest idempotentna.

Reguły partnera zawężają ofertę, ale nie mogą poluzować polityki właściciela konta ani ograniczeń zgodności — pełna hierarchia w ./qualification-scheduling.md.