octolize / royal-mail-price-calculator
一个用于计算通过皇家邮政发送包裹成本的库。
1.6.1
2024-04-18 07:52 UTC
Requires
- php: >=7.0.8
- symfony/yaml: ^3.4|^4.1|^5
This package is auto-updated.
Last update: 2024-09-18 08:47:34 UTC
README
此库已被fork以重新激活。由WyldCode(e-dimensionz, Inc的子公司)构建。
它允许您计算通过皇家邮政发送包裹的成本,更新价格并扩展对所有包裹价格的支持。
用法
使用composer require alexedimensionz/royal-mail-price-calculator
安装最新版本
Justin Hook的仓库的主要变化
- 移除了Doctrine要求
- 添加了所有运输类型
- 添加了国际运输选项和价格
- 持续更新价格列表
支持的服务
服务 | 类 |
---|---|
一类服务 | FirstClassService() |
二类服务 | SecondClassService() |
一类签名收件 | SignedForFirstClassService() |
二类签名收件 | SignedForSecondClassService() |
上午9点保证 | GuaranteedByNineAmService() |
上午9点保证,周六保证 | GuaranteedByNineAmWithSaturdayService() |
下午1点保证 | GuaranteedByOnePmService() |
下午1点保证,周六保证 | GuaranteedByOnePmWithSaturdayService() |
国际经济 | InternationalEconomy() |
国际标准 | InternationalStandard() |
国际签名 | InternationalSigned() |
国际追踪 | InternationalTracked() |
国际追踪和签名 | InternationalTrackedAndSigned() |
英国交货目标示例
<?php
require 'vendor/autoload.php';
use \RoyalMailPriceCalculator\Calculator;
use \RoyalMailPriceCalculator\Package;
use \RoyalMailPriceCalculator\Services\GuaranteedByOnePmService;
use \RoyalMailPriceCalculator\Services\FirstClassService;
$calculator = new Calculator();
$package = new Package();
$package->setDimensions(15, 15, 0.4);
$package->setWeight(90);
$calculator->setServices(array(
new FirstClassService(),
new GuaranteedByOnePmService()));
foreach ($calculator->calculatePrice($package) as $calculated)
{
echo $calculated['service']->getName() . "\n";
foreach ($calculated['prices'] as $price) {
echo " → £{$price['price']} (Compensation: £{$price['compensation']})\n";
}
echo "\n";
}
将输出类似的内容
1st Class Service
→ £0.62 (Compensation: £20)
Guaranteed by 1pm
→ £6.40 (Compensation: £500)
→ £7.40 (Compensation: £1000)
→ £9.40 (Compensation: £2500)
国际交货目标示例
<?php
require 'vendor/autoload.php';
use \RoyalMailPriceCalculator\Calculator;
use \RoyalMailPriceCalculator\Package;
use \RoyalMailPriceCalculator\Services\InternationalTracked;
use \RoyalMailPriceCalculator\Services\InternationalEconomy;
$calculator = new Calculator();
$package = new Package();
$package->setDimensions(15, 15, 0.4);
$package->setWeight(90);
// This part is mandatory for international shipments
$target_iso = 'US';
$calculator->setCountryCode($target_iso);
//
$calculator->setServices(array(
new InternationalTracked(),
new InternationalEconomy()));
// Note: there is no compensation value for international
foreach ($calculator->calculatePrice($package) as $calculated)
{
echo $calculated['service']->getName() . "\n";
foreach ($calculated['prices'] as $price) {
echo " → £{$price['price']}\n";
}
echo "\n";
}
将输出类似的内容
International Tracked
→ £8.50
International Economy
→ £13.30
有用的函数
皇家邮政有5个交货区域
- 英国
- 欧洲
- 国际(区域1)
- 国际(区域2)
- 美国(区域3)
您可以使用2位ISO代码找到您国家的区域代码。
<?php
require 'vendor/autoload.php';
use \RoyalMailPriceCalculator\Calculator;
?>
CA region is: <?php echo Calculator::get_region_code('CA'); ?><br/>
US region is: <?php echo Calculator::get_region_code('US'); ?><br/>
GB region is: <?php echo Calculator::get_region_code('GB'); ?><br/>
AU region is: <?php echo Calculator::get_region_code('AU'); ?><br/>
DE region is: <?php echo Calculator::get_region_code('DE'); ?>
将输出
CA region is: intl_1
US region is: intl_3
GB region is: uk
AU region is: intl_2
DE region is: eu