У моих дедушки и бабушки есть интернет-магазин, в котором они продают товары (бинокли и телескопы и тому подобное).Они мало знают о PHP / Javascript, и я тоже не специалист по этому вопросу.Я пытаюсь внедрить Отзывы клиентов Google, когда люди покупают продукт.
Я следовал руководству по интеграции Google, и все работает нормально до того момента, когда мне нужно кормить Google номерами GTIN / EANкупленные продукты.
Теперь мы используем CMS Hostedshop, и они также предоставляют API (очень похоже на shopify). Однако я не думаю, что API хорошо документирован, и я сталкивался спроблемы, при которых код не работает, когда я пытаюсь ввести Google номера GTIN / EAN, но он работает, когда я не передаю номера GTIN / EAN в Google.
В CMS есть меню под названием «Партнерская программа»Маркетинг », куда я должен положить javascript, и он выглядит следующим образом (с некоторыми изменениями, чтобы приблизительная дата доставки работала) от Google:
<script src="https://apis.google.com/js/platform.js?onload=renderOptIn" async defer></script>
<script>
//Grabbing Dates
var date = new Date();
date.setDate(date.getDate() + 3);
//Formatting
var year = date.getFullYear();
var month = date.getMonth()+1;
var dt = date.getDate();
//Adding 0s to match google's expectancy
if (dt < 10) {dt = '0' + dt;}
if (month < 10) { month = '0' + month;}
var DeliveryDate = date.getFullYear() + '-' + month + '-' + dt;
window.renderOptIn = function() {
window.gapi.load('surveyoptin', function() {
window.gapi.surveyoptin.render(
{
// REQUIRED FIELDS
"merchant_id": 126277391,
"order_id": "%OrderId%",
"email": "%OrderCustomerEmail%",
"delivery_country": "%OrderCustomerCountry%",
"estimated_delivery_date": DeliveryDate,
"opt_in_style": "BOTTOM_LEFT_DIALOG"
//if 1 product is bought
"products": [{"gtin":"GTIN1"}]
//or if 2 products are bought
"products": [{"gtin":"GTIN1"}, {"gtin":"GTIN2"}]
//or if 3 products are bought
"products": [{"gtin":"GTIN1"}, {"gtin":"GTIN2"}, {"gtin":"GTIN3"}]
//And so on..
});
});
}
</script>
Важным фрагментом кода здесь является "products": [{"gtin":"GTIN1"} , ...
Очевидно, что это невозможно сделать так, поскольку всегда будут заказы разных размеров, поэтому я пытаюсь использовать цикл for длядостичь результатов для заказа любого размера.
Я пробовал несколько способов собрать товар (ы) в «строке заказа»
"products": [{% for Product in OrderLines %}{"gtin":"{{ Product.Ean }}"}{% unless forloop.last %}, {% endunless %}{% endfor %}]
И я тоже пробовал эти разные коды
"products": [{% for item in Order.OrderLine %}{"gtin":"{{ item.Product.Ean }}"}{% unless forloop.last %}, {% endunless %}{% endfor %}]
"products": [{% for Product in Order.OrderLine %}{"gtin":"{{ Product.Ean }}"}{% unless forloop.last %}, {% endunless %}{% endfor %}]
"products": [{% for Product in PacketProductLine %}{"gtin":"{{ Product.Ean }}"}{% unless forloop.last %}, {% endunless %}{% endfor %}]
"products": [{% for ProductId in OrderLine %}{"gtin":"{{ ProductId.Ean }}"}{% unless forloop.last %}{% endunless %} {% endfor %}]
и несколько других, но всякий раз, когда я помещаю этот фрагмент кода в сценарий, «окно выбора», которое спрашивает пользователя, хочет ли он оставить отзыв после покупки продукта, не отображается,Всякий раз, когда код отсутствует, отображается поле «Подтверждение».Я предполагаю, что я использую API неправильно, однако я не могу понять, какие классы использовать из API, чтобы получить правильное возвращаемое значение.
Ссылка API: https://api.hostedshop.dk/doc/ - Этосвободный доступ и чтение для всех, и я был бы очень признателен за любую помощь, которая может заставить его правильно передать значения GTIN / EAN в Google.
Любая помощь НАМНОГО ценится !!