Magento 1.8.1 - 删除联邦快递保险

时间:2014-02-04 21:18:25

标签: magento fedex

默认后端Magento 1.8.1 FedEx设置不允许选择删除保险并强制项目的默认值完全投保。

    'Version' => $this->getVersionInfo(),
        'RequestedShipment' => array(
            'DropoffType'   => $r->getDropoffType(),
            'ShipTimestamp' => date('c'),
            'PackagingType' => $r->getPackaging(),
            'TotalInsuredValue' => array(
                'Amount'  => $r->getValue(),
                'Currency' => $this->getCurrencyCode()

我试图将'金额'设置为99美元(如果损坏,所有货物都会获得默认的100美元保险)。我应该添加以下行:

'金额'=> 99,

请告知:)

3 个答案:

答案 0 :(得分:0)

将金额设置为99将按预期工作。

答案 1 :(得分:0)

我正在尝试删除保险价值,因此我的解决方案也适合您。

正如@Chris所指出的,你应该重写这个文件app/code/core/Mage/USA/Model/Shipping/Carrier/Fedex.php

并更改方法_formRateRequest

如何取消保险
注释代码如下所示:

(第330行)

 'RequestedShipment' => array(
                'DropoffType'   => $r->getDropoffType(),
                'ShipTimestamp' => date('c'),
                'PackagingType' => $r->getPackaging(),
//                'TotalInsuredValue' => array(
//                    'Amount'  => $r->getValue(),
//                    'Currency' => $this->getCurrencyCode()
//                ),
                'Shipper' => array(
                    'Address' => array(
                        'PostalCode'  => $r->getOrigPostal(),
                        'CountryCode' => $r->getOrigCountry()
                    )
                ),

AND (第380行)

       if ($purpose == self::RATE_REQUEST_GENERAL) {
//            $ratesRequest['RequestedShipment']['RequestedPackageLineItems'][0]['InsuredValue'] = array(
//                'Amount'  => $r->getValue(),
//                'Currency' => $this->getCurrencyCode()
//            );
        } 

更改金额
如果你想使用修正值而不是评论该行,你应该将'Amount'设置为修复值

假设您需要固定金额100 $

更改代码,如下所示:

在方法

的顶部添加此变量
$amount = 100;

(第330行)

 'RequestedShipment' => array(
                'DropoffType'   => $r->getDropoffType(),
                'ShipTimestamp' => date('c'),
                'PackagingType' => $r->getPackaging(),
                'TotalInsuredValue' => array(
                'Amount'  => $amount),
                'Currency' => $this->getCurrencyCode()
                ),
                'Shipper' => array(
                    'Address' => array(
                        'PostalCode'  => $r->getOrigPostal(),
                        'CountryCode' => $r->getOrigCountry()
                    )
                ),

AND (第380行)

       if ($purpose == self::RATE_REQUEST_GENERAL) {
           $ratesRequest['RequestedShipment']['RequestedPackageLineItems'][0]['InsuredValue'] = array(
               'Amount'  => $amount,
               'Currency' => $this->getCurrencyCode()
            );
        } 

答案 2 :(得分:0)

关注@WonderLand说明就像一个魅力!我最初花了一个星期来弄清楚如何从费率计算中删除声明的值。我只是编辑了文件app / code / core / Mage / USA / Model / Shipping / Carrier / Fedex.php,在dreamweaver中搜索了$r->getValue()并用100替换了所有实例。

SIDE注意:无论如何,我的所有缓存在magento配置下都已被禁用。不确定是否重要,但它并不要求我清除/清空任何缓存以立即在前端看到更改。