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

Переадресация после завершения заказа


Recommended Posts

Доброго времени суток. Версия движка OcStore 2.1 оформление заказа стандартное из коробки. Вопрос, как сделать что-бы по завершению заказа перебрасывало не на http://мойсайт/success , а на http://мойсайт/download

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


С другой стороны, так не сильно правильно делать.

Или делать только 100% уверенности, что заказ оплачен.

Для этого поставить проверку по статусу заказа.

И в этом методе есть ещё один минус, при оплате без регистрации нет доступа к странице account/download

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

10 часов назад, OcAppLab сказал:

С другой стороны, так не сильно правильно делать.

Или делать только 100% уверенности, что заказ оплачен.

Для этого поставить проверку по статусу заказа.

И в этом методе есть ещё один минус, при оплате без регистрации нет доступа к странице account/download

Добрый день.

1. Я думал что проверка статуса есть по умолчанию, в админке

Статус заказа: В обработке;

Статус обработанного заказа: Ожидание;

Статус завершенного заказа: Сделка завершена;

Этого не достаточно? Вы имеете ввиду нужно в контроллере прописывать какие-то доп. условия?

2. Что касается регистрации, я учел этот момент и всегда подгружается форма с регистрацией нового клиента, а гостевую совсем убрал. 

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


49 минут назад, valper сказал:

1. Я думал что проверка статуса есть по умолчанию, в админке

В админке, да, оно то есть. А в контроллере checkout/success (отвечает за страницу завершения заказа) этого нет.

И нужно делать дополнительный запрос, чтоб вытянуть статус заказа (его id, например) и по нему делать проверку.

Или, если у Вас для всех оплат стоит один статус заказа и Вы точно знаете, что после оплаты деньги поступят, тогда можно использовать спокойно 

12 часов назад, ocdroid сказал:

catalog/controller/checkout/success.php


$this->response->redirect($this->url->link('account/download'));

 

Вот этот вариант.

 

Только разместить его нужно где-то в конце этой проверки:

 

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

	// Add to activity log
	if ($this->config->get('config_customer_activity')) {
		$this->load->model('account/activity');

		if ($this->customer->isLogged()) {
			$activity_data = array(
				'customer_id' => $this->customer->getId(),
				'name'        => $this->customer->getFirstName() . ' ' . $this->customer->getLastName(),
				'order_id'    => $this->session->data['order_id']
			);

			$this->model_account_activity->addActivity('order_account', $activity_data);
		} else {
			$activity_data = array(
				'name'     => $this->session->data['guest']['firstname'] . ' ' . $this->session->data['guest']['lastname'],
				'order_id' => $this->session->data['order_id']
			);

			$this->model_account_activity->addActivity('order_guest', $activity_data);
		}
	}

	unset($this->session->data['shipping_method']);
	unset($this->session->data['shipping_methods']);
	unset($this->session->data['payment_method']);
	unset($this->session->data['payment_methods']);
	unset($this->session->data['guest']);
	unset($this->session->data['comment']);
	unset($this->session->data['order_id']);
	unset($this->session->data['coupon']);
	unset($this->session->data['reward']);
	unset($this->session->data['voucher']);
	unset($this->session->data['vouchers']);
	unset($this->session->data['totals']);
}

Чтоб очистилась корзина и сессии.

 

Получится, примерно так:

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

	// Add to activity log
	if ($this->config->get('config_customer_activity')) {
		$this->load->model('account/activity');

		if ($this->customer->isLogged()) {
			$activity_data = array(
				'customer_id' => $this->customer->getId(),
				'name'        => $this->customer->getFirstName() . ' ' . $this->customer->getLastName(),
				'order_id'    => $this->session->data['order_id']
			);

			$this->model_account_activity->addActivity('order_account', $activity_data);
		} else {
			$activity_data = array(
				'name'     => $this->session->data['guest']['firstname'] . ' ' . $this->session->data['guest']['lastname'],
				'order_id' => $this->session->data['order_id']
			);

			$this->model_account_activity->addActivity('order_guest', $activity_data);
		}
	}

	unset($this->session->data['shipping_method']);
	unset($this->session->data['shipping_methods']);
	unset($this->session->data['payment_method']);
	unset($this->session->data['payment_methods']);
	unset($this->session->data['guest']);
	unset($this->session->data['comment']);
	unset($this->session->data['order_id']);
	unset($this->session->data['coupon']);
	unset($this->session->data['reward']);
	unset($this->session->data['voucher']);
	unset($this->session->data['vouchers']);
	unset($this->session->data['totals']);
	
	// REDIRECT
	$this->response->redirect($this->url->link('account/download'));
}

Лучше это делать через модификатор, чтоб не править основные файлы CMS

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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