silvershop/shipping

SilverShop 的配送方式。

安装数: 17,562

依赖关系: 4

建议者: 3

安全: 0

星标: 1

关注者: 6

分支: 25

开放问题: 1

类型:silverstripe-vendormodule

3.0.1 2024-04-03 17:35 UTC

This package is auto-updated.

Last update: 2024-09-03 18:34:39 UTC


README

Latest Stable Version Latest Unstable Version CI Code Coverage Scrutinizer Quality Score Total Downloads

向 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 类作为提供区域化限制的基类。限制由国家、州和邮政编码指定。每个限制可以给出一个值/费率。为了工作合适的费率,查询所有匹配的限制,并按最便宜排序。

通配符 '*' 表示限制将匹配任何地区。