sẽ lựa chọn Shunho. Chúng tôi…">
,需要通过父级DOM结构来判断
*/
var trackActionPhone = function (node) {
var nodeInnerText = node.innerText || '';
if (!limitRegLength(nodeInnerText)) return;
var nodeText = trimText(nodeInnerText);
if (nodeText.length < 5 || nodeText.length > 20) return false;
var type =
arguments.length > 1 && arguments[1] !== undefined
? arguments[1]
: 'click';
var str = trimText(node.href || node.innerHTML || '');
if (phoneReg.test(str) && numUseReg.test(str)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
phone: nodeText,
},
}, '*');
_paq.push(['trackEvent', type, 'phone', nodeText]);
return true;
}
/** 排查父级嵌套非标签场景,并且对dom的正则校验做一个性能兜底,通过控制innerText的长度,来确保正则的性能 */
var fatherText = trimText(node.parentNode.innerText || '');
if (fatherText.length < 5 || fatherText.length > 20) return false;
var fatherDom = trimText(node.parentNode.innerHTML || '');
if (phoneReg.test(fatherDom) && numUseReg.test(fatherDom)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
phone: nodeText,
},
}, '*');
_paq.push(['trackEvent', type, 'phone', nodeText]);
return true;
}
return false;
};
window.addEventListener('click', function (e) {
var node = e.target;
/** 社媒点击 */
var appName = '';
var getAppAriaLabel =
node.ariaLabel || node.parentNode.ariaLabel || '';
if (mediaList.includes(getAppAriaLabel.toLowerCase())) {
appName = getAppAriaLabel;
}
if (
!appName &&
node.nodeName &&
node.nodeName.toLowerCase() === 'a'
) {
appName = getMediaName(node.href) || getMediaName(node.alt);
}
if (
!appName &&
node.nodeName &&
node.nodeName.toLowerCase() === 'img'
) {
appName = getMediaName(node.alt) || getMediaName(node.src);
}
if (
!appName &&
node.nodeName &&
node.nodeName.toLowerCase() === 'i'
) {
appName = getMediaName(node.className);
}
if (appName) {
_paq.push(['trackEvent', 'click', 'contactApp', appName]);
return;
}
/** 联系方式点击 */
if (trackActionPhone(node, 'click')) return;
if (node.nodeName && node.nodeName.toLowerCase() === 'a') {
var val = node.href;
if (!limitRegLength(val)) return;
if (emailReg.test(val)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: val,
},
}, '*');
_paq.push(['trackEvent', 'click', 'email', val]);
return;
}
}
if (node.nodeName && node.nodeName.toLowerCase() === 'i') {
var val = node.className;
var content = node.parentNode.href || '';
if (val.includes('email')) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: content,
},
}, '*');
_paq.push(['trackEvent', 'click', 'email', content]);
return;
}
}
var nodeChildList = node.childNodes;
for (var i = 0; i < nodeChildList.length; i++) {
if (nodeChildList[i].nodeType !== 3) continue;
var val = nodeChildList[i].textContent.replace(/\s?:?/g, '');
if (!limitRegLength(val)) continue;
if (emailReg.test(val)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: val,
},
}, '*');
_paq.push(['trackEvent', 'click', 'email', val]);
return;
}
}
trackNumberData(node);
});
window.addEventListener('copy', function (e) {
if (trackActionPhone(e.target, 'copy')) return;
var text = e.target.textContent;
if (!text) return;
var val = text.replace(/\s:?/g, '');
if (!limitRegLength(val)) return;
if (emailReg.test(val)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: val,
},
}, '*');
_paq.push(['trackEvent', 'copy', 'email', val]);
return;
}
trackNumberData(e.target);
});
}
trackContactInit();
/**
* 基于custom_inquiry_form.js 以及 form.js 对于询盘表单提交的实现,来反推询盘表单的input标签触发,用来收集意向客户
* 1. 缓存的KEY:TRACK_INPUT_ID_MTM_00;
* 2. 缓存策略 - lockTrackInput:单个页面内,10分钟内,不重复上报
*/
function trackActionInput() {
const CACHE_KEY = 'TRACK_INPUT_ID_MTM_00';
const pathName = window.location.hostname + window.location.pathname;
var lockTrackInput = function () {
try {
const lastCacheData = localStorage.getItem(CACHE_KEY);
if (!lastCacheData) return false;
const cacheData = JSON.parse(lastCacheData);
const cacheTime = cacheData[pathName];
if (!cacheTime) return false;
return Date.now() - cacheTime < 1000 * 60 * 10; // 10分钟内,不重复上报
} catch (error) {
console.error('lockTrackInput Error', error);
return false;
}
};
var setInputTrackId = function () {
try {
const curCacheData = localStorage.getItem(CACHE_KEY);
if (curCacheData) {
const cacheData = JSON.parse(curCacheData);
cacheData[pathName] = Date.now();
localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData));
return;
}
const cacheData = {
[pathName]: Date.now(),
};
localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData));
} catch (error) {
console.error('setInputTrackId Error', error);
}
};
var getInputDom = function (initDom) {
var ele = initDom;
while (ele) {
/**
* isWebSiteForm 是站点的表单
* isChatWindowForm 是聊天窗口的表单
*/
/** 旧模板表单 */
var isWebSiteForm = !!(
/crm-form/i.test(ele.className) && ele.querySelector('form')
);
/** 1:新模板自定义表单、2:Get a Quote 弹框表单 */
var isWebSiteFormNew = !!(
/inquiry/i.test(ele.className) && ele.querySelector('form')
);
if (isWebSiteForm || isWebSiteFormNew) {
_paq.push(['trackEvent', 'formInquiry', 'formInput', 'page']);
setInputTrackId();
return;
}
/** Mkt会话触达-聊天弹框的表单输入: MKT由于是iframe嵌入,所以MKT的上报,会单独写到MKT-form代码上 */
var isInquiryChatForm = !!(
/comp-form/i.test(ele.className) && ele.querySelector('form')
);
if (isInquiryChatForm) {
_paq.push(['trackEvent', 'formInquiry', 'formInput', 'chat']);
setInputTrackId();
return;
}
/** 向上查找父节点 */
ele = ele.parentNode;
}
};
function initInputListener() {
var inputUseDebounce = function (fn, delay) {
var timer = null;
var that = this;
return function () {
var args = Array.prototype.slice.call(arguments);
if (timer) clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(that, args);
}, delay);
};
};
var optimizeGetInputDom = inputUseDebounce(getInputDom, 300);
window.addEventListener('input', function (e) {
/** 如果已经上报过,则不再上报 */
if (lockTrackInput()) return;
optimizeGetInputDom(e.target);
});
}
try {
initInputListener();
} catch (error) {
console.log('initInputListener Error', error);
}
}
trackActionInput();
}
/** 第三方消息上报:目前主要是针对全点托管会话;在msgCollect/index.js中调试,访问test.html */
function thirdMsgCollect() {
/** 先检测是否是stayReal托管:如果stayReal脚本都没有,那么说明当前站点未开启stayReal会话托管 */
const scriptList = Array.prototype.slice.call(
document.querySelectorAll('script'),
);
const checkStayReal = () =>
!!scriptList.find((s) => s.src.includes('stayreal.xiaoman.cn'));
if (!checkStayReal()) return;
/** 缓存当前消息队列的最后一条消息id */
const CACHE_KEY = 'CACHE_KEY_MONITOR';
const setCache = (msgIndex) => {
/** 对缓存KEY进行base64转码处理 */
const cacheMsgIndex = btoa(msgIndex);
localStorage.setItem(CACHE_KEY, cacheMsgIndex);
};
const getCache = () => {
const cacheMsgIndex = localStorage.getItem(CACHE_KEY);
if (cacheMsgIndex) return Number(atob(cacheMsgIndex));
return -1;
};
/** 拉取最新msg列表 */
const pullMsgList = () => {
const msgEleList = Array.prototype.slice.call(
document.querySelectorAll('#chat-list li'),
);
const msgIds = [];
const msgMap = msgEleList.reduce((acc, item) => {
const sendTime = item
.querySelector('.message-data-time')
.textContent.trim();
const sendContent = item.querySelector('.message').textContent.trim();
/** msg带有class:other-message的是访客消息,my-message的是客服消息 */
const isOtherMessage = item
.querySelector('.message')
.classList.contains('other-message');
const msgId = item.querySelector('.message').getAttribute('id');
const msgItemData = {
msgId,
user: isOtherMessage ? 'visitor' : 'official',
time: sendTime,
content: sendContent,
};
msgIds.push(msgId);
acc[msgId] = msgItemData;
return acc;
}, {});
return {
ids: msgIds,
dataMap: msgMap,
};
};
/** 加密并上传消息数据 */
let ENCRYPT_KEY = 'de29f1aab63ab033';
let ENCRYPT_IV = 'b8d2badf875e76ac';
const baseUrl = 'https://cms.xiaoman.cn';
// var getEncryptConfig = function () {
// const url = baseUrl + '/shop-api/innerApi/getKeyIv'
// $.get(
// url,
// function (result) {
// console.log('result', result)
// if (Number(result.code) === 0 && result.data.key && result.data.iv) {
// ENCRYPT_KEY = result.data.key
// ENCRYPT_IV = result.data.iv
// uploadMsgData()
// } else {
// /** 如果获取失败,则重试 */
// setTimeout(() => {
// getEncryptConfig()
// }, 1000)
// }
// },
// 'json'
// )
// }
// getEncryptConfig()
const encryptMsg = function (msgData) {
const enc = new TextEncoder();
// 转字节
const keyBytes = enc.encode(ENCRYPT_KEY);
const ivBytes = enc.encode(ENCRYPT_IV);
const plainBytes = enc.encode(msgData);
// 导入密钥并加密
return crypto.subtle
.importKey('raw', keyBytes, { name: 'AES-CBC' }, false, ['encrypt'])
.then(function (cryptoKey) {
return crypto.subtle.encrypt(
{ name: 'AES-CBC', iv: ivBytes },
cryptoKey,
plainBytes,
);
})
.then(function (encryptedBuffer) {
// 转 base64 返回
return btoa(
String.fromCharCode(...new Uint8Array(encryptedBuffer)),
);
})
.catch((err) => {
return Promise.reject(err);
});
};
let uploadFlag = false;
const uploadMsgData = function () {
if (uploadFlag) return;
uploadFlag = true;
const { ids, dataMap } = pullMsgList();
let cacheMsgIndex = getCache();
const msgLen = ids.length;
if (!msgLen) {
// 消息DOM未挂载 || 消息DOM已挂载,但是消息列表为空
uploadFlag = false;
return;
}
if (msgLen - 1 < cacheMsgIndex) {
/** 针对站点挂后台一段时间,消息列表会自动塞入重复消息,导致消息有重复,刷新后又重置回正常消息列表,所以这里需要更新锚点下标 */
cacheMsgIndex = msgLen - 1;
setCache(cacheMsgIndex);
uploadFlag = false;
return;
}
if (msgLen - 1 === cacheMsgIndex) {
// 缓存的最后一次发送的消息ID是最后一条(说明当前消息均已经上报),则不跳过本地上报
uploadFlag = false;
return;
}
const currentMsgIds = ids.slice(cacheMsgIndex + 1, msgLen);
const currentMsgData = currentMsgIds.map((id) => dataMap[id]);
const mtmId = window.matomo_site_id_cookie_key || ''; // 获取mtm会话id
const msgBody = {
mtmId,
curl: window.location.href,
msgList: currentMsgData,
};
const msgBodyStr = JSON.stringify(msgBody);
encryptMsg(msgBodyStr)
.then(function (encryptedMsg) {
console.log('encryptedMsg:', encryptedMsg, msgBodyStr);
const url = baseUrl + '/shop-api/External/ListenSiteActiveStatus';
$.ajax({
type: 'POST',
url,
data: JSON.stringify({ d_v: encryptedMsg }),
contentType: 'application/json',
success: function (result) {
if (Number(result.code) === 0) {
// 更新消息队列
setCache(msgLen - 1);
}
uploadFlag = false;
},
error: function (err) {
console.error(err, '请求异常');
uploadFlag = false;
},
});
})
.catch((err) => {
console.error(err, '数据加密失败');
uploadFlag = false;
});
};
/** 监控chat-list的DOM变更 */
const initChatListObserver = () => {
// 需要监听的 DOM 节点
const target = document.getElementById('chat-list');
if (!target) return;
// 回调函数
const callback = function (mutationsList, observer) {
for (const mutation of mutationsList) {
console.log('mutation', mutation);
if (mutation.type === 'childList') {
uploadMsgData();
}
}
};
// 配置
const config = {
childList: true, // 监听子节点的增删
subtree: true, // 是否也监听后代节点
};
// 创建 observer
const observer = new MutationObserver(callback);
// 开始监听
observer.observe(target, config);
};
let testCount = 30;
let itv = null;
const checkChatDom = () => !!document.querySelector('#vc-model');
const initTalkCheck = () => {
itv = setTimeout(() => {
console.log('checkChatDom', checkChatDom(), testCount);
if (!checkChatDom() && testCount > 0) {
testCount--;
initTalkCheck();
return;
}
clearTimeout(itv);
uploadMsgData();
initChatListObserver();
}, 1500);
};
initTalkCheck();
}
try {
gtmTrack();
thirdMsgCollect();
console.log('inserted gtm code');
} catch (error) {
console.error('gtmTrack Error', error);
}
});
})();
Các doanh nghiệp cần chất lượng cao nhất TransMet® Inspire Bao bì thuốc lá Đức chuyển sang Shunho. Chúng tôi thiết kế sản phẩm một cách tỉ mỉ và sản xuất chúng theo cách đảm bảo chất lượng cao nhất. Tiêu chuẩn dịch vụ cao nhất. Những lựa chọn bao bì tốt nhất trong ngành, chúng tôi cam kết đảm bảo khách hàng của mình nhận được sản phẩm tuyệt hảo từ khâu thiết kế đến hoàn thiện. Có một số lợi ích mà bạn sẽ được hưởng từ các giải pháp đóng gói thuốc lá linh hoạt của Shunho tại thị trường Đức. Công nghệ tiên tiến, dẫn đầu trong sản xuất thẻ ngân hàng. Shunho là một trong số ít các công ty có kinh nghiệm và kiến thức để phát triển các giải pháp thanh toán tiên tiến về mặt công nghệ, chuyên biệt cho thị trường thẻ ngân hàng. Chúng tôi thực hiện việc mã hóa (tokenisation) như một nghệ thuật và tự động hóa quy trình này nhằm giúp bạn vận hành và làm việc dễ dàng hơn. Bao bì của chúng tôi thu hút cả người dùng cuối lẫn người dùng thứ cấp. Dù bạn là một nhãn hiệu nhỏ chuyên biệt hay một tập đoàn đa quốc gia, Shunho đều có thể đáp ứng nhu cầu của bạn. Chúng tôi có thể xử lý các đơn hàng với số lượng ít hay lớn tại cơ sở sản xuất của mình, nhờ năng lực sản xuất để thực hiện nhanh chóng và hiệu quả ngay cả những đơn hàng nhỏ nhất hay lớn nhất. Hãy tận dụng sự kết hợp giữa năng lực hậu cần chuỗi cung ứng và kinh nghiệm tìm nguồn chiến lược của chúng tôi nhằm đảm bảo bạn luôn dẫn đầu thị trường của mình. Việc lựa chọn độ sâu kiểu Đức cho bao bì thuốc lá từ Shunho sẽ biến chiếc hộp của bạn thành một công cụ tăng cường thương hiệu. Chúng tôi mong muốn bao bì của mình nổi bật và để lại ấn tượng lâu dài trong tâm trí người tiêu dùng ngay khi họ rời khỏi kệ hàng. Tại HangMyHat.io, chúng tôi là những người cầu toàn về chất lượng cũng như độ hoàn thiện của sản phẩm bạn đặt hàng — nhờ đó, bạn hoàn toàn yên tâm rằng sản phẩm của mình luôn được trưng bày dưới ánh sáng tốt nhất. Bao bì thuốc lá của chúng tôi theo tiêu chuẩn Đức không chỉ nâng cao hình ảnh thương hiệu của bạn mà còn khiến khách hàng hài lòng hơn và trung thành hơn. Bạn đã dành nhiều thời gian, công sức và chi phí quý báu để phát triển các sản phẩm chất lượng cao; việc đóng gói chúng trong một bao bì cao cấp sẽ giúp khách hàng nhận ra rằng bạn coi trọng không chỉ sản phẩm họ đang mua mà còn toàn bộ trải nghiệm mua sắm của họ tại cửa hàng bạn. Điều này có thể dẫn đến việc khách hàng quay lại mua hàng và truyền miệng tích cực — những yếu tố góp phần đáng kể vào việc mở rộng cơ sở khách hàng và thúc đẩy doanh số bán hàng của bạn. Bao bì thuốc lá Đức nổi tiếng nhờ chất lượng và độ chính xác cao. Bao bì được làm từ vật liệu bền, sau đó được hoàn thiện tỉ mỉ và có nhiều mẫu thiết kế cùng màu sắc để lựa chọn. Bao bì cũng thân thiện với người hút thuốc, với nắp mở dễ dàng và khóa đóng chắc chắn nhằm đảm bảo thuốc lá luôn giữ được độ tươi. Các bao thuốc lá Đức còn được biết đến vì mức độ tuân thủ (hoặc thiếu tuân thủ) các quy định của chính phủ, theo đó tất cả cảnh báo và thông điệp về sức khỏe đều phải được in rõ trên bao bì. Nhìn chung, bao thuốc lá Đức vượt trội hơn so với các sản phẩm cạnh tranh: chất lượng tốt hơn, thiết kế bắt mắt hơn và tiện lợi hơn rất nhiều. Bao bì thuốc lá Đức có tuân thủ các luật và quy định quốc tế như cảnh báo sức khỏe không? <a href="/transmet-lens-" target="_blank">thông tin</a>? TransMet® Lens </a> thông tin? 5. Đội ngũ nhân viên được đào tạo bài bản và giàu kinh nghiệm sẽ trả lời mọi thắc mắc của bạn bằng tiếng Anh lưu loát. Bạn rất được chào đón đến thăm chúng tôi! 6. Dịch vụ OEM & ODM được cung cấp: Nếu bạn có thiết kế màn hình hoặc vật liệu đóng gói riêng, chúng tôi rất hoan nghênh. Ngoài ra, chúng tôi còn có đội ngũ thiết kế chuyên nghiệp sẵn sàng hỗ trợ hiện thực hóa những ý tưởng hoàn toàn mới của thương hiệu bạn.</p> Phần lớn khách hàng của chúng tôi đến từ các công ty bao gói thuốc lá Đức danh tiếng trong số 500 công ty lớn nhất thế giới. bao bì thuốc lá Đức với 20 năm kinh nghiệm trong lĩnh vực xuất nhập khẩu. Giấy laser được sản xuất với công suất đạt khoảng 200.000 tấn mỗi năm. Đạt chứng nhận FSC, REACH, FDA 21 CFR 176.170, (bao bì thuốc lá Đức) Số 10/2011, TUV OK COMPOST HOME, có thể tái chế, ISO 9001/14001/45001, CNAS, bằng sáng chế và các chứng chỉ bảo vệ môi trường khác. Hỗ trợ tiếng Anh, tiếng Tây Ban Nha, tiếng Nhật, tiếng Hàn và các ngôn ngữ khác. Cung cấp giải pháp bao bì thuốc lá Đức từ nguyên vật liệu đến sản phẩm hoàn chỉnh.bao bì thuốc lá Đức
Tìm mua bao bì thuốc lá Đức tốt nhất cho doanh nghiệp của bạn ở đâu

Bao bì thuốc lá Đức có thể nâng tầm hình ảnh thương hiệu của bạn như thế nào

Điều gì làm cho bao bì thuốc lá Đức nổi bật so với đối thủ cạnh tranh

Các câu hỏi thường gặp về bao bì thuốc lá Đức được giải đáp
Why choose Shunho
bao bì thuốc lá Đức?
Độ mạnh của khách hàng
Sức mạnh của công ty
Chứng chỉ chất lượng
Đội tuyệt vời.
Các danh mục sản phẩm liên quan
Không tìm thấy sản phẩm bạn cần?
Yêu cầu Báo giá Ngay
Liên hệ với các chuyên viên tư vấn của chúng tôi để biết thêm các sản phẩm có sẵn.Liên hệ với chúng tôi