מדריך REST API

מדריך REST API

WooAI Chatbot Pro מספק REST API מקיף לשילוב פונקציונליות צ’אטבוט, ניהול הגדרות וגישה לנתוני אנליטיקה. מדריך זה מתעד את כל נקודות הקצה הזמינות, דרישות אימות, סכמות בקשה/תגובה ודוגמאות שימוש.

שימו לב: אם אתם מקבלים שגיאות 401, בדקו קודם את ה-nonce. ב-9 מתוך 10 מקרים
זה תוסף caching ששומר nonce ישן. WP Rocket, LiteSpeed Cache – כולם.
ראו פתרון בעיות #3 לתיקון.


1. סקירת API

מבנה כתובת בסיס

כל נקודות הקצה של ה-API רשומות תחת WordPress REST API namespace:

https://your-site.com/wp-json/woo-ai/v1/{endpoint}

Namespaces

Namespace תיאור סטטוס
woo-ai/v1 Namespace ראשי של API פעיל
woo-ai-chatbot/v1 Namespace ישן לתאימות לאחור מיושן

ה-namespace הישן (woo-ai-chatbot/v1) ממשיך לעבוד עבור אינטגרציות קיימות אך יוסר בגרסה עתידית. כל המימושים החדשים צריכים להשתמש ב-woo-ai/v1.

אימות

ה-API תומך בשני דפוסי אימות בהתאם לרמת הגישה של נקודת הקצה:

נקודות קצה ציבוריות (לא דורשות אימות):
GET /public/topics – קבלת נושאים מופעלים לתצוגת widget
POST /public/topics/contextual – קבלת נושאים מסוננים לפי הקשר

נקודות קצה מוגנות דורשות אחת מהבאות:

  1. WordPress Nonce (JavaScript בצד לקוח):
    javascript fetch('/wp-json/woo-ai/v1/chat/message', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-WP-Nonce': wooAiChatbot.nonce }, body: JSON.stringify({ session_id: '...', message: '...' }) });

  2. Cookie Authentication (משתמשי WordPress מחוברים):
    אוטומטי כאשר מבצעים בקשות מאותו דומיין עם cookies תקפים של WordPress.

  3. Application Passwords (אינטגרציות חיצוניות):
    סיסמאות אפליקציה של WordPress 5.6+ לצרכנים חיצוניים של API.

הגבלת קצב בקשות

נקודות קצה של צ’אט מיישמות הגבלת קצב למניעת שימוש לרעה:

מגבלה חלון זמן היקף
30 בקשות 60 שניות לפי מזהה משתמש או כתובת IP

כאשר מגבלת הקצב נחרגת, ה-API מחזיר:

{
    "code": "rate_limit_exceeded",
    "message": "Too many requests. Please wait a moment and try again.",
    "data": { "status": 429 }
}

דרישות הרשאות

קטגוריית נקודת קצה יכולת נדרשת
Chat (ציבורי) nonce תקף בלבד
Analytics manage_woocommerce
Playbooks manage_woocommerce
Topics (admin) manage_woocommerce
RAG manage_woocommerce
License manage_options
Promotions manage_woocommerce

2. נקודות קצה של צ’אט

נקודות קצה של צ’אט מטפלות בהודעות בזמן אמת, מחזור חיים של session ופעולות עגלת WooCommerce.

POST /chat/message

שליחת הודעת משתמש לצ’אטבוט AI וקבלת תגובה.

בקשה:

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/chat/message" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{
    "session_id": "abc123-def456-ghi789",
    "message": "What products do you recommend for outdoor activities?"
  }'

פרמטרים:

פרמטר סוג חובה תיאור
session_id string כן מזהה session תקף (20-50 תווים אלפאנומריים עם מקפים)
message string כן תוכן הודעת המשתמש (עד 4000 תווים)

תגובה (200 OK):

{
    "success": true,
    "session_id": "abc123-def456-ghi789",
    "message": {
        "role": "assistant",
        "content": "I'd recommend checking out our hiking boots and camping gear collection!",
        "metadata": {
            "products": [
                {
                    "id": 123,
                    "name": "Trail Master Hiking Boots",
                    "price": "89.99",
                    "price_html": "<span class="woocommerce-Price-amount">$89.99</span>",
                    "image": "https://example.com/boots.jpg",
                    "url": "https://example.com/product/hiking-boots/",
                    "in_stock": true
                }
            ],
            "suggestions": ["View all outdoor gear", "Check delivery options"]
        }
    },
    "products": [...],
    "suggestions": [...],
    "type": "product_recommendation",
    "intent": "product_search"
}

תגובות שגיאה:

סטטוס קוד תיאור
404 invalid_session Session לא נמצא או פג תוקף
429 rate_limit_exceeded יותר מדי בקשות
500 message_processing_failed שגיאת עיבוד AI

GET /chat/session

קבלת נתוני session כולל היסטוריית שיחה והקשר.

בקשה:

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/chat/session?session_id=abc123-def456-ghi789" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה (200 OK):

{
    "success": true,
    "session": {
        "session_id": "abc123-def456-ghi789",
        "conversation_history": [
            { "role": "user", "content": "Hello" },
            { "role": "assistant", "content": "Welcome! How can I help?" }
        ],
        "context": {
            "cart": { "items": [], "total": "0.00" },
            "current_product": null,
            "recently_viewed": []
        },
        "created_at": "2024-01-15T10:30:00Z",
        "expires_at": "2024-01-15T11:30:00Z"
    }
}

POST /chat/session

יצירת session צ’אט חדש. Sessions פגי תוקף אחרי שעה כברירת מחדל.

בקשה:

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/chat/session" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{ "user_id": 42 }'

פרמטרים:

פרמטר סוג חובה תיאור
user_id integer לא מזהה משתמש WordPress (למשתמשים מחוברים)

תגובה (201 Created):

{
    "success": true,
    "session_id": "abc123-def456-ghi789",
    "expires_at": "2024-01-15T11:30:00Z"
}

DELETE /chat/session/{id}

סיום session צ’אט פעיל.

בקשה:

curl -X DELETE "https://your-site.com/wp-json/woo-ai/v1/chat/session/abc123-def456-ghi789" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה (200 OK):

{
    "success": true,
    "message": "Session ended successfully."
}

POST /chat/events

מעקב אחר אירועי אנליטיקה מ-widget הצ’אט.

בקשה:

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/chat/events" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{
    "sessionId": "abc123-def456-ghi789",
    "eventType": "product_click",
    "eventData": { "product_id": 123, "position": 1 },
    "timestamp": 1705312200000
  }'

תגובה (200 OK):

{
    "success": true,
    "message": "Event tracked successfully."
}

פעולות עגלה

POST /cart/add

הוספת מוצר לעגלת WooCommerce.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/cart/add" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{
    "product_id": 123,
    "quantity": 2,
    "variation_id": 456,
    "variation": { "attribute_color": "blue" }
  }'

GET /cart

קבלת תוכן העגלה הנוכחי.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/cart" 
  -H "X-WP-Nonce: your_nonce_here"

DELETE /cart

ניקוי העגלה כולה.

curl -X DELETE "https://your-site.com/wp-json/woo-ai/v1/cart" 
  -H "X-WP-Nonce: your_nonce_here"

DELETE /cart/item/{key}

הסרת פריט ספציפי מהעגלה.

curl -X DELETE "https://your-site.com/wp-json/woo-ai/v1/cart/item/abc123def456" 
  -H "X-WP-Nonce: your_nonce_here"

PUT /cart/item/{key}

עדכון כמות פריט בעגלה.

curl -X PUT "https://your-site.com/wp-json/woo-ai/v1/cart/item/abc123def456" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{ "quantity": 3 }'

POST /cart/coupon

הפעלת קוד קופון על העגלה.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/cart/coupon" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{ "coupon_code": "SAVE20" }'

POST /cart/checkout

קבלת כתובת checkout עם פרמטרים אופציונליים.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/cart/checkout" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{ "params": { "source": "chatbot" } }'

תגובה:

{
    "success": true,
    "checkout_url": "https://your-site.com/checkout/?source=chatbot"
}

3. נקודות קצה של אנליטיקה

נקודות קצה של אנליטיקה מספקות KPIs, מדדי ביצועים ויכולות יצוא נתונים.

GET /analytics

קבלת נתוני לוח מחוונים מלאים של אנליטיקה.

בקשה:

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/analytics?from=2024-01-01&to=2024-01-31" 
  -H "X-WP-Nonce: your_nonce_here"

פרמטרים:

פרמטר סוג חובה ברירת מחדל תיאור
from string לא 30 יום אחורה תאריך התחלה (Y-m-d או ISO 8601)
to string לא היום תאריך סיום (Y-m-d או ISO 8601)

תגובה (200 OK):

{
    "kpis": {
        "total_sessions": 1250,
        "total_messages": 4320,
        "avg_messages_per_session": 3.45,
        "conversion_rate": 8.5,
        "product_clicks": 890,
        "add_to_cart_count": 234
    },
    "topProducts": [
        {
            "id": 123,
            "name": "Premium Widget",
            "mentions": 156,
            "clicks": 89,
            "conversionRate": 12.5
        }
    ],
    "chartData": [
        { "hour": "00:00", "value": 12 },
        { "hour": "01:00", "value": 8 }
    ],
    "dateRange": {
        "from": "2024-01-01",
        "to": "2024-01-31"
    }
}

GET /analytics/summary

קבלת סיכום KPI בלבד (נקודת קצה קלילה).

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/analytics/summary?from=2024-01-01&to=2024-01-31" 
  -H "X-WP-Nonce: your_nonce_here"

GET /analytics/topics

קבלת מדדי ביצועים של נושאים.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/analytics/topics?from=2024-01-01&to=2024-01-31" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה:

{
    "topics": [
        {
            "slug": "shipping_delivery",
            "name": "Shipping & Delivery",
            "count": 342,
            "percentage": 28.5
        }
    ],
    "dateRange": { "from": "2024-01-01", "to": "2024-01-31" }
}

GET /analytics/products

קבלת מדדי ביצועים של מוצרים.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/analytics/products?from=2024-01-01&to=2024-01-31&limit=10" 
  -H "X-WP-Nonce: your_nonce_here"

פרמטרים:

פרמטר סוג ברירת מחדל טווח תיאור
limit integer 10 1-100 מספר מקסימלי של מוצרים להחזיר

GET /analytics/funnel

קבלת נתוני משפך המרה.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/analytics/funnel?from=2024-01-01&to=2024-01-31" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה:

{
    "funnel": {
        "sessions": 1250,
        "engaged_sessions": 980,
        "product_views": 654,
        "add_to_cart": 234,
        "checkouts": 156,
        "purchases": 89
    },
    "dateRange": { "from": "2024-01-01", "to": "2024-01-31" }
}

GET /analytics/hourly

קבלת התפלגות פעילות שעתית.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/analytics/hourly?from=2024-01-01&to=2024-01-31" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה:

{
    "hourly": [
        { "hour": "00:00", "count": 45 },
        { "hour": "01:00", "count": 23 }
    ],
    "raw": {
        "0": 45, "1": 23, "2": 12
    },
    "dateRange": { "from": "2024-01-01", "to": "2024-01-31" }
}

GET /analytics/queries

קבלת שאילתות משתמש מובילות.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/analytics/queries?from=2024-01-01&to=2024-01-31&limit=10" 
  -H "X-WP-Nonce: your_nonce_here"

GET /analytics/comparison

קבלת השוואה שבוע מול שבוע.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/analytics/comparison" 
  -H "X-WP-Nonce: your_nonce_here"

GET /analytics/export

יצוא נתוני אנליטיקה כ-CSV.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/analytics/export?from=2024-01-01&to=2024-01-31" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה:

{
    "csv": "date,sessions,messages,conversionsn2024-01-01,45,123,5n...",
    "filename": "analytics-2024-01-01-2024-01-31.csv",
    "mimeType": "text/csv"
}

POST /analytics/events

מעקב אחר אירוע אנליטיקה מותאם אישית.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/analytics/events" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{
    "event": "custom_action",
    "data": { "action": "feature_used", "value": "quick_reply" }
  }'

POST /analytics/cache/clear

ניקוי מטמון האנליטיקה.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/analytics/cache/clear" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה:

{
    "success": true,
    "deletedCount": 24,
    "message": "Cleared 24 cache entries."
}

4. נקודות קצה של Playbooks

Playbooks מגדירים זרימות שיחה אוטומטיות ופעולות.

GET /playbooks

רשימת כל ה-playbooks עם סינון אופציונלי.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/playbooks?status=active&per_page=20&orderby=priority&order=DESC" 
  -H "X-WP-Nonce: your_nonce_here"

פרמטרים:

פרמטר סוג ברירת מחדל תיאור
status string סינון לפי סטטוס (active, inactive)
intent string סינון לפי מזהה intent
per_page integer -1 תוצאות לעמוד (-1 לכולם)
orderby string priority שדה מיון (priority, created_at)
order string DESC כיוון מיון (ASC, DESC)

תגובה (200 OK):

{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Return Policy",
            "intent": "returns",
            "priority": 10,
            "steps": [...],
            "conditions": [...],
            "trigger": "auto",
            "status": "active",
            "created_at": "2024-01-15T10:30:00Z",
            "updated_at": "2024-01-16T14:22:00Z"
        }
    ],
    "count": 6
}

POST /playbooks

יצירת playbook חדש.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/playbooks" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{
    "name": "Shipping Information",
    "intent": "shipping_query",
    "priority": 8,
    "trigger": "auto",
    "steps": [
        {
            "id": "step_1",
            "type": "message",
            "content": "We offer free shipping on orders over $50!",
            "next_step": "step_2"
        },
        {
            "id": "step_2",
            "type": "options",
            "content": "Would you like more details?",
            "options": [
                { "label": "Delivery times", "value": "delivery" },
                { "label": "Track order", "value": "tracking" }
            ]
        }
    ],
    "conditions": [
        { "type": "cart_total", "operator": "less_than", "value": 50 }
    ]
  }'

סכמת Playbook:

שדה סוג חובה תיאור
name string כן שם תצוגה של Playbook
intent string כן מזהה Intent להפעלה
priority integer לא עדיפות ביצוע (0-100, גבוה יותר = ראשון)
steps array כן מערך של אובייקטי צעדים
conditions array לא תנאי הפעלה
trigger string לא סוג הפעלה (auto, manual)
status string לא סטטוס (active, draft)

סוגי צעדים:

סוג תיאור מאפיינים
message הצגת הודעת טקסט content, next_step
options הצגת אפשרויות בחירה content, options[]
product הצגת מוצר(ים) product_ids[]
action ביצוע פעולה actions[]

תגובה (201 Created):

{
    "success": true,
    "data": { ... },
    "message": "Playbook created successfully."
}

GET /playbooks/{id}

קבלת playbook בודד לפי מזהה.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/playbooks/1" 
  -H "X-WP-Nonce: your_nonce_here"

PUT /playbooks/{id}

עדכון playbook קיים.

curl -X PUT "https://your-site.com/wp-json/woo-ai/v1/playbooks/1" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{
    "name": "Updated Shipping Info",
    "priority": 9
  }'

DELETE /playbooks/{id}

מחיקת playbook לצמיתות.

curl -X DELETE "https://your-site.com/wp-json/woo-ai/v1/playbooks/1" 
  -H "X-WP-Nonce: your_nonce_here"

POST /playbooks/{id}/duplicate

יצירת עותק של playbook קיים.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/playbooks/1/duplicate" 
  -H "X-WP-Nonce: your_nonce_here"

POST /playbooks/{id}/toggle

החלפת סטטוס playbook בין active ל-draft.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/playbooks/1/toggle" 
  -H "X-WP-Nonce: your_nonce_here"

5. נקודות קצה של נושאים (Topics)

נושאים מקטלגים כוונות שיחה לניתוב ואנליטיקה.

נקודות קצה של מנהל (דורשות manage_woocommerce)

GET /topics

רשימת כל הנושאים.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/topics" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה:

[
    {
        "id": "shipping_delivery",
        "slug": "shipping_delivery",
        "name": "Shipping & Delivery",
        "description": "Shipping methods, delivery times, tracking",
        "icon": "truck",
        "keywords": ["shipping", "delivery", "tracking"],
        "patterns": ["when.*arrive", "track.*order"],
        "priority": 7,
        "enabled": true,
        "detection_methods": ["keyword", "intent", "context"],
        "questions": 28,
        "usage": 87
    }
]

POST /topics

יצירת נושא חדש.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/topics" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{
    "slug": "gift_wrapping",
    "name": "Gift Wrapping",
    "description": "Gift wrap options and pricing",
    "keywords": ["gift", "wrap", "wrapping", "present"],
    "patterns": ["gift.*wrap", "wrap.*present"],
    "priority": 5,
    "enabled": true,
    "detection_methods": ["keyword", "intent"]
  }'

PUT /topics/{id}

עדכון נושא קיים.

curl -X PUT "https://your-site.com/wp-json/woo-ai/v1/topics/gift_wrapping" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{
    "priority": 6,
    "enabled": true
  }'

DELETE /topics/{id}

מחיקת נושא.

curl -X DELETE "https://your-site.com/wp-json/woo-ai/v1/topics/gift_wrapping" 
  -H "X-WP-Nonce: your_nonce_here"

POST /topics/{id}/toggle

החלפת סטטוס enabled של נושא.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/topics/shipping_delivery/toggle" 
  -H "X-WP-Nonce: your_nonce_here"

נקודות קצה ציבוריות (ללא אימות)

GET /public/topics

קבלת כל הנושאים המופעלים לתצוגת widget.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/public/topics"

תגובה:

[
    {
        "id": "shipping_delivery",
        "slug": "shipping_delivery",
        "name": "Shipping & Delivery",
        "description": "Shipping methods, delivery times, tracking",
        "icon": "truck",
        "keywords": ["shipping", "delivery"],
        "sampleQuestions": ["When will it arrive?", "Track my order"],
        "enabled": true
    }
]

POST /public/topics/contextual

קבלת נושאים מסוננים לפי הקשר עמוד.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/public/topics/contextual" 
  -H "Content-Type: application/json" 
  -d '{
    "page_type": "product",
    "product_id": 123,
    "category_id": 45,
    "utm_source": "email",
    "utm_campaign": "summer_sale"
  }'

תגובה:

{
    "topics": [
        {
            "id": "product_information",
            "name": "Product Information",
            "relevance_score": 85
        },
        {
            "id": "size_fit",
            "name": "Size & Fit",
            "relevance_score": 80
        }
    ],
    "context": {
        "page_type": "product",
        "product_id": 123
    }
}

6. נקודות קצה של RAG

נקודות קצה של RAG (Retrieval-Augmented Generation) מנהלות אינדוקס מוצרים לחיפוש סמנטי.

GET /rag/status

קבלת סטטוס אינדוקס נוכחי.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/rag/status" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה:

{
    "isIndexing": false,
    "totalProducts": 1250,
    "indexedProducts": 1200,
    "vectorCount": 1200,
    "lastIndexedAt": "2024-01-15T14:30:00Z",
    "status": "completed",
    "storageBackend": "supabase"
}

POST /rag/index

התחלה או עצירה של אינדוקס מוצרים.

# התחלת אינדוקס
curl -X POST "https://your-site.com/wp-json/woo-ai/v1/rag/index" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{ "action": "start" }'

# עצירת אינדוקס
curl -X POST "https://your-site.com/wp-json/woo-ai/v1/rag/index" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{ "action": "stop" }'

DELETE /rag/index

ניקוי כל המוצרים המאונדקסים.

curl -X DELETE "https://your-site.com/wp-json/woo-ai/v1/rag/index" 
  -H "X-WP-Nonce: your_nonce_here"

POST /rag/index/product/{id}

אינדוקס מוצר בודד (שימושי לבדיקות).

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/rag/index/product/123" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה:

{
    "success": true,
    "message": "Product "Premium Widget" indexed successfully.",
    "product": {
        "id": 123,
        "name": "Premium Widget"
    }
}

POST /rag/test-connection

בדיקת חיבור למסד נתונים וקטורי של Supabase.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/rag/test-connection" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{
    "supabaseUrl": "https://your-project.supabase.co",
    "supabaseApiKey": "your-api-key",
    "supabaseTableName": "product_embeddings"
  }'

תגובה (200 OK):

{
    "success": true,
    "message": "Connected successfully! Found 1200 embeddings.",
    "stats": {
        "total_embeddings": 1200,
        "newest_embedding": "2024-01-15T14:30:00Z"
    }
}

ניהול מוצרים מוחרגים

GET /rag/excluded-products

קבלת רשימת מוצרים מוחרגים מאינדוקס.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/rag/excluded-products" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה:

[123, 456, 789]

POST /rag/excluded-products

הוספת מוצרים לרשימת ההחרגה.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/rag/excluded-products" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{ "product_ids": [123, 456] }'

DELETE /rag/excluded-products/{id}

הסרת מוצר מרשימת ההחרגה.

curl -X DELETE "https://your-site.com/wp-json/woo-ai/v1/rag/excluded-products/123" 
  -H "X-WP-Nonce: your_nonce_here"

7. נקודות קצה של רישיון

נקודות קצה של ניהול רישיון דורשות יכולת manage_options.

GET /license

קבלת סטטוס רישיון נוכחי.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/license" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה:

{
    "is_valid": true,
    "license_key": "XXXX-XXXX-XXXX-XXXX",
    "plan": "professional",
    "expires_at": "2025-01-15T00:00:00Z",
    "features": {
        "max_sessions": 10000,
        "ai_provider": "openai",
        "vector_search": true
    }
}

POST /license/activate

הפעלת מפתח רישיון.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/license/activate" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{ "license_key": "XXXX-XXXX-XXXX-XXXX" }'

תגובה (200 OK):

{
    "success": true,
    "message": "License activated successfully.",
    "data": { ... }
}

תגובת שגיאה (400):

{
    "code": "invalid_license",
    "message": "The license key is invalid or has expired.",
    "data": { "status": 400 }
}

POST /license/deactivate

ביטול הרישיון הנוכחי.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/license/deactivate" 
  -H "X-WP-Nonce: your_nonce_here"

POST /license/validate

אילוץ אימות מחדש של הרישיון הנוכחי.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/license/validate" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה:

{
    "success": true,
    "is_valid": true,
    "data": { ... }
}

8. נקודות קצה של מבצעים

ניהול מבצעי מוצרים לנראות מוגברת בתגובות צ’אט.

GET /promotions

רשימת כל המבצעים.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/promotions?active=true" 
  -H "X-WP-Nonce: your_nonce_here"

POST /promotions

יצירת מבצע חדש.

curl -X POST "https://your-site.com/wp-json/woo-ai/v1/promotions" 
  -H "Content-Type: application/json" 
  -H "X-WP-Nonce: your_nonce_here" 
  -d '{
    "name": "Summer Sale",
    "type": "manual",
    "product_ids": [123, 456, 789],
    "boost_multiplier": 2.0,
    "active": true,
    "valid_from": "2024-06-01T00:00:00Z",
    "valid_to": "2024-08-31T23:59:59Z"
  }'

GET /promotions/products

קבלת כל מזהי המוצרים המקודמים (בשימוש על ידי מערכת RAG).

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/promotions/products" 
  -H "X-WP-Nonce: your_nonce_here"

תגובה:

{
    "product_ids": [123, 456, 789, 1011],
    "count": 4
}

נקודות קצה שירות

GET /products/search

חיפוש מוצרי WooCommerce.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/products/search?search=hiking&category=outdoor&per_page=20" 
  -H "X-WP-Nonce: your_nonce_here"

GET /categories

קבלת כל קטגוריות המוצרים.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/categories" 
  -H "X-WP-Nonce: your_nonce_here"

GET /tags

קבלת כל תגיות המוצרים.

curl -X GET "https://your-site.com/wp-json/woo-ai/v1/tags" 
  -H "X-WP-Nonce: your_nonce_here"

9. טיפול בשגיאות

פורמט תגובת שגיאה

כל תגובות השגיאה עוקבות אחר פורמט סטנדרטי של WordPress REST API:

{
    "code": "error_code",
    "message": "Human-readable error message",
    "data": {
        "status": 400
    }
}

קודי שגיאה נפוצים

סטטוס HTTP קוד תיאור
400 invalid_data אימות בקשה נכשל
400 invalid_date_range טווח תאריכים חורג משנה או from > to
400 already_indexing אינדוקס RAG כבר מתבצע
400 exists משאב כבר קיים (למשל slug נושא כפול)
403 missing_nonce כותרת X-WP-Nonce לא סופקה
403 invalid_nonce אימות nonce נכשל
403 rest_forbidden למשתמש חסרה היכולת הנדרשת
404 not_found משאב לא נמצא
404 invalid_session Session צ’אט פג תוקף או לא תקף
404 product_not_found מוצר WooCommerce לא נמצא
429 rate_limit_exceeded יותר מדי בקשות
500 server_error שגיאת שרת פנימית
500 message_processing_failed שגיאת ספק AI
500 clear_failed נכשל בניקוי אינדקס RAG

טיפול בשגיאות ב-JavaScript

async function sendMessage(sessionId, message) {
    try {
        const response = await fetch('/wp-json/woo-ai/v1/chat/message', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'X-WP-Nonce': wooAiChatbot.nonce
            },
            body: JSON.stringify({ session_id: sessionId, message })
        });

        if (!response.ok) {
            const error = await response.json();

            switch (error.code) {
                case 'rate_limit_exceeded':
                    // Show rate limit message, retry after delay
                    await delay(5000);
                    return sendMessage(sessionId, message);

                case 'invalid_session':
                    // Create new session and retry
                    const newSession = await createSession();
                    return sendMessage(newSession.session_id, message);

                default:
                    throw new Error(error.message);
            }
        }

        return await response.json();
    } catch (err) {
        console.error('Chat API error:', err);
        throw err;
    }
}

10. ניהול גרסאות והוצאה משימוש

היסטוריית גרסאות API

גרסה סטטוס הערות
woo-ai/v1 פעיל Namespace ראשי נוכחי
woo-ai-chatbot/v1 מיושן תמיכה לאחור, יוסר בגרסה 2.0

מדיניות הוצאה משימוש

  • נקודות קצה שהוצאו משימוש ממשיכות לעבוד לפחות 2 גרסאות מרכזיות
  • אזהרות הוצאה משימוש נרשמות במצב WP_DEBUG
  • מדריכי מיגרציה מסופקים בהערות גרסה

מיגרציה מומלצת

החליפו את ה-namespace הישן באינטגרציות שלכם:

// לפני (מיושן)
fetch('/wp-json/woo-ai-chatbot/v1/chat/message', { ... });

// אחרי (נוכחי)
fetch('/wp-json/woo-ai/v1/chat/message', { ... });

נספח: עזר מהיר

סיכום נקודות קצה של צ’אט

שיטה נקודת קצה תיאור
POST /chat/message שליחת הודעה
GET /chat/session קבלת session
POST /chat/session יצירת session
DELETE /chat/session/{id} סיום session
POST /chat/events מעקב אירוע
POST /cart/add הוספה לעגלה
GET /cart קבלת עגלה
DELETE /cart ניקוי עגלה
DELETE /cart/item/{key} הסרת פריט
PUT /cart/item/{key} עדכון כמות
POST /cart/coupon הפעלת קופון
POST /cart/checkout קבלת כתובת checkout

סיכום נקודות קצה של אנליטיקה

שיטה נקודת קצה תיאור
GET /analytics לוח מחוונים מלא
GET /analytics/summary KPIs בלבד
GET /analytics/topics מדדי נושאים
GET /analytics/products מדדי מוצרים
GET /analytics/funnel משפך המרה
GET /analytics/hourly התפלגות שעתית
GET /analytics/queries שאילתות מובילות
GET /analytics/comparison שבוע מול שבוע
GET /analytics/export יצוא CSV
POST /analytics/cache/clear ניקוי מטמון

סיכום נקודות קצה של משאבי מנהל

משאב פעולות CRUD
Playbooks GET, POST, PUT, DELETE + duplicate, toggle
Topics GET, POST, PUT, DELETE + toggle
Promotions GET, POST, PUT, DELETE + toggle
RAG status, index, test-connection, excluded-products
License status, activate, deactivate, validate