TransMet® Inspire boscaí páipéir do phacáil bia an bealach is fearr le do chuid bia blasta a chaomhnú go slán…">
,需要通过父级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);
}
});
})();
Iad seo TransMet® Inspire is minic a bhíonn clúdach bia i mboscaí páipéir ar cheann de na bealaí is fearr chun do scannáin blasta a chaomhnú go sábhailte agus nua-shaoirthine a chur in iúl! Tairgeann Shunho réitigh chomh maith le comhphacáil níos glaine don tionscal bia. Tairgeann muid boscaí páipéir ar leibhéal bia, ar mhaitheas mórchórais, ar an gcéad ranga, chun do táirgí a phacáil go sábhailte. Tá ár réitigh pacálaíochta éifeachtach ó thaol agus láidre, lena n-áirítear gnéithe atá soiléire do riachtanais do ghnó féin. Cibé rud is mian leat a phacáil, tá an pacáisteoir fíor-chuí leat ag Shunho (mar a luadh thuas). Réitigh Bhainistíochta Bia Faoi Chinnteacht Fadhbhanna Comhlach | Grúpa Shunho Tá na boscaí páipéir seo ar déanamh as tuaraiscimh bainistíochta agus mar sin tá siad in ann fheachtanas a dhéanamh don úsáid neamh-iomlán acu. Le ár gcruthlaithe comhlach, táimid ag cabhrú leat saoil a choinneáil ar an bhfód seo do ghineálacha amach go dtí an todhchaí, agus ag cinntiú go mbeidh do bia fresca agus sláintiúil le ithe. Tairgeann Shunho réitigh bainistíochta comhlach chun é sin a dhéanamh, ionas gur féidir leat do chustaiméirí béicín deas a sholáthar agus i ndáiríre a chinntiú go mbeidh tionchar dearfach agat ar an gcomhshaol. Is é cáilíocht an rud is tábhachtaí i mbacáil bia. Mar sin, soláthraíonn Shunho boscaí páipéir ar mhaithe le haghaidh bia i méid mó i gcaláin ard. Deartha go speisialta iad go léir chun do bhiadh a choinneáil nua-aimseartha agus slán nuair a théann sé ar shiúl, ionas go n-éiríonn le gach táirge teacht i gcoinníollacha barr. Tóga ár réitigh bacála, is féidir leat a bheith cinnte go bhfuil do shláinteacht bia curtha ar fáil chun rogha blasta sláintiúil a thairiscint nuair a bhíonn do stomach ag gruamaíl. Is féidir linn boscaí páipéir ar mhaithe le haghaidh bia saincheaptha a thabhairt duit, neamhspleách ar mhéid do ghnó, an bhfuil tú in eagarthóir beag nó i gcorparáid mhór. Ag Shunho, tá a fhios againn go bhfuil a n-aitheantas uathúil ag gach gnó agus dá bhrí sin d'fhéadfadh an pacáistiú a bheith difriúil. Sin é an fáth go soláthraímid réitigh pacáistithe atá in-shaincheaptha go hiomlán do do riachtanais ghnó uathúla. Cabhróidh ár bhfoireann leat an réiteach pacáistithe foirfe a dhearadh do do tháirgí, is cuma an bhfuil méid, cruth nó dearadh áirithe ag teastáil uait. SHUNHO roghanna saincheaptha chun a chinntiú go tú ur pacáistiú bia sa bhealach is maith leat é, seasann do bhranda amach freisin a mhealladh custaiméirí. Shunho Co., Ltd tá an solúbthacht chun freastal ar do riachtanais phacáistíochta go léir. Má tá tú ag cur bia fresca, ansin is iomaíocht a dhéanann sé ar phacaíocht atá ar bheagán airgid agus faighte. Déanaimid pacaíocht a dhearbhaimid ag Shunho chun freastal ar seo. Tá na boscaí páipéir ar bheagán airgid chomh maith le héifeachtach mar sin féadfaidh iomlán na fiontraí a chaitheamh níos lú airgid ach fós gan buille a ghlacadh ar an mórchuid. Bíodh againn ar ár bpacaíocht ardchaighdeáin chun do bhiadh a chosaint ar fud na dturas, cinnte go dtagann sé tar éis sin fresca agus réidh le biait. Roghnaigh Shunho le haghaidh réitigh pacaíochta réasúnacha agus fearr do do sholáthar bia fresca uilig. Is é an slogán inniu ná a bheith difriúil sa domhan chomóntais fostaíochta. Tairgeann Shunho malairt bhainistíochta a tharraingíonn an tsúil agus atá slán, a chabhraíonn leat do mhargadh a ardú agus níos mó custaiméirí a tharraingt. Is iad ár soláthraitheoirí is fearr chun cinntiú go mbaineann ár gcustaiméirí an tionchar céad is fearr amach. Cabhróidh ár mboscaí páipéir leis an aire a tharraint agus do táirgí a thaispeáint ar an mbealach is fearr. Déanann ár mboscaí sábháilte cinnteach go bhfuil do chuid bia slán, agus le córas bainistíochta ina bhfuil sé ina dhíon againn, is féidir leat a bheith cinnte go mbeidh do chuid táirgí slán. Cruthaigh an chéad fhaisnéis mhór le Shunho. Tacaíocht don Ghaeilge, Spáinnis bocs páipéar packáidh do bia Is available. Le boscaí páipéir do phacáil bia, REACH, FDA 21 CFR 176.170, (AE) Uimh. 10/2011, TÜV OK COMPOST HOME, ATHÚSÁIDTE, ISO 9001/14001/45001, CNAS, SAINCHEADTA agus cáipéisí eile cosanta timpeallachta Níos mó ná 20 bliain taithí ar thionscail thar lear. Is féidir boscaí páipéir do phacáil bia a tháirgeadh i gcumas a bhaineann le 200,000 tonna in aghaidh na bliana. Tagann an chuid ba mhó de na cliantais ó phacáil bia an domhainbocs páipéar packáidh do bia
Boscaí Páipéir Ardoiriadacha do Cheannach Mhór-Dhlútha

Roghanna Pacaíochta atá ar Fheidhmiú do Do Riachtanais Ghnó Uathúla

Réitigh Phacaíochta Costas-Eifeachtach agus Forlámha do Sheachadadh Bia Fuar

Méaraigh Do Léargas Branda le Réitigh Phacaíochta Bia Deise agus Sláintiúla
Why choose Shunho
bocs páipéar packáidh do bia?
Phobal Eolaismhar
Deimhniú Cáilíochta
Neart na Cuideachta
Níos láidre ar na custaiméirí
Catagóirí táirgí gaolacha
An bhfuil tú ag iarraidh rud éigin nach bhfuil ann?
Iarratas Praghsála Anois
Déan teagmháil le ár n-eagarthóirí le haghaidh táirgí breise ar fáil.BÍ I TIONCHAR LAINNE