ম্যাজেন্টো 2: বিভাগ আইডি ব্যবহার করে পণ্য সংগ্রহ পান


12

বিভাগে আইডিতে ম্যাজেন্টো 2 ব্যবহার করে বিভাগের সমস্ত পণ্য কীভাবে পাবেন?


আপনি এটি একটি ব্লক বা একটি মডেল চান?
মারিয়াস

আমি হোমপেজে বিভাগের সমস্ত পণ্য চাই। আমি ইতিমধ্যে বিভাগ আইডি পেয়েছি এবং তার ভিত্তিতে আমি বিভাগের সমস্ত পণ্য আনতে চাই
রকেশ জেসাদিয়ার

আমার কাছে বিভাগ সংগ্রহের জন্য কল ব্লক রয়েছে তাই ব্লক ক্লাসে আসা ভাল best
রাকেশ জেসাদিয়া

@RakeshJesadiya দুঃখিত এখানে পোস্ট করার জন্য কিন্তু আমি আপনার সাহায্যের এই বিষয়ে প্রয়োজন magento.stackexchange.com/questions/293795/... দয়া
Nagaraju কে

উত্তর:


24

আপনি আপনার ব্লকে এর \Magento\Catalog\Model\CategoryFactoryমতো একটি উদাহরণটি ইনজেক্ট করতে পারেন :

protected $categoryFactory;
public function __construct(
    ....
    \Magento\Catalog\Model\CategoryFactory $categoryFactory,
    ...
){
    ...
    $this->categoryFactory = $categoryFactory;
    ...
}

তারপরে আপনার ব্লকে এই পদ্ধতিটি তৈরি করুন:

public function getCategory()
{
    $categoryId = $this->getCategoryId();
    $category = $this->categoryFactory->create()->load($categoryId);
    return $category;
}
public function getProductCollection()
{
     return $this->getCategory()->getProductCollection()->addAttributeToSelect('*'); 
}

তারপরে আপনি টেমপ্লেটে এটি ব্যবহার করতে পারেন:

<?php foreach ($block->getProductCollection() as $product) : ?>
    <!-- do something with $product -->
<?php endforeach;?>

আপনার এখনই এটি আপনার হোমপেজ সামগ্রীতে যুক্ত করতে সক্ষম হওয়া উচিত

{{block class="Block\Class\Name\Here" category_id="5" template="path/to/template.phtml"}}

এই সমাধানটি বাস্তবায়নের জন্য আমি এখানে পোস্ট করা একই সমস্যার দিকে দৌড়েছি : magento.stackexchange.com/questions/123374/… আমি এটিকে যুক্ত করছি যাতে অন্যেরা কীভাবে এই সমাধানটি ব্যবহার করবেন সে সম্পর্কে আরও স্পষ্টকরণের প্রয়োজন হয়, তাদের কেনাকাটা বন্ধ রয়েছে।
সার্কেলিক্স

@ মারিয়াস এটির কোনও উপায় কি রেপোজিটরি প্যাটার্নের মাধ্যমে অর্থাৎ ম্যাজেন্টো দ্বারা সরবরাহিত পরিষেবার চুক্তির মাধ্যমে?
মাথানগোপাল এস


0

আমি এটি ব্যবহার করছি

echo '('.$subcat->getProductCollection()->count().')';

foreach ($subcats as $subcat) { 
    if ($subcat->getIsActive()) {
        $_category = $objectManager->create('Magento\Catalog\Model\Category')->load($subcat->getId());
        $_imgUrl = $_category->getImageUrl(); 
        $subcat_url = $subcat->getUrl();
        // echo $qty = $subcat->getQty(); exit;
        $subcat_img = $store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA) . 'catalog/category/' . $subcat->getImage(); 
        $placeholder_img = "pub/media/placeholder.png";
        if($_imgUrl ==''){
            $_imgUrl = $store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA)."catalog/category/placeholder.png";
        }
        ?>
        <div class="col-sm-2 item-two">
            <a href="<?php echo $subcat_url; ?>">
                <div class="item-two-img">
                    <img src="<?php echo $_imgUrl; ?>" class="img-responsive"/>
                </div>
                <p><?php echo $subcat->getName(); 
                    $subcat->getProductCollection()->count(); ?>
                    <span class="pro_quantity">
                        <?php echo '('.$subcat->getProductCollection()->count().')';?>
                    </span>
                </p>
            </a>
        </div>
        <?php
    }
}

আপনার কোডে কখনই অবজেক্টম্যানেজার ব্যবহার করবেন না। বিশেষত আপনার পিএইচটিএমএলে নেই
কে ইন্ট

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