首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >销售点的库存数据库(任何x表示£x)

问销售点的库存数据库(任何x表示£x)
EN

Stack Overflow用户
提问于 2012-03-26 18:43:55
回答 3查看 605关注 0票数 0

我正在开发一个用MySQL / PHP编写的库存/发票系统(可能带有某种访问前端和web界面)。

问题是,我希望产品的库存能够处理具有倍数折扣的项目,例如“10 10的任何两个折扣”。我想要发生的是,如果发票中添加了10个项目,它可以计算出这些项目中是否有任何项目满足“任何x for if x”的要求,并应用折扣。增加的复杂性是,任何项目都可以有不同的多重折扣,如“GB10的任何2”以及“GB12的任何3”。基本上就像超市所做的那样--对最终用户来说很容易。

如果我想要将同一项目的任何x输入到相同的发票行中,它工作得很好,但它需要更灵活。

有没有人知道我该怎么做?提前谢谢。我对HTML / MySQL / PHP / JavaScript等很在行。

EN

回答 3

Stack Overflow用户

发布于 2012-03-26 19:30:43

使用PHP和MySQL,你可以有一个“折扣”表,你可以保存产品的ID,产品的编号,价格和优惠的名称。这样,使用一个简单的查询,当您计算发票的最终价值时,您可以根据表检查每个产品是否存在报价:

SELECT * FROM discounts WHERE product_id = x AND quantity >= y

所以,最后,您有一个表示产品和价格的表,以及一个表示优惠的相关表。

票数 0
EN

Stack Overflow用户

发布于 2012-03-26 19:38:43

我将创建一个表示各种折扣的对象(我将使用C#语法)

代码语言:javascript
复制
public interface IOrderProcessor
{
   bool CanBeApplied(OrderItem item);
   void Apply(OrderItem item);
}

public class TwoForOneProcessor : IOrderProcessor
{
   public bool CanApply(OrderItem item)
   {
      // check if the product is in 2 for 1 discount
   }

   public void Apply(OrderItem orderItem)
   {
      // apply the discount
   }
}

以及一个订单处理器,它将获取所有折扣对象并将其应用于订单中的项目。处理器的数据可以存储在数据库中(例如,它可以应用于哪个产品等)。

票数 0
EN

Stack Overflow用户

发布于 2012-03-26 19:40:36

您可能需要构建某种“折扣”表,其中包含有关折扣的基本信息-例如唯一标识符和描述(这也可以链接到触发此折扣促销代码所需的资格规则)。

该表还需要保存用于创建折扣捆绑包的规则,以便您的示例能够正常工作,比如“触发折扣所需的产品数量”和“捆绑包价值”--为了灵活起见,这些字段应该为NULLable,这样您就不必使用捆绑包;您可以使用“product to discount”表中确定的单个价格。

作为一个基本示例,您可能有一个折扣表,如下所示:

代码语言:javascript
复制
+----+-------------+----------------+--------------+------------+----------+
| id | description | units_required | bundle_price | start_date | end_date |
+----+-------------+----------------+--------------+------------+----------+
| .. + ...         | ...            | ...          | ...        | ...      |

..。和product_to_discount链接表,如下所示:

代码语言:javascript
复制
+----+------------+-------------+----------------+------------+
| id | product_id | discount_id | units_required | unit_price |
+----+------------+-------------+----------------+------------+
| .. | ...        | ...         | ...            | ...        |

然后,您可以将产品链接到折扣,因此,如果您有类似“只需10 in即可在此范围内购买3件商品”之类的内容,您将需要将所有可能符合条件的产品链接到折扣,并将units_required设置为3-然后,如果这些商品中的任意3件都在“购物篮”中,则应用bundle_price。

如果存在多个可能性,您可能需要进行一些过滤,以确定哪个捆绑包优先(可能是通过计算哪个包提供的折扣最大)。

像这样的设置的另一种可能性是,它也允许您进行更简单的折扣。您可以简单地将units_required和bundle_price保留为NULL,只将单个产品链接到折扣;可能会多次使用不同的product_to_discount.units_required值提供不同的折扣价-因此,您可以为单个产品设置折扣值,或者在批量较大时为每个产品设置更大的折扣。

如果你想做一些类似“购买X,Y或Z并获得Q免费”的事情,你也可以添加一个像product_to_discount.product_is_discount这样的字段。

这是一种相当模糊的轮廓,但我希望它能帮助你指明“正确”的方向……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9870701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档