Ürünler için ambalaj malzemesi seçimi, ürün güvenliği, kalitesi ve raf ömrünü sağlamak açısından kritik öneme sahiptir. B2B alıcısı olarak ...">
,需要通过父级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);
}
});
})();
Gıda için ambalaj malzemesi seçimi Ürünler ürün güvenliği, kalitesi ve raf ömrünün sağlanması açısından kritik öneme sahiptir. B2B alıcısı olarak malzemenin uygunluğu, gıda güvenliği düzenlemelerine uyumu ve ambalaj seçimlerinizin çevresel etkisi konularında endişeleriniz olabilir. Bu makale, çevre dostu gıda ambalaj malzemelerini değerlendirmeniz için gerekli bilgileri sunar; odak noktası, bu malzemelerin teknik özellikleri, kalitesi, tedarikçi güvenilirliği, maliyet faktörleri ve yaygın zorluklardır. Gıda için ambalaj malzemesi seçerken, ambalajın hem güvenlik hem de işlevsel gereksinimleri karşılamasını sağlamak amacıyla dikkat edilmesi gereken birkaç temel faktör vardır. Öncelikle malzeme, pazarınız bağlı olarak FDA veya AB standartları gibi ilgili gıda güvenliği düzenlemelerine uygun olmalıdır. Bu uyum, malzemenin doğrudan gıda ile temas etmesi açısından güvenli olduğunu ve gıdaya zararlı maddeler sızdırmadığını garanti eder. Ayrıca ambalaj malzemesinin bariyer özellikleri en üst düzeyde önemlidir. Örneğin, yüksek nem ve oksijen bariyeri sağlayan malzemeler, uzun raf ömrü gerektiren ürünler için hayati öneme sahiptir. Shunho Creative’in TransMet kağıdı gibi çevre dostu seçenekler, alüminyum katmanı sayesinde mükemmel bariyer özelliklerine sahip olmanın yanı sıra geri dönüştürülebilir ve parçalanabilir özelliklere de sahiptir. Özelleştirme, başka bir önemli faktördür. Farklı gıda türleri, özel ambalaj çözümleri gerektirebilir. Örneğin, asidik gıdalar, korozyona dayanıklı malzemeler gerektirebilir; dondurulmuş ürünler ise bütünlüklerini korumadan düşük sıcaklıklara dayanabilen malzemeler gerektirir. Gıda ambalaj malzemelerinin kalitesinin değerlendirilmesi, birkaç teknik özellik üzerinde inceleme yapmayı içerir. Temel özellikler arasında kalınlık, çekme mukavemeti ve sızdırmazlık yeteneği yer alır. Bu özellikler, ambalajın doldurma, taşıma ve depolama süreçlerinde ne kadar iyi performans göstereceğini etkiler. Kalınlık daha kalın bir malzeme daha iyi koruma sağlayabilir ancak aynı zamanda ağırlık ve maliyet artışına da neden olabilir. Koruma ile mali verimlilik arasındaki dengeyi ürününüzün ihtiyaçlarına göre değerlendirin. Çekme Dayanımı bu, malzemenin gerilime dayanma yeteneğini ifade eder. Daha güçlü malzemeler, işleme ve taşıma sırasında yırtılma veya patlama riskini azaltır; bu durum gıda güvenliği açısından hayati öneme sahiptir. Kapatma Özellikleri malzemenin kirlenme ve bozulmayı önlemek için etkili bir şekilde mühürlenmesini sağlayın. Uygun bir mühürleme aynı zamanda ürünün raf ömrünü artırır. Patlama testleri ve nem buharı geçirgenlik oranı (MVTR) testleri gibi kalite testlerinin yapılması, malzemenin belirli gereksinimlerinizi karşıladığını doğrulamanıza yardımcı olabilir. Gıda ambalaj malzemeleri için güvenilir bir tedarikçi bulmak, kalite standartlarını korumak ve zamanında teslimatı sağlamak açısından hayati öneme sahiptir. Potansiyel tedarikçileri, sertifikalarına, üretim kapasitelerine ve gıda ambalaj sektöründeki deneyimlerine göre değerlendirmeye başlayın. Düzenli denetimler ve ürün testleri de dahil olmak üzere kurulmuş kalite kontrol süreçlerine sahip tedarikçileri tercih edin. Çevre dostu çözümleri ve ileri üretim teknikleriyle tanınan Shunho Creative gibi tedarikçiler, ürün kalitesinde gerekli güvenilirliği ve tutarlılığı sağlayabilir. Ayrıca, özelleştirme seçenekleri sunan tedarikçileri de değerlendirin. Belirli ihtiyaçlarınızı anlayan bir tedarikçi, ürününüzün pazarlanabilirliğini artırırken güvenliği ve uyumluluğu da garanti eden özel çözümler sunabilir. Gıda ambalaj malzemelerinin maliyeti, malzeme türü, sipariş hacmi ve özelleştirme gereksinimleri gibi çeşitli faktörlere bağlı olarak önemli ölçüde değişebilir. Genel olarak, toplu satın alma birim başına daha düşük maliyetlere yol açabilir; ancak taşıma, depolama ve bozulma veya hasar nedeniyle oluşabilecek israf gibi unsurları da içeren toplam sahip olma maliyetini göz önünde bulundurmak önemlidir. Özelleştirme seçenekleri yararlı olsa da aynı zamanda maliyetleri artırabilir. İşlevsellik ile bütçe arasında denge kurmak için belirli ihtiyaçlarınızı tedarikçilerle görüşün. Örneğin, Shunho'nun TransMet kağıdı gibi çevre dostu malzemeler başlangıçta daha yüksek bir maliyete sahip olabilir; ancak atık bertaraf maliyetlerindeki azalma ve sürdürülebilirlik nedeniyle marka değerindeki artış sayesinde uzun vadeli tasarruf sağlayabilir. Ayrıca, teslimat süreleri maliyetleri etkileyebilir. Stok planlaması yaparken üretim ve nakliye sürelerini mutlaka dikkate alın. Güvenilir bir tedarikçi, size net zaman çizelgeleri sağlayacak ve piyasa koşullarına bağlı olarak olası maliyet dalgalanmalarını açıklayacaktır. Holografik kağıt alanında uluslararası ticarette 20 yıldan fazla tecrübe. Laser kağıdın yıllık üretim kapasitesi 200.000 ton seviyesine ulaşabilmektedir. Holografik kağıt etiketleri için İngilizce, İspanyolca ve Japonca desteği mevcuttur. Holografik kağıt etiketlerle uyumlu: REACH, FDA 21 CFR 176.170, (AB) No 10/2011, TÜV OK COMPOST HOME, GERİ DÖNÜŞÜMÜ DESTEKLENEN, ISO 9001/14001/45001, CNAS, PATENTLER ve diğer çevre koruma sertifikaları. Gökkuşağı ambalaj kâğıdının büyük çoğunluğu dünyanın en prestijli 500 şirkinden gelmektedir Gıda için ambalaj malzemeleri seçerken alıcılar, üretim ve dağıtım süreçlerinde ortaya çıkabilecek yaygın zorlukların farkında olmalıdır. Malzeme uyumluluğu : Bazı malzemeler belirli gıda türleriyle olumsuz şekilde tepkime verebilir ve bu durum kirliliğe neden olabilir. Malzemenin gıda ürününün kimyasal özelliklerine uygunluğunu her zaman doğrulayın. Örneğin, asidik ürünler korozyona dayanıklı malzemelerle ambalanmalıdır. Sızdırmazlık Testi : Zayıf mühürleme ürünün bozulmasına ve kirliliğe yol açabilir. Malzemelerinizin mühür dayanımı açısından test edildiğinden emin olun ve güvenilirliği artırmak için gelişmiş mühürleme teknolojilerini değerlendirmeyi unutmayın. Çevresel Etki : Satın alanlar, ambalaj malzemelerinin çevre üzerindeki etkisiyle ilgili giderek daha fazla endişe duyuyor. Geri dönüştürülebilir ve biyolojik olarak parçalanabilir seçenekleri tercih etmek—örneğin Shunho Creative’in TransMet kağıdı—bu endişeyi azaltmaya yardımcı olurken aynı zamanda çevre bilincine sahip tüketicilerin ilgisini de çeker. Tedarik Zinciri Kesintileri : Tedarik zincirindeki gecikmeler stok eksikliğine yol açabilir. Tedarikçinizle iyi bir ilişki kurmak ve alternatif malzemeler veya tedarikçiler gibi acil durum planları hazırlamak bu riski azaltmaya yardımcı olabilir. Bu yaygın sorunlara proaktif şekilde çözüm bulmak, satın alma sürecinizi daha sorunsuz hale getirmenize ve gıda ürünlerinizin kalitesini ile güvenliğini korumanıza olanak tanır. gıda için doğru ambalaj malzemesini seçmek ve TransMet® Gümüş malzemenin özelliklerine, tedarikçinin güvenilirliğine ve maliyet yönetimi gibi çeşitli faktörleri dikkatle değerlendirmeyi gerektirir. Çevre dostu seçeneklerden yararlanarak ve teknik gereksinimleri anlayarak hem ürün güvenliğini hem de pazar çekiciliğini artırabilirsiniz. Gıda için ambalaj malzemesi
Ana noktaları
Gıda Ambalaj Malzemelerinin Kalitesini Nasıl Değerlendirirsiniz
Gıda Ambalajı İçin Güvenilir Tedarikçiler
Gıda Ambalaj Malzemeleri Toplu Siparişlerinde Maliyet Faktörleri
Why choose Shunho
Gıda için ambalaj malzemesi?
Şirket Gücü
Mükemmel bir takım.
Kalite Sertifikası
Müşteri gücü
Gıda Ambalaj Malzemelerinde Sık Karşılaşılan Sorunlar ve Çözümleri
Aradığınızı bulamıyor musunuz?
Şimdi bir teklif isteyin
Daha fazla mevcut ürün için danışmanlarımızla iletişime geçin.Bizimle iletişime geçin