← Модули · Тильда · JS

Observer корзины Тильды (заготовка)

Бесплатно

Это учебный каркас. Полный расчёт зон/DaData — уже как платный модуль Deliveri.

Файлы

cart-observer.js — debounce + guard от double-bind

Инструкция

  1. Вставьте скрипт в HTML перед </body> на страницах с корзиной.
  2. В onCartChange() добавьте свою логику (цена, доставка, метка).
  3. Проверьте, что класс корзины совпадает с вашим блоком T706.
  4. Для продакшена нужен API зон и обработка адреса — это уже кастом.

Код

(function(){
  var SEL='.t706__cartwin';
  var bound=false;
  var t=null;
  function onCartChange(){
    // TODO: ваш расчёт / fetch / патч DOM
    console.log('[cart] changed', document.querySelector(SEL));
  }
  function schedule(){
    clearTimeout(t);
    t=setTimeout(onCartChange, 150);
  }
  function bind(){
    var root=document.querySelector(SEL);
    if(!root || root.dataset.obsBound) return;
    root.dataset.obsBound='1';
    new MutationObserver(schedule).observe(root,{childList:true,subtree:true,characterData:true});
    bound=true;
    schedule();
  }
  document.addEventListener('DOMContentLoaded', bind);
  setInterval(function(){ if(!bound) bind(); }, 1200);
})();