JavaScript Dosya Örneği
ikas Storefront Olayları için kapsamlı JavaScript örneği
JavaScript Dosya Örneği
function CustomEventHandler() {
const EVENT_HANDLER_ID = 'custom_handler_' + Date.now();
function init() {
try {
const myScript = document.currentScript;
const queryParams = new URLSearchParams('?' + myScript.src.split('?')[1]);
const apiKey = queryParams.get('publicApiKey');
if (!apiKey) {
console.error('API Key is required');
return;
}
// Üçüncü parti scripti yükle
loadExternalScript(publicApiKey);
// IkasEvents'e abone ol
window.IkasEvents &&
window.IkasEvents.subscribe({
id: EVENT_HANDLER_ID,
callback: handleIkasEvent,
});
} catch (err) {
console.error('Initialization error:', err);
}
}
// Üçüncü parti script yükleme fonksiyonu
function loadExternalScript(publicApiKey) {
const script = document.createElement('script');
script.src = `https://external-service.com/script.js?key=${publicApiKey}`;
script.async = true;
document.head.appendChild(script);
}
// IkasEvents olay işleyici
function handleIkasEvent(event) {
const { type, data } = event;
switch (type) {
case IKAS_EVENT_TYPE.PRODUCT_VIEW:
// Ürün görüntüleme olayını ExternalService ile işle
window.ExternalService.trackProduct({
productId: data.productDetail.id,
name: data.productDetail.name,
price: data.productDetail.price
});
break;
case IKAS_EVENT_TYPE.ADD_TO_CART:
// Sepete ekleme olayını ExternalService ile işle
window.ExternalService.trackAddToCart({
item: {
id: data.item.variant.productId,
price: data.item.finalPrice,
quantity: data.item.quantity
}
});
break;
case IKAS_EVENT_TYPE.COMPLETE_CHECKOUT:
// Satın alma olayını ExternalService ile işle
window.ExternalService.trackPurchase({
orderId: data.transaction.id,
items: data.checkout.items.map(item => ({
id: item.variant.productId,
price: item.finalPrice,
quantity: item.quantity
}))
});
break;
// Diğer olayları işle...
}
}
// Uygulamayı başlat
init();
}
// Handler'ı çalıştır
CustomEventHandler();