Передать в JS-скрипте номер заказа/кол-во товара/sku Есть решение

Собственно сабж. Подскажите пожалуйста, если с php всё понятно, то в JS не очень понятно, как передавать данные о номере заказа, кол-ве заказанного товара и SKU

Шаблон так выглядит, где в фигурных скобках нужно указать параметры:

orderedItem.push({
  Product: {
    productID: '{{product_id}}',  // внутренний код продукта (не более 100 символов, соответствует ID из товарного фида).
    price: '{{price}}',  // цена товара
  },
  orderQuantity: '{{quantity}}',  // количество товара
});

ADMITAD.Invoice.referencesOrder.push({
  orderNumber: '{{order number}}',  // внутренний номер заказа (не более 100 символов)
});

10 ответов

  • 0
    Alexander 28 июля 2022 21:50 #

    Хотя бы один пример из четырёх подскажите, с стальным попробую сам разобраться

  • 0
    Alexander 29 июля 2022 18:15 #

    Ребята, подскажите хоть метод решения, в документации ничего не могу найти

  • 1
    Михаил Ушенин Webasyst 1 августа 2022 09:49 #

    Расскажите подробнее о решаемой вами задаче. Что вы разрабатываете: плагин, тему дизайна? Где должен работать ваш код: на витрине, в панели управления?

    • 0
      Alexander Alexander 1 августа 2022 11:40 #

      Михал, чего-то я действительно совсем не подробно расписал вопрос. Задача интегрировать площадку Admitad с интернет-магазином, по инструкции: https://support.admitad.com/hc...

      У них так называемый трекинг-код. Подключается через внешний скрипт, который прописываем в <head>, с нашей стороны дописывается js-скрипт передачи данных. Код скрипта ниже, выше было просто выдержка из кода:

      Главное передать productID, price, orderQuantity и orderNumber
      AJAX не используем, в ИМ пошаговое оформление заказа.
      Скрипт ниже, должен быть на странице Спасибо за заказ

      Перепробовал несколько вариантов, но я так понял всё сводится к получению данных через Smarty, но ведь это php, всё на сервере, не получается через скрипт получить эти данные, да ещё и на странице Спасибо за заказ, где по сути получаю только номер заказа {$order.id}

      <script type="text/javascript">
      ADMITAD = window.ADMITAD || {};
      ADMITAD.Invoice = ADMITAD.Invoice || {};
      ADMITAD.Invoice.broker = 'adm';  // параметр дедупликации (по умолчанию для Admitad Affiliate)
      ADMITAD.Invoice.category = '1';  // код целевого действия (определяется при интеграции)
        
      var orderedItem = [];  // временный массив для товарных позиций
      
      // повторить для каждой товарной позиции в корзине
      orderedItem.push({
        Product: {
          productID: '{{product_id}}',  // внутренний код продукта (не более 100 символов, соответствует ID из товарного фида).
          category: '1',  // код тарифа (определяется при интеграции)
          price: '{{price}}',  // цена товара
          priceCurrency: 'RUB',  // код валюты ISO-4217 alfa-3
        },
        orderQuantity: '{{quantity}}',  // количество товара
        additionalType: 'sale'  // всегда sale
      });
      
      ADMITAD.Invoice.referencesOrder = ADMITAD.Invoice.referencesOrder || [];
      // добавление товарных позиций к заказу
      ADMITAD.Invoice.referencesOrder.push({
        orderNumber: '{{order number}}',  // внутренний номер заказа (не более 100 символов)
        orderedItem: orderedItem
      });
      
      // Важно! Если данные по заказу Admitad Affiliate подгружаются через AJAX раскомментируйте следующую строку.
      // ADMITAD.Tracking.processPositions();
      </script>


      В WA есть модуль интеграции, но он не рабочий, последнее обновление было в 2018 году, в тех.поддержке Admitad подтвердили, что с данным модулем не работают

      https://www.webasyst.ru/store/...

  • 3

    Откройте шаблон checkout.success.html 

    {$order|wa_dumpc}

    В нем выведите все доступные переменные


  • 2
    <script type="text/javascript">
    	ADMITAD = window.ADMITAD || {};
    	ADMITAD.Invoice = ADMITAD.Invoice || {};
    	ADMITAD.Invoice.broker = 'adm';  // параметр дедупликации (по умолчанию для Admitad Affiliate)
    	ADMITAD.Invoice.category = '1';  // код целевого действия (определяется при интеграции)
    		
    	var orderedItem = [];  // временный массив для товарных позиций
    
    	// повторить для каждой товарной позиции в корзине
    	{foreach $order.items as $item}
    	orderedItem.push({
    		Product: {
    			productID: '{$item.product_id}',  // внутренний код продукта (не более 100 символов, соответствует ID из товарного фида).
    			category: '1',  // код тарифа (определяется при интеграции)
    			price: '{$item.price}',  // цена товара
    			priceCurrency: 'RUB',  // код валюты ISO-4217 alfa-3
    		},
    		orderQuantity: '{$item.quantity}',  // количество товара
    		additionalType: 'sale'  // всегда sale
    	});
    	{/foreach}
    
    	ADMITAD.Invoice.referencesOrder = ADMITAD.Invoice.referencesOrder || [];
    	// добавление товарных позиций к заказу
    	ADMITAD.Invoice.referencesOrder.push({
    		orderNumber: '{$order.id}',  // внутренний номер заказа (не более 100 символов)
    		orderedItem: orderedItem
    	});
    
    	// Важно! Если данные по заказу Admitad Affiliate подгружаются через AJAX раскомментируйте следующую строку.
    	// ADMITAD.Tracking.processPositions();
    </script>

  • 1
    Alexander 2 августа 2022 02:27 #

    kadurinho, благодарю!!!

  • 0
    Alexander 14 сентября 2022 21:25 #

    В продолжение истории, подскажите пожалуйста варианты передачи цены на товар со скидкой

    {foreach $order.items as $item}
            orderedItem.push({
                    Product: {
                            productID: '{$item.product_id}',
                            category: '1',
                            price: '{$item.price}', // цена товара
                            priceCurrency: 'RUB',
                    },
                    orderQuantity: '{$item.quantity}',
                    additionalType: 'sale'
            });
            {/foreach}
    • 0
      Alexander Alexander 14 сентября 2022 22:22 #

      Скидка формируется по промокоду плагином Гибкие скидки и бонусы

    • 0
      Alexander Alexander 9 октября 2022 20:50 #

      Получилось таким образом передать стоимость каждого товара со скидкой/бонусом

      {foreach $order.items as $item}
              orderedItem.push({
                      Product: {
                              productID: '{$item.product_id}',
                              category: '1',
                              price: '{$item.price - $item.total_discount/$item.quantity}', // цена товара
                              priceCurrency: 'RUB',
                      },
                      orderQuantity: '{$item.quantity}',
                      additionalType: 'sale'
              });
              {/foreach}

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите