для фильтра
хани
Фермент
Сладость
Кислотность
Плотность
керинчи
индонезия
жёлтое яблоко, табак, чернослив, кешью
для эспрессо
мытая
Фермент
Сладость
Кислотность
Плотность
декаф
гватемала
клюква, яблоко, тростниковый сахар, карамель
для фильтра
натуральная
Фермент
Сладость
Кислотность
Плотность
Конга
Эфиопия
малина, ежевика, абрикос, крем-брюле, мандарин, тростниковый сахар
для эспрессо
натуральная
Фермент
Сладость
Кислотность
Плотность
Мантикейра
Бразилия
белый изюм, фундук, тростниковый сахар, грейпфрут
Новинки и лоты недели
для эспрессо
натуральная / мытая
Фермент
Сладость
Кислотность
Плотность
«Восторг»
Бленд
красное вино, абрикосовый джем, помело, чернослив, корица
для эспрессо
натуральная
Фермент
Сладость
Кислотность
Плотность
«доверие»
Бленд
цитрусы, шоколад, фрукты, орехи
для эспрессо
натуральная
Фермент
Сладость
Кислотность
Плотность
«старт»
бленд
темный шоколад, карамель, ликер, цитрусы
100 приветственных бонусов - на любой кофе из каталога
Дарим бонусы
для эспрессо
натуральная
Фермент
Сладость
Кислотность
Плотность
Мантикейра
Бразилия
белый изюм, фундук, тростниковый сахар, грейпфрут
для эспрессо
натуральная
Фермент
Сладость
Кислотность
Плотность
санта изабель
Бразилия
желтые фрукты, арахисовая паста, миндаль, шоколад
для эспрессо
мытая
Фермент
Сладость
Кислотность
Плотность
Декаф
Гватемала
клюква, яблоко, тростниковый сахар, карамель
для эспрессо
мытая
Фермент
Сладость
Кислотность
Плотность
юньнань
китай
черешня, карамель, молочный шоколад, темные ягоды
/* ============================================================ ПРАВКИ МОБИЛЬНОГО СКРИПТА КАТАЛОГА [vc9] Те же правки 1–3 стоит сделать и в десктопной версии. ============================================================ */ /* ---------- ПРАВКА 1. Логи ---------- Удалить самую первую строку перед (function() {: console.log('[vc9] Скрипт загружен!'); Сразу после 'use strict'; вставить: */ var DEBUG = false; // true — вернуть логи для отладки function log() { if (DEBUG) try { console.log.apply(console, arguments); } catch (e) {} } /* Затем во всём скрипте заменить (Ctrl+H): console.log( → log( console.warn( → log( console.error оставить. */ /* ---------- ПРАВКА 2. Загрузка товаров ---------- Раньше: кеш писался в sessionStorage по 48 ключей, но НИГДЕ не читался — товары каждый раз заново качались с store.tildaapi.com, причём с priority:'low' и только через 200 мс после DOMContentLoaded. Теперь: запрос уходит сразу при загрузке скрипта, а при переходах по сайту в течение CACHE_TTL список берётся из кеша без сети. Удалить целиком разделы «3. КЕШИРОВАНИЕ» и «4. ЗАГРУЗКА ТОВАРОВ» (от var productCache = {}; до конца функции loadProducts) и вставить вместо них: */ var LIST_CACHE_KEY = 'vc9_products_' + SECTION_UID; var allProducts = []; var isLoaded = false; var isLoading = false; var loadCallbacks = []; function readListCache() { try { var o = JSON.parse(sessionStorage.getItem(LIST_CACHE_KEY) || 'null'); if (o && Array.isArray(o.p) && Date.now() - o.t < CACHE_TTL) return o.p; } catch (e) {} return null; } function finishLoad(list) { allProducts = list || []; isLoaded = true; var cbs = loadCallbacks; loadCallbacks = []; cbs.forEach(function (fn) { try { fn(allProducts); } catch (e) {} }); } function loadProducts(callback) { if (callback) { if (isLoaded) { callback(allProducts); return; } loadCallbacks.push(callback); } if (isLoaded || isLoading) return; isLoading = true; var cached = readListCache(); if (cached) { log('[vc9] Товары из кеша:', cached.length); finishLoad(cached); return; } var url = 'https://store.tildaapi.com/api/getproductslist/' + '?storetype=tilda' + '&publickey=' + encodeURIComponent(PUBLIC_KEY) + '&storepartuid=' + encodeURIComponent(SECTION_UID) + '&size=48'; fetch(url) .then(function (r) { if (!r.ok) throw new Error('HTTP ' + r.status); return r.json(); }) .then(function (data) { var list = data.products || []; try { sessionStorage.setItem(LIST_CACHE_KEY, JSON.stringify({ t: Date.now(), p: list })); } catch (e) {} log('[vc9] Загружено товаров:', list.length); finishLoad(list); }) .catch(function (err) { console.error('[vc9] Ошибка загрузки:', err); finishLoad([]); }); } loadProducts(); // стартуем запрос сразу, не дожидаясь DOM /* ---------- ПРАВКА 3. Запуск без задержки ---------- В самом конце (раздел «14. ЗАПУСК») в двух местах заменить setTimeout(initAllCards, 200); на initAllCards(); Если после этого какие-то карточки не заполняются — вернуть задержку, но 50 мс. */ /* ---------- ПРАВКА 4. В сайта ---------- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD — добавить строку (браузер заранее откроет соединение с API каталога): */