这是我面临的问题:
客户为产品添加的数量超过1,并且在结帐页面上显示正确的数量,但在PayPal的付款页面上,虽然行总数是正确的,但它总是显示数量1(正确)数量订购X价格)。
但是,当您将鼠标悬停在产品名称上时,名称旁边会显示正确的数量。但是在下面的项目详细信息中,它始终显示为1。
我在这里看到同样的问题: https://magento.stackexchange.com/questions/14872/magento-order-quantity-shown-in-paypal-as-x-1-with-real-quantity-in-item-name但没有人有解决方案
看到它也在这里问: http://www.magentocommerce.com/boards/v/viewthread/296454/ 并尝试了用户发布的答案' cnyc'这就是在悬停时我给出了正确数量的信息。现在我只需要在下面的详细信息中显示它。
正如其他人所怀疑的那样,我也认为问题在于Cart.php(app / code / core / Mage / Paypal / Model /),代码如下:
// aggregate item price if item qty * price does not match row total
if (($amount * $qty) != $salesItem->getBaseRowTotal()) {
$amount = (float) $salesItem->getBaseRowTotal();
$subAggregatedLabel = ' x' . $qty;
$qty = 1;
}
作为用户 dan jones ,从我发布的第二个链接写的,可能是因为计算错误的四舍五入。但是,由于我们的产品没有税收计算,所以我不知道为什么行总数不会与有序的X价格相匹配。还有其他人遇到过这个问题并设法解决了吗?
答案 0 :(得分:1)
确定。管理以获得解决方案。
基本上问题是Magento如何将我们的产品价格转换为美元。由于Magento在小数点后存储3个值,因此四舍五入为价格增加了一分钱,这就是PayPal的条件失败的原因。反过来,这会触发条件并将价格乘以X数量并显示正确的价格但数量为1.显然,这是通过PayPal的设计。
我们设法通过将值四舍五入到两个位置来解决它,这个位置在条件触发之前被取入变量$ amount。这使得它绕过了PayPal的条件,并在PayPal的页面上提供了正确的订单详情。
很抱歉,如果我的答案是满满的。想快点让任何人知道我们的解决方案。如果有人需要更多信息,请发邮件给我。