تتبع التجارة الإلكترونية
تتضمن Joryio SDKs تتبعاً مدمجاً للتجارة الإلكترونية لتفاعل المنتجات ونشاط السلة ومعاملات الشراء. يعمل المتتبع بالطريقة نفسها على كل منصة: الدوال نفسها وأسماء الأحداث القياسية نفسها ودلالات الخصائص نفسها؛ ويختلف فقط بناء اللغة.
اختر منصتك في أي مثال؛ يتزامن الاختيار في الصفحة كلها. للتثبيت والإعداد، راجع Web SDK وiOS SDK وAndroid SDK وReact Native SDK. لا يملك React Native متتبعاً مستقلاً؛ استخدم استدعاءات Joryio.track() المكافئة.
اصطلاح تسمية المعرّفات
| معرّفك | الوصف | المثال |
|---|---|---|
productId | معرّف منتجك، SKU أو معرّف من منصة التجارة | "SKU-12345" |
orderId | معرّف طلبك أو رقمه في المنصة | "ORD-2024-001" |
userId | معرّف المستخدم، يمرر إلى identify() | "user-123" |
استخدم معرّفاتك الطبيعية؛ لا تحتاج إلى بادئات خاصة.
تهيئة متتبع التجارة الإلكترونية
- Web (JS)
- iOS (Swift)
- Android (Kotlin)
- React Native
// Get the e-commerce tracker from your SDK instance
const ecommerce = joryio.ecommerce({
currency: 'USD' // Default currency for all events
});
let ecommerce = Joryio.shared.ecommerce(config: EcommerceConfig(currency: "USD"))
import io.joryio.sdk.ecommerce.*
val ecommerce = Joryio.getInstance().ecommerce(EcommerceConfig(currency = "USD"))
// React Native has no dedicated tracker. Send the standard events with Joryio.track()
// and include currency on each monetary event.
import Joryio from '@joryio/react-native-sdk';
تتبع مشاهدات المنتجات والبحث
استخدم viewProduct عند عرض صفحة منتج، وviewCategory عند عرض فئة، وsearch عند البحث. تحمل رؤية المنتج productId وname وprice ويمكنها حمل category وbrand وimageUrl وurl.
ecommerce.viewProduct({
productId: 'SKU-12345',
name: 'Classic Blue T-Shirt',
price: 29.99,
category: 'Clothing/T-Shirts',
brand: 'Acme Apparel',
imageUrl: 'https://example.com/images/blue-tshirt.jpg',
url: 'https://example.com/products/blue-tshirt'
});
ecommerce.viewCategory('tshirts', 'T-Shirts');
ecommerce.search('blue shirts', 42);
في React Native أرسل الأحداث المكافئة:
Joryio.track('Product Viewed', {
product_id: 'SKU-12345', name: 'Classic Blue T-Shirt', price: 29.99,
category: 'Clothing/T-Shirts', brand: 'Acme Apparel',
image_url: 'https://example.com/images/blue-tshirt.jpg',
url: 'https://example.com/products/blue-tshirt', currency: 'USD',
});
Joryio.track('Product List Viewed', { category_id: 'tshirts', category_name: 'T-Shirts' });
Joryio.track('Products Searched', { query: 'blue shirts', result_count: 42 });
تتبع نشاط السلة
استخدم addToCart لإضافة عنصر وremoveFromCart لإزالته وupdateCart لاستبدال السلة كلها. يمرر كل عنصر productId وname وprice وquantity، ويمكن تمرير قيمة السلة الحالية.
ecommerce.addToCart({
productId: 'SKU-12345', name: 'Classic Blue T-Shirt', price: 29.99,
quantity: 1, variantId: 'var-medium', sku: 'BTS-001-M'
}, 59.98);
ecommerce.removeFromCart({ productId: 'SKU-12345', name: 'Classic Blue T-Shirt', price: 29.99 }, 1);
ecommerce.updateCart([
{ productId: 'SKU-12345', name: 'Blue T-Shirt', price: 29.99, quantity: 2 },
{ productId: 'SKU-67890', name: 'Black Jeans', price: 49.99, quantity: 1 }
], 109.97);
في React Native استخدم Product Added وProduct Removed وCart Updated، مع خصائص wire بصيغة snake_case مثل product_id وitem_total وcart_value وcurrency.
تتبع مسار الدفع
استخدم startCheckout(items, cartValue) عندما يبدأ المستخدم الدفع، وaddPaymentInfo(paymentMethod) عندما يضيف وسيلة الدفع.
ecommerce.startCheckout([
{ productId: 'SKU-12345', name: 'Blue T-Shirt', price: 29.99, quantity: 2 },
{ productId: 'SKU-67890', name: 'Black Jeans', price: 49.99, quantity: 1 }
], 109.97);
ecommerce.addPaymentInfo('credit_card');
تكون أحداث React Native المكافئة Checkout Started وPayment Info Entered، مع items وitem_count وvalue وcurrency وpayment_method.
تتبع المشتريات
استخدم purchase() عند إتمام الطلب. مرّر رقم الطلب وبنود الطلب والقيمة والعملة، ويمكن إضافة الشحن والضريبة والخصم والقسيمة.
ecommerce.purchase({
orderId: 'ORD-2024-001',
items: [
{ productId: 'SKU-12345', name: 'Classic Blue T-Shirt', price: 29.99, quantity: 2, category: 'Clothing', brand: 'Acme' },
{ productId: 'SKU-67890', name: 'Black Jeans', price: 49.99, quantity: 1 }
],
value: 109.97, currency: 'USD', shipping: 5.99, tax: 8.80,
discount: 10.00, coupon: 'SAVE10'
});
تتطلب purchase() تمرير بنود الطلب صراحة. لا تخزن SDK حالة السلة في العميل ولا تجلب العناصر تلقائياً من السلة المتتبعة أو الخادم. يضمن ذلك الدقة لأن صفحة أو شاشة تأكيد الطلب تعرف العناصر التي اشتريت بالضبط.
في React Native أرسل Order Completed بالخصائص order_id وitems وitem_count وvalue وcurrency وshipping وtax وdiscount وcoupon.
تتبع تغييرات حالة الطلب
استخدم الدوال التالية لإرسال تغيير الحالة:
ecommerce.orderFulfilled('ORD-2024-001', '1Z999AA10123456784', 'UPS');
ecommerce.orderDelivered('ORD-2024-001');
ecommerce.orderCancelled('ORD-2024-001', 'Customer requested');
ecommerce.orderRefunded('ORD-2024-001', 29.99, 'Product defective');
تطابقها في React Native الأحداث Order Fulfilled وOrder Delivered وOrder Cancelled وOrder Refunded، مع order_id وtracking_number وcarrier وreason أو refund_amount حسب الحالة.
تتبع قائمة الرغبات والمشاركة
ecommerce.addToWishlist({ productId: 'SKU-12345', name: 'Classic Blue T-Shirt', price: 29.99 });
ecommerce.shareProduct({ productId: 'SKU-12345', name: 'Classic Blue T-Shirt' }, 'facebook');
تتوفر في iOS وAndroid أيضاً removeFromWishlist وshareProduct. في React Native استخدم Product Added to Wishlist وProduct Removed from Wishlist وProduct Shared بالخصائص product_id وname وprice وcurrency وshare_method.
تتبع القسائم
ecommerce.applyCoupon('SAVE10', 10.00, 'percentage');
ecommerce.removeCoupon('SAVE10');
في React Native استخدم Coupon Applied مع coupon_code وdiscount_amount وdiscount_type، وCoupon Removed مع coupon_code.
تتبع التقييمات
ecommerce.submitReview('SKU-12345', 5, 'Great quality shirt!');
في React Native أرسل Product Reviewed بالخصائص product_id وrating وreview_text.
أحداث التجارة الإلكترونية القياسية
| اسم الحدث | الوصف |
|---|---|
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() وبأسماء الأحداث وخصائص wire نفسها التي تطلقها متتبعات SDK الأخرى. تحوّل المتتبعات مدخلات camelCase إلى خصائص أحداث snake_case على السلك؛ وتعرض الأمثلة أعلاه استدعاءات Joryio.track() المكافئة.
الخطوات التالية
- Web SDK - التثبيت والإعداد ومرجع API الكامل.
- iOS SDK - دمج iOS SDK.
- Android SDK - دمج Android SDK.
- React Native SDK - دمج React Native SDK.
- الأحداث المخصصة - تتبع أحداث مخصصة.
- E-Commerce API - تكامل التجارة الإلكترونية من الخادم.