Magento 不同客户群的统一运费?

Magento 不同客户群的统一运费?,magento,shipping,Magento,Shipping,是否可以为两个不同的客户群体设置两种不同价格的统一费率运输方法 谷歌到处搜索,但找不到一个,为什么设置起来不像人们想象的那么容易呢 您可以通过复制本地代码池中的Flatrate文件core/Mage/Shipping/Model/Carrier/Flatrate.php来创建此选项local/Mage/Shipping/Model/Carrier/Flatrate.php 您需要在collectRates功能中修改代码 $result = Mage::getModel('shipping/rat

是否可以为两个不同的客户群体设置两种不同价格的统一费率运输方法


谷歌到处搜索,但找不到一个,为什么设置起来不像人们想象的那么容易呢

您可以通过复制本地代码池中的Flatrate文件
core/Mage/Shipping/Model/Carrier/Flatrate.php
来创建此选项
local/Mage/Shipping/Model/Carrier/Flatrate.php

您需要在
collectRates
功能中修改代码

$result = Mage::getModel('shipping/rate_result');
if ($this->getConfigData('type') == 'O') { // per order
    $shippingPrice = $this->getConfigData('price');
} elseif ($this->getConfigData('type') == 'I') { // per item
    $shippingPrice = ($request->getPackageQty() * $this->getConfigData('price')) - ($this->getFreeBoxes() * $this->getConfigData('price'));
} else {
    $shippingPrice = false;
}
使用以下代码替换上述代码:

if(!Mage::getSingleton('customer/session')->isLoggedIn()){
    //not logged in
    $flatRatePrice = $this->getConfigData('price'); 
}else{
    // logged in
    $groupId = Mage::getSingleton('customer/session')->getCustomerGroupId();
    $group = Mage::getSingleton('customer/group')->load($groupId)->getData('customer_group_code');
    $group = strtolower($group);
    switch ($group) {
        case 'general': //Set price for different customer group
            $flatRatePrice = 10;    
            break;
        case 'retailer':
            $flatRatePrice = 20;    
            break;
        case 'wholesale':
            $flatRatePrice = 30;    
            break;
        default:
            $flatRatePrice = $this->getConfigData('price'); 
    } 
}

$result = Mage::getModel('shipping/rate_result');
if ($this->getConfigData('type') == 'O') { // per order
    $shippingPrice = $flatRatePrice;
} elseif ($this->getConfigData('type') == 'I') { // per item
    $shippingPrice = ($request->getPackageQty() * $flatRatePrice) - ($this->getFreeBoxes() * $flatRatePrice);
} else {
    $shippingPrice = false;
}

谢谢我对PHP代码非常熟悉,但对Magento来说是个新手。这样更改(即使我们将副本复制到本地)代码是否被视为良好做法?这样做会有任何负面影响吗?我们可以复制本地代码池中的核心文件,以进行自定义需求修改。当我们升级magento时,我们还需要更新本地代码池中的核心文件。如果您不想这样做,您可以通过创建具有相同更改的自定义模块来覆盖Flatrate模型。好的,这似乎是练习我的Magento开发技能的绝佳机会。:)谢谢你的帮助!