如何找到适合以下结构的PHP或MySQL的产品包装?
我有2个表存储产品包装详细信息:
products_packages
products_package_id | package_title | package_description | package_offer_type | package_offer_value
products_packages_items
auto_id | products_package_id | products_id | package_offer_value | qty_min | qty_max
- products_packages:用于存储包的详细信息
-
package_offer_type
is % -
package_offer_value
is 10
-
- products_packages_items:用于存储products_packages 的相关产品
如何减少10%每个产品包装项目的数量?如何找到最合适的产品包装,给客户更多的折扣?
我有购物车细节数组,其中包含订单产品详细信息。如何为产品找到合适的包装?
[cart_details] => Array
(
[0] => Array
(
[product_id] => 1
[quantity] => 100
[price] => 10.00
[product_title] => Standard Business Cards
)
[1] => Array
(
[product_id] => 81
[quantity] => 100
[price] => 10.00
[product_title] => Metallic Business Cards
)
)
我对你问题的理解是:
你们提供的是一揽子折扣。一个套餐对几种产品有折扣。当客户购买一组产品(购物车)时,您需要找到哪个折扣套餐将为客户带来最大价值。
为了做到这一点,您需要计算应用到购物车的每个折扣包的节省。然后选择最省钱的套餐。如果有几个包捆绑在一起,选择其中的一个。
更新1。由于没有购物车表,我们将通过从主产品表
中选择产品id来获得"购物车"。select top 1 Package_id from (
select
Packages.Package_id,
Prod_id,
Quantity * Price * Packages.Discount as ProductDiscount
from Products
join PackgeItems on Products.Prod_id = PackageItems.Prod_id
join Packages on Packageitems.Package_id = Packages.Package_id
where Products.Prod_ID in ( <comma separated list of Prod_IDs from Array> )
)
group by Package_id
order by sum (ProductDiscount) Desc
您可以在中间添加一个或2个select以进行测试。