বর্তমানে কার্টে সমস্ত আইটেম পাবেন কীভাবে?


45

আমি বর্তমানে কার্টের সমস্ত আইটেমের সংগ্রহ পেতে চাই।

কিভাবে আমি এটি করতে পারব ? কোন পরামর্শ প্রশংসা করা হবে।


আপনি যদি ম্যাজেন্টো 2 এর সাথে সমাধানের সন্ধান করছেন, দেখুন magento.stackexchange.com
ফ্যাবিয়ান শেমংলার

উত্তর:


61
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach ($cart->getAllItems() as $item) {
    $productName = $item->getProduct()->getName();
    $productPrice = $item->getProduct()->getPrice();
}

এতে আপনি $cartকার্ট আইটেমের সমস্ত সংগ্রহ পেয়েছেন এবং আপনি যদি পণ্য আইডি পেতে চান তবে নামটি আপনি ফোরচ লুপ ব্যবহার করে পেতে পারেন


6
এটি কাজ করে তবে এটি কনফিগারযোগ্য পণ্যগুলির সাথে সম্পর্কিত পণ্যগুলি সহ সমস্ত পণ্য প্রদর্শন করে। আমি উল্লিখিত পণ্যগুলি বাদে সমস্ত পণ্য প্রদর্শন করতে আপনাকে getAllVisibleItems () ব্যবহার করতে হবে
নাগি

এই আইটেমের পরিমাণ কীভাবে প্রদর্শিত হবে?
মার্কোস ভিনিসিয়াস

আপনি getModel ব্যবহার করা উচিত? আপনি getSingleton ব্যবহার করা উচিত নয়?
ড্যানি দেব এনজেড

28

আমি আর একটি সমাধান খুঁজে পেলাম। নিম্নলিখিত কোডটি আমার পক্ষে কাজ করে।

$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
    $productId = $item->getProductId();     
    // Do something more
}

এই আইটেমের পরিমাণ কীভাবে প্রদর্শিত হবে?
মার্কোস ভিনিসিয়াস

1
কেন একটি লুপে পণ্য লোড করার জন্য 27 টি আপভোট ....?
এসভি 3 ই

এটির ভয়াবহ পারফরম্যান্স রয়েছে .. আপনি প্রতিটি পণ্য যখন ইতিমধ্যে উপলব্ধ হয়ে থাকেন তখন লুপে লোড করছেন $item->getProduct()... প্রতিবার আপনি ম্যাজেন্টোতে -> লোড () ব্যবহার করার কথা ভাবছেন আপনি খারাপ পারফরম্যান্সের উপর নির্ভর করতে পারেন, কখনও কখনও অন্য কোনও জিনিস থাকে না বিকল্পটি সত্যিই তবে এখানে এটি নয় ...
ওজজিআই

1
@ এসভি 3 এন: এটি দেখানোর জন্য ধন্যবাদ Thanks কোডটি সংশোধিত করেছেন
সুকেশিনী

20

বিভিন্ন পদ্ধতিতে বিভিন্ন পদ্ধতিতে কাজ করা হয়:

  1. $items = Mage::getSingleton('checkout/cart')->getQuote()->getItemsCollection();

    বর্তমান উক্তির সাথে সম্পর্কিত সমস্ত আইটেমের সাথে একটি উদ্ধৃতি আইটেম সংগ্রহ প্রদান করে।

  2. $items = Mage::getSingleton('checkout/cart')->getItems();

    এটি উপরের পদ্ধতির জন্য একটি শর্টকাট, তবে কোনও উদ্ধৃতি না থাকলে এটি একটি খালি অ্যারে প্রদান করে, সুতরাং আপনি সংগ্রহের উদাহরণ পাওয়ার উপর নির্ভর করতে পারবেন না।

  3. $items = Mage::getSingleton('checkout/cart')->getQuote()->getAllItems();

    আইটেম সংগ্রহটি লোড করে, তারপরে মুছে ফেলা হিসাবে চিহ্নিত করা হয়নি এমন সমস্ত আইটেমের একটি অ্যারে প্রদান করে (যেমন বর্তমান অনুরোধে সরানো হয়েছে)

  4. $items = Mage::getSingleton('checkout/cart')->getQuote()->getAllVisibleItems();

    লোড আইটেমটি সংগ্রহ, তারপর ফেরৎ অ্যারের সমস্ত আইটেমের যা মোছা হিসাবে চিহ্নিত করা হয় না কি একটি পিতা বা মাতা নেই (অর্থাত আপনি বান্ডেল এবং কনফিগার পণ্য কিন্তু তাদের যুক্ত শিশুদের জন্য আইটেম পাওয়া)। প্রতিটি অ্যারে আইটেম কার্ট পৃষ্ঠায় প্রদর্শিত একটি সারির সাথে সামঞ্জস্য করে।

আপনার চাহিদা সবচেয়ে উপযুক্ত কি চয়ন করুন। বেশিরভাগ ক্ষেত্রে সর্বশেষ পদ্ধতিটি আপনার যা প্রয়োজন, কিন্তু দুর্ভাগ্যক্রমে Magento কেবল এটিকে অ্যারে হিসাবে সরবরাহ করে, সংগ্রহ হিসাবে নয়।


লক্ষ্য করুন Mage::getSingleton('checkout/cart')->getQuote()এবং Mage::getSingleton('checkout/session')->getQuote()বিনিময়যোগ্য।


1
$items =Mage::getSingleton('checkout/session')->getQuote()->getAllItems();

foreach($items as $item) {
    echo 'ID: '.$item->getProductId().'<br />';
    echo 'Name: '.$item->getName().'<br />';
    echo 'Sku: '.$item->getSku().'<br />';
    echo 'Quantity: '.$item->getQty().'<br />';
    echo 'Price: '.$item->getPrice().'<br />';
    echo "<br />";
}

কার্টে সমস্ত আইটেম পাওয়ার সেরা উপায়


Mage :: getSingleton ('চেকআউট / কার্ট') -> getQuote () -> getAllItems () ব্যবহার করুন;
আমান শ্রীবাস্তব

কেন? পার্থক্য কি?
এলএম_ফিল্ডিং

-7

নীচের কোডটি কার্ট আইটেমগুলি পাওয়ার জন্য ব্যবহৃত হয়

$cart = new Mage_Checkout_Model_Cart();

$cart->init();

foreach ($cart->getItems() as $item) {

   // we can wrap our request in this IF statement

   if (!$item->getParentItemId()) {

   }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.