Bot uchun doʻkon maʼlumotlari
Chatdagi sunʼiy intellekt boti nafaqat bilimlar bazasi boʻyicha, balki doʻkonning jonli maʼlumotlari bilan ham javob bera oladi: buyurtma qayerda, trek raqami qanday, mahsulot mavjudmi, yetkazib berish qancha turadi, xaridni qanday qaytarish mumkin. Agar Siz ruxsat bersangiz, u toʻlanmagan buyurtmani bekor qilishi yoki qaytarish va yetkazib berishni oʻzgartirish arizasini doʻkonga topshirishi ham mumkin. Buning uchun doʻkon botga MCP (Model Context Protocol) protokoli orqali ulanadi: bot doʻkon vositalarini chaqiradi, doʻkon maʼlumotlar bilan javob beradi.
Doʻkonni istalgan tarifda ulash mumkin, bot esa chatdagi butun sunʼiy intellekt kabi pullik tarifda ishlaydi: doʻkon maʼlumotlari bilan berilgan javoblar oddiy sunʼiy intellekt javoblari kabi loyiha balansidan toʻlanadi, qarang: Toʻlov.
Ulash
Eng osoni — doʻkon uchun bizning modulimiz orqali. Modul sozlamalar saqlanganda serverni oʻzi ishga tushiradi va loyihaga ulaydi:
| Platforma | Qayerda yoqiladi |
|---|---|
| WooCommerce | WooCommerce → Settings → OneTrace.ru → AI chat bot: store MCP |
| Magento 2 | Stores → Configuration → OneTrace.ru → AI chat bot: store MCP → Connect to the chat bot |
| 1C-Bitrix | Modul sozlamalari → sayt yorligʻi → AI chat bot: store MCP bloki → Connect to the chat bot |
Modulning maxfiy kalitiga «Doʻkon MCP serverini sunʼiy intellekt botiga ulash» (chats.manage) ruxsati kerak. Kalit ruxsatlari yaratilgandan keyin oʻzgartirilmaydi: agar modul kalitida bu ruxsat boʻlmasa, API kalitlari boʻlimida avvalgi ruxsatlar va shu ruxsat bilan yangi kalit yarating hamda uni modul sozlamalarida koʻrsating. Bitta loyihaning saytlari bir marta ulanadi.
PHP yoki Laravel asosidagi oʻz doʻkoningiz PHP kutubxonasi va Laravel paketidagi tayyor server bilan ulanadi — dasturchiga faqat vositalar ishlovchilarini yozish qoladi. Doʻkonning MCP shartnomasini bajaradigan boshqa har qanday server qoʻlda ulanadi: Chatlar → Chat sozlamalari → Bot → Doʻkon (MCP) boʻlimida https://… manzilini, doʻkon bergan kirish kalitini va nomni kiriting. Vositalar, xatolar va mijozni tasdiqlash tavsiflangan shartnoma — Dasturchilar uchun boʻlimida.

Doʻkon (MCP) boʻlimida server ishlayotgani va doʻkon botga qaysi vositalarga ruxsat bergani koʻrinadi. Almashtirgich serverni vaqtincha oʻchiradi, yangilash tugmasi uni qayta tekshiradi va vositalarni qayta oʻqiydi (platforma buni sutkada bir marta oʻzi ham bajaradi).
Bot nimalar qila oladi
Botga aynan nimaga ruxsat berilishini doʻkon modul sozlamalarida hal qiladi. Sukut boʻyicha faqat oʻqish yoqilgan:
| Vosita | Bot nima qiladi |
|---|---|
| Mijoz buyurtmalari, buyurtma | mijozning buyurtmalarini topadi va buyurtma haqida aytib beradi: tarkibi, summasi, toʻlov, yetkazib berish usuli, manzil |
| Kuzatuv | yetkazib berish xizmati va trek raqamini aytadi, kuzatuv havolasini beradi |
| Mavjudlik va narxlar | mahsulotni nomi yoki artikuli boʻyicha qidiradi, u bor-yoʻqligini va qaysi variantlarda borligini aytadi |
| Yetkazib berish | yetkazib berish usullarini narxi va bepul yetkazib berish chegarasi bilan sanab beradi |
| Qaytarish shartlari | doʻkonning qaytarish shartlarini aytib beradi |
Amallar doʻkon ruxsat bermaguncha oʻchirilgan:
| Amal | Nima sodir boʻladi |
|---|---|
| Buyurtmani bekor qilish | bot hech narsa toʻlanmagan va joʻnatilmagan buyurtmani bekor qiladi |
| Qaytarish arizasi | ariza doʻkonga ketadi — buyurtmaga izoh va xodimlarga xat sifatida |
| Yetkazib berishni oʻzgartirish | yangi manzil, sana yoki vaqt haqidagi ariza doʻkonga xuddi shunday ketadi |
Vositalarning model uchun tavsiflarini doʻkon emas, platforma belgilaydi, doʻkon javoblarini esa bot koʻrsatma sifatida emas, maʼlumot sifatida qabul qiladi. Agar bot javobida doʻkon maʼlumotlarida yoʻq narxlar, muddatlar yoki vaʼdalar boʻlsa, javob tekshiruvi uni mijozga oʻtkazmaydi.
Mijozni tasdiqlash
Buyurtmalar va ular bilan amallar faqat tasdiqlangan mijozga ochiq — bot birovning buyurtmasini koʻrsatmaydi va hatto u mavjudligini ham tasdiqlamaydi. Mijozni ikki usulda tasdiqlash mumkin:
- Saytga kirish. Agar mijoz doʻkon akkauntiga kirgan boʻlsa, modul chat vidjetiga imzolangan token uzatadi — bot kim yozayotganini darhol biladi.
- Kod. Messenjerlarda va mehmonlar uchun bot doʻkonda koʻrsatilgan emailni soʻraydi, doʻkon unga 6 xonali kod yuboradi, mijoz kodni chatga yozadi. Kod 10 daqiqa amal qiladi, bitta manzilga soatiga 5 tadan ortiq kod yuborilmaydi.
Tasdiq 24 soat amal qiladi. Operator uni suhbat oynasida koʻradi: «mijoz tasdiqlandi: saytga kirgan» yoki «mijoz kod bilan tasdiqlandi». Mijoz tokeni suhbatda shifrlangan holda saqlanadi, uni na model, na operatorlar koʻradi.
Doʻkondagi amallar
Bot amalni faqat mijozning aniq roziligidan keyin bajaradi:
- Bot nima qilishini — buyurtma raqami, mahsulotlar — tushuntiradi va tasdiqlashni soʻraydi.
- Mijoz chatda rozi boʻladi, masalan: «ha, bekor qiling».
- Alohida baholash modeli mijoz aynan shu amalga rozi boʻlganini tekshiradi. Savol, ikkilanish yoki boshqa iltimos rozilik hisoblanmaydi.
- Doʻkon amalni bajaradi; xuddi shu amalni qayta chaqirish hech narsani takrorlamaydi.
Yozishmada natija bilan «Bot doʻkonda bajardi: …» qatori, loyihaning audit jurnalida esa «Botning doʻkondagi amali» yozuvi paydo boʻladi. Operator qoralamasi doʻkon maʼlumotlaridan faqat oʻqish uchun foydalanadi: amallarni operator doʻkonda oʻzi bajaradi.

Dasturchilar uchun
Agar Sizning serveringiz doʻkon MCP shartnomasining 1-versiyasini bajarsa, u ulanadi. PHP va Laravel uchun shartnoma allaqachon amalga oshirilgan: PHP kutubxonasidagi StoreMcp\Server klassi va Laravel paketidagi POST /onetrace/mcp marshruti — faqat vositalar ishlovchilarini yozish qoladi.
Transport. MCP Streamable HTTP, protokol versiyasi 2025-06-18: bitta manzil, JSON-RPC 2.0 bilan POST soʻrovlari, javob — JSON yoki bitta javobli text/event-stream oqimi. Manzil — faqat ommaviy IP dagi https://, yoʻnaltirishlarsiz. Javob 10 soniyadan uzoq va 256 KB dan katta boʻlmasligi kerak. Platforma initialize, notifications/initialized, tools/list va tools/call ni chaqiradi; Mcp-Session-Id sarlavhasi qoʻllab-quvvatlanadi, lekin majburiy emas.
Kirish. Har bir soʻrov Authorization: Bearer <kalit> ni olib keladi; kalitni doʻkon yaratadi, u kamida 32 ta tasodifiy belgidan iborat boʻladi. Kalitsiz yoki begona kalit bilan kelgan soʻrovga 401 javobi qaytadi.
Shartnoma belgisi. initialize ga javobda server capabilities.experimental["onetrace/store"] = { "version": 1 } ni eʼlon qiladi — busiz server ulanmaydi.
Vositalar. Nomlar — aynan jadvaldagidek, tools/list faqat egasi ruxsat berganlarini qaytaradi. Har birida readOnlyHint: true (oʻqish) yoki destructiveHint: true (amal) annotatsiyasi va _meta["onetrace/auth"] bor: customer — tasdiqlangan mijoz kerak, none — kerak emas. Natija — structuredContent va xuddi shu JSON matn sifatida content[0].text da. Summalar — { "amount": 1250.5, "currency": "RUB" }, sanalar — ISO 8601.
| Vosita | Ruxsat | Kirish maʼlumotlari | Natija |
|---|---|---|---|
store_start_verification |
none | contact, order |
sent, channel, destination |
store_verify |
none | contact, code |
customer_token, expires_at |
store_get_customer |
customer | — | id, email, phone, first_name |
store_find_orders |
customer | status, limit (20 tagacha) |
orders: order, created_at, status, status_label, total, items_count |
store_get_order |
customer | order |
items, total, payment, shipping, can_cancel, can_return bilan buyurtma |
store_get_tracking |
customer | order |
carrier, tracking_number, tracking_url, status, events |
store_check_availability |
none | query, sku yoki product_id |
in_stock, quantity, variants bilan products (10 tagacha) |
store_get_delivery_options |
none | country, city, postcode, total |
methods: name, price, free_from, min_days, max_days |
store_get_return_policy |
none | — | days, conditions, text, url |
store_cancel_order |
customer | order, reason |
order, status, message |
store_create_return |
customer | order, items, reason |
return_id, status, instructions |
store_change_delivery |
customer | order, address, date, time_window |
order, message |
Buyurtma holati — quyidagilardan biri: pending, processing, on_hold, shipped, delivered, completed, cancelled, refunded, failed. Boshqa mijozning buyurtmasiga, xuddi u yoʻqdek, not_found javobi qaytadi.
Mijoz. customer_token tokenini doʻkon chiqaradi va tekshiradi, muddati — 24 soatdan oshmaydi. Tasdiqlash kodini doʻkon oʻzi yuboradi va bunday mijoz bor-yoʻqligidan qatʼi nazar bir xil javob beradi; kod — 6 raqam, 10 daqiqa, 5 tagacha urinish, bitta manzilga soatiga 5 tagacha kod. Saytga kirgan mijoz uchun sahifa tokenni trekerga uzatadi: cdp.chatCustomer('…').
Chaqiruv konteksti — params._meta da: onetrace/customer_token, onetrace/language (suhbat tili), onetrace/conversation, amallarda esa yana onetrace/confirmed: true va onetrace/idempotency_key. onetrace/confirmed siz amalni server rad etadi, xuddi shu idempotentlik kaliti bilan takroriy chaqiruv amalni qayta bajarmasdan oʻsha natijani qaytaradi.
Xatolar — isError: true va structuredContent: { "error": "<kod>", "message": "<mijoz uchun matn>" }:
| Kod | Qachon |
|---|---|
auth_required |
tasdiqlangan mijoz kerak |
invalid_code |
kod notoʻgʻri yoki muddati oʻtgan |
not_found |
bunday buyurtma yoki mahsulot yoʻq |
not_allowed |
amal bu holatda mavjud emas yoki egasi tomonidan oʻchirilgan |
invalid_input |
notoʻgʻri argumentlar |
rate_limited |
soʻrovlar yoki kodlar juda koʻp |
unavailable |
doʻkondagi vaqtinchalik nosozlik |
Moduldan ulash. Modul oʻz serverini chats.manage ruxsatiga ega maxfiy kalit bilan roʻyxatdan oʻtkazadi: url, key, name, platform bilan PUT /api/v1/chat/store-mcp serverni ulaydi yoki yangilaydi, url bilan DELETE /api/v1/chat/store-mcp esa uni uzadi.