Jump to content
evgeny8778

[Решено] Хиты продаж за 2 недели

Recommended Posts

Здравствуйте.

 

В модуле "Хиты продаж" необходимо сделать выборку среди товаров, проданных за 2 последние недели, а не за весь период.

Можно ли реализовать подобное? Если я правильно понял, то изменениям должен быть подвергнут файл: 

 

catalog/model/catalog/product.php

 

а точнее, строка:



$query = $this->db->query("SELECT op.product_id, COUNT(*) AS total FROM " . DB_PREFIX . "order_product op LEFT JOIN `" 
. DB_PREFIX . "order` o ON (op.order_id = o.order_id) LEFT JOIN `" . DB_PREFIX . "product` 
p ON (op.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON 
(p.product_id = p2s.product_id) WHERE o.order_status_id > '0' AND p.status = '1' AND p.date_available <= NOW() 
AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' GROUP BY op.product_id ORDER BY total DESC LIMIT 
" . (int)$limit);

Share this post


Link to post
Share on other sites

можно. правильно поняли.

Share this post


Link to post
Share on other sites

Вопрос в том, каким условием подобное реализовать? Если кто пробовал поделитесь опытом.

Share this post


Link to post
Share on other sites

Может кто-то подскажет правильно ли я делаю.

 

В приведённом мною выше запросе, я изменил:

p.date_available <= NOW()

на

o.date_added >= DATE_SUB(CURRENT_DATE, INTERVAL 14 DAY)

В конечном итоге получилось так:

$query = $this->db->query("SELECT op.product_id, COUNT(*) AS total FROM " . DB_PREFIX . "order_product op LEFT JOIN `" .
 DB_PREFIX . "order` o ON (op.order_id = o.order_id) LEFT JOIN `" . DB_PREFIX . "product` p ON (op.product_id = p.product_id) LEFT JOIN " .
 DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE o.order_status_id > '0' AND p.status = '1' AND
 o.date_added >= DATE_SUB(CURRENT_DATE, INTERVAL 14 DAY) AND p2s.store_id = '" . (int)$this->config->get('config_store_id') 
. "' GROUP BY op.product_id ORDER BY total DESC LIMIT " . (int)$limit);

Вроде бы правильно считает, но почему-то попал 1 товар с 0-м количеством на складе. Cache на FTP почистил.

Share this post


Link to post
Share on other sites

AND (DATEDIFF(NOW(), o.`date_added`) <= 14)

но почему-то попал 1 товар с 0-м количеством на складе.

кол-во товаров не проверяется

Edited by afwollis
>= на <=
  • +1 1

Share this post


Link to post
Share on other sites

Всё вроде бы хорошо, но инфа за 2013 год, делал вывод товара за определённый период времени вашими способами, но не чего не вышло, может кто то подскажет что нужно делать для версии 2.....  И еще результат видно сразу после замены строк кода и очистки кеша? Или нужно подождать определённое время?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.