#magento #shopping-cart
#magento #корзина покупок
Вопрос:
Я написал здесь, потому что искал способ решить мою проблему в течение 2 часов )
Мне нужно обновить корзину покупок в Magento. Похожие вопросы есть на StackOverFlow.com но они выглядят не подходящими для моей задачи
Позвольте мне кратко объяснить
1) Я переписал Mage_Checkout_CartController следующим образом
класс IB_Ajax_IndexController расширяет Mage_Checkout_CartController
Это хорошо работает с добавлением продуктов ajax
для обновления я отправляю запрос
/ajax/index/updatePost
с параметрами
form_key=H7XpKxwBOWQCkIHkamp;cart[304][кол-во]=39amp;cart[305][кол-во]=1amp;cart[306][кол-во] = 1amp;update_cart_action=upd
Оно отправляется на мой контроллер «IB_Ajax_IndexController», который имеет все методы «Mage_Checkout_CartController»
Я обнаружил, что этот метод обновляет
общедоступная функция updatePostAction()
и затем некоторые обновления отправляются в $ this->_updateShoppingCart(); в приведенном выше методе
обращение ‘update_qty’: $this->_updateShoppingCart(); разрыв;
Я скопировал его код на свой контроллер, чтобы переписать его здесь)
и я столкнулся с такой сложностью, как определить УСПЕХ или ОШИБКУ в этом методе updatePostAction() после выполнения $ this->_updateShoppingCart() в нем ( ????
Может быть, у кого-то есть опыт обновления корзины покупок через ajax? и как изменить вышеуказанные методы
Заранее большое спасибо
Ответ №1:
Сначала создайте массив ответов, подобный этому.
$response = array();
После добавления кода корзины, такого как $cart-> save();
try{ if (!$cart->getQuote()->getHasError()){
$message = $this->__('%s was added to your shopping cart.', Mage::helper('core')->htmlEscape($product->getName()));
$response['status'] = 'SUCCESS';
$response['message'] = $message;
}
} catch (Exception $e) {
$response['status'] = 'ERROR';
$response['message'] = $this->__('Cannot add the item to shopping cart.');
Mage::logException($e);
}
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($response));
return;
И когда вы получаете ответ, с помощью $response[‘status’] вы можете получить сообщение об УСПЕХЕ или ОШИБКЕ.
Комментарии:
1. Сушил Верму! Большое спасибо за ваш ответ! Это работает!