是的,您可以使用 JavaScript 回應各種小工具事件。 請前往小工具設定中的 小工具代碼 面板,然後點擊 + 事件處理 按鈕。 這將會把事件處理程式碼加入您的小工具代碼中。
此程式碼會在不同的小工具事件發生時,將訊息記錄到主控台。
您只需根據需要將這些事件處理器替換為您自己的程式碼即可。
可用的事件如下:
- INITIALIZED — 小工具載入時觸發。
- RESOURCE_GROUP_OPENED — 在目錄中開啟群組時觸發。會傳遞參數 name 和 resourceGroupId。
- RESERVATION_STARTED — 開啟資源進行預訂時觸發。會傳遞參數 name 和 resourceId。
- RESERVATION_SAVED — 從預訂畫面移至訂單畫面時觸發。會傳遞參數 name 和 resourceId。
- INDIRECT_ORDER_STARTED — 出現支付表單且等待支付時觸發。
- ORDER_COMPLETED — 訂單成功完成時觸發。您可以自行產生事件資料(見下方說明)。如果未產生,則會傳遞包含標準欄位 orderNumber、total 和 deposit 的物件。
您可以自行產生 ORDER_COMPLETED 事件的資料。 請前往 觸發器 區段。 建立一個自動觸發器,並設定於 收到客戶訂單時 執行。 在觸發器中新增一個任務。 然後,新增 傳送資料到 JS 動作,並在 資料範本(JSON) 欄位中輸入 JSON 範本,例如:
{
"orderNumber": "[bukza_order_number]",
"total": [bukza_total],
"phone": "[bukza_phone]"
}
您可以在範本中插入任何訂單參數。
在某些情況下,您可能無法直接將帶有事件處理器的小工具代碼加入您的頁面。 例如小工具安裝在社群網站上,或您提供給客戶的是小工具的直接連結時,會出現這種情況。 在這些情境下,您可以透過內部框架直接在小工具內執行您的程式碼。
請啟用 使用內部框架處理回呼 的核取方塊:
接下來,您有兩種選擇:可以將處理程式碼放在您自己的網站並指定 頁面網址,或直接將 頁面原始碼 插入小工具中。
建議使用第一種方式,因為您的程式碼會從您自己的網域執行,並可存取瀏覽器中的使用者資料。 這讓您能夠識別使用者,對於分析系統來說非常有用。
如果您沒有網站,則可選擇第二種方式。在此情況下,所有來自小工具頁面的網址參數都會傳遞到內部框架。 例如,這對於處理直接小工具連結中的 UTM 標籤是必要的。
請在內部框架中使用下方程式碼。 當小工具事件發生時,它同樣會將訊息記錄到主控台。
<html>
<script>
window.addEventListener('message', function (e) {
if (e && e.origin && e.origin.indexOf('bukza.com') !== -1)
var message = JSON.parse(e.data);
switch (message.event) {
case 'INITIALIZED':
console.log('widget opened');
break;
case 'RESOURCE_GROUP_OPENED':
console.log('entered to group ' + message.data.name);
break;
case 'RESERVATION_STARTED':
console.log('started for ' + message.data.name);
break;
case 'RESERVATION_SAVED':
console.log('saved for ' + message.data.name);
break;
case 'INDIRECT_ORDER_STARTED':
console.log('waiting for payment');
break;
case 'ORDER_COMPLETED':
console.log('order completed #' + message.data.orderNumber);
break;
}
}, false);
</script>
</html>