Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Модуль "Последние поступления"


Recommended Posts

Всем добрый день!

Родной модуль в версии OcStore1.5.4.1 "Последние поступления" выводит новые товары. Но, к сожалению, поставщик часто в прайс включает новые позиции, которых ещё нет на складе. В результате получается, что в блок "Новые поступления"  попадают товары, которых нет в наличии.

 

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

Надіслати
Поділитися на інших сайтах


Всем добрый день!

Родной модуль в версии OcStore1.5.4.1 "Последние поступления" выводит новые товары. Но, к сожалению, поставщик часто в прайс включает новые позиции, которых ещё нет на складе. В результате получается, что в блок "Новые поступления"  попадают товары, которых нет в наличии.

 

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

в файле catalog/model/catalog/product.php

 

в методе public function getLatestProducts($limit) {

это:

$query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id= p2s.product_id) WHERE p.status = '1' AND p.date_available <= '" . $this->NOW . "' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.date_added DESC LIMIT " . (int)$limit);

заменить на

$query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id= p2s.product_id) WHERE p.status = '1' AND p.date_available <= '" . $this->NOW . "' AND p.quantity > 0 AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.date_added DESC LIMIT " . (int)$limit);
Змінено користувачем costas
  • +1 1
Надіслати
Поділитися на інших сайтах

Заменил - всё равно выводит товар со статусом нет в наличии.

Моуль "Последние поступления" удалял и снова ставил, кеш чистил - не помогает.

Змінено користувачем afwollis
Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

Подтверждаю, хоть и SQL запрос верен, ситуация не меняется, где то сидит кеш.

Надіслати
Поділитися на інших сайтах

Моуль "Последние поступления" удалял и снова ставил, кеш чистил - не помогает.

Отвечу и себе и вам :) Решение выше - неправильное. Функция getLatestProducts никогда и никем не вызывается. На самом деле нужно сделать следующее:

1)

В файле \catalog\model\catalog\product.php найти метод поиска товара getProducts

 

и выше этой строки

 
$sql .= " GROUP BY p.product_id";

вставить следующий код:

 
if (!empty($data['in_stock'])) {$sql .= " AND p.quantity > 0";}
2) В файле \catalog\controller\module\latest.php найти 
$data = array('sort'  => 'p.date_added','order' => 'DESC','start' => 0,'limit' => $setting['limit']);
и заменить на
$data = array('sort'  => 'p.date_added','order' => 'DESC','start' => 0,'in_stock' => 1,'limit' => $setting['limit']);
 
Все!
  • +1 1
Надіслати
Поділитися на інших сайтах

  • 2 months later...
  • 3 months later...

Здравствуйте, профессионалы! Подскажите, пожалуйста, где поменять словосочетание "Новые поступления" к примеру на "Недавние поступления"? Заранее спасибо за ответ.

Надіслати
Поділитися на інших сайтах


  • 4 months later...

Добрый день, а не подскажите, как эти недавние поступления сортировать?? Есть ли возможность их менять местами, а то товар может быть статичен и хочется менять местами.

Надіслати
Поділитися на інших сайтах


Добрый день, а не подскажите, как эти недавние поступления сортировать?? Есть ли возможность их менять местами, а то товар может быть статичен и хочется менять местами.

Можно, только нужно доработать модуль напильничком.

 

В файле контроллера catalog/controller/module/latest.php

найти строку 

'sort'  => 'p.date_added',

и заменить ее на

'sort'  => 'p.date_available',

Ну и периодически заходить в админку и менять дату добавления товара.

Надіслати
Поділитися на інших сайтах

Если человек хочет менять, то да - зайдет и поменяет, не вижу проблемы. Да и как называть - это уже дело второе, главное чтобы работало как человеку нужно.

У самого были ситуации, когда товар был добавлен летом, затем пропал из продажи. Осенью появился снова, и да - это в какой то мере новинка, нужно на морде сказать покупателю, что товар снова в наличии. Зашел, добавил количество, подкрутил дату на сегодняшнюю. Все довольны.

 

Случай второй - владелец магазина импортировал в базу 10 товаров от поставщика Т1...Т10, но в наличии у него только пришло Т2, Т4 и Т5. Что будет отображать модуль? Правильно: Т10, Т9, Т8 и Т7. А что хочет продавец? Да скорее всего Т2, Т5 и Т4, т.к. они у него есть в наличии. Через неделю поставщик подвез еще 3 товара: Т1, Т10 и Т8. Продавец хочет видеть на сайте Т1, Т10, Т8 и Т2. А увидит? Все те же Т10, Т9, Т8 и Т7...

Так что желание вполне себе законное и реальное, а использование в выборке "внутреннего" поля БД date_added, а не поля предметной области date_available в данном модуле имхо нелогично.

Надіслати
Поділитися на інших сайтах

  • 1 year later...

Приветствую всех, подскажите, пожалуйста, почему этот модуль может перестать выводить новые товары? вот наш сайт http://yarisuyu.com/raskraski-na-zakaz, слева он фигурирует, но уже куча товара добавлено нового, а он их не обрабатывает. что проверить? буду очень признателен совету.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.