คู่มือการเชื่อมต่อ Web Push SDK สำหรับร้าน Shopify
ภาพรวม
คู่มือนี้อธิบายวิธีเชื่อมต่อ Web Push SDK เข้ากับร้านที่สร้างด้วย Shopify เพื่อเปิดใช้การแจ้งเตือน push ผ่านเบราว์เซอร์
ข้อกำหนดเบื้องต้น
- สิทธิ์ผู้ดูแลร้าน Shopify
- ไฟล์ Web Push SDK (webSdk.produce.min.3.3.4.js, sw.produce.min.3.3.4.js)
- ความรู้พื้นฐานในการแก้ไขธีม Shopify
ขั้นตอนการเชื่อมต่อ
เพิ่มผ่านตัวแก้ไขธีม Shopify (แนะนำ)
1. อัปโหลดไฟล์ SDK ไปยัง Shopify
- เข้าสู่ระบบแอดมิน Shopify
- ไปที่ ร้านออนไลน์ > ธีม
- คลิก การดำเนินการ ของธีมที่ใช้อยู่ แล้วเลือก แก้ไขโค้ด
- ในโฟลเดอร์ แอสเซ็ต คลิก เพิ่มแอสเซ็ตใหม่
- อัปโหลด
webSdk.produce.min.3.3.4.js(ไฟล์ SDK หลัก) - อัปโหลด
sw.produce.min.3.3.4.js(ไฟล์ Service Worker สำหรับ push) - จด URL แอสเซ็ต (เช่น
{{ 'webSdk.produce.min.3.3.4.js' | asset_url }}และ{{ 'sw.produce.min.3.3.4.js' | asset_url }})
สำคัญ:
sw.produce.min.3.3.4.jsเป็นไฟล์ Service Worker ที่จัดการข้อความ push ในพื้นหลัง ต้องกำหนด path ให้ถูกต้องเมื่อเริ่มต้น SDK
2. เพิ่มสคริปต์ SDK และเริ่มต้น SDK
- ในตัวแก้ไขธีม เปิดไฟล์
theme.liquid - เพิ่มโค้ดด้านล่างก่อนแท็ก
</head>:
<script>
(function() {
function initializeSDK() {
const visitorId = getFingerprint();
if (typeof window.MTpushInterface !== 'undefined') {
MTpushInterface.mtPush.onDisconnect(function () {
console.log("onDisconnect");
});
MTpushInterface.onMsgReceive((msgData) => {
console.log("ได้รับข้อความ push:", msgData);
});
MTpushInterface.init({
appkey: "",
user_str: visitorId,
fail(err) {
console.log("เริ่มต้น push ล้มเหลว", err);
},
success(data) {
console.log("เริ่มต้น push สำเร็จ", data);
},
webPushcallback(code, tip) {
console.log("รหัสและข้อความ", code, tip);
},
swUrl: '{{ "sw.produce.min.3.3.4.js" | asset_url }}',
});
}
}
window.MTpushInterfaceReady = initializeSDK;
})();
</script>
{{ 'webSdk.produce.min.3.3.4.js' | asset_url | script_tag }}
<script>
(function() {
function initializeSDK() {
const visitorId = getFingerprint();
if (typeof window.MTpushInterface !== 'undefined') {
MTpushInterface.mtPush.onDisconnect(function () {
console.log("onDisconnect");
});
MTpushInterface.onMsgReceive((msgData) => {
console.log("ได้รับข้อความ push:", msgData);
});
MTpushInterface.init({
appkey: "",
user_str: visitorId,
fail(err) {
console.log("เริ่มต้น push ล้มเหลว", err);
},
success(data) {
console.log("เริ่มต้น push สำเร็จ", data);
},
webPushcallback(code, tip) {
console.log("รหัสและข้อความ", code, tip);
},
swUrl: '{{ "sw.produce.min.3.3.4.js" | asset_url }}',
});
}
}
window.MTpushInterfaceReady = initializeSDK;
})();
</script>
{{ 'webSdk.produce.min.3.3.4.js' | asset_url | script_tag }}
โค้ดนี้โชว์เป็นหน้าต่างลอย
การตรวจสอบ
1. ตรวจสอบว่า SDK โหลดแล้ว
- เปิดหน้าของร้าน
- คลิกขวา > ตรวจสอบ หรือ F12
- ในคอนโซล ดูข้อความโหลด SDK
- พิมพ์
window.MTpushInterfaceเพื่อดูว่าถูกกำหนดหรือไม่
2. ทดสอบ push
- ไซต์ต้องให้บริการผ่าน HTTPS (จำเป็นสำหรับ web push)
- ตรวจสอบว่าเบราว์เซอร์แสดงคำขออนุญาต push หรือไม่ (ถ้าเปิดใช้)
3. ตรวจสอบการลงทะเบียน Service Worker
- เปิด DevTools (F12)
- ไปที่แท็บ Application
- ทางซ้าย เลือก Service Workers
- ยืนยันว่า
sw.produce.min.3.3.4.jsลงทะเบียนแล้ว - ถ้ามีข้อผิดพลาด ดูที่คอนโซล
การแก้ปัญหา
ปัญหาที่พบบ่อยและแนวทางแก้
Q1: SDK ไม่โหลด
- Path: ตรวจสอบว่า
asset_urlถูกต้อง - เครือข่าย: ตรวจสอบว่าไฟล์ JS ดาวน์โหลดได้
- แอสเซ็ต: ตรวจสอบว่าไฟล์เข้าถึงได้ในแอสเซ็ต Shopify
Q2: เริ่มต้นไม่สำเร็จ
- ลำดับ: สคริปต์ SDK ต้องรันก่อนโค้ด init
- HTTPS: Web push ใช้ได้เฉพาะกับ HTTPS
- เบราว์เซอร์: ตรวจสอบการรองรับ web push
- swUrl: ตั้งค่าให้ถูกต้อง และให้ path ไฟล์ SW เข้าถึงได้
- แอสเซ็ต: ยืนยันว่า
sw.produce.min.3.3.4.jsอัปโหลดในแอสเซ็ตแล้ว
Q4: ลงทะเบียน Service Worker ล้มเหลว
- swUrl: ใช้
{{ 'sw.produce.min.3.3.4.js' | asset_url }}สำหรับ URL ที่ถูกต้อง - การเข้าถึง: เปิด URL ของ Service Worker ในเบราว์เซอร์และยืนยันว่าไฟล์ดาวน์โหลดได้
- Application > Service Workers: ดูสถานะการลงทะเบียน
- HTTPS: Service Worker ต้องใช้ HTTPS (ยกเว้น localhost)
