Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

[Решено] номер заказа в url


Coba
 Поделиться

Рекомендованные сообщения

Добрый вечер! 

После подтверждения заказа, пользователь попадает на страничку http://сайт/index.php?route=checkout/success, мне нужно реализовать добавление в урл номер заказа, что бы было вот так http://сайт/index.php?route=checkout/success=15

Где 15 - номер заказа.

Буду благодарен за помощь, спасибо!

Ссылка на комментарий
Поделиться на других сайтах


думаю такая благодарность будет эквивалентна $ к затраченному времени

Посколько номер заказа для каждого пользователя отдельно хранится в сессии, то и урл нужно формировать на базе этой сессии, работа на халявную никак не тянет

Ссылка на комментарий
Поделиться на других сайтах


Einshtein, оно ему и даром в URL не надо. наверняка очередной "передать данные о заказе в партнерку".

Coba, все данные есть в контроллере checkout/success - передавай переменной в шаблон и используй, где и как тебе надо.

Ссылка на комментарий
Поделиться на других сайтах

Einshtein, оно ему и даром в URL не надо. наверняка очередной "передать данные о заказе в партнерку".

Coba, все данные есть в контроллере checkout/success - передавай переменной в шаблон и используй, где и как тебе надо.

 

мне это нужно для отслеживания клиентов в google analytics. Что бы я знал откуда пришел покупатель. Спасибо за подсказку попробую разобраться.

Ссылка на комментарий
Поделиться на других сайтах


Пробовал передать значение переменной order_id из контроллера success.php в шаблон success.tpl, но не получается, подскажите как получить это значение?

Ссылка на комментарий
Поделиться на других сайтах


		if (isset($this->session->data['order_id'])) {
			$this->cart->clear();
			...
			$this->language->load('checkout/success');
			...
>>

		$order_info = array();
		if (isset($this->session->data['order_id'])) {
			$this->load->model('account/order');
			$order_info = $this->model_account_order->getOrder($this->session->data['order_id']);
			
			$this->cart->clear();
			...
			$this->data['order_info'] = $order_info;
			$this->language->load('checkout/success');
			...
в шаблоне

if (isset($order_info) && !empty($order_info)) {
// тут у вас есть ВСЕ данные о заказе.
// смотрите print_r($order_info); или шаблон account/order/info
// ваш код.
}
Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...

А что есть сама переменная? В каком виде ее вставлять? Например название товара вставлять как

'transactionAffiliation': '<?php echo $product['quantity']; ?>'

или


'transactionAffiliation': '$product['quantity']' 

Или вообще не правильно? :)

Ссылка на комментарий
Поделиться на других сайтах


Вставляю переменные:
 

<script>
dataLayer = [{
    'transactionId': '<?php echo $order_id; ?>',
    'transactionTotal': '<?php echo $product['total']; ?>',
    'transactionProducts': [{
        'name': '<?php echo $product['name']; ?>',
        'price': '<?php echo $product['price']; ?>',
        'quantity': '<?php echo $product['quantity']; ?>'
    }]
}];
</script>

В итоге получаю следующее в тег менеджере:

dataLayer = [{
    'transactionId': '581',
    'transactionTotal': '<b>Notice</b>: Undefined variable: product in <b>/var/www/chlatto66/data/www/site.com/vqmod/vqcache/vq2-catalog_view_theme_lexus_yourstyle_template_common_success.tpl</b> on line <b>36</b>',
    'transactionProducts': [{
        'name': '<b>Notice</b>: Undefined variable: product in <b>/var/www/chlatto66/data/www/site.com/vqmod/vqcache/vq2-catalog_view_theme_lexus_yourstyle_template_common_success.tpl</b> on line <b>38</b>',
        'price': '<b>Notice</b>: Undefined variable: product in <b>/var/www/chlatto66/data/www/site.com/vqmod/vqcache/vq2-catalog_view_theme_lexus_yourstyle_template_common_success.tpl</b> on line <b>39</b>',
        'quantity': '<b>Notice</b>: Undefined variable: product in <b>/var/www/chlatto66/data/www/site.com/vqmod/vqcache/vq2-catalog_view_theme_lexus_yourstyle_template_common_success.tpl</b> on line <b>40</b>'
    }]
}];
Ссылка на комментарий
Поделиться на других сайтах


Причем на странице оформления в dataLeyer показывает правильную информацию а вот именно на странице success выдает такую вот хрень.

Ссылка на комментарий
Поделиться на других сайтах


При помощи хорошего человека вывелось такое решение:

В контроллере /catalog/controller/checkout/success.php

Ищем 

if (isset($this->session->data['order_id'])) {

И после него вставляем:
 

$this->load->model('account/order');
			
			$this->data['order_id']       = $this->session->data['order_id'];
			$this->data['order_info']     = $this->model_account_order->getOrder($this->session->data['order_id']);
			$this->data['order_totals']   = $this->model_account_order->getOrderTotals($this->session->data['order_id']);
			$this->data['order_products'] = $this->model_account_order->getOrderProducts($this->session->data['order_id']);
			
			$shipping = 0;
			
			foreach ($this->data['order_totals'] as $row)
			{
				if ($row['code'] == 'shipping')
				{
					$shipping = $row['value'];
				}
			}
			
			$this->data['shipping'] = $shipping;
			
			$tax = 0;
			
			foreach ($this->data['order_products'] as $row)
			{
				$tax = $tax + $row['tax'];
			}
			
			$this->data['tax'] = $tax;

Далее в файле шаблона страницы успешного заказа /catalog/view/theme/your_theme/template/common/success.tpl
Перед

<?php echo $footer; ?>

Вставляем:

<script>
dataLayer = [{
    'transactionId': '<?php echo $order_id; ?>',
    'transactionTotal': '<?php echo $order_info["total"]; ?>',
    'transactionProducts': [
<?php foreach ($order_products as $key=>$row) { ?>
	{
          'name': '<?php echo $row["name"]; ?>',
          'price': '<?php echo $row["price"]; ?>',
          'quantity': '<?php echo $row["quantity"]; ?>'
    } <?php if((count($order_products) - 1) !== $key) {?>,<?php }; ?>
<?php }; ?>
         ]
}];
</script>
Ссылка на комментарий
Поделиться на других сайтах


  • 1 год спустя...

 

При помощи хорошего человека вывелось такое решение:

В контроллере /catalog/controller/checkout/success.php

Ищем 

if (isset($this->session->data['order_id'])) {

И после него вставляем:

 

$this->load->model('account/order');
			
			$this->data['order_id']       = $this->session->data['order_id'];
			$this->data['order_info']     = $this->model_account_order->getOrder($this->session->data['order_id']);
			$this->data['order_totals']   = $this->model_account_order->getOrderTotals($this->session->data['order_id']);
			$this->data['order_products'] = $this->model_account_order->getOrderProducts($this->session->data['order_id']);
			
			$shipping = 0;
			
			foreach ($this->data['order_totals'] as $row)
			{
				if ($row['code'] == 'shipping')
				{
					$shipping = $row['value'];
				}
			}
			
			$this->data['shipping'] = $shipping;
			
			$tax = 0;
			
			foreach ($this->data['order_products'] as $row)
			{
				$tax = $tax + $row['tax'];
			}
			
			$this->data['tax'] = $tax;

Далее в файле шаблона страницы успешного заказа /catalog/view/theme/your_theme/template/common/success.tpl

Перед

<?php echo $footer; ?>

Вставляем:

<script>
dataLayer = [{
    'transactionId': '<?php echo $order_id; ?>',
    'transactionTotal': '<?php echo $order_info["total"]; ?>',
    'transactionProducts': [
<?php foreach ($order_products as $key=>$row) { ?>
	{
          'name': '<?php echo $row["name"]; ?>',
          'price': '<?php echo $row["price"]; ?>',
          'quantity': '<?php echo $row["quantity"]; ?>'
    } <?php if((count($order_products) - 1) !== $key) {?>,<?php }; ?>
<?php }; ?>
         ]
}];
</script>

 

Подскажите, у Вас получилось передать транзакцию в Аналитикс? Это рабочий способ?

Ссылка на комментарий
Поделиться на других сайтах


  • 3 года спустя...

@Dizzy, Попробовали способ, который вы описали - прописали код в контроллер /checkout/success.php, а потом другой код уже в common/success.tpl

 

Но в итоге, делаем тестовый заказ, а в Datalayer попадает только id заказа, а остальные данные - цена, состав заказа и т.д. - туда не попадает http://prntscr.com/qgvg2e

 

Подскажите, почему так получается?

 

Ссылка на комментарий
Поделиться на других сайтах


  • 4 месяца спустя...

ПРИВЕТСТВУЮ!
Тоже появилась необходимость отправлять электронную коммерцию.
Код выше к сожалению не заработал и я использовал расширение с маркета

 

 

Изменено пользователем Sharapov317
удалено
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.