Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Coba

Recommended Posts

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

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

Надіслати
Поділитися на інших сайтах


		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 weeks later...

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

'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>'
    }]
}];
Надіслати
Поділитися на інших сайтах


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

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

 

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

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

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

 

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

 

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

 

Надіслати
Поділитися на інших сайтах


  • 4 months later...

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

 

 

Змінено користувачем Sharapov317
удалено
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.