Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[Решено] номер заказа в 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']' 

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

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


href="https://opencart-forum.ru/storage/attachment/monthly_03_2011/post-3682-0-55465000-1300306588.jpg"> 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>
Ссылка на комменирий
Погделиться на других сайих


  • 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
удноно
Ссылка на комменирий
Погделиться на других сайих


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

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

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

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

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

Войти

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

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

×
×
  • Создать...

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

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