3

有没有办法在 prestashop 的承运人中按州设置运费?

即,假设我希望在阿拉巴马州发送的运费不同于在阿拉斯加使用同一承运人发送的运费

谢谢

4

2 回答 2

5

有几种方法可以做到这一点。你可以购买一个外部模块,比如这个,或者像这样创建一个覆盖:

1) 将“classes/Address.php”复制到“override/classes/Address.php”。

2) 在第 28 行,将类名从 AddressCore 更改为 Address

3) 在函数 getZoneById 之前,粘贴这个新函数

/**
* Return postcode of address
*
* @param $id_address Address id
* @return integer postcode
*/
public static function getPostcodeByAddress($id_address){
    $row = Db::getInstance()->getRow('
    SELECT `postcode`
    FROM '._DB_PREFIX_.'address a
    WHERE a.`id_address` = '.(int)($id_address));
    return $row['postcode'];
}

4) 在函数 getZoneById 的第一行之前添加:

$postcode=self::getPostcodeByAddress($id_address); 

if(in_array($postcode,array(your list of postcodes))){
    return id-of-your-zone;
}
于 2012-04-05T20:49:23.210 回答
2

这对我有用:

  1. 转到本地化-> 区域
  2. 根据州创建新的不同区域。例如。区域名称 = “新南威尔士州”
  3. 转到本地化-> 状态
  4. 选择状态并将其更改为新区域。例如。“新南威尔士州”现在改为“新南威尔士州”区域。
  5. 转到运输-> 承运人
  6. 点击运输方式上的“编辑”。
  7. 点击“运送地点和费用”
  8. 现在按现在具有相关状态的每个区域更改运费。
于 2015-12-01T11:36:28.590 回答