gpt4 book ai didi

magento - 为什么 Magento cart.create 函数会使购物车处于非事件状态?

转载 作者:行者123 更新时间:2023-12-02 13:28:00 26 4
gpt4 key购买 nike

我一直在摆弄 Magento 购物车 API (Magento v.1.5),发现当创建购物车(并添加产品)时,“sales_flat_quote”表中的“is_active”值设置为“0” ”。相反,如果您使用商店界面中的“添加到购物车”按钮,“is_active”值将设置为“1”。

我做了一些挖掘,发现 API 在 app/code/core/Mage/Checkout/Model/Cart/Api.php 中设置了“is_active”。

这是相关的代码块:

public function create($store = null)
{
$storeId = $this->_getStoreId($store);

try {
/*@var $quote Mage_Sales_Model_Quote*/
$quote = Mage::getModel('sales/quote');
$quote->setStoreId($storeId)
->setIsActive(false)
->setIsMultiShipping(false)
->save();
} catch (Mage_Core_Exception $e) {
$this->_fault('create_quote_fault', $e->getMessage());
}
return (int) $quote->getId();
}

所以我不确定使其虚假的意图是什么。商店接口(interface)和 API 之间的行为差​​异是否有原因?或者是否必须通过 API 完成一些其他操作才能激活购物车?

最佳答案

我最好的猜测,这是一个猜测,因为我无法读懂原始开发人员的想法,他们会试图阻止 API 生成的报价出现在废弃的购物车报告中。

is_active 标志用于指示客户的有效报价,并且客户只能有一个有效报价。该标志还用于了解何时可以从系统中自动删除报价,其理论是,如果报价不活跃,则它已转换为订单并且不再需要。如果 Mage_Checkout Cart API 将该标志设置为 false,则报价可能会在您将其转换为订单之前进行自动清理。通过将该标志设置为 false,还会阻止您使用 API 创建客户可以在前端使用的实时报价。

所以,我想说,如果您使用 API 为客户创建报价,您需要添加一个publish()方法。如果您使用 API修改客户的现有报价,则不会遇到问题,因为它仅在创建新报价时才会出现。

无论如何,我个人认为当前的行为是一个错误,因为清理例程使用该标志来指示可移动引号。

关于magento - 为什么 Magento cart.create 函数会使购物车处于非事件状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6899832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com