Я строю систему Ajax Cart, как часть моей собственной темы.Когда я пытаюсь добавить товар, простой или настраиваемый, я получаю сообщение об ошибке:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'website_ids' in 'where clause'
Вот мой код:
function add_to_cartAction($product = false)
{
$data = json_decode(base64_decode($_POST['data']) , true);
if(!$product)
{
$product = Mage::getModel('catalog/product')->load($data['entity_id']);
}
try{
if($product->getTypeId() == 'simple'){
$params = array(
'qty' => $data['quantity'] ,
'product' => $product->getId()
);
$this->addProduct($product , $params);
die(base64_encode(json_encode(array('success' => 'Successfully added product to cart'))));
}else{
$options = $data['attrs'];
$_matchedItem = null;
$childProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null,$product);
foreach($childProducts as $item)
{
$matchAmount = count($options);
$matched = 0;
foreach($options as $attr => $option)
{
if($item->getData($attr) == $option)
{
$matched++;
}
}
if($matched == $matchAmount)
{
$_matchedItem = $item;
break;
}
}
if($_matchedItem == null)
{
throw new Exception("Matched Item is null");
}
$params = array(
'qty' => $data['quantity'] ,
'product' => $_matchedItem->getId()
);
$this->addProduct($_matchedItem , $params);
die(base64_encode(json_encode(array('success' => 'Successfully added product to cart'))));
}
}catch(Exception $e)
{
die($e->getMessage());
}
}
function addProduct($product , $params)
{
$cart = Mage::getModel('checkout/cart');
$cart->init();
$cart->setWebsiteId(Mage::app()->getWebsite()->getId());
$cart->setStoreId(Mage::app()->getStore()->getId());
$cart->getQuote()->addProduct($product , $params['qty']);
$cart->getQuote()->save();
$cart->save();
}
Всякий раз, когда я пытаюсь добавить товар в корзину, я получаюпроблема с таблицей salesrule
, заключающаяся в том, что столбец website_ids не существует, хотя в рабочей версии Magento он не существует, но работает.Это действительно сбивает с толку, у кого-нибудь есть решение для этого?
EDIT * Добавлен скриншот таблицы продаж.