Перейти к содержанию

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

Добрый день уважаемые!

Измучился со своей проблемой.

Необходимо реализовать закладки без авторизации, все возможные варианты из гугла перепробовал, не работают.

Версия Opencart 2.1.0.2.1

 

Не бейте если тема уже такая имеется, не нашел.  :unsure:

 

class ControllerAccountWishList extends Controller {
public function index() {
if (!$this->customer->isLogged()) {
$this->session->data['redirect'] = $this->url->link('account/wishlist', '', 'SSL');

$this->response->redirect($this->url->link('account/login', '', 'SSL'));
}

$this->load->language('account/wishlist');

$this->load->model('account/wishlist');

$this->load->model('catalog/product');

$this->load->model('tool/image');

if (isset($this->request->get['remove'])) {
// Remove Wishlist
$this->model_account_wishlist->deleteWishlist($this->request->get['remove']);

$this->session->data['success'] = $this->language->get('text_remove');

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

$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_account'),
'href' => $this->url->link('account/account', '', 'SSL')
);

$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('account/wishlist')
);

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

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

$data['column_image'] = $this->language->get('column_image');
$data['column_name'] = $this->language->get('column_name');
$data['column_model'] = $this->language->get('column_model');
$data['column_stock'] = $this->language->get('column_stock');
$data['column_price'] = $this->language->get('column_price');
$data['column_action'] = $this->language->get('column_action');

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

if (isset($this->session->data['success'])) {
$data['success'] = $this->session->data['success'];

unset($this->session->data['success']);
} else {
$data['success'] = '';
}

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

$results = $this->model_account_wishlist->getWishlist();

foreach ($results as $result) {
$product_info = $this->model_catalog_product->getProduct($result['product_id']);

if ($product_info) {
if ($product_info['image']) {
$image = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_wishlist_width'), $this->config->get('config_image_wishlist_height'));
} else {
$image = false;
}

if ($product_info['quantity'] <= 0) {
$stock = $product_info['stock_status'];
} elseif ($this->config->get('config_stock_display')) {
$stock = $product_info['quantity'];
} else {
$stock = $this->language->get('text_instock');
}

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
$price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
} else {
$price = false;
}

if ((float)$product_info['special']) {
$special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
} else {
$special = false;
}

$data['products'][] = array(
'product_id' => $product_info['product_id'],
'thumb' => $image,
'name' => $product_info['name'],
'model' => $product_info['model'],
'stock' => $stock,
'price' => $price,
'special' => $special,
'href' => $this->url->link('product/product', 'product_id=' . $product_info['product_id']),
'remove' => $this->url->link('account/wishlist', 'remove=' . $product_info['product_id'])
);
} else {
$this->model_account_wishlist->deleteWishlist($product_id);
}
}

$data['continue'] = $this->url->link('account/account', '', 'SSL');

$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');

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/account/wishlist.tpl')) {
$this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/account/wishlist.tpl', $data));
} else {
$this->response->setOutput($this->load->view('default/template/account/wishlist.tpl', $data));
}
}

public function add() {
$this->load->language('account/wishlist');

$json = array();

if (isset($this->request->post['product_id'])) {
$product_id = $this->request->post['product_id'];
} else {
$product_id = 0;
}

$this->load->model('catalog/product');

$product_info = $this->model_catalog_product->getProduct($product_id);

if ($product_info) {
if ($this->customer->isLogged()) {
// Edit customers cart
$this->load->model('account/wishlist');

$this->model_account_wishlist->addWishlist($this->request->post['product_id']);

$json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . (int)$this->request->post['product_id']), $product_info['name'], $this->url->link('account/wishlist'));

$json['total'] = sprintf($this->language->get('text_wishlist'), $this->model_account_wishlist->getTotalWishlist());
} else {
if (!isset($this->session->data['wishlist'])) {
$this->session->data['wishlist'] = array();
}

$this->session->data['wishlist'][] = $this->request->post['product_id'];

$this->session->data['wishlist'] = array_unique($this->session->data['wishlist']);

$json['success'] = sprintf($this->language->get('text_login'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL'), $this->url->link('product/product', 'product_id=' . (int)$this->request->post['product_id']), $product_info['name'], $this->url->link('account/wishlist'));

$json['total'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ? count($this->session->data['wishlist']) : 0));
}
}

$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
}

Поделиться сообщением


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

уберите 

if (!$this->customer->isLogged()) {
$this->session->data['redirect'] = $this->url->link('account/wishlist', '', 'SSL');

$this->response->redirect($this->url->link('account/login', '', 'SSL'));
}

Поделиться сообщением


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

Это были мои первые действия, к сожалению не помогает.

Если я все правильно понял на одном из форумов процитирую "wishlist привязывается к аккаунту, если просто избавиться от авторизации то привязаться будет не к чему. Нужно настраивать привязку к сессии"

В общем при выполнении данного шага я могу попасть на страницу вишлиста, но она абсолютно пустая, сколько бы я туда товара не добавил.

Поделиться сообщением


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

Вам нужно обработать эту строку

Если пользователь залогинен то данные берутся из

$results = $this->model_account_wishlist->getWishlist();

Иначе из сессии

$results = $this->session->data['wishlist'];

Только в случае гостя массив results нужно привести к первому виду

Поделиться сообщением


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

Хранить вишлист в сессии бессмысленно: посетитель через пол часа вернётся на сайт, а вишлист уже пустой. Для незарегистрированных его нужно хранить либо в куки, либо в localStorage (лучше в последнем).
 
Ну, и полноценное решение данной задачи чуть объёмнее, чем то, что можно просто подсказать на форуме.

 

 
Это сможет помочь?
Этот модуль хранит в сессии. Но его можно взять за основу для реализации описанного мною выше варианта.

Поделиться сообщением


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

да, в 2-ке wishlist пишется в таблицу и.. сессию

 

Но доступен только для авторизованного пользователя

 

В сессии он нужен, чтобы если покупатель авторизовался, то его "собранный" товар попал  таблицу вишлиста

Поделиться сообщением


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

Это сможет помочь?

 

Спасибо большое, этот модуль помог.

Сколько времени потратил а 250 деревянных решили все  :oops:

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От m4gz
      Скачать/Купить дополнение


      Убрать "сравнение" "закладки" "валюты" "языки"
      Убираем на выбор из опций магазина "сравнение" "закладки" "валюты" "языки"
      Сравнение и закладки убираются из :
      Товара
      Списка товаров
      Списка производителей
      Шапки
      Подвала
      Личного кабинета
      Модуля личного кабинета

      Валюты и языки убираются из шапки.
      VQMOD обязателен!
      Краткая инструкция по установки VQmod'a
      Качаем отсюда https://code.google.com/p/vqmod/downloads/list для opencart
      Кидаем в корень магазина mysite.ru/vqmod должно получиться
      Заходим из браузера mysite.ru/vqmod/install
      Почти во всех случаях пишет что все хорошо - если нет, то устанавливаем в ручную (нужно в config внести изменения).
      Папку install можно не удалять.

      Установка и использование модуля
      Копируем файл remove_elements.xml в \vqmod\xml нашего сайта.
      После этого в админке система -> настройки -> магазин (изменить) -> опции должно появиться сверху галочки, что хотим вырубить.

      Проверено на 1.5.4 и 1.5.6
      Другой мой vqmod модуль для добавления в шапку телефона и дополнительного текста можете скачать тут : http://opencartforum.ru/files/file/1456-%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-%D1%82%D0%B5%D0%BA%D1%81%D1%82-%D0%B2-%D1%88%D0%B0%D0%BF%D0%BA%D0%B5-%D0%B8-%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD/
      ставим звездочки (=
      Добавил m4gz Добавлено 19.11.2013 Категория Сравнения, закладки  
    • От zcell
      300.00 руб
      Скачать/Купить дополнение


      Избранное (закладки) без регистрации и авторизации
      Избранное без регистрации для версий 1.5.x и 2.1x, 2.2.x, 2.3.x
       
      DEMO
       
      Ваши клиенты смогут откладывать товар в Избранное (Закладки) без регистрации.
       
      Модуль позволяет добавлять пользователям товары в закладки даже без регистрации на сайте.
      При добавление выдается сообщение об успешном добавлении (также как у зарегистрированного пользователя), вместо стандартной ошибки с ссылкой на вход.
      Товар добавляется в корзину из закладок и удаляется из закладок, также без регистрации. Кнопка "Продолжить" в закладках отправляет на главную страницу, вместо страницы аккаунта.
      Не заменяет системных и файлов темы.
      Необходима установка VQMod для ocStore 1.5.x.x
      >>
      После покупки - вы сможете скачать версию и для версии 1.5.x и версии 2.x
      >>
      Работает в 99,99% случаев!
      update от 2015-12-11: до сих не было ни одного обращения в поддержку.
      Установка модуля для версий ocStore и Opencart 1.5.x:
      Скопировать файл в папку vqmod/xml/
      Установка модуля для версий ocStore и Opencart 2.х:
      Для установки на версиях 2.2.x и 2.3.x воспользуйтесь установкой дополнений в административной панели.
      Добавил zcell Добавлено 24.09.2013 Категория Сравнения, закладки Системные требования Сайт разработчика https://true-studio.ru/ Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop  
    • От Serg9988
      300.00 руб
      Скачать/Купить дополнение


      SmUnltimateTabsProduct
      SmUnltimateTabsProduct
      Протестировано на: ocstore 2.1.0.1
      opencart 2.1.0*
      Модуль позволяет добавить неограниценое количество кастомных Табов с произвольными товарами.
      Описание
      Позволяет указать название таба (потдержка мультиязычности) Позволяет добавить произвольные товары на любую вкладку Возможность добавлять неограниченое количество Табов Возможность добавлять неограниченое количество товаров в Табы Есть настройка лимита вывода товаров (общая для всех табов) Присутствует возможность настройки ширины и высоты изображения для товаров Установка
      Перед установкой!
      Важно!
      Сделайте бекап Базы данных и файлов сайта.
      При устанвке модуля никакие файлы перезаписаны не будутесли установка модуля происходит впервые.
      Установка
      Если используете не default тему , то перед копированием измените название папки, в архиве с модулем, catalog\view\theme\ "default" на название папки с вашим шаблоном. Скопируйте содержимое архива в корневую папку сайта. Выдайте права на использование модуля:
      Зайдите в административную часть сайта Система - Пользователи - Группы Пользователей Установите модуль и настройте его:
      Заходим в административную часть сайта - Дополнения - Модули - "SM СуперТабы" жмем кнолпку с "+" напротив названия модуля
      После заходим в модуль нажав кнопку с иконкой карандаша для настройки и модуля и добавления товаров и табов Добавляем модуль на страицу:
      Заходим в административную часть сайта - Дизайн - Схемы - нажимаем кнопку с иконкой карандаша на против нужной нам страницы
      Добавляем модуль в нужную часть страницы login/pass - demo/demo
      Сопровождение info@sitemix.com.ua
      Сайт демо http://opencart2.myopencart.club/
      http://opencart2.myopencart.club/admin/index.php?route=module/ultimatetabs
      demo/demo
      Лицензия на модуль выдается по условию :
      1 покупка = 1 доменное имя.
      То есть - один раз купив, вы получаете право установки для работы модуля только на одном доменном имени, одном магазине![/i][/color]
      Покупая дополнение, Вы автоматически соглашаетесь со следующими положениями:
      1. Автор, в праве, отказать в сопровождении, если вы не приобретали модуль, а получили его любым другим способом.
      2. Если работа модуля не соответствует заявленной в описании, по причине:
      конфликтов с другими сторонними дополнениями (модулями);
      шаблон покупателя значительно отличается от базового шаблона системы ocStore / OpenCart;
      работа модуля нарушена после действий покупателя, которые случились при редактировании файлов дополнения (модуля);
      пользователь хочет изменить или доработать приобретённое дополнение (модуль);
      Техническая поддержка оказывается за отдельную плату!!!
      3. Покупатель, в праве, требовать бесплатную техническую поддержку со стороны автора, за исключения случаев описанных в пунктах с 1 по 2 включительно.
      4. Все запросы, обрабатываются в течение 48 часов с момента поступления.
      Для получения сопровождения и разрешения установки модуля на другой магазин напишите мне в личном сообщении!
      Действует скидка на 3 и последующие преобретенные модули моей разработки. Подробней пишите в личку.
      Купить модуль, получить скидку можно так же на сайте http://myopencart.club/
      Вопросы, пожелания можно писать в форум или на почту support@myopencart.club
      Добавил Serg9988 Добавлено 07.07.2016 Категория Модули Системные требования Сайт разработчика myopencart.club Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.1 ocStore 2.1 OpenCart.Pro, ocShop Opencart.pro 2.1  
    • От Ngmt
      300.00 руб
      Скачать/Купить дополнение


      FastLinker - быстрый доступ к любому модулю
      FastLinker - модуль для быстрого доступа к любому модулю, через удобный пункт меню.
      Руководство пользования:
       
      Добавил Ngmt Добавлено 12.10.2017 Категория Модули Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.2
      2.1
      2.0 ocStore 2.2
      2.1 OpenCart.Pro, ocShop Не проверялось  
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×