Получить значение атрибута товара на странице корзины, которое изменяется на странице сведений о продукте


Я разрабатываю одно расширение. Я создал атрибут в бэкэнде и назначил его продукту. И я изменяю этот атрибут продукта при добавлении в корзину, и я выбираю то же самое на странице оформления заказа/корзины, но я не могу получить то же значение на странице оформления заказа/корзины.

Я сохраняю эту стоимость товара в модели оформления заказа/корзины следующим образом:

//saving product to cart
$product_id = Mage::app()->getRequest()->getPost('id'); 
        $qty = Mage::app()->getRequest()->getPost('qty'); 
        $product = Mage::getModel('catalog/product')->load($product_id);
        $product->setCanImage('wasdwasdwasd');

$cart = Mage::getModel('checkout/cart');
        $cart->init();
        $cart->addProduct($product, array('qty' => $qty));
        $cart->save();
        Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
        Mage::getSingleton('core/session')->addSuccess('Product added successfully');

И я могу получить значение своего атрибута на той же странице, как следующий код, но я не могу получить его при оформлении заказа/в корзине страница.

$cartQuote = Mage::getModel('checkout/cart')->getQuote()->getAllVisibleItems();
        foreach ($cartQuote as $item) {
            $productId = $item->getProduct()->getId();
            $productPrice = $item->getProduct()->getPrice();
            $item->getProduct()->getCanImage();//I can get my value here
        }

И я использовал тот же код, что и выше, но я не получаю ценность из предложения по оформлению заказа/корзине.

И я не хочу хранить это значение в базе данных, потому что это создаст проблемы, если многие пользователи будут добавлять этот продукт динамически, поэтому я думаю, что цитата - хорошее место для хранения данных для продукта.

Пожалуйста, предложите мне решение.

Author: 7ochem, 2015-10-15

2 answers

Во-первых, $product->setCanImage('wasdwasdwasd'); не сохраняет значение в объекте модели до использования $product->save();

Итак, вы не мог получить $item->getProduct()->getCanImage() данные в виде $item->getProduct()->getCanImage() являются Объект Mage_Catalog_Model_Продукт.

Одна вещь, которую вы можете сделать сохраните значение в переменной сеанса затем используйте его на странице оформление заказа/корзина.

Концепция заключается в том, что значение переменной сеанса сохраняется в виде массива в формате, подобном.

$ValueinArray=array('product_id_1'=>$value,product_id_2'=>$value2,product_id_3'=>$value3);

Mage::getSingleton( 'customer/session' )->setCanImage($ValueinArray);

Затем на страница корзины вам нужно вызвать это значение переменной с помощью Mage::getSingleton( 'customer/session' )->getCanImage()

и совпадать с индексом продукта

 0
Author: Amit Bera, 2015-10-15 13:16:32

$product->save() отсутствует в вашем коде.

Я буду рекомендовать использовать сеанс клиента, чтобы установить это значение и получить его на странице корзины. Пожалуйста, не забудьте снять значение сеанса

Mage::getSingleton('customer/session')->unsCanImage();
 0
Author: pooja, 2017-11-03 10:19:57