שמירת חבר

יוצר או מעדכן רשומות חברים. ה-API קובע אם ליצור או לעדכן על סמך ה-member_id.

פרמטרים

  • members array חובה

    מערך של אובייקטי Member לשמירה. מקסימום מומלץ: 1000 פריטים לבקשה לביצועים מיטביים. ה-API מחלק את הפריטים לאצוות לעיבוד באופן אוטומטי. כל פריט חייב לכלול את facility_id (חובה אם לא משתמשים ב-linking_identifier) או את linking_identifier (חובה אם לא משתמשים ב-facility_id).

    כשחבר כולל access_time_windows, הוא חייב לכלול גם access_time_windows_revision. המערך הוא תמונת מצב מלאה של המקור, ולא תיקון חלקי. השמיטו אותו כדי לשמור על תמונת המצב הקיימת, או שלחו [] עם גרסה חדשה יותר כדי לשלול את כל החלונות ששייכים למקור. קראו את המדריך ל-Access Time Windows לפני הפעלת שדה זה.

ערך מוחזר

מחזיר הודעה פשוטה שמאשרת את פעולת הסנכרון.

שדות הפרופיל של החבר נשארים פעולות upsert רגילות, גם כשתמונת מצב של חלונות מדווחת כשליחה חוזרת אידמפוטנטית או כדילוג על נתונים ישנים. אין לשלוח שוב ללא שינוי תמונת מצב מתנגשת (אותה גרסה/מטען שונה); בצעו התאמה מול מצב המקור ושלחו גרסה חדשה יותר.

בקשה

curl -X POST https://partner-api.performancehub.co/partner/v1/members \
  -u sk_live_YOUR_PARTNER_SECRET_KEY: \
  -H "Content-Type: application/json" \
  -d '{
    "members": [
      {
        "member_id": "member_11111",
        "facility_id": "550e8400-e29b-41d4-a716-446655440000",
        // "linking_identifier": "branch_downtown",  // If using linking identifier
        "first_name": "John",
        "last_name": "Smith",
        "email": "john.smith@example.com",
        "mobile_phone": "+61 412 345 678",
        "date_of_birth": "1985-06-15",
        "gender": "male",
        "type": "member",
        "tags": ["vip", "personal-training"],
        "profile_picture": "/9j/4AAQSkZJRgABAQAAAQ...",
        "membership_status": "current",
        "created": "2024-01-15T10:30:00Z",
        "updated": "2024-01-20T14:45:00Z",
        "access_time_windows_revision": 1842,
        "access_time_windows": [
          {
            "external_id": "access-4b1782",
            "kind": "absolute",
            "from": 1792053000,
            "to": 1792058400,
            "timezone": "Australia/Perth",
            "scope_key": "after_hours_entry",
            "label": "Temporary site access"
          }
        ],
        "address": {
          "address_line_1": "456 Bourke Street",
          "address_line_2": "Apt 12",
          "city": "Melbourne",
          "state": "VIC",
          "postal_code": "3000",
          "country": "AU",
          "country_name": "Australia"
        },
        "membership_plans": [
          {
            "membership_plan_id": "plan_99999",
            "name": "Unlimited Monthly",
            "start_date": "2024-01-01T00:00:00Z",
            "status": "current",
            "is_current": true,
            "end_date": null
          }
        ]
      }
    ]
  }'

תגובה

מחזיר הודעת הצלחה עם מטא-נתונים על פעולת הסנכרון.

{
  "message": "Member sync successful.",
  "metadata": {
    "success": 245,
    "skipped": 5,
    "skipped_items": [
      {
        "member_id": "member_123",
        "facility_id": null,
        "reason": "Facility integration is disabled in facility-partner-config"
      }
    ]
  }
}

שדות המטא-נתונים:

  • success - מספר החברים שעובדו בהצלחה
  • skipped - מספר החברים שדולגו (אם יש)
  • skipped_items - מערך של החברים שדולגו, עם הסיבות (אם יש)
  • dry-run - דגל בוליאני אם נעשה שימוש במפתח מסוג dryrun (אם רלוונטי)