【问题标题】:Shipping Methods are not working in magento 1.7运输方法在 magento 1.7 中不起作用
【发布时间】:2012-09-05 10:02:17
【问题描述】:

我在运输选项中激活了固定运输,每当您结帐时,它都会显示“Sorry, no quotes are available for this order at this time.”任何人请帮助我,因为我是 magento 的初学者。

编辑

我也尝试过其他运输方式,结果也一样。我们升级了 Magento 版本。 1.4.1.1 到 magento 1.7。任何帮助将不胜感激..

编辑 2

升级后的社区文件夹只包含Phoenix 文件夹。之后,我通过在结帐页面中看到错误添加了Biebersdorffolder。我不是文件夹AWRocketWeb 的用途。因为我不熟悉magento。 如果图像不可见,我已在此 url 中添加图像

http://i47.tinypic.com/14smix1.jpg

【问题讨论】:

  • 您没有输入统一运费的价格...
  • @Gershon Herczeg 我已经加价了,但它仍然不起作用
  • 所以?根本没有销售?没有一种运输方式有效?
  • @ivantedja 是的,没有一种运输方式有效
  • @ivantedja 客户端说它在升级之前工作正常。升级时结帐被禁用。我们已经通过 FTP 下载文件并在本地主机上升级它,然后通过 FTP 上传。我认为问题可能是在下载或上传或升级时缺少文件。

标签: magento magento-1.7


【解决方案1】:

您的项目是否修改了任何 Checkout 文件?或者也许是自定义结帐。 我将列出您需要检查的代码位置,以确保您的运输工作正常。

首先:Magento 对运费有非常特殊的工作流程 - 它被称为“collectRates”,是对“复合”模式的一些修改。

为了确保在代码基础上一切正常,您需要首先检查 Onepage.php 模型 (app/code/core/Mage/Checkout/Model/Type/Onepage.php):第 330、341、556 行, 616;应该有代码

{address}->setCollectShippingRates(true)

其中 {address} 是当前地址变量。

此代码对于未来的“collectRates”流程很重要,因为就在 Onepage Checkout 页面初始化时,“collectRates”流程已经被处理,并且标志“collect_shipping_rates”设置为“false”。如果未设置回 true,则不会执行下一个“collectRates”过程。

在您检查了上面的位置后,它仍然无法正常工作 - 您可能需要向 Mage_Checkout_Block_Onepage_Shipping_Method_Available::getShippingRates 方法添加一些日志记录。如果方法正确执行并从 $this->getAddress()->getGroupedAllShippingRates() 调用返回一些费率,则您的 locan 主题上的 .phtml 模板可能存在一些问题(.phtml 的默认路径是 app/design/frontend/ base/default/template/checkout/onepage/shipping_method/available.phtml)。

您可以通过以下方式记录$this->getAddress()->getGroupedAllShippingRates() 调用(Mage_Checkout_Block_Onepage_Shipping_Method_Available::getShippingRates 方法)的结果:

$groups = $this->getAddress()->getGroupedAllShippingRates();
$printGroupes = array();
    foreach ($groups as $code => $groupItems) {
        foreach ($groupItems as $item) {
            $printGroupes[$code][] = $item->getData();
        }
    }
Mage::log($printGroupes, null,'special.log');

请注意,包含所有费率的结果数组将被记录到 var/logs 文件夹下的“special.log”中。

我希望我能提供更多帮助,但这个问题需要深入研究代码,如果你能掌握调试器,调试器将比日志记录更有帮助。

干杯!

【讨论】:

  • 我认为 Mage_Checkout_Block_Onepage_Shipping_Method_Available::getShippingRates 方法返回 NULL 值。我可以在Available.php 内回显吗?如果我给echo or print_r() 它只是加载。甚至Array() 都不打印任何内容
  • 如果 Magento 日志开启,您可以尝试在自定义日志中记录结果:Mage::log($this->getAddress()->getGroupedAllShippingRates(), null, 'custom.log')
  • 我禁用了onepage checkout 并尝试了Checkout with Multiple Addresses 它还显示Sorry, no quotes are available for this order at this time
  • 由于我是 magento 新手,我不知道如何打开日志记录。我应该在哪里添加此代码?在available.php?我应该在哪里找到文件 custom.log。
  • 嗨 Limi,很抱歉误导了你一点。您会看到,您从 $this->getAddress()->getGroupedAllShippingRates() 获得的数组包含嵌套对象,这就是为什么它可能太大并且最终会吃掉所有允许的内存并死亡。您应该添加下一个代码以删除嵌套对象:$printGroupes = array();foreach ($groups as $code => $groupItems) {foreach ($groupItems as $item) {$printGroupes[$code][] = $item->getData(); } }Mage::log($printGroupes, null,'special.log'); 另请注意,结果将写入 special.log 文件
【解决方案2】:

应输入统一运费的价格

问题可能出在国家选择上

运送到适用国家/地区设置为“特定国家/地区”并且您选择了“加拿大”。

因此,只有在结帐时在前端选择加拿大时,您才会看到这种送货方式。

或者

您可以在所有国家/地区进行此操作并检查其是否有效。

【讨论】:

  • 我已添加价格并将国家/地区更改为 All Countries 仍然无法正常工作。我添加了新的截图。
  • 前端是否使用了任何模板或某些限制应用统一费率的条件,通过启用任何其他运输方式检查这一点,如果您仍然遇到此类问题,那么如果您可以创建一个新的管理员用户并在可能的情况下提供给我,以便我可以检查到底是什么问题
  • 我通过启用其他运输方式进行了检查,它仍然显示Sorry, no quotes are available for this order at this time.
  • 因为它是我客户的实时站点,所以我无法提供登录详细信息。您能否列出可能的原因以便我检查一下
猜你喜欢
  • 2012-07-21
  • 2013-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 2014-05-15
相关资源
最近更新 更多