如何找到适合以下结构的产品包装


How to find suitable Product Package for below structure?

如何找到适合以下结构的PHPMySQL的产品包装?

我有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
  1. products_packages:用于存储包的详细信息
    • package_offer_type is %
    • package_offer_value is 10
  2. products_packages_items:用于存储products_packages
  3. 的相关产品

如何减少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以进行测试。