2016-12-05 48 views
-2

如何知道某产品是否热销。例如,我想在热卖中的产品图像旁边显示“Hot”图标,如下图所示。 enter image description here 我的想法是计算在近7天产品的销售率的速度,如果结果低于某个值以上,那么这个项目可以被标记为“热销”如何检查物品是否热卖

所以

  • 有什么更好的办法可以实现这样的要求。
  • 是否有任何计算公式...
  • 最后我们需要什么参数来计算最佳结果,例如 访问时间,添加到最爱时间,购买时间等。

在此先感谢!

+2

“是否有任何公式可以计算......” - 你已经描述过了。这是不是很清楚你在这里问什么 - 你有一个想法,所以实施它。除此之外,我会说它太宽泛了。 –

+0

@JonSkeet我知道它太过委员会了,无论如何,我真的是时间问这个问题,但是我没有满足我的自我,我的想法很好,所以我来到这里与朋友分享。 –

+0

如果你意识到问题太广泛,恐怕问问它并不是一个好主意。 –

回答

0

嗯,如果你愿意的话,你可以随时沿着兔子的另一个高度穿过。

作为第一个开始,很容易就可以很容易地将销售量最高的10%左右的商品标记为“热销”。硬编码门槛的一个问题是,如果你的需求变化很大,你将不得不不断更新它们。

另一种选择可能是看看Reddit's ranking algorithm的灵感。

# Rewritten code from /r2/r2/lib/db/_sorts.pyx 

from datetime import datetime, timedelta 
from math import log 

epoch = datetime(1970, 1, 1) 

def epoch_seconds(date): 
    td = date - epoch 
    return td.days * 86400 + td.seconds + (float(td.microseconds)/1000000) 

def score(ups, downs): 
    return ups - downs 

def hot(ups, downs, date): 
    s = score(ups, downs) 
    order = log(max(abs(s), 1), 10) 
    sign = 1 if s > 0 else -1 if s < 0 else 0 
    seconds = epoch_seconds(date) - 1134028003 
    return round(sign * order + seconds/45000, 7) 

您不必在这种情况下,跌宕起伏,但可以通过与总销售额更换score(),例如启动。当然,这只适用于由于时间因素而产生大量新产品的情况。

相关问题