Я добавил параметр в код темы через редактор шаблонов, но заметил, что дополнительный информация была добавлена только один раз, это то место на панели инструментов Shopify, где представлены мои данные. Я провел несколько тестов, так почему же это может произойти?
Я не понимаю, как такое возможно, что первая попытка оказалась успешной, а остальные неудачными.
Позвольте мне объяснить идею, которой я следую. У меня есть дополнительный параметр, который передается как параметр URL GET, когда пользователь посещает магазин Shopify. Я написал скрипт для хранения его в файлах cookie и localStorage. Второй скрипт добавляет этот параметр в корзину. У меня был один положительный тест, где я нашел свой параметр в порядке в админ-панели, но остальные три теста провалились.
Я поместил скрипт в theme.liquid перед закрывающим тегом head.
Это должно работать на каждой странице, поскольку пользователи могут войти на любую страницу, я имею в виду идею получения параметра GET. Вот почему я каждый раз пытался проанализировать этот параметр.
Второй скрипт добавляет дополнительный параметр примечаний в корзину, как только она существует, я ищу корзину формы.
Наконец, я хочу получить вебхук или данные о заказах через API. Я предпочитаю получать вебхук, но в JSON слишком много параметров, но это пока не вопрос =)
Код: Выделить всё
// admitad
function setCookie(name, value) {
var days = 90;
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toUTCString();
document.cookie = name + "=" + (value || "") + expires + "; path=/“;
}
// get admitad_uid
if (window.location.search.indexOf('admitad_uid=') !== -1 || window.location.search.indexOf('tagtag_uid=') !== -1) {
var params = new URLSearchParams(window.location.search);
var uid = params.get('admitad_uid') || params.get('tagtag_uid’);
if (uid) {
// cookie
setCookie('admitad_uid', uid);
// localStorage
localStorage.setItem('admitad_uid', uid);
// save indexedDB
var request = indexedDB.open("AdmitadDB", 1);
request.onupgradeneeded = function(event) {
var db = event.target.result;
db.createObjectStore("uids", { autoIncrement: true });
};
request.onsuccess = function(event) {
var db = event.target.result;
var transaction = db.transaction(["uids"], "readwrite”);
var store = transaction.objectStore("uids”);
store.put(uid);
};
}
}
document.addEventListener('DOMContentLoaded', function() {
var uid = localStorage.getItem('admitad_uid') ||
document.cookie.split('; ').find(row => row.startsWith('admitad_uid=')).split('=')[1];
if (uid) {
var form = document.querySelector('form[action="/cart"]’);
if (form) {
var input = document.createElement('input’);
input.type = ‘hidden’;
input.name = 'attributes[admitad_uid]’;
input.value = uid;
form.appendChild(input);
}
}
});
[enter image description here][1]
2 -й заказ скриншот
Подробнее здесь: https://stackoverflow.com/questions/793 ... -dashboard