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

SeoPro - кнопка "возврат товара" перекидывает в карточку товара


Strogin
 Поделиться

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

Товарищи дорогие! Проблема появилась. На странице заказа нажимаю кнопку "Возврат" и попадаю не на страницу возврата, а на страницу товара. Как исправить? OpenCart 1.5.2 или 1.5.1.х - не важно.

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


Немного опишу вопрос. После заказа покупателем товара и при просмотре его через /index.php?route=account/order/info&order_id=** есть кнопка Возврат товара при нажатии на неё происходит переход в карточку товара.

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


  • 3 недели спустя...

Не работает, если включен ЧПУ.

Точнее не передает нормальное "Product_id"

Исправил следующим образом (на ocStore 1.5.2.1):

1) /catalog/controller/account/order.php

~ 337 строчка: 'return' => $this->url->link('account/return/insert', 'order_id=' . $order_info['order_id'].'&product_id=' . $product['product_id'], 'SSL')

заменяем на:

'return' => $this->url->link('account/return/insert', 'order_id=' . $order_info['order_id'].'&product=' . $product['name'].'&model=' . $product['model'].'&quantity=' . $product['quantity'], 'SSL')

2) /catalog/controller/account/return.php

~ 477 строчка:

if (isset($this->request->post['product'])) {

$this->data['product'] = $this->request->post['product'];

} elseif (!empty($product_info)) {

$this->data['product'] = $product_info['name'];

} else {

$this->data['product'] = '';

}

if (isset($this->request->post['model'])) {

$this->data['model'] = $this->request->post['model'];

} elseif (!empty($product_info)) {

$this->data['model'] = $product_info['model'];

} else {

$this->data['model'] = '';

}

if (isset($this->request->post['quantity'])) {

$this->data['quantity'] = $this->request->get['quantity'];

} else {

$this->data['quantity'] = 1;

}

Заменяем на:

if (isset($this->request->get['product'])) {

$this->data['product'] = $this->request->get['product'];

} else {

$this->data['product'] = '';

}

if (isset($this->request->get['model'])) {

$this->data['model'] = $this->request->get['model'];

} else {

$this->data['model'] = '';

}

if (isset($this->request->get['quantity'])) {

$this->data['quantity'] = $this->request->get['quantity'];

} else {

$this->data['quantity'] = 1;

}

URL конечно не оч красиво выглядит, зато работает.

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


  • 2 года спустя...

А на ocstore 1.5.5.1.2 ЭТО РЕШЕНИЕ подойдет? или какой нужно?

Когда включен тип ЧПУ Seo_Pro, то кнопка "возврат товара" перекидывает в карточку товара

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


  • 1 год спустя...

Получилось смоделировать баг на чистом ocStore 1.5.5.1.2;

ЧПУ включен;

SeoPro.

 

Кнопка "возврат товара" перекидывает на карточку товара только в том случае, если для этого товара указан SEO URL.

Если это поле пустое, то после клика по кнопке "возврат товара" происходит открытие страницы формы с корректным заполнением данных из заказа.

 

Без добавления keyword в таблицу oc_url_alias для index.php?route=account/order/info:

C добавлением keyword в таблицу oc_url_alias:

 

Если устраивает внешний вид ссылки mysite.ru/index.php?route=account/order/info&order_id=1 (так как в решении ниже игнорируется keyword добавленный в таблицу oc_url_alias), то решается это в файле

catalog/controller/common/seo_pro.php

/*добавляем строку*/ if(!in_array($route, array('product/search'))) {
	foreach($data as $key => $value) {
		switch($key) {
			case 'product_id':
			case 'manufacturer_id':
			case 'category_id':
			case 'information_id':
/*добавляем строку*/ case 'order_id':
				$queries[] = $key . '=' . $value;
				unset($data[$key]);
				$postfix = 1;
				break;

			case 'path':
				$categories = explode('_', $value);
				foreach($categories as $category) {
					$queries[] = 'category_id=' . $category;
				}

				unset($data[$key]);
				break;

			default:
				break;
		}
	}
/*добавляем строку*/ }

или качаем обновленный файл seo_pro.php с репозитория (авторы Yesvik и freelancer)

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


Но остался вопрос:

Как реализовать рабочий вариант, чтобы ссылка была такой? mysite.ru/order-info/?order_id=1

 

Здесь обратный вопрос

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


  • 1 год спустя...

Описал решение проблемы для 2.х, но для 1.5 оно будет почти таким же - https://opencart-forum.ru/topic/49347-ne-rabotaet-vozvrat-tovara-v-lk/?do=findComment&comment=841044

 

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


  • 5 лет спустя...

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

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

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

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

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

Войти

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

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

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

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

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