lunarphp/table-rate-shipping

农历表率运费插件


README

要求

  • LunarPHP Admin > 1.x

安装

通过Composer安装

composer require lunarphp/table-rate-shipping

然后在你的服务提供者中注册插件

use Lunar\Admin\Support\Facades\LunarPanel;
use Lunar\Shipping\ShippingPlugin;
// ...

public function register(): void
{
    LunarPanel::panel(function (Panel $panel) {
        return $panel->plugin(new ShippingPlugin());
    })->register();
    
    // ...
}

入门指南

此插件提供了一种简单的方法,让您可以为您的商店添加不同的运费,并允许您的客户根据区域、最低消费等因素选择您设置的运费

运费方式

运费方式是指您的商店向客户发送订单的不同方式,您还可以允许客户从您的商店取货,此插件支持此功能。

运费区域

运费区域允许您将您要运输的国家/地区划分为不同的区域,为您提供一种简单的方法,为每个区域提供不同的运费方式和价格,每个区域可以通过以下方式限制:

  • 邮政编码
  • 国家
  • 州/省(基于国家)

运费

运费是指您为每个运费区域提供的价格,它们与运费方式相关联。例如,您可能有一个快递区域运费区域和一个其他所有地区的运费区域,您可以使用相同的运费方式提供不同的定价限制。

运费排除列表

有时,您可能不想将某些物品运送到特定的运费区域,这就是排除列表发挥作用的地方。您可以关联可购买的商品到列表中,然后将该列表关联到运费区域,如果购物车包含任何这些商品,则它们将无法选择运费率。

商店使用

此插件使用Lunar核心提供的运费修改器,因此您不需要更改现有的实现。

$options = \Lunar\Base\ShippingManifest::getOptions(
    $cart
);

高级使用

返回可用驱动器

\Lunar\Shipping\Facades\Shipping::getSupportedDrivers();

直接使用驱动器

\Lunar\Shipping\Facades\Shipping::with('ship-by')->resolve(
    new \Lunar\Shipping\DataTransferObjects\ShippingOptionRequest(
        shippingRate: \Lunar\Shipping\Models\ShippingRate $shippingRate,
        cart: \Lunar\Models\Cart $cart
    )
);

运费区域

每个方法都是可选的,添加的方法越多,限制就越严格。

$shippingZones = Lunar\Shipping\Facades\Shipping::zones()
    ->country(\Lunar\Models\Country $country)
    ->state(\Lunar\Models\State $state)
    ->postcode(
        new \Lunar\Shipping\DataTransferObjects\PostcodeLookup(
            country: \Lunar\Models\Country $country,
            postcode: 'NW1'
        )
    )->get()
    
$shippingZones->map(/* .. */);

运费

$shippingRates = \Lunar\Shipping\Facades\Shipping::shippingRates(
    \Lunar\Models\Cart $cart
);

运费选项

$shippingOptions = \Lunar\Shipping\Facades\Shipping::shippingOptions(
    \Lunar\Models\Cart $cart
);