【问题标题】:Magento change shipping price on the fly SQLSTATE[23000]Magento 即时更改运费 SQLSTATE[23000]
【发布时间】:2015-11-12 18:28:53
【问题描述】:

您好,我正在尝试使用以下代码即时更改运费,但是当费率尝试保存时它会崩溃:

$shippingprice = 20.00;
$address = $quote->getShippingAddress();
$address->setShippingAmount($shippingprice);
$address->setBaseShippingAmount($shippingprice);
$rates = $address->collectShippingRates()
         ->getGroupedAllShippingRates();
$address->setCollectShippingRates(false);
$address->save();
foreach ($rates as $carrier) {
    foreach ($carrier as $rate) {
        $rate->setPrice($shippingprice);
        $rate->save();//Right here it crash 
    }
}

SQLSTATE[23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败(sales_flat_quote_shipping_rate, CONSTRAINT FK_B1F177EFB73D3EDF5322BA64AC48D150 FOREIGN KEY (address_id) REFERENCES sales_flat_quote_address (address_id ) ),查询为:INSERT INTO sales_flat_quote_shipping_rate (created_at, updated_at, carrier, carrier_title, code, method, method_description, method_title, @VALUES (4336@) '2015-11-12 18:22:52', '2015-11-12 18:22:52', ?, ?, ?, ?, ?, ?, ?)

知道这个错误吗?

谢谢

【问题讨论】:

    标签: php mysql magento


    【解决方案1】:

    从消息中可以看出,您正在尝试为不存在的地址插入运费行。添加一些调试信息以转储您正在插入的值,并希望这将使问题变得明显。

    【讨论】:

    • 我想我是从这一行保存地址 $address->save();
    • 是的,但是您插入的费率记录是否正确引用了您刚刚保存的地址?
    • 我刚刚添加了 $quote->save();添加数据之后。谢谢
    猜你喜欢
    • 2012-10-23
    • 2017-06-22
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多