Обновление элементов корзины покупок Ajax в Magento

#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. Сушил Верму! Большое спасибо за ваш ответ! Это работает!