Перейти к содержанию
Coba

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

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

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

После подтверждения заказа, пользователь попадает на страничку 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
// ваш код.
}

Поделиться сообщением


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

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

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

или


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
bunny_pancake.jpg

Поделиться сообщением


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

Исчерпавающий ответ :)

Поделиться сообщением


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

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

<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>

Поделиться сообщением


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

 

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

В контроллере /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>

 

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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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