Перейти к содержанию
View in the app

A better way to browse. Learn more.

Русскоязычное сообщество Opencart

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

В связи с блокировкой банка QIWI оплата через сайт не возможна.
Для оплаты и получения дополнений просьба писать в личные сообщения 
Admin*у
или в Телеграмм https://t.me/pascha_opencart
После оплаты Вам так же будет доступно скачивание дополнений и обновлений на данном форуме

Сортировка товаров в корзине по порядку добавления

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

Опубликовано

sortable-cart-opencart.jpg.e87cf7247123085a71c3bcfeb27ae9d3.jpg

Сортировка товаров в корзине по порядку добавления

В Opencart с 2.x сортировка товаров в корзине не соответствует порядку их добавления. Например мы добавили домофон, кабель к нему и монитор. Так вот в корзине может быть нарушен порядок, то есть сначала будет идти кабель, потом монитор а уже после них первый добавленный домофон. Согласитесь, это не совсем логично.

Виной всему будет выборка из базы данных в таблице  cart. Дело в том что при запросе в базу нет условия сортировки и данные идут как им захочется. Что бы структурировать их необходимо в файле system/library/cart/cart.php строку

$cart_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "cart WHERE api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "' ORDER BY date_added ASC");

Таким образом в конец запроса мы добавили условия сортировки - сортировать по дате добавления по возрастания. После чего в корзине будут идти товары в той последовательности в которой их добавили туда.

  • 5 недель спустя...
Опубликовано
В 11.04.2022 в 17:11, Анастасия Михеева сказал:

Добрый день! В ocStore 2.3 этой проблемы нету, а вот Opencart 3.0, как раз таки есть. Может подскажите как исправить это в opencart 3.0? 

Нашла, у вас статья не дописана! 

 в файле system/library/cart/cart.php строку

 

$cart_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "cart WHERE api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'");

Заменить на:

 

$cart_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "cart WHERE api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "' ORDER BY date_added ASC");

 

Последние посетители 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.