/* Kanaf: verified purchase information and sourced business reviews. 10 Oct 2026. */ (function(){ 'use strict'; var reviewsHTML="

مراجعات كنف على Google

مقتطفات من آراء زوّار المحمصة والمقهى.

★ 4.6 / 5

من 350 مراجعة على Google

Nawaf Almutiri
«وعندهم محاصيل رهيبة وارشحلكم بوكو ( اثيوبي ) جداً ممتاز للقهوه المقطره والاسبريسو»
المراجعة على Google ↗
غدي
«قهوة ممتازه البن لذيذ خصوصا محصول الجبل الأسود الأسعار ممتازه ومناسبه جوده عاليه وخدمه سريعه»
المراجعة على Google ↗
sara almutiri
«افضل والذ محاصيل قهوه عندهم ماشاءالله خصوصاً البرازيلي وكل محصول الذ من الثاني،»
المراجعة على Google ↗
altwaijri
«محاصيلهم متعدده ومتنوعه،، ستجد ما يناسبك من المحاصيل،، اسعار البن رائعة جداً ومعقوله،،»
المراجعة على Google ↗
Ahmed A
«جودة القهوة جداً عالية ممتازين في توفر المحاصيل في القهوة السوداء هم الافضل»
المراجعة على Google ↗
Razan
«من افضل الاماكن عندي كنف صدق مافيه افضل من محاصيلهم حرفيا كل محصول عندهم افضل من الثاني»
المراجعة على Google ↗
almutairi '
«افضل مكان بتحصل فيه قهوة ، المحصول عندهم رهيب ومن الافضل على مستوى عالي جداً الله يبارك له»
المراجعة على Google ↗
عبدالرحمن عبدالعزيز
«الكولومبي شبه انه بدون مراره وحمضيه بسيطة جدًا الاثيوبي حمضيته اعلى شوي والافتر تيست غير مزعج»
المراجعة على Google ↗

جميع مراجعات كنف على Google ↗

"; /* Product presentation; all purchasing stays in the original Salla form. */ function enhanceProduct(main){ var root=main.querySelector('.single-p>[id^="product-"]'); var info=root&&root.querySelector('.main-content'); var form=info&&info.querySelector('form.product-form'); var title=info&&info.querySelector('h1'); if(!root||!info||!form||!title)return; document.body.classList.add('kanaf-pdp-enhanced'); var heading=title.parentElement; heading.classList.add('kanaf-pdp-heading'); var price=heading.querySelector('.total-price'); if(price)price.parentElement.classList.add('kanaf-pdp-price'); var article=main.querySelector('.product__description article'); var details=main.querySelector('.details-main-product'); var comments=main.querySelector('.s-comments'); var values={}; if(article){ if(article.textContent.trim())document.body.classList.add('kanaf-has-details'); article.querySelectorAll('li').forEach(function(li){ var t=li.textContent.trim(),n=t.indexOf(':'); if(n>0)values[t.slice(0,n).trim()]=t.slice(n+1).trim().replace(/[.。]$/,''); }); } var ground=values['حالة البن']||values['شكل البن']; var isCoffee=!!ground; var isBundle=root.id==='product-34997415'; if(isBundle)root.classList.add('kanaf-coffee-bundle'); function node(tag,cls,text){var e=document.createElement(tag);if(cls)e.className=cls;if(text)e.textContent=text;return e;} function link(text,href,cls){var a=node('a',cls,text);a.href=href;return a;} function anchor(host,id){if(!host.id)host.id=id;else if(host.id!==id&&!document.getElementById(id)){var marker=node('span','kanaf-section-anchor');marker.id=id;host.prepend(marker);}} if(!document.getElementById('kanaf-product-facts')&&article){ var facts=[]; function fact(label,value){if(value)facts.push([label,value]);} fact(isBundle?'إجمالي القهوة':'الوزن الصافي',values['إجمالي وزن القهوة']||values['الوزن الصافي']||values['الوزن الإجمالي']||values['الوزن']); fact('حالة البن',ground); if(isBundle){ if(/3 عبوات/.test(article.textContent)&&/250 جم/.test(article.textContent))fact('عبوات القهوة','3 × 250 جم'); if(/كوب سيراميك/.test(article.textContent)&&/260 مل/.test(article.textContent))fact('الكوب المرفق','سيراميك · 260 مل'); }else if(isCoffee){fact('المنشأ',values['المنشأ']);fact('المعالجة',values['المعالجة']);} else{ fact('السعة',values['السعة']);fact('الخامة',values['الخامة']||values['الخامه']);fact('المقاس',values['المقاس']);fact('الاستخدام',values['الاستخدام']); if(/قسيمة/.test(title.textContent)){ var voucherText=article.textContent; if(/الفروع فقط/.test(voucherText))fact('الاستخدام','في الفروع فقط'); if(/WhatsApp|واتساب/.test(voucherText))fact('الإرسال','عبر واتساب'); article.querySelectorAll('li').forEach(function(li){ var line=li.textContent.trim().replace(/[.。]$/,''); var execution=line.match(/مدة التنفيذ\s*(.+)/);if(execution)fact('مدة التنفيذ',execution[1].trim()); var validity=line.match(/صالحة لمدة\s*(.+)/);if(validity)fact('الصلاحية',validity[1].trim()); }); } } if(facts.length){ var box=node('section','kanaf-product-facts');box.id='kanaf-product-facts';box.setAttribute('aria-label',isBundle?'محتويات البكج':'معلومات المنتج الأساسية'); var dl=node('dl','kanaf-facts-grid'); facts.slice(0,4).forEach(function(f){var cell=node('div','kanaf-fact');cell.append(node('dt','',f[0]),node('dd','',f[1]));dl.append(cell);}); box.append(dl);var subtitle=info.querySelector('.product-entry__sub-title');(subtitle||heading).after(box); } } if(values['الإيحاءات']&&!document.getElementById('kanaf-taste')){ var taste=node('div','kanaf-taste');taste.id='kanaf-taste';taste.append(node('span','kanaf-taste-label','في فنجانك')); values['الإيحاءات'].split(/[،•·]/).filter(Boolean).slice(0,5).forEach(function(t){taste.append(node('span','kanaf-taste-chip',t.trim()));}); heading.after(taste);var sub=info.querySelector('.product-entry__sub-title');if(sub)sub.classList.add('kanaf-subtitle-replaced'); } if(comments){ var reviewSection=comments.parentElement;anchor(reviewSection,'kanaf-product-reviews');reviewSection.classList.add('kanaf-review-panel'); if(!document.getElementById('kanaf-product-rating-link')){ var rating=comments.querySelector('salla-rating-stars[value]'); var ratingValue=rating&&Number(rating.getAttribute('value')); var count=comments.textContent.match(/(\d+)\s*تقييم على المنتج/); if(ratingValue>0&&count&&Number(count[1])>0){ var ratingLink=link('★ '+ratingValue+' / 5 · '+count[1]+' تقييم على المنتج','#kanaf-product-reviews','kanaf-rating-link');ratingLink.id='kanaf-product-rating-link'; var tasteNode=document.getElementById('kanaf-taste');(tasteNode||info.querySelector('.product-entry__sub-title')||heading).after(ratingLink); } } } var button=form.querySelector('salla-add-product-button[product-id]'); if(button){ var shipping=button.hasAttribute('required-shipping'); var orderFacts=document.getElementById('kanaf-order-facts'); if(!orderFacts){orderFacts=node('aside','kanaf-order-facts');orderFacts.id='kanaf-order-facts';orderFacts.setAttribute('aria-label','التوصيل والمساعدة');form.after(orderFacts);} var factsKey=String(shipping)+'|'+String(isCoffee); if(orderFacts.dataset.kanafKey!==factsKey){ orderFacts.replaceChildren(); if(shipping){var delivery=node('p','kanaf-delivery');delivery.append(node('strong','','التوصيل خلال 2–5 أيام'),node('span','','داخل السعودية، حسب شركة الشحن والموقع.'));orderFacts.append(delivery);} var help=link(isCoffee?'هل الطحن يناسب أداتك؟ اسألنا عبر واتساب ↗':'تحتاج مساعدة في الاختيار؟ تواصل معنا ↗','https://wa.me/966565434306');help.target='_blank';help.rel='noopener noreferrer';orderFacts.append(help);orderFacts.dataset.kanafKey=factsKey; } if(shipping&&details&&!document.getElementById('kanaf-product-faq')){ var faq=node('section','kanaf-product-faq');faq.id='kanaf-product-faq';faq.append(node('h2','','قبل ما تطلب')); var questions=[]; if(isCoffee)questions.push(['هل البن مطحون؟','نعم، البن مطحون. للتأكد من ملاءمة درجة الطحن لأداة تحضيرك، تواصل معنا عبر واتساب قبل الطلب.']); questions.push(['متى يصل طلبي؟','التوصيل داخل السعودية خلال 2–5 أيام حسب شركة الشحن والموقع.']); questions.push(['هل أقدر ألغي الطلب أو أعدّل العنوان؟','يمكن إلغاء الطلب قبل بدء التجهيز، وتعديل عنوان الشحن قبل تسليم الشحنة للناقل. تواصل مع خدمة العملاء لطلب التعديل.']); questions.push(['ماذا أفعل إذا وصل منتج تالف أو غير مطابق؟','تواصل معنا خلال 3 أيام عمل من الاستلام، وفق سياسة الاستبدال والاسترجاع.']); questions.forEach(function(q){var d=node('details');d.append(node('summary','',q[0]),node('p','',q[1]));faq.append(d);}); var policies=node('p','kanaf-policy-links');policies.append(link('سياسة المتجر','https://kanafroasters.com/p/XYaAd'),link('الاستبدال والاسترجاع','https://kanafroasters.com/p/vYPax'));faq.append(policies); var reviewsPanel=comments&&comments.parentElement;if(reviewsPanel)reviewsPanel.before(faq);else details.append(faq); } } if(details&&!document.getElementById('kanaf-product-nav')){ var nav=node('nav','kanaf-product-nav');nav.id='kanaf-product-nav';nav.setAttribute('aria-label','أقسام صفحة المنتج'); if(article){anchor(article.parentElement.parentElement,'kanaf-product-details');nav.append(link('تفاصيل المنتج','#kanaf-product-details'));} if(document.getElementById('kanaf-product-faq'))nav.append(link('قبل ما تطلب','#kanaf-product-faq')); if(comments)nav.append(link('تقييمات المنتج','#kanaf-product-reviews')); nav.append(link('آراء Google عن كنف','#kanaf-google-reviews')); details.before(nav); } var productNav=document.getElementById('kanaf-product-nav'); if(productNav){ if(document.getElementById('kanaf-product-faq')&&!productNav.querySelector('a[href="#kanaf-product-faq"]'))productNav.append(link('قبل ما تطلب','#kanaf-product-faq')); if(comments&&!productNav.querySelector('a[href="#kanaf-product-reviews"]'))productNav.append(link('تقييمات المنتج','#kanaf-product-reviews')); } if(isBundle){ var options=form.querySelector('salla-product-options'); if(options&&!document.getElementById('kanaf-bundle-guide')){ var guide=node('div','kanaf-bundle-guide');guide.id='kanaf-bundle-guide';guide.append(node('h2','','اختر محاصيل البكج'),node('p','','3 عبوات × 250 جم، مع كوب سيراميك 260 مل.')); var progress=node('p','kanaf-bundle-progress');progress.id='kanaf-bundle-progress';progress.setAttribute('role','status');progress.setAttribute('aria-live','polite');guide.append(progress); options.before(guide); } if(options){ var currentProgress=document.getElementById('kanaf-bundle-progress'); function update(){var fields=[].slice.call(options.querySelectorAll('select[required]'));if(!fields.length||!currentProgress)return;var selected=fields.filter(function(s){return !!s.value&&s.selectedIndex>0;}).length;var txt=selected===fields.length?'اكتملت اختياراتك · '+selected+' من '+fields.length:'اخترت '+selected+' من '+fields.length+' محاصيل';if(currentProgress.textContent!==txt)currentProgress.textContent=txt;currentProgress.classList.toggle('is-complete',selected===fields.length);} if(!options.dataset.kanafBound){options.addEventListener('change',update);form.addEventListener('change',update);options.dataset.kanafBound='true';}update(); } } var emptyDetails=info.querySelector(':scope>.details-buy'); if(emptyDetails)emptyDetails.classList.toggle('kanaf-empty-details',!emptyDetails.textContent.trim()&&!emptyDetails.querySelector('salla-rating-stars,button,a')); if(!info.dataset.kanafSecondaryMoved){ var activity=info.querySelector(':scope>.activity');if(activity)info.append(activity); info.dataset.kanafSecondaryMoved='true'; } var bar=form.querySelector('.sticky-product-bar'); if(bar&&!bar.dataset.kanafObserved&&window.ResizeObserver){ var resize=new ResizeObserver(function(){document.body.style.setProperty('--kanaf-buybar-height',Math.ceil(bar.getBoundingClientRect().height)+'px');});resize.observe(bar);bar.dataset.kanafObserved='true'; } } /* Retire the old Bella-only module, which duplicates the current PDP panels. */ function retireLegacyProductModule(main){ if(!document.body.classList.contains('product-single'))return; main.querySelectorAll('.s-after-related .s-block--bundle-html-content').forEach(function(block){ if(block.querySelector('#kanaf-coffee-decision')&&block.querySelector('#kanaf-google-proof')&&!block.querySelector('#kanaf-product-details,form.product-form,salla-add-product-button'))block.remove(); }); } /* * Follow-up presentation only. Call enhanceFollowup(main, product, home) at * the end of enhance(), after the existing Google section is inserted. * Uses the baseline's bounded 20-second MutationObserver; creates no observer. * Native Salla forms, payment buttons and purchase handlers remain in place. */ function enhanceFollowup(main, product, home) { 'use strict'; if (!main) return; if (!product && document.body.classList.contains('page-single')) { main.querySelectorAll('.content-entry p').forEach(function (paragraph) { if (!paragraph.textContent.trim() && !paragraph.querySelector('img,video,iframe,svg,input,button')) paragraph.remove(); }); } if (!product && !home) return; var root = product && main.querySelector('.single-p>[id^="product-"]'); var info = root && root.querySelector('.main-content'); var form = info && info.querySelector('form.product-form'); var title = info && info.querySelector('h1'); var productId = root ? root.id.replace(/^product-/, '') : ''; var catalogue = enhanceFollowup.catalogue || []; function element(tag, className, text) { var node = document.createElement(tag); if (className) node.className = className; if (text) node.textContent = text; return node; } function setText(node, text) { if (node && node.textContent !== text) node.textContent = text; } function normalText(text) { return (text || '').replace(/[\u200b-\u200f\ufeff]/g, '').replace(/\s+/g, ' ').trim(); } function pathOf(href) { try { var url = new URL(href, window.location.href); return url.origin === window.location.origin ? decodeURI(url.pathname).replace(/\/$/, '') : ''; } catch (_) { return ''; } } function insertAfter(anchor, node) { if (anchor && anchor.nextElementSibling !== node) anchor.after(node); } function prepareGoogle(section) { if (!section) return; setText(section.querySelector('#kanaf-google-title'), 'مراجعات كنف على Google'); section.querySelectorAll(':scope>small').forEach(function (note) { if (/هذه آراء عن المحمصة|الأرقام والمقتطفات/.test(note.textContent)) note.remove(); }); section.classList.add('kanaf-google-carousel'); section.setAttribute('aria-roledescription', 'عارض مراجعات'); section.setAttribute('role', 'region'); if (info && form) { var delivery = info.querySelector(':scope>#kanaf-order-facts'); insertAfter(delivery || form, section); section.classList.add('kanaf-google-near-buy'); } var track = section.querySelector('.kanaf-google-cards'); var cards = track && Array.prototype.slice.call(track.querySelectorAll(':scope>.kanaf-google-card')); if (!cards || !cards.length) return; var old = section.__kanafCarousel; if (old && old.cards.length === cards.length && old.cards.every(function (card, i) { return card === cards[i]; })) return; if (old) old.destroy(); if (cards.length < 2) { cards[0].hidden = false; return; } var media = window.matchMedia('(prefers-reduced-motion: reduce)'); var controls = element('div', 'kanaf-review-controls'); var previous = element('button', 'kanaf-review-previous', 'المراجعة السابقة'); var next = element('button', 'kanaf-review-next', 'المراجعة التالية'); var toggle = element('button', 'kanaf-review-toggle'); var position = element('span', 'kanaf-review-position'); var announcement = element('span', 'sr-only kanaf-review-announcement'); previous.type = next.type = toggle.type = 'button'; if (!track.id) track.id = 'kanaf-google-slides'; previous.setAttribute('aria-controls', track.id); next.setAttribute('aria-controls', track.id); position.setAttribute('aria-hidden', 'true'); announcement.setAttribute('role', 'status'); announcement.setAttribute('aria-live', 'polite'); announcement.setAttribute('aria-atomic', 'true'); track.setAttribute('aria-live', 'off'); // Rotation control is the first interactive element in the carousel. track.before(toggle); controls.append(previous, position, next, announcement); track.after(controls); var state = { cards: cards, index: 0, timer: null, userPaused: media.matches, hover: false, focus: false }; section.__kanafCarousel = state; cards.forEach(function (card, i) { card.setAttribute('role', 'group'); card.setAttribute('aria-roledescription', 'شريحة'); card.setAttribute('aria-label', 'مراجعة ' + (i + 1) + ' من ' + cards.length); }); function stop() { if (state.timer) { window.clearInterval(state.timer); state.timer = null; } } function syncRotation() { stop(); toggle.hidden = media.matches; setText(toggle, state.userPaused ? 'تشغيل التنقل التلقائي' : 'إيقاف التنقل التلقائي'); if (state.userPaused || state.hover || state.focus || media.matches || document.hidden || !section.isConnected) return; state.timer = window.setInterval(function () { if (!section.isConnected) { state.destroy(); return; } show(state.index + 1, false); }, 8000); } function show(index, manual) { state.index = (index + cards.length) % cards.length; cards.forEach(function (card, i) { card.hidden = i !== state.index; card.setAttribute('aria-hidden', i !== state.index ? 'true' : 'false'); }); var counter = (state.index + 1) + ' من ' + cards.length; setText(position, counter); if (manual) { state.userPaused = true; setText(announcement, 'المراجعة ' + counter); syncRotation(); } } function onEnter() { state.hover = true; syncRotation(); } function onLeave() { state.hover = false; syncRotation(); } function onFocus(event) { state.focus = true; if (!section.contains(event.relatedTarget)) state.userPaused = true; syncRotation(); } function onBlur() { window.setTimeout(function () { if (section.__kanafCarousel !== state) return; state.focus = section.contains(document.activeElement); syncRotation(); }, 0); } function onPointer(event) { if (toggle.contains(event.target)) return; state.userPaused = true; syncRotation(); } function onMotion() { if (media.matches) state.userPaused = true; syncRotation(); } function onPrevious() { show(state.index - 1, true); } function onNext() { show(state.index + 1, true); } function onToggle() { state.userPaused = !state.userPaused; syncRotation(); } previous.addEventListener('click', onPrevious); next.addEventListener('click', onNext); toggle.addEventListener('click', onToggle); section.addEventListener('mouseenter', onEnter); section.addEventListener('mouseleave', onLeave); section.addEventListener('focusin', onFocus); section.addEventListener('focusout', onBlur); section.addEventListener('pointerdown', onPointer, { passive: true }); document.addEventListener('visibilitychange', syncRotation); if (media.addEventListener) media.addEventListener('change', onMotion); else media.addListener(onMotion); state.destroy = function () { stop(); section.removeEventListener('mouseenter', onEnter); section.removeEventListener('mouseleave', onLeave); section.removeEventListener('focusin', onFocus); section.removeEventListener('focusout', onBlur); section.removeEventListener('pointerdown', onPointer); document.removeEventListener('visibilitychange', syncRotation); if (media.removeEventListener) media.removeEventListener('change', onMotion); else media.removeListener(onMotion); toggle.remove(); controls.remove(); if (section.__kanafCarousel === state) delete section.__kanafCarousel; }; show(0, false); syncRotation(); } function preparePayments() { var table = main.querySelector('.product-table'); var payments = main.querySelector('#kanaf-payment-panel salla-payments') || (table && table.querySelector('salla-payments')); if (!table || !payments) return; var panel = main.querySelector('#kanaf-payment-panel'); if (!panel) { var host = table.parentElement; var oldHeading = Array.prototype.find.call(host.children, function (node) { return node !== table && normalText(node.textContent) === 'مميزات المنتج'; }); if (oldHeading) oldHeading.hidden = true; panel = element('section', 'kanaf-payment-panel'); panel.id = 'kanaf-payment-panel'; var heading = element('h2', '', 'طرق الدفع'); heading.id = 'kanaf-payment-title'; panel.setAttribute('aria-labelledby', heading.id); panel.append(heading); table.before(panel); var paymentRow = payments.closest('tr'); panel.append(payments); if (paymentRow) paymentRow.hidden = true; var extra = element('details', 'kanaf-extra-details'); extra.id = 'kanaf-extra-details'; extra.append(element('summary', '', 'التفاصيل الإضافية')); panel.after(extra); extra.append(table); } var sbc = payments.querySelector('a[href*="eauthenticate.saudibusiness.gov.sa"]'); if (sbc) { var verification = panel.querySelector('.kanaf-store-verification'); if (!verification) { verification = element('div', 'kanaf-store-verification'); verification.append(element('span', '', 'توثيق المتجر')); panel.append(verification); } var existing = verification.querySelector('a'); var sbcRow = sbc.closest('li'); if (!existing) { sbc.setAttribute('aria-label', 'توثيق المتجر لدى المركز السعودي للأعمال'); verification.append(sbc); } if (sbcRow) sbcRow.hidden = true; } } function currentPaths() { var paths = [pathOf(window.location.href)]; var canonical = document.querySelector('link[rel="canonical"]'); if (canonical) paths.push(pathOf(canonical.href)); catalogue.forEach(function (item) { if (item.id === productId) paths.push(pathOf(item.href)); }); return paths.filter(Boolean); } function isCurrent(href, label) { var path = pathOf(href); return !!path && (currentPaths().indexOf(path) !== -1 || path.endsWith('/p' + productId) || (title && normalText(label) === normalText(title.textContent))); } function prepareNativeTogether(component) { var state = component.__kanafOptionalChoices; if (!state) { state = { processed: Object.create(null), touched: false, applying: false }; component.__kanafOptionalChoices = state; ['pointerdown', 'keydown', 'change'].forEach(function (type) { component.addEventListener(type, function (event) { if (event.isTrusted && !state.applying) state.touched = true; }, true); }); } var rows = Array.prototype.slice.call(component.querySelectorAll('.s-bought-together-item')); var currentKnown = rows.some(function (row) { var a = row.querySelector('a.s-bought-together-item-link'); return a && isCurrent(a.href, a.textContent); }); if (state.touched || !currentKnown) return; rows.forEach(function (row) { var a = row.querySelector('a.s-bought-together-item-link'); var checkbox = row.querySelector('input.s-bought-together-checkbox[type="checkbox"]'); if (!a || !checkbox || checkbox.disabled || isCurrent(a.href, a.textContent)) return; var key = pathOf(a.href); if (!key || state.processed[key]) return; // Click uses the native component's own selection and price handlers. // Never add, submit, or re-select the main product automatically. if (checkbox.checked) { state.processed[key] = true; state.applying = true; try { checkbox.click(); } finally { state.applying = false; } } }); } function prepareRecommendations() { if (!info || !form || !title) return; var native = main.querySelector('salla-bought-together'); var wrap = main.querySelector('#kanaf-complete-order'); if (!wrap) { wrap = element('section', 'kanaf-complete-order'); wrap.id = 'kanaf-complete-order'; } wrap.classList.add('kanaf-complete-order-near-buy'); wrap.setAttribute('aria-labelledby', 'kanaf-complete-order-title'); var heading = wrap.querySelector('#kanaf-complete-order-title'); if (!heading) { heading = element('h2', '', 'كمّل طلبك'); heading.id = 'kanaf-complete-order-title'; wrap.prepend(heading); } var orderFacts = info.querySelector(':scope>#kanaf-order-facts'); insertAfter(info.querySelector(':scope>#kanaf-google-reviews') || orderFacts || form, wrap); // Let Salla finish initializing in its original location before reparenting. if (native && native.querySelector('.s-bought-together-item')) { if (native.parentElement !== wrap) wrap.append(native); prepareNativeTogether(native); native.querySelectorAll('h2,h3').forEach(function (h) { if (/^كمل طلبك$/.test(normalText(h.textContent).replace(/[\u064B-\u065F\u0670]/g, ''))) h.hidden = true; }); } var selected = recommendationItems(); var list = wrap.querySelector('.kanaf-curated-recommendations'); var key = productId + '|' + selected.map(function (item) { return item.id + ':' + item.note; }).join('|'); if (!selected.length) { if (list) list.remove(); wrap.hidden = !native; return; } wrap.hidden = false; if (list && list.dataset.kanafKey === key) return; if (!list) { list = element('div', 'kanaf-curated-recommendations'); wrap.append(list); } list.replaceChildren(); list.dataset.kanafKey = key; selected.forEach(function (item) { var card = element('a', 'kanaf-recommendation-card'); card.href = item.href; var image = element('img'); image.src = item.image; image.alt = ''; image.loading = 'lazy'; image.decoding = 'async'; image.width = image.height = 96; var text = element('div', 'kanaf-recommendation-copy'); text.append(element('span', 'kanaf-recommendation-note', item.note), element('h3', '', item.title), element('span', 'kanaf-recommendation-link', 'عرض المنتج')); card.append(image, text); list.append(card); }); } function recommendationItems() { // Source catalog and deliberate product mappings are assigned below. // No prices, inventory claims, inferred grind sizes or automatic additions. var context = { id: productId, title: title ? normalText(title.textContent) : '', main: main }; var choices = enhanceFollowup.chooseRecommendations ? enhanceFollowup.chooseRecommendations(context) : []; var seen = Object.create(null); var nativeLinks = Array.prototype.slice.call(main.querySelectorAll('salla-bought-together a.s-bought-together-item-link')); return choices.map(function (choice) { var item = catalogue.find(function (entry) { return entry.id === choice.id; }); if (!item || item.id === productId || !item.image || seen[item.id]) return null; var isNative = nativeLinks.some(function (a) { var path = pathOf(a.href); return path === pathOf(item.href) || path.endsWith('/p' + item.id) || normalText(a.textContent) === normalText(item.title); }); if (isNative) return null; seen[item.id] = true; return { id: item.id, title: item.title, href: item.href, image: item.image, note: choice.note }; }).filter(Boolean).slice(0, 3); } prepareGoogle(document.getElementById('kanaf-google-reviews')); if (product && info && form) { preparePayments(); prepareRecommendations(); } } // Navigation suggestions only: the visitor chooses and buys on the native PDP. enhanceFollowup.chooseRecommendations = function (context) { var id = String(context.id); var title = context.title || ''; var catalogue = enhanceFollowup.catalogue || []; var current = catalogue.find(function (item) { return item.id === id; }); var type = current ? current.kind : ''; var pairs = enhanceFollowup.sizePairs || []; var items = []; function offer(itemId, note) { items.push({ id: String(itemId), note: note }); } var giftIds = ['1523422663', '112519493', '1827407090', '1149364615', '114578199']; if (type === 'voucher' || /قسيمة|قسائم|بطاقة هدية/.test(title)) { var index = giftIds.indexOf(id); var values = index >= 0 && index < giftIds.length - 1 ? giftIds.slice(index + 1, index + 3) : giftIds.slice(2, 4).reverse(); values.forEach(function (giftId) { offer(giftId, index >= 0 && index < 4 ? 'قيمة أعلى للهدية' : 'قيم هدايا أخرى'); }); return items; } pairs.forEach(function (pair) { if (id === pair[0]) offer(pair[1], 'عبوة أكبر من المحصول نفسه'); else if (id === pair[1]) offer(pair[0], 'وزن أصغر من المحصول نفسه'); }); if (id === '34997415' || /باكج|بكج|باقة|باكتش/.test(title)) { // This package already contains a 260ml ceramic cup. offer('1017721766', 'جرّب القهوة في أظرف'); offer('818423352', 'كوب حراري لوقت الخروج'); offer('921999099', 'محصول بإيحاءات البرتقال والفراولة'); } else if (type === 'drip' || /أظرف|اظرف/.test(title)) { offer('1746131579', 'كوب لقهوة اليوم'); offer(id === '1017721766' ? '772319762' : '1017721766', 'محصول آخر في أظرف'); offer('818423352', 'كوب حراري لوقت الخروج'); } else if (type === 'cups' || /كوب|مق حراري/.test(title)) { offer('309921370', 'من محاصيل كنف'); offer('1017721766', 'جرّب القهوة في أظرف'); if (id === '818423352' || id === '2105094820') offer(id === '818423352' ? '2105094820' : '818423352', 'لون آخر بالمقاس نفسه'); else offer('818423352', 'خيار حراري لوقت الخروج'); } else if (type === 'equipment' || /فلاتر|ميزان|تنظيف|سيرفر|إبريق|ابريق/.test(title)) { if (/تنظيف/.test(title)) { offer('991268337', 'كوب لتقديم الإسبريسو'); if (id !== '1019689074') offer('1019689074', 'للعناية بعصا تبخير الحليب'); offer('309921370', 'من محاصيل كنف'); } else { offer('252102708', 'لوزن القهوة والماء'); offer('1746131579', 'كوب لتقديم القهوة'); offer('474517965', 'سيرفر سعة 350 مل'); offer('309921370', 'من محاصيل كنف'); } } else { offer('1746131579', 'كوب لقهوة اليوم'); offer('1017721766', 'جرّب القهوة في أظرف'); offer('818423352', 'كوب حراري لوقت الخروج'); } return items; }; // Titles, product URLs and images captured from the live Kanaf catalogue. enhanceFollowup.catalogue = [ { "id": "1405625407", "title": "بيلا قوجي | إثيوبيا | 250 جم", "href": "https://kanafroasters.com/bwVYNwA", "image": "https://cdn.salla.sa/BaEej/b3478200-0cd2-490f-ba34-5c525c9bf55f-404.26421404682x500-Rg6WJv2P5HtPA9jx4E6IwNXNrc54WNTzcsLD3wXu.jpg", "kind": "coffee" }, { "id": "66802472", "title": "بيلا قوجي | إثيوبيا | 1 كجم", "href": "https://kanafroasters.com/YzVvNga", "image": "https://cdn.salla.sa/BaEej/d6d5464e-8f0a-4a59-9e94-c54535f95279-404.26421404682x500-90j9omqA8EhBjyqNDmCGLhp3ADNIbgAj319rrDwM.jpg", "kind": "coffee" }, { "id": "289419205", "title": "سانتا آنا | السلفادور | 250 جم", "href": "https://kanafroasters.com/PDVxjoq", "image": "https://cdn.salla.sa/BaEej/780e5047-0929-46c2-9e50-a04bdbe399ee-404.26421404682x500-WgOoDCd6tdyViDqjCY3qj6h8zcGDuhnxwTQ9oniP.jpg", "kind": "coffee" }, { "id": "1997467296", "title": "سانتا آنا | السلفادور | 1 كجم", "href": "https://kanafroasters.com/NAPxqnY", "image": "https://cdn.salla.sa/BaEej/cd21bdbb-e114-4ea7-b190-27d6304b416a-404.26421404682x500-UTVUZGZwXbyjSs89Y1b8OtbiWOYERgQS9HcTY30h.jpg", "kind": "coffee" }, { "id": "314046180", "title": "ميريا | 1 كجم | إيحاءات الخوخ", "href": "https://kanafroasters.com/dboZAKy", "image": "https://cdn.salla.sa/BaEej/2b35f937-c228-42ae-a223-e5f99881ed6e-404.1975308642x500-r5otJCGAAvCN2plQNYamuwfBWDPYX7fEl8fhXYUM.jpg", "kind": "coffee" }, { "id": "1606646671", "title": "ميريا | 250 جم | إيحاءات الخوخ", "href": "https://kanafroasters.com/QzewOoA", "image": "https://cdn.salla.sa/BaEej/aaf2e618-3632-4198-ae17-5c268e4eae2d-404.1975308642x500-BMhrg5YR18qeoclUDiDYpehj3fpvduVQZogkTxD5.jpg", "kind": "coffee" }, { "id": "1749166691", "title": "قهوة سعودية فاخرة | 1 كجم", "href": "https://kanafroasters.com/PDvgrYx", "image": "https://cdn.salla.sa/BaEej/9109f054-e191-4843-8811-7cd64de71063-500x500-urJS6vnEoY546G9q7qAPSqodK0LjROWNOOhiKh1l.jpg", "kind": "coffee" }, { "id": "2050270363", "title": "قهوة سعودية فاخرة | 250 جم", "href": "https://kanafroasters.com/xvrwylY", "image": "https://cdn.salla.sa/BaEej/af7b6a6b-bdb3-42d8-a3df-0c669df4fce9-500x500-677mMtkiWmg8rPEGWys4SgVmIIZSy8dGt38oBFl9.jpg", "kind": "coffee" }, { "id": "1096184848", "title": "الجبل الأسود | البرازيل | 1 كجم", "href": "https://kanafroasters.com/ngQWOam", "image": "https://cdn.salla.sa/BaEej/81fe2cce-29f1-476e-a4fd-03f632a7d936-500x500-Jbn3gzkwG8xBPCoimmUIrNBO0U1Xskr6B9aIfRxJ.jpg", "kind": "coffee" }, { "id": "309921370", "title": "الجبل الأسود | البرازيل | 250 جم", "href": "https://kanafroasters.com/GYbKerz", "image": "https://cdn.salla.sa/BaEej/921a01e2-07cb-4b1a-8bb3-f6d4aec82285-500x500-q72sTDvjJJKGDrk2Norzn18vSeM6XVUqkbRaiQMR.jpg", "kind": "coffee" }, { "id": "748417990", "title": "ميريا | 1 كجم | إيحاءات البرتقال والفراولة", "href": "https://kanafroasters.com/wAWVyax", "image": "https://cdn.salla.sa/BaEej/d98e0790-3e89-47bb-a9b7-bdd264dc5e40-500x500-wfWvGB95mvalJegw4ITUt7NxoOKqWSmfKfp5YDDN.jpg", "kind": "coffee" }, { "id": "921999099", "title": "ميريا | 250 جم | إيحاءات البرتقال والفراولة", "href": "https://kanafroasters.com/jgZEAVz", "image": "https://cdn.salla.sa/BaEej/55c81fa5-3843-465e-b25a-2da43793e878-500x500-sVcQH4Fe1qwC0iSXGYcuXKXLqmhX8mgJWVWrC8Qo.jpg", "kind": "coffee" }, { "id": "743765590", "title": "توليما | كولومبيا | 1 كجم", "href": "https://kanafroasters.com/KRYyoyp", "image": "https://cdn.salla.sa/BaEej/8c25deaa-c76e-44c3-adf4-32a5ce24c96b-500x500-CfAUllz7TZVwtEyAakjslGfMkuNUBsZWYiETpznN.jpg", "kind": "coffee" }, { "id": "1197075637", "title": "توليما | كولومبيا | 250 جم", "href": "https://kanafroasters.com/zvVBOeq", "image": "https://cdn.salla.sa/BaEej/735d95a9-da35-4b19-b4b3-b1c63fa5ffe1-500x500-fp1eDwRanmYK7ZALYptWPGhuDtjaInLElMVaFf3g.jpg", "kind": "coffee" }, { "id": "874123845", "title": "بوكو همبيلا | إثيوبيا | 1 كجم", "href": "https://kanafroasters.com/WzZgBDa", "image": "https://cdn.salla.sa/BaEej/0e90ade1-f716-4fe2-8806-7e7be98a5dee-341.59779614325x500-IoeuIMklRBs1YXDsgIvIRMsdgmPijTaImri8WohC.jpg", "kind": "coffee" }, { "id": "991268337", "title": "كوب سيراميك اسبريسو 4oz", "href": "https://kanafroasters.com/oZXOxZp", "image": "https://cdn.salla.sa/BaEej/daaf2dd6-eb7b-4605-8114-89a98fe1743b-500x422.265625-qqCFOSw61rOsojPjJOWHZo1IlRhyHr1lFAU8zsMm.jpg", "kind": "cups" }, { "id": "2105094820", "title": "مق حراري بيج حجم 12oz", "href": "https://kanafroasters.com/KRvzPQw", "image": "https://cdn.salla.sa/BaEej/01544ac0-4478-440d-88e2-ab9db9dd1976-500x475-QR9L06O0R9OU7kZivblJbKgBWqPLqZZEPstYdXHC.jpg", "kind": "cups" }, { "id": "818423352", "title": "مق حراري أسود حجم 12oz", "href": "https://kanafroasters.com/BpEXAor", "image": "https://cdn.salla.sa/BaEej/75ff0a29-6987-42ac-b891-f5fa6afbe42b-500x470.65727699531-MGUrEqf5BDZ3cGNa2B9wX9Oe7LrbVjg1UbSDWzTy.jpg", "kind": "cups" }, { "id": "1746131579", "title": "Ceramic Mug 260ml | كوب سيراميك 260 مل", "href": "https://kanafroasters.com/yKxxVoB", "image": "https://cdn.salla.sa/BaEej/752f1992-b5c2-445c-a1e3-ca2923fc3235-333.33333333333x500-eHzBzrDyUNoU46b7VOXFwPpuGGdVTGB2m2hVmVmN.jpg", "kind": "cups" }, { "id": "1352294445", "title": "Ceramic Mug 185ml | كوب سيراميك 185 مل", "href": "https://kanafroasters.com/QzoogzX", "image": "https://cdn.salla.sa/BaEej/460f27c7-29f6-4237-a35d-978632e71814-333.33333333333x500-WIOJR7szDaiPT5KwS2UuYL14VGVd5YeRUEeGzxLt.jpg", "kind": "cups" }, { "id": "2058067577", "title": "Ceramic Mug 80ml | كوب سيراميك 80 مل", "href": "https://kanafroasters.com/mZyyjlK", "image": "https://cdn.salla.sa/BaEej/1f058007-3eb7-4b3a-9055-0382a8d6fe4a-333.33333333333x500-ENzTWRffwP7HTBZeRt0a5ia2ah4mpMG2CMkClAIq.jpg", "kind": "cups" }, { "id": "1017721766", "title": "بوكس 5 اظرف | إثيوبيا", "href": "https://kanafroasters.com/DpGjvAz", "image": "https://cdn.salla.sa/BaEej/d9c43945-87dd-4155-9a1d-f177bc773478-500x500-1yI6BH4IWERlJcCS0RuPIPpvcxJIkXM57O2FSeaB.jpg", "kind": "drip" }, { "id": "1208733300", "title": "بوكس 5 اظرف | البرازيل", "href": "https://kanafroasters.com/OqOzgpD", "image": "https://cdn.salla.sa/BaEej/a830670d-514a-4ed3-ae46-f678c7dfcc15-500x500-EHHdVhGD7W0fEGJpluCb5c8M1qUBeoJpu5GmYSM8.jpg", "kind": "drip" }, { "id": "242635431", "title": "بوكس 5 أظرف | إندونيسيا", "href": "https://kanafroasters.com/xvAZnQo", "image": "https://cdn.salla.sa/BaEej/e117421d-3aad-42b8-9b96-a35db347d956-500x500-2E9VKVRUHzZkLNIP9UHTZ1cQDqErq37qgFvoHvd4.jpg", "kind": "drip" }, { "id": "772319762", "title": "بوكس 5 اظرف | كولومبيا", "href": "https://kanafroasters.com/dPgXwll", "image": "https://cdn.salla.sa/BaEej/519abe8d-711c-4cec-b7f6-8b3a53a8ad04-500x500-abvO3DiCOwd3wjFSqyUgHxQxLkL1bPDhPZrdvizO.jpg", "kind": "drip" }, { "id": "1523422663", "title": "قسيمة شرائية 15 ريال", "href": "https://kanafroasters.com/aeROGob", "image": "https://cdn.salla.sa/BaEej/9b7104c6-6d06-4c1e-b21c-00145b564a67-500x328.125-lg3ixF6Nl5D2Gdv822ajxN1Cjg2rKI3e5mgd5k1g.png", "kind": "voucher" }, { "id": "112519493", "title": "قسيمة شرائية 20 ريال", "href": "https://kanafroasters.com/zvdRpAp", "image": "https://cdn.salla.sa/BaEej/a26142f1-7fd0-40e6-afd0-69dc94fb2c46-500x328.125-96qDslaTXSYsJpDq50IsTAt1hB8hjyV2ROF8jTj6.png", "kind": "voucher" }, { "id": "1827407090", "title": "قسيمة شرائية 30 ريال", "href": "https://kanafroasters.com/EZjwPXG", "image": "https://cdn.salla.sa/BaEej/181d5360-48ca-4639-863e-51bbaf0cb017-500x328.125-e1BrkOAg6SZ2vK2ZUMhSvmVYtXk9s8XabTlnbf6B.png", "kind": "voucher" }, { "id": "1149364615", "title": "قسيمة شرائية 50 ريال", "href": "https://kanafroasters.com/XewjZQB", "image": "https://cdn.salla.sa/BaEej/624b6dd9-68da-4906-bbae-d19018297855-500x328.125-MBnB3W0r1SyKfAK7BVYiiRNKfwzb3xUOHEtapZxV.png", "kind": "voucher" }, { "id": "114578199", "title": "قسيمة شرائية 100 ريال", "href": "https://kanafroasters.com/ydyGwyl", "image": "https://cdn.salla.sa/BaEej/cbfdff02-c46b-4ed7-8149-00d002c1a96b-500x328.125-sAeAdyz6IPrm3Vwr6K7ok1M5TBgeL9ib9gUWmM01.png", "kind": "voucher" }, { "id": "1164373580", "title": "حامل فلاتر بلاستيك | Filters Holder Plastic", "href": "https://kanafroasters.com/DpZZERP", "image": "https://cdn.salla.sa/BaEej/ee083dcf-708c-444b-8acc-9605fc9203f5-281.52492668622x500-F5vBmOZH8hhWpBdAzlTvrv3HITNny9ODP4ZBSV2S.jpg", "kind": "equipment" }, { "id": "474517965", "title": "V60 سيرفر Server 350ML", "href": "https://kanafroasters.com/rROOKYG", "image": "https://cdn.salla.sa/BaEej/e38e4d37-d0d9-4e55-b323-64ca19bac4d2-307.21966205837x500-BFnj5hhVFRtu7cSkCsrSRkz695p100nV0ZTvklWb.jpg", "kind": "equipment" }, { "id": "64303267", "title": "فلاتر ياباني من كافيك V60 مقاس 01", "href": "https://kanafroasters.com/PDlqmdr", "image": "https://cdn.salla.sa/BaEej/309d95f3-5107-4dbc-8ba1-c5969860d0d7-500x496.5727341965-baGguAvXkxkq5tb52dQ6lnMD06ip8koo3DQFqquX.jpg", "kind": "equipment" }, { "id": "1730255248", "title": "اقراص إيطاليا للتنظيف مكائن الإسبريسو 200 جرام", "href": "https://kanafroasters.com/nggmGzV", "image": "https://cdn.salla.sa/BaEej/a1238c99-d8d5-4123-b44a-9c3efdfb7bb2-353.49567949725x500-iWajVZBsdjGYOZccxFCMXBfu46OT5aoULaSiBgqm.jpg", "kind": "equipment" }, { "id": "743352999", "title": "مسحوق تنظيف إيطالي مكائن الإسبريسو 500 جرام", "href": "https://kanafroasters.com/PDDjnBO", "image": "https://cdn.salla.sa/BaEej/a0ae94c8-6149-4ac4-b922-d3773e0f97c0-353.49567949725x500-pBpJ6rojK9v6e5EUyReQjbNuxBce08U4flwlOCIR.jpg", "kind": "equipment" }, { "id": "117580010", "title": "فلاتر مستر كوفي قهوة اليوم | mr.coffee filter Coffee Day", "href": "https://kanafroasters.com/DppAOZg", "image": "https://cdn.salla.sa/BaEej/3cfbdce1-56aa-468c-9646-07b8cb011b4e-500x496.5727341965-aJqDFMQJKJYrrXzK4oWlN09ZutmclWe6Xdt8cakE.jpg", "kind": "equipment" }, { "id": "1250904210", "title": "فلاتر ميليتا قهوة اليوم | Filter Mileta 1x4 coffee Day", "href": "https://kanafroasters.com/ZqqAexD", "image": "https://cdn.salla.sa/BaEej/34508d6a-7536-4b86-a523-86e92d8a9df0-500x375-q1sg1HlIIGoxjDzAkHojYr3n7rB23tvIGDCpjftJ.jpg", "kind": "equipment" }, { "id": "324877670", "title": "فلاتر ميليتا قهوة اليوم | Filter Mileta 1x2 coffee Day", "href": "https://kanafroasters.com/KRRzPPd", "image": "https://cdn.salla.sa/BaEej/80d4495c-3f46-4e82-a902-d8786b0139ca-500x375-iXWebhzUCf5dt4OsaPGqBeLdEyZ7khZJvqpkVz1K.jpg", "kind": "equipment" }, { "id": "252102708", "title": "ميزان قهوة مختصة", "href": "https://kanafroasters.com/EXZepzq", "image": "https://cdn.salla.sa/BaEej/0b3f176b-552b-4d30-876e-7bae3fd83b4b-500x500-4qFWcNJJs3nS8VF5SIPFm5jw8fbMrYGYpmZHTxE7.jpg", "kind": "equipment" }, { "id": "1019689074", "title": "سائل تنظيف إيطالي لعصا تبخير الحليب 1 لتر", "href": "https://kanafroasters.com/eQQqZeX", "image": "https://cdn.salla.sa/BaEej/e05f0efd-91b3-4bce-9806-65f0a0875434-353.49567949725x500-AwwLUlLSK5fmgSrlkRVq9eJNsRSNoMAg64LLrm43.jpg", "kind": "equipment" }, { "id": "675765211", "title": "انفيوزد باشن فروت | كولومبيا | 1 كجم", "href": "https://kanafroasters.com/zojgoYR", "image": "https://cdn.salla.sa/BaEej/d484ec61-ac45-402d-8f40-4ced391a1ff2-432.5x500-i13EtgWiFtHeLdMJKlA3LZ4VLSKECm3fZf6aLXX5.jpg", "kind": "infused" }, { "id": "2072437420", "title": "انفيوزد باشن فروت | كولومبيا | 250 جم", "href": "https://kanafroasters.com/wARaAdw", "image": "https://cdn.salla.sa/BaEej/ab7c0d75-9a70-4944-bc15-0e32b13b9a1a-432.5x500-fGIoQUsVFNSWrKUXWiiKFTA3qlhlIbqjPLnP9B46.jpg", "kind": "infused" }, { "id": "1744073346", "title": "انفيوزد ويفر شوكولاتة | 1 كجم", "href": "https://kanafroasters.com/ZqnVoxz", "image": "https://cdn.salla.sa/BaEej/bfd4bcd4-7271-4183-86aa-28c6bb5af99c-386.8349864743x500-FYcPBWtuO58wjpvu5RefNVFYDpKrG5Dlk00EvEE5.jpg", "kind": "infused" }, { "id": "690102397", "title": "انفيوزد ويفر شوكولاتة | 250 جم", "href": "https://kanafroasters.com/RvdVegV", "image": "https://cdn.salla.sa/BaEej/9306e1e3-cf9e-4c55-b1a8-3353c7209f7c-386.5x500-ovKrufGr8EFNR1DY7gNtNLiF5zDNr929pSEzL15l.jpg", "kind": "infused" }, { "id": "329385169", "title": "انفيوزد فراولة | 1 كجم", "href": "https://kanafroasters.com/RvdVeyx", "image": "https://cdn.salla.sa/BaEej/a3044dc5-9261-481b-acab-c0fdbcf9d715-395.40126239856x500-MegGDwiMZDFSmCUaUckDgMRKAkaPoyM5wRjU0bCn.jpg", "kind": "infused" }, { "id": "2054751728", "title": "انفيوزد فراولة | 250 جم", "href": "https://kanafroasters.com/ngwONWm", "image": "https://cdn.salla.sa/BaEej/732cd9f6-5bb8-432a-8cad-5fe7930ac8b4-395.40126239856x500-3LXCrCdLji1hZlCHhDXImEbZ56BZDOaNBvzsLeLb.jpg", "kind": "infused" } ]; enhanceFollowup.sizePairs = [["309921370", "1096184848"], ["2050270363", "1749166691"], ["1606646671", "314046180"], ["921999099", "748417990"], ["1405625407", "66802472"], ["289419205", "1997467296"], ["1197075637", "743765590"], ["690102397", "1744073346"], ["2054751728", "329385169"], ["2072437420", "675765211"]]; /* Call once from enhance(), including category and blog pages. * Safe to repeat under the existing bounded child-list observer. */ function enhanceInternalPages(main) { 'use strict'; if (!main || !document.body) return; function cleanText(value) { return (value || '').replace(/[\u200b-\u200f\ufeff]/g, '').replace(/\s+/g, ' ').trim(); } function pathOf(href) { try { var url = new URL(href, window.location.href); if (url.origin !== window.location.origin) return ''; return decodeURIComponent(url.pathname).replace(/\/$/, ''); } catch (_) { return ''; } } if (document.body.classList.contains('product-index')) { var toolbar = main.querySelector('.filter-menue'); var heading = main.querySelector('h1#page-main-title'); if (toolbar && heading) { var crumbs = document.querySelectorAll('.s-breadcrumb-item'); var categoryName = crumbs.length ? cleanText(crumbs[crumbs.length - 1].textContent) : ''; if (categoryName) { var categoryHeading = main.querySelector('#kanaf-category-title'); if (!categoryHeading) { categoryHeading = document.createElement('h1'); categoryHeading.id = 'kanaf-category-title'; categoryHeading.className = 'kanaf-category-title'; } if (categoryHeading.textContent !== categoryName) categoryHeading.textContent = categoryName; if (categoryHeading.nextElementSibling !== toolbar) toolbar.before(categoryHeading); // Salla still owns the original ID and may replace its text with a count. heading.hidden = true; heading.classList.add('kanaf-native-category-title'); heading.setAttribute('aria-hidden', 'true'); } } } var endedArticlePath = '/blog/عرض اليوم الوطني/a-998696068'; main.querySelectorAll('.content_blog a[href]').forEach(function (link) { if (pathOf(link.href) !== endedArticlePath) return; var card = link.closest('.content_blog'); if (card && card.isConnected) card.remove(); }); if (document.body.classList.contains('blog-single') && pathOf(window.location.href) === endedArticlePath) { var articleBody = main.querySelector('.article-body'); if (articleBody && !main.querySelector('#kanaf-ended-offer-notice')) { var notice = document.createElement('aside'); notice.id = 'kanaf-ended-offer-notice'; notice.className = 'kanaf-ended-offer-notice'; notice.setAttribute('role', 'note'); notice.setAttribute('aria-label', 'عرض منتهي'); var paragraph = document.createElement('p'); paragraph.append(document.createTextNode('انتهى هذا العرض. ')); var link = document.createElement('a'); link.href = 'https://kanafroasters.com/category/wwnaxn'; link.textContent = 'اكتشف البوكسات المتاحة الآن.'; paragraph.append(link); notice.append(paragraph); articleBody.before(notice); } } } function enhance(){ document.querySelectorAll('custom-salla-product-card').forEach(function(card){ var title=card.querySelector('h3'); if(title) card.querySelectorAll('img[alt="undefined"]').forEach(function(img){img.alt=title.textContent.trim();}); }); var pickup=document.getElementById('option-1157865143'); if(pickup&&!document.getElementById('kanaf-pickup-help')){var help=document.createElement('a');help.id='kanaf-pickup-help';help.className='kanaf-pickup-help';help.href='https://wa.me/966565434306';help.target='_blank';help.rel='noopener noreferrer';help.textContent='استفسر عن خيارات الاستلام عبر واتساب ↗';pickup.parentElement.append(help);} var main=document.querySelector('main#main-content'); if(!main)return; var product=document.body.classList.contains('product-single'); var home=!!document.querySelector('.kanaf-shopcats'); retireLegacyProductModule(main); if(product)enhanceProduct(main); if((product||home)&&!document.getElementById('kanaf-google-reviews')){ var holder=document.createElement('div');holder.innerHTML=reviewsHTML;var section=holder.firstElementChild; if(product){var detailPanel=main.querySelector('.details-main-product');if(detailPanel)detailPanel.parentElement.after(section);else main.append(section);} else main.append(section); } enhanceFollowup(main,product,home); enhanceInternalPages(main); } function start(){enhance();var queued=false;var observer=new MutationObserver(function(){if(!queued){queued=true;setTimeout(function(){queued=false;enhance();},150);}});observer.observe(document.body,{childList:true,subtree:true});setTimeout(function(){observer.disconnect();},20000);} if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',start,{once:true});else start(); })();