请教 满减算法

2022-10-07 10:14:12 +08:00
 rm0gang0rf

1000 个 sku ,每个 sku 的大小重量价格利润都不一样,现在需要设置满减包邮,包邮的条件是 100 公斤,同时购物车金额达到( 1000 )才可以-10%,请教( 1000 )这个金额能狗算出来吗?

2547 次点击
所在节点    程序员
24 条回复
learningman
2022-10-07 10:26:28 +08:00
你是想找出所有可能的组合吗?那全排列求一遍呗。
thunderw
2022-10-07 10:30:29 +08:00
满 1000 元打九折咯?难点在哪儿?你是卖东西的,不知道卖了多少钱吗?
「包邮的条件是 100 公斤」,是说不满 100 公斤包邮?满 100 公斤才包邮?还是包邮只包 100 公斤的部分?
yehoshua
2022-10-07 10:31:55 +08:00
描述的需求太不明确。建议重新补充下
rm0gang0rf
2022-10-07 10:32:03 +08:00
@learningman 是想找出 1000 这个金额设置多少才不会赔钱,因为有包邮
rm0gang0rf
2022-10-07 10:36:23 +08:00
@thunderw 体积重量影响最后的运费,运费和 折扣 加起来 不能超出利润,如果超出了,就要增加起始优惠金额(1000)
gosansam
2022-10-07 10:36:36 +08:00
实时计算当前货物利润 - 当前货物重量对应的邮费 ?
pendulum
2022-10-07 10:37:26 +08:00
大概明白你的意思了,你是想算 100kg 商品的最大成本
learningman
2022-10-07 10:38:14 +08:00
@rm0gang0rf 一样的啊,全排列求一遍,把每个排列里的利润减价格*10%放到一个递增数组里,找到递增数组里第一个小于 0 的不就是了
thunderw
2022-10-07 10:46:06 +08:00
我觉得没这么麻烦呐,不用看排列组合。
你就看所有 sku 里,利润率最低的那个。假设客户就可着这一个买,多少钱不亏就行了啊。
geelaw
2022-10-07 10:47:29 +08:00
然而我们并不知道体积、重量和运费的关系,如果假设 运费 = max { Vp, Wq } 其中 V 、W 是总体积、总重量且 p 、q 是常数,则可以赋予每个 SKU 包邮时的保守利润估计,那就是

售价 — 税 — 成本 — max { vp, wq }

其中 v 、w 是这个 SKU 的体积、重量。

这是因为同一个 SKU 买很多件,则每件的利润如此。 由此看来如果你要给售价打九折还不亏,就需要

售价*0.9 — 调整过的税 — 成本 — max { vp, wq }

非负,这说明可以设置满减的条件是利润本来就大,而且可以设置满减的起始额就是体积、重量的一次函数主导运费的时候(低体积重量的运费并不会变成 0 ,此时上面的计算不可行)。

更常见的设置应该让满减后依然保有大量利润,否则你无法处理退货之类的问题。

最后,请多多使用字母表示数的方法,不要用数字表示未知数。
ericgui
2022-10-07 11:26:14 +08:00
所以你们应该学学 costco ,搞得简单一点,大家都方便,直接就是多少钱 off ,比如一个路由器,可以 70 刀 off ,一台洗衣机,可以 150 刀 off ,

别扯那么多满减什么的,太复杂了,容易出 bug
rm0gang0rf
2022-10-07 11:47:12 +08:00
@gosansam 不用实时吧,肯定有利润为负数的情况
rm0gang0rf
2022-10-07 11:48:17 +08:00
@pendulum 最大成本 和 (1000)的关系? 因为组合很多 都算一遍?
rm0gang0rf
2022-10-07 11:49:39 +08:00
rm0gang0rf
2022-10-07 11:51:54 +08:00
@thunderw 我可能更需要利润为负数的那些情况减少到最少或者最小,或者增加起始优惠金额。
rm0gang0rf
2022-10-07 11:57:19 +08:00
@geelaw 感谢指教~ 我再看看
rm0gang0rf
2022-10-07 11:57:56 +08:00
@ericgui 需要用满减的方式刺激消费者购买
zhyl
2022-10-07 15:13:35 +08:00
计算出单位公斤下哪个 sku 是最低利润的,然后算出这 100 公斤这个 sku 需要的金额,那么这个打折金额就是利润最小的
summerLast
2022-10-07 16:58:56 +08:00
@rm0gang0rf : 这个最简单的值就是最坏的情况即最低利润率, 那么
总金额*利润率-发货成本-其他成本>0 即可 ,也就是 总金额*利润率>发货成本+其他成本
总金额>(发货成本+其他成本)/利润率
xiangyuecn
2022-10-07 17:09:00 +08:00
瞎猜了一下,这种场景应该 Excel 的功劳居多

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/884974

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX