添加有关城市的送货方式

时间:2011-06-28 06:36:06

标签: php mysql sql magento magento-1.4

我正在努力扩展针对城市的送货方式。

senerio:

          当我以统一费率选择国家/地区时,自动按照所选国家/地区填充城市。

我如何更改或延长送货方式

2 个答案:

答案 0 :(得分:2)

要在将来回答您自己的问题,请始终探索抽象类中的方法,并发现每个送货方法都在其对象中定义了父方法isActive()。

因此,您的任务是在扩展Mage_Shipping_Model_Carrier_Abstract的送货方法类中将此限制写入此方法

public function isActive(){
    parent::isActive();
    //your logic to follow and check the selected shipping or billing city and return boolean true/false 
}

或者您可以将您的需求缩小到抽象的特定方法(不要忘记在覆盖中调用父方法)

checkAvailableShipCountries()
isActive()
isCityRequired()
isStateProvinceRequired()
isZipCodeRequired()

答案 1 :(得分:0)

经验告诉我(在美国以外)用户不能被信任正确输入他们的城市名称,即您的代码希望与之匹配。但是,可以可靠地输入邮政编码,因为用户熟悉这部分地址是正确的。

您是否通过尺寸检查进行统一费率或重量/位置?这使事情变得非常复杂。

如果您的计算很简单,那么您可以使用现有内置方法的邮政编码,例如标准表费率需要在 admin-> system-> shipping 方法的商店视图中加载CSV:

Country County/State    Postcode    Weight (and above)  Delivery Price
USA     *           12345       1           10
USA     *           16384       1           10
USA     *           65536       1           10
USA     *           32768       1           10

如果你想对你自己的代码做同样的事情,那个模式与post / zip代码的一部分相匹配,那么一个起点就是将现有的Flatrate.php从核心复制到本地。

从这里开始,您可以使用$order->getShippingAddress()->getPostcode()并自行计算。

使用类似的方法你也可以做城市,虽然你必须明白,并非一个城市的每个人都能正确地把他们的“城市”条目放入,但肯定不是在标题案例中。