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

Не работает возврат товара в ЛК


tart
 Поделиться

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

Добрый.

 

Суть проблемы:
История заказов в личном кабинете покупателя, на которую он переходит и смотрит что заказывал. Если хочет подробнее посмотреть заказ то переходит на подробную страницу с заказом, справа от каждого товара в заказе расположилась кнопочка "вернуть". Так вот, при нажатии на эту кнопку открывается страница товара.

 

Я думаю проблема в чпу.

Так выглядит просмотр заказа: account/order/info.html?order_id=123

А вот так должна открываться страница возвращаемого товара (форма возврата): /account/return/insert.html?order_id=123&product_id=123456, но она не открывается должны образом, открывается только страница товара с ценой, характеристиками и тд.

 

Спасибо.
 

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


ну да, надо с ЧПУ разбираться, либо ссылку не переводить в ЧПУ вид - это проще

 

как выглядит правильная ссылка без ЧПУ?

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


как обычно, путь до контроллера

index.php?route=account/return/insert&product_id.....

 

Местами поменял product_id и order_id работает.

Спасибо.

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


Когда делаю изменения в контроллере ссылка меняется, но из-за .html кидает на 404-ю.

 

index.php?route=account/return/insert.html?product_id=1537&order_id=251

'return'   => $this->url->link('index.php?route=account/return/insert', '&product_id=' . $product['product_id'] . '&order_id=' . $order_info['order_id'], 'SSL')
Изменено пользователем tart
Ссылка на комментарий
Поделиться на других сайтах


catalog/controller/account/order.php

'return'   => $this->url->link

на

'return'   => 'index.php?route=account/return/insert&product_id=' . $product['product_id'] . '&order_id=' . $order_info['order_id'],

nikifalex, спасибо.

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


  • 4 месяца спустя...

что не догнал ))

так выглядит оригинал

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

как правильно должно быть написано?

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


  • 5 месяцев спустя...

ocStore 1.5.5.1.2 (Seo Pro включен) не помогает вышеописанные методы.

Изменяю в файле catalog/controller/account/order.php строку:

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

1. Если на эту (А):

'return'   => 'index.php?route=account/return/insert&product_id=' . $product['product_id'] . '&order_id=' . $order_info['order_id'], 'SSL'

или эту (В) - поменял местами order_id и product_id

'return'   => 'index.php?route=account/return/insert&order_id=' . $order_info['order_id'] . '&product_id=' . $product['product_id'], 'SSL'

, то переадресовывает на товар.


2. Изменил & на ? перед order_id= в ссылке А

'return'   => 'index.php?route=account/return/insert&product_id=' . $product['product_id'] . '?order_id=' . $order_info['order_id'], 'SSL'

уже лучше, но заполняется только информация о товаре, но не заполняется информация о заказе.

 

 

3. Изменил & на ? перед product_id= в ссылке В

'return'   => 'index.php?route=account/return/insert&order_id=' . $order_info['order_id'] . '?product_id=' . $product['product_id'], 'SSL'

теперь заполняется только информация о заказе, но не заполняется информация о товаре.

 

 

Подскажите решение, если уже найдено. Спасибо

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


  • 9 месяцев спустя...
  • 5 месяцев спустя...
В 27.02.2017 в 12:29, RSH сказал:

Тема актуальная, не заполняются все поля, решение пока не нашлось...

 

На самом деле решение простое, но почему-то нигде не нашел на него ответа. Смысл в том, что модуль ЧПУ (скорее всего любой какой бы у вас не стоял) подхватывает ссылку которая содержит параметр с ID продукта (выглядит так - &product_id=ХХХ) и преобразует ее в ЧПУ. Проблема в том, что ссылка на возврат товара содержит именно такой параметр. Чтобы не было конфликта нужно его всего-лишь передавать с другим названием, например, &return_product_id=ХХХ

 

Чтобы решить проблему с кнопкой возврата товара для OpenCart 2.x нужно:

 

В файле \catalog\controller\account\order.php (и, возможно, у некоторых в \system\storage\modification\catalog\controller\account\order.php)

 

Найти (строка 372): 

'return'   => $this->url->link('account/return/add', 'order_id=' . $order_info['order_id'] . '&product_id=' . $product['product_id'], true)

Заменить на:

'return'   => $this->url->link('account/return/add', 'order_id=' . $order_info['order_id'] . '&return_product_id=' . $product['product_id'], true)

 

Затем в файле \catalog\controller\account\return.php


Найти (строки 421-423):

		if (isset($this->request->get['product_id'])) {
			$product_info = $this->model_catalog_product->getProduct($this->request->get['product_id']);
		}

Заменить на:

		if (isset($this->request->get['return_product_id'])) {
			$product_info = $this->model_catalog_product->getProduct($this->request->get['return_product_id']);
		}

Что интересно, для кнопки "перезаказа" товара разработчики завели отдельный параметр &order_product_id, а для возврата почему-то прощелкали этот момент.

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


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

А кто нибудь подскажет как добавить эту кнопку вот сюда https://ibb.co/bNZdQK

не нужно спрашивать зачем это делать когда.....)))

Долгая история))

 

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


7 часов назад, Desserro сказал:

А кто нибудь подскажет как добавить эту кнопку вот сюда https://ibb.co/bNZdQK

не нужно спрашивать зачем это делать когда.....)))

Долгая история))

 

Если без правок контроллеров

В файле catalog/view/theme/вашатема/template/extension/module/account.tpl.

После:

<a href="<?php echo $return; ?>" class="list-group-item"><?php echo $text_return; ?></a>

Вставить:

<a href="index.php?route=account/return/add" class="list-group-item">Возврат товара</a>

 

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

13 hours ago, Gaziz said:

Если без правок контроллеров

В файле catalog/view/theme/вашатема/template/extension/module/account.tpl.

После:

<a href="<?php echo $return; ?>" class="list-group-item"><?php echo $text_return; ?></a>

Вставить:

<a href="index.php?route=account/return/add" class="list-group-item">Возврат товара</a>

 

 

Спасибо друг)))

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


  • 1 год спустя...
В 16.08.2017 в 20:42, Sireox сказал:

 

На самом деле решение простое, но почему-то нигде не нашел на него ответа. Смысл в том, что модуль ЧПУ (скорее всего любой какой бы у вас не стоял) подхватывает ссылку которая содержит параметр с ID продукта (выглядит так - &product_id=ХХХ) и преобразует ее в ЧПУ. Проблема в том, что ссылка на возврат товара содержит именно такой параметр. Чтобы не было конфликта нужно его всего-лишь передавать с другим названием, например, &return_product_id=ХХХ

 

Чтобы решить проблему с кнопкой возврата товара для OpenCart 2.x нужно:

 

В файле \catalog\controller\account\order.php (и, возможно, у некоторых в \system\storage\modification\catalog\controller\account\order.php)

 

Найти (строка 372): 

'return'   => $this->url->link('account/return/add', 'order_id=' . $order_info['order_id'] . '&product_id=' . $product['product_id'], true)

Заменить на:

'return'   => $this->url->link('account/return/add', 'order_id=' . $order_info['order_id'] . '&return_product_id=' . $product['product_id'], true)

 

Затем в файле \catalog\controller\account\return.php


Найти (строки 421-423):

		if (isset($this->request->get['product_id'])) {
			$product_info = $this->model_catalog_product->getProduct($this->request->get['product_id']);
		}

Заменить на:

		if (isset($this->request->get['return_product_id'])) {
			$product_info = $this->model_catalog_product->getProduct($this->request->get['return_product_id']);
		}

Что интересно, для кнопки "перезаказа" товара разработчики завели отдельный параметр &order_product_id, а для возврата почему-то прощелкали этот момент.

Респект!
Oc Store 3, шаблон UniShop2 - строки 287 и 321... помогло!
СПАСИБО большое.

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


  • 1 год спустя...
  • 2 недели спустя...

Сделал как выше написано было... но есть проблемы... Все очень подробно показал и описал в этом посте:

гуру ребята помогите :wink: 

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


6 часов назад, TreatComp сказал:

Сделал как выше написано было... но есть проблемы... Все очень подробно показал и описал в этом посте:

гуру ребята помогите :wink: 

Проблема решена.

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


  • 11 месяцев спустя...

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

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

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

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

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

Войти

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

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

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

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

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