octolize/royal-mail-price-calculator

一个用于计算通过皇家邮政发送包裹成本的库。

1.6.1 2024-04-18 07:52 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