我一直在擺弄Magento購物車API(Magento v.1.5),發現當創建購物車(和添加產品)時,「sales_flat_quote」表中的「is_active」值設置爲「0」 。相反,如果您在商店界面中使用「添加到購物車」按鈕,則「is_active」值設置爲「1」。爲什麼Magento cart.create函數使購物車處於非活動狀態?
我做了一些挖掘,發現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();
}
所以我不知道的意圖是什麼讓它假。商店界面和API之間存在行爲差異的原因是什麼?或者是否有必須通過API完成額外的工作才能使購物車啓動?
如果您發佈了您正在使用的Magento的特定版本,將會非常有幫助,因爲事情往往會在版本之間發生相當大的變化。 –
對不起,Magento v.1.5。我已將它添加到原始帖子中。 – jmvt