ম্যাজেন্টো 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.