Hallo

Um eine POS-Session zu starten, wählen Sie einen Kunden und klicken dann auf Session starten.

Hallo

Hier finden Sie die Warenkörbe die Sie für POS INACTIVE erstellt haben.

Kundenlogin

Bitte melden Sie sich an, um Zugriff auf unsere Services zu erhalten.

(function () {
  const BTN_SEL = ".pos-delete-cart";
  const WRAPPER_SEL =
    (window.GBC_POS_SAVED_CARTS && window.GBC_POS_SAVED_CARTS.wrapper) ||
    "#gbc-saved-carts-wrapper";

  function ajaxUrl() {
    return (window.GBC_POS_SAVED_CARTS && window.GBC_POS_SAVED_CARTS.ajax_url)
      ? String(window.GBC_POS_SAVED_CARTS.ajax_url)
      : (window.ajaxurl ? String(window.ajaxurl) : "/wp-admin/admin-ajax.php");
  }

  function nonce() {
    return (window.GBC_POS_SAVED_CARTS && window.GBC_POS_SAVED_CARTS.nonce)
      ? String(window.GBC_POS_SAVED_CARTS.nonce)
      : "";
  }

  function postForm(data) {
    const body = new URLSearchParams();
    Object.keys(data || {}).forEach((k) => body.set(k, String(data[k])));
    return fetch(ajaxUrl(), {
      method: "POST",
      headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" },
      body: body.toString(),
      credentials: "same-origin",
    }).then((r) => r.json());
  }

  function killEvent(e) {
    // ✅ verhindert Browser submit/navigation + Bricks interactions
    try { e.preventDefault(); } catch(_) {}
    try { e.stopPropagation(); } catch(_) {}
    try { e.stopImmediatePropagation(); } catch(_) {}
  }

  async function refreshWrapper() {
    const wrap = document.querySelector(WRAPPER_SEL);
    if (!wrap) return;

    const n = nonce();
    if (!n) return;

    const res = await postForm({
      action: "gbc_pos_saved_carts_html",
      nonce: n,
    });

    if (res && res.success && res.data && typeof res.data.html === "string") {
      wrap.innerHTML = res.data.html;
    } else {
      console.warn("[POS] wrapper refresh failed:", res);
    }
  }

  async function onClick(e) {
    const btn = e.target.closest(BTN_SEL);
    if (!btn) return;

    killEvent(e);

    const cartId = parseInt(btn.getAttribute("data-cart-id") || "0", 10) || 0;
    if (!cartId) return;

    const n = nonce();
    if (!n) return;

    if (btn.getAttribute("aria-busy") === "true") return;
    btn.setAttribute("aria-busy", "true");
    btn.classList.add("is-loading");

    try {
      const res = await postForm({
        action: "gbc_pos_delete_saved_cart",
        nonce: n,
        cart_id: cartId,
      });

      if (!res || !res.success) {
        console.warn("[POS] delete failed:", res);
        return;
      }

      // ✅ UI aktualisieren
      await refreshWrapper();

    } catch (err) {
      console.warn("[POS] network error:", err);
    } finally {
      btn.removeAttribute("aria-busy");
      btn.classList.remove("is-loading");
    }
  }

  // ✅ capture=true: wir sind VOR Bricks/Forms dran
  document.addEventListener("click", onClick, true);
})();

Ihr Warenkorb wurde befüllt

Ihr Warenkorb wurde soeben mit ? befüllt.
Weiter shoppenzum Warenkorb

Kundenlogin

Bitte melden Sie sich an, um Zugriff auf unsere Services zu erhalten.

Diese Website nutzt Cookies, um bestmögliche Funktionalität bieten zu können.

EinverstandenDatenschutz & CookiebestimmungenDatenschutzerklärung