表的目的是什么product_tax
?存储每种产品的税务信息不是您应该采用的方式。
美国(可能还有加拿大)的税收因州而异,通常低至邮政编码级别(有时甚至是子邮政编码!)。处理税收的正确方法是将它们应用于整个购物车(即从百分比计算),而不是单个产品。
至于你如何处理税收......欢迎来到网上购物的乐趣世界。有一些提供网络服务的服务(因为税收变化非常频繁)。AvaTax就是这样一种产品。
我将重申我在评论中所说的话。我制造了许多购物车(并在此过程中被烧毁!)我在该领域拥有丰富的经验。
在税收方面,“本地”是无关紧要的。应根据物品“运送”到的国家、州、地区、县、镇等征收税款。换句话说,适用的是收款人的税收规则。如果产品是送给购买者以外地区某人的礼物,则适用他们的税收规则。换句话说,买方支付适用于接受礼物的人的税!
此外,我将在下面进一步阐明我的评论......
税收与相关产品完全分开。税收应适用于全部成本金额,而不是单个项目。唯一的例外是产品被视为“免税”。这主要适用于某些被认为是“必需品”的食品。显然,其他一切都被视为奢侈品!
因此,如果购物车中有 3 件 1 美元的商品,则将适用 8.00% 的税率,使总数达到 3.24 美元。税后将增加任何运费。运费不是产品价格的一部分,因此不征税(运费已由 FedEx、UPS 等预先征税)。
由于税率因地域而异,因此尝试将“税”值附加到数据库中的产品是没有意义的。该数据应单独应用于每笔交易。从 Web 服务获取正确的税额可以减少出错的可能性。重要的是要注意税收经常变化。如果您被审计并证明收取了错误的税款,您可能需要自己支付差额。税法很少关心谁纳税,只关心纳税。
好的,所以关于表结构的一些想法......
product table {
id
sku [manufacturer or made up]
related_items
brand
description
features
specifications
keywords
price
weight
width
height
length
packaging_type
shipping_info
flatrate_shipping
taxable
discountable
insured
featured
status [enum('outofstock','instock','specialorder','calltoorder','comingsoon','onorder','sold','onhold','hide')]
stock
}
category table {
id
category_id
category_name
category_description
}
product_category table {
id
category_id
product_id
}
最后一个表格提供了一种将许多产品归入一个类别或将一个产品归入多个类别的方法。