silvershop / shipping
SilverShop 的配送方式。
Requires
Requires (Dev)
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.0
README
向 SilverShop 引入配送选项
安装
composer require silvershop/shipping
将 ShippingFrameWorkModifier 添加到您的修饰符配置中,例如
SilverShop\Model\Order: modifiers: - SilverShop\Shipping\ShippingFrameworkModifier
您需要使用新的 SteppedCheckout 系统来允许客户在选择配送方式之前设置他们的地址。要设置步骤,包括配送方式步骤,请将以下内容添加到您的 mysite/_config/config.yml 文件中
SilverShop\Page\CheckoutPage: steps: 'membership': 'CheckoutStep_Membership' 'contactdetails': 'CheckoutStep_ContactDetails' 'shippingaddress': 'CheckoutStep_Address' 'billingaddress': 'CheckoutStep_Address' 'shippingmethod': 'CheckoutStep_ShippingMethod' #extra line for shipping method 'paymentmethod': 'CheckoutStep_PaymentMethod' 'summary': 'CheckoutStep_Summary'
如果已包含,请从您的 _config.php 文件中删除 SteppedCheckout::setupSteps()(SteppedCheckout::setupSteps() 创建默认的结账页面步骤,不再需要上述 YAML 条目)。
要将配送估算表单添加到您的 CartPage 模板中,请在您的 CartPage.ss 模板中的某个位置添加以下内容
<% include ShippingEstimator %>
如果您需要一些示例表单配送数据来填充您的站点进行测试/开发,您可以运行以下任务: yoursite.tld/dev/tasks/PopulateTableShippingTask
架构
ShippingPackage
是一个用于封装配送数据的类,包括:重量、尺寸、价值、数量。
ShippingMethod
是不同类型配送计算的基类。这些可以是固定费率、基于表格的费率或一个
TableShippingMethod
有许多 TableShippingRate
,其中 TableShippingRate extends RegionRestriction
。表格配送费率还包含可选的重量、体积、价值和数量约束字段。
DistanceShippingMethod
有许多 DistanceShippingFare
,并且需要存在 shop_geocoding 模块。
地区限制
RegionRestriction
类作为提供区域化限制的基类。限制由国家、州和邮政编码指定。每个限制可以给出一个值/费率。为了工作合适的费率,查询所有匹配的限制,并按最便宜排序。
通配符 '*' 表示限制将匹配任何地区。