Markierung von Aktionsartikeln in Bestellexport

Artikel, die in einer Aktion enthalten sein sollen müssen mit einem Tag markiert sein, der mit “Aktion-” beginnt. Das Skript im Theme liest automatisch alle Tags aus und vermerkt die Aktionskennzeichnung am Artikel im Warenkorb und somit auch an der Bestellung. Beispiel hier: “Aktion-blackweek” als Tag.

Im Export wurde eine zusätzliche spalte hinzugefügt, die auf Artikelebene in der Bestellung einen Hinweis hinzufügt, ob es sich um einen Aktionsartikel handelt.

Beim Export sind nun automatisch die Artikel, die im Rahmen einer Aktion gekauft wurden enthalten.

 

Einschränkung: Die Aktions Tags an Produkten müssen nach Ablauf einer Aktion wieder entfernt werden. Sonst werden solche Artikel immer als Aktionsartikel markiert.


Technische Einrichtung:

Mithilfe von Claude eingerichtet: https://claude.ai/share/bdd34b61-32a2-44a9-b3ec-c7debe11db6a

  • In der Theme Liquid wurde das Skript eingefügt:
<script>
(function () {
functionaktionFor(variantId) {
varel = document.querySelector('[data-variant="' + variantId + '"][data-aktion]');
returnel ? el.getAttribute('data-aktion') : null;
}
varoriginalFetch = window.fetch;
window.fetch = function (input, init) {
try {
varurl = typeofinput === 'string' ? input : (input && input.url) || '';
if (url.indexOf('/cart/add') !== -1 && init && init.body) {
if (init.bodyinstanceofFormData) {
varid = init.body.get('id');
vartag = id && aktionFor(id);
if (tag && !init.body.has('properties[_Aktion]')) {
init.body.append('properties[_Aktion]', tag);
}
} else if (typeof init.body === 'string') {
vardata = JSON.parse(init.body);
varitems = data.items || [data];
varchanged = false;
items.forEach(function (item) {
vartag = item && item.id && aktionFor(item.id);
if (tag) {
item.properties = item.properties || {};
if (!item.properties._Aktion) { item.properties._Aktion = tag; changed = true; }
}
});
if (changed) init.body = JSON.stringify(data);
}
}
} catch (e) {}
returnoriginalFetch.apply(this, arguments);
};
})();
</script>

Schreibe einen Kommentar

Menü schließen