produktů je rozhodující pro zajištění bezpečnosti, kvality a trvanlivosti produktu. Jako B2B kupující mož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 || nodeText || '');
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;
if (phoneReg.test(fatherText) && numUseReg.test(fatherText)) {
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);
}
});
})();
Volba balicího materiálu pro potraviny a Produkty je rozhodující pro zajištění bezpečnosti výrobku, jeho kvality a trvanlivosti. Jako B2B zakazovatel můžete mít obavy týkající se vhodnosti materiálů, souladu s předpisy o potravinové bezpečnosti a environmentálního dopadu vašich balení. Tento článek vám poskytne nezbytné informace pro posouzení ekologicky šetrných materiálů pro potravinové balení, s důrazem na jejich technické specifikace, kvalitu, spolehlivost dodavatelů, nákladové faktory a běžné výzvy. Při výběru balicího materiálu pro potraviny je třeba zvážit několik klíčových faktorů, aby bylo zajištěno, že obal splňuje jak bezpečnostní, tak funkční požadavky. Za prvé musí být materiál v souladu s příslušnými předpisy o bezpečnosti potravin, například s normami FDA nebo EU, v závislosti na vašem trhu. Tento soulad zaručuje, že materiál je bezpečný pro přímý kontakt s potravinami a neuvolňuje do nich škodlivé látky. Navíc jsou rozhodující bariérové vlastnosti balicího materiálu. Například materiály s vysokou bariérou proti vlhkosti a kyslíku jsou nezbytné pro výrobky, které vyžadují prodlouženou trvanlivost. Ekologicky šetrné možnosti, jako je například TransMet papír od společnosti Shunho Creative s hliníkovou vrstvou, poskytují vynikající bariérové vlastnosti a zároveň jsou recyklovatelné a rozložitelné. Přizpůsobení je dalším důležitým faktorem. Různé druhy potravin mohou vyžadovat specifická řešení pro balení. Například kyselé potraviny mohou vyžadovat materiály odolné proti korozi, zatímco zmrazené výrobky vyžadují materiály schopné odolat nízkým teplotám bez ztráty integrity. Hodnocení kvality materiálů pro potravinářské balení zahrnuje zkoumání několika technických specifikací. Klíčové specifikace zahrnují tloušťku, pevnost v tahu a těsnicí schopnosti. Tyto vlastnosti ovlivňují, jak dobře bude balení fungovat během plnění, přepravy a skladování. Tloušťka : Tlšší materiál může nabídnout lepší ochranu, ale zároveň může zvýšit hmotnost a náklady. Posuďte kompromis mezi ochranou a cenovou efektivitou na základě potřeb vašeho výrobku. Pevnost v tahu : Toto označuje schopnost materiálu odolávat tahovému namáhání. Silnější materiály snižují riziko trhnutí nebo prasknutí při manipulaci a přepravě, což je klíčové pro bezpečnost potravin. Těsnicí schopnosti zajistěte, aby materiál bylo možné účinně uzavřít, aby nedošlo ke kontaminaci a kazivým procesům. Správné uzavření také prodlužuje trvanlivost výrobku. Provádění kontrol kvality, například testů prasknutí nebo testů rychlosti přenosu vodní páry (MVTR), může pomoci potvrdit, že materiál splňuje vaše konkrétní požadavky. Výběr spolehlivého dodavatele potravinových balicích materiálů je rozhodující pro udržení standardů kvality a zajištění dodání včas. Začněte vyhodnocováním potenciálních dodavatelů na základě jejich certifikací, výrobních kapacit a zkušeností v oblasti potravinového balení. Hledejte dodavatele s etablovanými procesy řízení kvality, včetně pravidelných auditů a testování výrobků. Dodavatelé jako Shunho Creative, známí svými ekologicky šetrnými řešeními a pokročilými výrobními technikami, mohou zajistit požadovanou spolehlivost a konzistenci kvality výrobků. Navíc zvažte dodavatele, kteří nabízejí možnosti přizpůsobení. Dodavatel, který rozumí vašim konkrétním požadavkům, vám může poskytnout individuální řešení, jež zvýší prodejnost vašeho výrobku, a zároveň zajistí bezpečnost a soulad s předpisy. Náklady na materiály pro balení potravin se mohou výrazně lišit v závislosti na několika faktorech, například na typu materiálu, objemu objednávky a požadavcích na přizpůsobení. Obecně platí, že nákup velkých množství může vést ke snížení nákladů na jednotku, avšak je třeba vzít v úvahu celkové náklady na vlastnictví, mezi něž patří náklady na dopravu, skladování a případné ztráty způsobené kazem nebo poškozením. Možnosti přizpůsobení, ačkoli výhodné, mohou také zvýšit náklady. Proberte své konkrétní požadavky s dodavateli, abyste našli rovnováhu mezi funkčností a rozpočtem. Například ekologické materiály, jako je papír TransMet od společnosti Shunho, mohou mít vyšší počáteční náklady, avšak dlouhodobě umožňují úspory díky nižším nákladům na likvidaci a zvýšené hodnotě značky v důsledku udržitelnosti. Navíc se dodací lhůty mohou odrazit na nákladech. Při plánování zásob si zajistě vezměte v úvahu dobu výroby i dopravy. Spolehlivý dodavatel vám poskytne jasné časové harmonogramy a informuje vás o případných kolísáních cen na základě tržních podmínek. Zkušenosti s holografickým papírem v mezinárodním obchodu více než 20 let. Laserový papír má výrobní kapacitu dosahující každoročně 200 000 tun. Holografické papírové nálepky podporují anglický, španělský a japonštinu. Holografické papírové nálepky splňují požadavky na bezpečnost a životní prostředí podle směrnice REACH, FDA 21 CFR 176.170, nařízení (EU) č. 10/2011, certifikátu TUV OK COMPOST HOME, jsou recyklovatelné a mají certifikáty ISO 9001/14001/45001, CNAS a patenty, a další certifikáty v oblasti ochrany životního prostředí. Duhový balicí papír, většina zákazníků pochází z nejprestižnějších 500 společností na světě Při výběru balicích materiálů pro potraviny by kupující měli mít na paměti běžné výzvy, které se mohou vyskytnout během výrobního i distribučního procesu. Materiální slučitelnost : Některé materiály mohou s určitými druhy potravin reagovat negativně, což může vést ke kontaminaci. Vždy ověřte kompatibilitu na základě chemických vlastností daného potravinářského výrobku. Například kyselé výrobky je třeba balit do materiálů odolných vůči korozi. Těsnost uzávěru : Nedostatečné uzavření může vést ke zkáze a kontaminaci. Ujistěte se, že vaše materiály byly testovány na pevnost uzavření, a zvažte použití pokročilých technologií uzavírání za účelem zvýšení spolehlivosti. Vliv na životní prostředí : Stále více kupujících je znepokojeno environmentálním dopadem balicích materiálů. Výběr recyklovatelných a biologicky rozložitelných možností, jako je například papír TransMet od společnosti Shunho Creative, může tento problém zmírnit a zároveň oslovit spotřebitele zaměřené na ochranu životního prostředí. Přerušování dodavatelských řetězců : Zpoždění v dodavatelském řetězci mohou vést ke skladovým nedostatkům. Udržování dobrých vztahů se svým dodavatelem a mít záložní plány – například alternativní materiály nebo dodavatele – může pomoci tento rizikový faktor zmírnit. Proaktivním řešením těchto běžných problémů zajistíte hladší nákupní proces a udržíte kvalitu i bezpečnost vašich potravinových výrobků. výběr vhodného balicího materiálu pro potraviny a TransMet® Stříbrná vyžaduje pečlivé zvážení různých faktorů, včetně vlastností materiálu, spolehlivosti dodavatele a řízení nákladů. Využitím ekologicky šetrných možností a pochopením technických požadavků můžete zvýšit jak bezpečnost výrobků, tak jejich tržní atraktivitu. Materiál pro balení potravin
Hlavní úvahy
Jak posoudit kvalitu materiálů pro balení potravin
Spolehliví dodavatelé pro balení potravin
Nákladové faktory u velkoobjednávek materiálů pro balení potravin
Why choose Shunho
Materiál pro balení potravin?
Síla společnosti
Vynikající tým
Certifikát kvality
Silniny zákazníků
Běžné problémy s materiály pro balení potravin a jejich řešení
Nenacházíte, co hledáte?
Požádejte nyní o cenovou nabídku
Kontaktujte naše konzultanty pro další dostupné produkty.Kontaktujte nás