Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento签出中的多个原始邮政编码_Magento_Shipping_Zipcode_Ups - Fatal编程技术网

Magento签出中的多个原始邮政编码

Magento签出中的多个原始邮政编码,magento,shipping,zipcode,ups,Magento,Shipping,Zipcode,Ups,我正在为一个客户设计一个Magento店面。他们使用投递员,所以一个邮政编码对我们帮助不大。我们确实为客户机发送的最常见的邮政编码设置了它,因此,在许多情况下,它是可以的 但是,在某些情况下,需要使用不同的原始邮政编码。在更罕见的情况下,我们将有多个来源地邮政编码。当有一个zip与主zip不同时,我们将其存储在一个名为“origin-zip”的属性中(创造性的,嗯?) 我应该在哪里进行修改?我们只使用UPS配送方法,我想做的是,在计算配送之前,抓取购物车中任何来源的拉链(我想我们已经得到了这一部

我正在为一个客户设计一个Magento店面。他们使用投递员,所以一个邮政编码对我们帮助不大。我们确实为客户机发送的最常见的邮政编码设置了它,因此,在许多情况下,它是可以的

但是,在某些情况下,需要使用不同的原始邮政编码。在更罕见的情况下,我们将有多个来源地邮政编码。当有一个zip与主zip不同时,我们将其存储在一个名为“origin-zip”的属性中(创造性的,嗯?)

我应该在哪里进行修改?我们只使用UPS配送方法,我想做的是,在计算配送之前,抓取购物车中任何来源的拉链(我想我们已经得到了这一部分),但是,根据结果,我可能需要迭代运输计算并将这些值加在一起-即,如果他们订购一个带有原产地邮政编码的产品,而另一个没有原产地邮政编码的产品,则必须先计算第一个,然后再计算第二个,然后将它们加在一起


如果有人能告诉我们需要修改哪些php文件或类的正确方向,我将不胜感激。

首先,您需要将自定义属性添加到购物车中使用的属性列表中。 请遵循以下有关stackoverflow的答案:

然后,您需要创建您的自定义装运方法,可能是从您的方法扩展而来的。它应该仔细检查从发货请求中收到的项目,检查不同的邮政编码来源,然后分别计算它们的费率

我希望您创建一个模块来扩展现有的shipping method功能不会有问题

干杯

更新 要将属性添加到购物车项目中加载的产品,请使用以下配置:

<config>
     <global>
          <sales>
               <quote>
                    <item>
                        <product_attributes>
                             <origin_zip />
                        </product_attributes>
                    </item>
               </quote>
          </sales>
     </global>
</config>

usa/shipping\u ups
处理这些请求,特别是方法
setRequest
似乎满足您的需要:

    if ($request->getOrigPostcode()) {
        $r->setOrigPostal($request->getOrigPostcode());
    } else {
        $r->setOrigPostal(Mage::getStoreConfig('shipping/origin/postcode', $this->getStore()));
    }  
如果您可以将原始邮政编码添加到发货请求中,UPS将基于该原始地址返回报价

一种方法是覆盖
Mage\u Shipping\u Model\u Rate\u请求
,并添加一个名为
getOrigPostcode
的方法。由于是实方法,这将覆盖默认的Magento getter/setter行为。让此方法查询请求的内容,以确定需要使用哪个zip

希望有帮助

谢谢,

你好,伊万-我明白你的意思,可以加上一句-我的属性是origin\u-zip。我是否会使用该标识符,然后它将在购物车中可用?我怎样才能买到这个东西?那么,我应该从哪里开始迭代购物车并获取给定产品的属性呢?谢谢嗨,伊万-谢谢你的例子-你的男人。对于任何想知道(因为我对此感到困惑)配置文件并没有进入配送模块config.xml,而是进入Checkout config.xml文件夹。我把它和运输模块放在一起,想知道为什么我拿不到它,但当我把它放在收银台时,它马上就被填充了。再次感谢。嗨,乔-打得好。我们所做的是通过UPS模块复制到我们自己的定制配送模块中,现在我们正在重新设计邮政编码部分以满足此目的。一旦我们让它工作起来,我会在这里发布一条评论,让你(和其他感兴趣的人)知道我们是否能够操纵这个调用使它工作起来。谢谢
    if ($request->getOrigPostcode()) {
        $r->setOrigPostal($request->getOrigPostcode());
    } else {
        $r->setOrigPostal(Mage::getStoreConfig('shipping/origin/postcode', $this->getStore()));
    }