דלג לתוכן הראשי

מעקב מסחר אלקטרוני

ה-SDKs של Joryio כוללים מעקב מובנה אחר מסחר אלקטרוני למעורבות במוצרים, לפעילות עגלות ולעסקאות רכישה. כלי המעקב פועל באותה צורה בכל הפלטפורמות: אותן מתודות, אותם שמות אירועים סטנדרטיים ואותה משמעות למאפיינים - רק תחביר השפה שונה.

בחרו את הפלטפורמה שלכם בכל דוגמת קוד למטה; הבחירה מסתנכרנת לאורך כל העמוד. להתקנה ותצורה, ראו את מדריכי הפלטפורמות: Web SDK, iOS SDK, Android SDK, React Native SDK. ל-React Native אין עוקב ייעודי - הלשונית שלו מציגה את קריאות ה-Joryio.track() המקבילות (ראו React Native בהמשך).

מוסכמת שמות מזהים​

Joryio משתמש במוסכמת שמות ברורה למזהים:

המזהה שלךתיאורדוגמה
productIdמזהה המוצר שלך (מק"ט, מזהה מוצר מפלטפורמת המסחר האלקטרוני שלך)"SKU-12345"
orderIdמזהה ההזמנה שלך (מספר הזמנה מהפלטפורמה שלך)"ORD-2024-001"
userIdמזהה המשתמש שלך (מועבר ל-identify())"user-123"

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

אתחול המעקב אחר מסחר אלקטרוני​

// Get the e-commerce tracker from your SDK instance
// (joryio is the instance created with `new JoryioSDK({ sdkKey: ... })`)
const ecommerce = joryio.ecommerce({
currency: 'ILS', // Default currency for all events
});

מעקב צפיות במוצרים וחיפוש​

// Track product view
ecommerce.viewProduct({
productId: 'SKU-12345',
name: 'חולצת טי כחולה קלאסית',
price: 99.99,
category: 'ביגוד',
brand: 'אופנה ישראלית',
variant: 'מידה M',
sku: 'BTS-001-M',
});

// Track category view
ecommerce.viewCategory('cat_123', 'חולצות', {
sort_by: 'popularity',
});

// Track product search
ecommerce.search('חולצות כחולות', 42);

מעקב פעילות עגלה​

// Add item to cart
ecommerce.addToCart({
productId: 'SKU-12345',
name: 'חולצת טי כחולה',
price: 99.99,
quantity: 2,
category: 'ביגוד',
}, 199.98); // Optional: current cart value

// Remove from cart
ecommerce.removeFromCart({
productId: 'SKU-12345',
name: 'חולצת טי כחולה',
price: 99.99,
}, 1); // quantity to remove

// Update cart
ecommerce.updateCart([
{ productId: 'SKU-12345', name: 'חולצה', price: 99.99, quantity: 2 },
{ productId: 'SKU-67890', name: 'מכנסיים', price: 149.99, quantity: 1 },
], 349.97);

מעקב תהליך התשלום​

// Start checkout
ecommerce.startCheckout([
{ productId: 'SKU-12345', name: 'חולצה', price: 99.99, quantity: 2 },
], 199.98);

// Add payment info
ecommerce.addPaymentInfo('credit_card', {
card_type: 'visa',
});

מעקב רכישות​

// Complete purchase
ecommerce.purchase({
orderId: 'ORD-2024-001',
items: [
{ productId: 'SKU-12345', name: 'חולצה', price: 99.99, quantity: 2, category: 'ביגוד' },
],
value: 199.98,
currency: 'ILS',
shipping: 15.00,
tax: 34.00,
discount: 20.00,
coupon: 'SAVE20',
});
חובה לספק את הפריטים

המתודה purchase() דורשת לשלוח את פריטי ההזמנה במפורש. ה-SDK לא שומר את עגלת הקניות בצד הלקוח ולא מאחזר אוטומטית את הפריטים מהעגלה שנעקבה או מצד השרת. כך מובטח דיוק, כי עמוד או מסך אישור ההזמנה יודעים בדיוק אילו פריטים נרכשו.

מעקב שינויי סטטוס הזמנה​

// Order fulfilled (shipped)
ecommerce.orderFulfilled('ORD-2024-001', '1Z999AA10123456784', 'DHL');

// Order delivered
ecommerce.orderDelivered('ORD-2024-001');

// Order cancelled
ecommerce.orderCancelled('ORD-2024-001', 'לקוח ביקש ביטול');

// Order refunded
ecommerce.orderRefunded('ORD-2024-001', 99.99, 'מוצר פגום');

מעקב רשימת משאלות ושיתוף​

// Wishlist
ecommerce.addToWishlist({ productId: 'SKU-12345', name: 'חולצה', price: 99.99 });
ecommerce.removeFromWishlist({ productId: 'SKU-12345', name: 'חולצה', price: 99.99 });

// Share product
ecommerce.shareProduct({ productId: 'SKU-12345', name: 'חולצה', price: 99.99 }, 'whatsapp');

מעקב קופונים​

// Coupon
ecommerce.applyCoupon('SAVE20', 20.00, 'percentage');
ecommerce.removeCoupon('SAVE20');

מעקב ביקורות​

// Review
ecommerce.submitReview('SKU-12345', 5, 'מוצר מעולה!');

אירועי מסחר אלקטרוני סטנדרטיים​

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

שם האירועתיאור
Product Viewedמשתמש צופה בעמוד מוצר
Product List Viewedמשתמש צופה בעמוד קטגוריה
Products Searchedמשתמש מחפש מוצרים
Product Addedפריט נוסף לעגלה
Product Removedפריט הוסר מהעגלה
Cart Updatedתוכן העגלה השתנה
Checkout Startedמשתמש מתחיל תשלום
Payment Info Enteredמשתמש מוסיף אמצעי תשלום
Order Completedהזמנה הושלמה
Order Fulfilledההזמנה נשלחה
Order Deliveredההזמנה נמסרה
Order Cancelledההזמנה בוטלה
Order Refundedההזמנה זוכתה
Product Added to Wishlistמוצר נוסף לרשימת המשאלות
Product Removed from Wishlistמוצר הוסר מרשימת המשאלות
Product Sharedמוצר שותף
Coupon Appliedקוד קופון הוחל
Coupon Removedקוד קופון הוסר
Product Reviewedביקורת מוצר נשלחה

React Native​

ה-React Native SDK לא כולל כלי ייעודי למעקב אחר מסחר אלקטרוני. אפליקציות React Native שולחות בדיוק את אותם אירועים סטנדרטיים עם Joryio.track(), עם אותם שמות אירועים ואותם שמות מאפיינים שכלי המעקב ב-SDKs האחרים שולחים (כלי המעקב ממירים את שדות ה-camelCase שהם מקבלים למאפייני אירוע ב-snake_case). הלשונית React Native בכל סעיף למעלה מציגה את קריאת ה-Joryio.track() המקבילה לכל מתודה של כלי המעקב.

כשחנות (Shopify, WooCommerce, Magento) או ה-API של ההזמנות שולחים את ההזמנות שלכם, Joryio יוצר את Order Refunded ו-Order Cancelled בעצמו - אל תקראו גם ל-orderRefunded / orderCancelled עבור ההזמנות האלה, אחרת כל החזר יירשם פעמיים. אירועי השרת משתמשים באותם מפתחות order_id, refund_amount ו-reason כמו ה-trackers, כך שתנאי מסע אחד מתאים לשניהם. ראו אירועי החזר וביטול.

ארגומנטים נדרשים​

כל tracker דוחה קריאה חסרה באותו אופן, בכל SDK: הוא רושם אזהרה ולא שולח כלום - לעולם לא אירוע עם מזהה ריק או סכום אפס, שדוח הכנסות היה סופר כאמיתי. אף קריאה לא זורקת חריגה.

קריאהנדרש
viewProduct, removeFromCart, addToWishlist, removeFromWishlistמוצר עם productId ו-price סופי
addToCartפריט עם productId ו-price סופי
shareProductמוצר כמו למעלה, ו-shareMethod
viewCategorycategoryId ו-categoryName
searchquery
cartViewed, updateCart, startCheckoutמערך items, כל פריט עם productId ו-price סופי, ו-cartValue סופי
addPaymentInfopaymentMethod
purchaseorderId, מערך items (יכול להיות ריק; כל פריט כמו למעלה) ו-value סופי
orderFulfilled, orderDelivered, orderCancelled, orderRefundedorderId
applyCoupon, removeCouponcouponCode
submitReviewproductId

מזהה או תווית ריקים, או כאלה שמכילים רק רווחים, נחשבים חסרים. סכום אופציונלי - cartValue ב-addToCart, shipping, tax ו-discount בהזמנה, refundAmount, discountAmount - אפשר להשמיט, אבל סכום שמעבירים חייב להיות מספר סופי: NaN או אינסוף דוחים את כל הקריאה, במקום לשלוח אותה בלי הסכום הזה.

מאפיינים מותאמים שאתם מעבירים לצד הקריאה כפופים לכלל הכללי: ערך NaN או אינסופי שם מושמט עם אזהרה והקריאה נשלחת בלי המפתח הזה - ראו מאפיינים וסוגי נתונים.

ב-Unity השמות ב-PascalCase (ViewProduct, ProductId); הכללים זהים.

צעדים הבאים​