Pavel Nakonechnyy

Opencart руководство: Smart Order Success Message

Опубликовано by Pavel Nakonechnyy on (изменено: ) в Web development. Метки: .

После оформления заказа покупатель на экране видит стандартное сообщение opencart, о том, что заказ успешно оформлен. Но покупатели часто перезванивают в магазин с двумя вопросами:

  1. Я недавно оформил заказ, номер заказа не знаю, когда сможете привезти?
  2. Я недавно оформил заказ, но мне на почту ничего не приходило, я не знаю номер заказа.
    Для решения данной проблемы был опробован модуль Smart Order Success Message.

Скачиваем дистрибутив под нашу версию opencart. Распаковываем архив.
Установка проводится в два шага. Из папки “Step 1” устанавливаем в Дополнения > Установщик дополнений. Обновить кеш модификаторов в Дополнения > Модификаторы (Менеджер дополнений). Потом из папки “Step 2” устанавливаем install_me.ocmod.zip также как и предыдущий. После установки в меню появится данный модуль.

Описание модуля:

  • Shows the Firstname and Order Id on success page after checkout.
  • Using vQmod or OCmod.
  • Installation by one click.

Но у нас модуль не заработал. Мы используем OCSTORE 2.3 и шаблон UNISHOP. Разбираться почему не заработало не стали. Вместо этого внесли изменения в два файла на сайте.


Результат махинаций

/catalog/language/ru-ru/checkout/success.php

<?php
// Heading
$_['heading_title']        = 'Заказ успешно сформирован!';

// Text
$_['text_basket']          = 'Корзина покупок';
$_['text_checkout']        = 'Оформление';
$_['text_success']         = 'Успешно';
$_['text_customer']        = '<br><p>Вы можете просмотреть историю заказов в <a href="%s">Личном кабинете</a>, открыв <a href="%s">Историю заказов</a>.</p><p>Если у вас возникнут какие-либо вопросы, пожалуйста, свяжитесь с нами через Whatsapp, Viber: +7 (985) 907 94 97, <a href="https://t.me/lexresist">Telegram @***</a>, <a href="mailto:***@site.com"> email: ***@site.com</a>.</p><p>Спасибо за покупку в нашем интернет-магазине!</p><h2>Номер вашего заказа: %s</h2>';
$_['text_guest']           = '<p>Ваш заказ был успешно сформирован! Информация о заказе направлена на указанный вами email адрес (если не можете найти письмо, то проверьте папку СПАМ).</p><p>Если у вас возникнут какие-либо вопросы, пожалуйста, свяжитесь с нами через Whatsapp, Viber: +7 (999) 999 9***, <a href="https://t.me/***">Telegram @***</a>, <a href="mailto:***@site.com"> email: ***@site.com</a>.</p><p>Спасибо за покупку в нашем интернет-магазине!</p><h2>Номер вашего заказа: %s</h2>';

и /catalog/controller/checkout/success.php

<?php
class ControllerCheckoutSuccess extends Controller {
	public function index() {
		$this->load->language('checkout/success');

		$order_id = $this->session->data['order_id'];

		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']);
		}

		$this->document->setTitle($this->language->get('heading_title'));

		$data['breadcrumbs'] = array();

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_home'),
			'href' => $this->url->link('common/home')
		);

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_basket'),
			'href' => $this->url->link('checkout/cart')
		);

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_checkout'),
			'href' => $this->url->link('checkout/checkout', '', true)
		);

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_success'),
			'href' => $this->url->link('checkout/success')
		);

		$data['heading_title'] = $this->language->get('heading_title');

		if ($this->customer->isLogged()) {
			$data['text_message'] = sprintf($this->language->get('text_customer'), $this->url->link('account/account', '', true), $this->url->link('account/order', '', true), $this->url->link('account/download', '', true), $order_id);
		} else {
			$data['text_message'] = sprintf($this->language->get('text_guest'), $order_id);
		}

		$data['button_continue'] = $this->language->get('button_continue');

		$data['continue'] = $this->url->link('common/home');

		$data['column_left'] = $this->load->controller('common/column_left');
		$data['column_right'] = $this->load->controller('common/column_right');
		$data['content_top'] = $this->load->controller('common/content_top');
		$data['content_bottom'] = $this->load->controller('common/content_bottom');
		$data['footer'] = $this->load->controller('common/footer');
		$data['header'] = $this->load->controller('common/header');

		$this->response->setOutput($this->load->view('common/success', $data));
	}
}
473