ড্রপডাউন ২.১২ এ কনফিগারযোগ্য পণ্য বৈশিষ্ট্য অনুসারে বাছাইয়ের ক্রম


9

ড্রপডাউনের ক্রমটি গুণাবলীর ক্রমের সাথে সামঞ্জস্যপূর্ণ নয়। বৈশিষ্ট্য আকারের মধ্যে আমি এটি নবজাতকে 0-3 মো

এবং ড্রপডাউনে এটি 0-3 নবজাতকের হিসাবে প্রদর্শিত হয়

আকারটি নবজাতককে অন্য আকারের কয়েক দিন পরে যুক্ত করা হয়েছিল এবং নবজাতকের সহজ পণ্য 0-3 মো এর পরে আমদানি করা হয়েছিল। বৈশিষ্ট্যের মধ্যে তালিকার ক্রম অনুসরণ করতে ড্রপ ডাউনের আদেশ পেতে কীভাবে কোনও পরামর্শ? আমি ক্যাশে সাফ করে দিয়েছি এবং পুনরায় সংশোধন করেছি। আমি পড়েছি যে @ খোয়া ট্রুংদিনহ একই সমস্যা পেয়েছিল তবে সমস্যাটির সমাধান দেখতে পেল না তাই পুনরায় পোস্ট করছি।


এছাড়াও, 0-3 আকারের বৈশিষ্ট্যযুক্ত পণ্যগুলি ইতিমধ্যে বিদ্যমান এবং আমি নবজাতকের আকারের সমস্ত গুণাবলী পণ্য যুক্ত করছি।
21 ই

উত্তর:


14

আমি একই বৈশিষ্ট্যগুলির বিকল্পগুলি সামনের প্রান্তে বাছাইয়ের সমস্যার মুখোমুখি হয়েছি, কারণ আমি এই সমস্যাটি পরীক্ষা করে দেখেছি যে অ্যাট্রিবিউট অপশনগুলি আনার সময়, Magento 2.1.2 এ ডিফল্টরূপে ক্যোয়ারীতে কোনও বাছাই করা ফিল্টার নেই, সুতরাং এই সমস্যাটি ঠিক করার জন্য প্রয়োজনীয় অর্ডার যুক্ত করতে নীচের কোডটি যুক্ত করতে ফাংশনে ফাইলে getAttributeOptions ফাইলের 282 নং লাইনে: ভেন্ডর / ম্যাজেন্টো / মডিউল-কনফিগারযোগ্য-পণ্য / মডেল / রিসোর্সমোডেল / পণ্য / প্রকার / কনফিগারযোগ্য.এফপি এখন, এটি আমার জন্য ভাল কাজ করছে।

->joinInner(
        ['attribute_opt' => $this->getTable('eav_attribute_option')],
        'attribute_opt.option_id = entity_value.value',
        []
    )->order(
        'attribute_opt.sort_order ASC'
    );

কোড সম্পাদনা করতে অক্ষম হলে দয়া করে নীচের মত কোডের সাথে এই getAttributeOptions ফাংশনটি প্রতিস্থাপন করুন:

public function getAttributeOptions($superAttribute, $productId)
{
    $scope  = $this->getScopeResolver()->getScope();
    $select = $this->getConnection()->select()->from(
        ['super_attribute' => $this->getTable('catalog_product_super_attribute')],
        [
            'sku' => 'entity.sku',
            'product_id' => 'product_entity.entity_id',
            'attribute_code' => 'attribute.attribute_code',
            'value_index' => 'entity_value.value',
            'option_title' => $this->getConnection()->getIfNullSql(
                'option_value.value',
                'default_option_value.value'
            ),
            'default_title' => 'default_option_value.value',
        ]
    )->joinInner(
        ['product_entity' => $this->getTable('catalog_product_entity')],
        "product_entity.{$this->getProductEntityLinkField()} = super_attribute.product_id",
        []
    )->joinInner(
        ['product_link' => $this->getTable('catalog_product_super_link')],
        'product_link.parent_id = super_attribute.product_id',
        []
    )->joinInner(
        ['attribute' => $this->getTable('eav_attribute')],
        'attribute.attribute_id = super_attribute.attribute_id',
        []
    )->joinInner(
        ['entity' => $this->getTable('catalog_product_entity')],
        'entity.entity_id = product_link.product_id',
        []
    )->joinInner(
        ['entity_value' => $superAttribute->getBackendTable()],
        implode(
            ' AND ',
            [
                'entity_value.attribute_id = super_attribute.attribute_id',
                'entity_value.store_id = 0',
                "entity_value.{$this->getProductEntityLinkField()} = "
                . "entity.{$this->getProductEntityLinkField()}",
            ]
        ),
        []
    )->joinLeft(
        ['option_value' => $this->getTable('eav_attribute_option_value')],
        implode(
            ' AND ',
            [
                'option_value.option_id = entity_value.value',
                'option_value.store_id = ' . $scope->getId(),
            ]
        ),
        []
    )->joinLeft(
        ['default_option_value' => $this->getTable('eav_attribute_option_value')],
        implode(
            ' AND ',
            [
                'default_option_value.option_id = entity_value.value',
                'default_option_value.store_id = ' . \Magento\Store\Model\Store::DEFAULT_STORE_ID,
            ]
        ),
        []
    )->where(
        'super_attribute.product_id = ?',
        $productId
    )->where(
        'attribute.attribute_id = ?',
        $superAttribute->getAttributeId()
    )->joinInner(
        ['attribute_opt' => $this->getTable('eav_attribute_option')],
        'attribute_opt.option_id = entity_value.value',
        []
    )->order(
        'attribute_opt.sort_order ASC'
    );

    return $this->getConnection()->fetchAll($select);
}

এর জন্য আপনাকে অনেক ধন্যবাদ তবে আমি পিএইচপি-তে পারদর্শী নই। আমি নিশ্চিত করতে পারি না যে আপনার ঠিকঠাকটি কোথায় যুক্ত করবেন। এটি আমার কাছে 280-282 থেকে আছে এবং এটির আগে এটি যুক্ত করার চেষ্টা করেছি; ২৮২ তে কিন্তু এটি কার্যকর হয়নি। 280 'অ্যাট্রিবিউট.ট্রিবিউট_আইডি =?', 281 $ সুপারঅ্যাট্রিবিউট-> getAttributeId () 282);
বেবিউইট

আপনি যদি কোড সম্পাদনা করতে অক্ষম হন তবে দয়া করে এটি প্রতিস্থাপন করুন
জগদীশ রাম

কেউ কি কোনও এক্সটেনশন লিখেছেন যা এই প্যাচটি প্রয়োগ করে?
দ্য নর্দার্ন_লাইট

এছাড়াও, এটি 2.1.9 তে কাজ করবে বলে মনে হচ্ছে না।
দ্য নর্দার্ন_লাইট

২.১.১৪-তে কার্যকারিতা সরানো হয়েছে Magento\ConfigurableProduct\Model\AttributeOptionProvider। প্রথম নজরে সমাধান মনে হচ্ছে, সম্ভাব্য বাগগুলি সম্পর্কে নিশ্চিত না।
সিমোথেসোরেরার

3
  1. কনফিগারযোগ্য পণ্য পৃষ্ঠাতে যান -> কনফিগারেশন সম্পাদনা করুন -> পরের নেক্সট - পরবর্তী ক্লিক করুন এবং কোনও কিছুই পরিবর্তন করবেন না
  2. তারপরে পণ্যটি সংরক্ষণ করুন এবং তাদের ক্রমযুক্ত হওয়া উচিত।

রিফ্রেশ বা পণ্য সংরক্ষণ করুন?
লাসন্ত

300+ পণ্য সহ এটি কীভাবে করবেন?
মোহাম্মদ জোরেদ

প্রকৃতপক্ষে কেবল কনফিগারযোগ্য পণ্য সম্পাদনা পৃষ্ঠাটি খোলার, এবং তারপরে সরাসরি সঞ্চয় করা সারণির ক্রম ঠিক করে দেয়। সুতরাং 1- পণ্যটি খুলুন 2- সংরক্ষণ ক্লিক করুন। তবে ম্যানুয়ালি সমস্ত পণ্যগুলিতে না গিয়ে কীভাবে এই কাজটি করবেন। সাইটটিতে সমস্ত পণ্য যুক্ত করার চেষ্টা করে আমি আশা করি এটি একটি সেভ ইভেন্টকে ট্রিগার করবে তবে বাছাই করা ঠিক হয়নি। এমএজি ২.২.২ ব্যবহার করে
মোহাম্মদ জোরেদ

1

যদি আপনি বোঝাচ্ছেন যে নবজাতকের বৈশিষ্ট্যটির মান, তবে আপনাকে স্টোর -> বৈশিষ্ট্য (পণ্য) এ যেতে হবে , প্রয়োজনীয় বৈশিষ্ট্যটি খুঁজে পেতে হবে এবং আপনার মাউসের পরিবর্তনের বিকল্পগুলির অবস্থানের সাথে টানুন এবং ড্রপ ব্যবহার করতে হবে। এখানে চিত্র বর্ণনা লিখুন

সম্পর্কিত পণ্য উত্পন্ন করার সময় ড্রপ-ডাউনগুলির নিজের অবস্থান (আকার, রঙ, আকৃতি) সেট করা যেতে পারে। সম্পাদনা ফর্মটি খুলুন -> উন্নত সেটিংস -> কনফিগারেশন সম্পাদনা করুন - বৈশিষ্ট্য মান পদক্ষেপ এবং ড্র্যাগ এবং ড্রপ সরানো বৈশিষ্ট্যের সাহায্যে এখানে চিত্র বর্ণনা লিখুন


হ্যাঁ অবশ্যই. "গুণমানের আকারের মধ্যে আমি এটি নবজাতকে 0-3 ম অর্ডার দিয়েছি" সুতরাং গুণাবলীর ভিতরেই নবজাতকের 0-0 মিমি থাকে এবং পণ্যটি ড্রপডাউন-এ এটি 0-3 ম এ ওভার নবজাতকের সাথে প্রদর্শিত হয়।

তাই যতটা আমি বলতে পারেন, অ্যাট্রিবিউট মধ্যে নিজে ক্রম সঠিকভাবে Magento 2.1.2 কাজ করছে না
babywit

কারও কারও ধারনা আছে যে বৈশিষ্ট্যগুলিতে তালিকাবদ্ধ ক্রমের সাথে গুণাবলীর ক্রমটি প্রদর্শিত হচ্ছে না বা গুণাবলীর সঠিক ক্রমে প্রদর্শন করার জন্য একটি কার্যনির্বাহী ক্রমটি প্রদর্শিত হচ্ছে না তার দ্বারা এই সমস্যাটি কী ঘটছে? আমি আমার স্টোর চালু করতে চাই তবে এটি আমার ব্যাটি চালাচ্ছে।
বেবিউইট

1

এটি বর্তমানে ম্যাজেন্টো ২ তে একটি পরিচিত সমস্যা version এটি সংস্করণ ২.১.৪ হিসাবে এখনও একটি সমস্যা।

এখানে গিটহাব ইস্যুটি রয়েছে: https://github.com/magento/magento2/issues/7441


প্রশ্নটি 3 মাস আগে জিজ্ঞাসা করা হয়েছিল। ম্যাজেন্টো ২.১.৪ প্রকাশিত হয়েছিল গতকাল ...

1

কারণ এই সমস্যাটি এখনও সর্বশেষতম প্রকাশের ২.১..7 এ উপস্থিত রয়েছে আপনি এই কার্যকারিতাটি ব্যবহার করতে পারেন:

কনফিগারযোগ্য পণ্য পৃষ্ঠাতে যান-> কনফিগারেশন-> সমস্ত সাধারণ পণ্য সরান

এর পরে তাদের আবার পছন্দসই ক্রমে যুক্ত করুন:

ম্যানুয়ালি পণ্য যুক্ত করুন-> নাম অনুসারে ফিল্টার করুন-> পছন্দসই ক্রমে সাধারণ পণ্য যুক্ত করুন


1

V2.3.x এ আপনি একটি কনফিগারযোগ্য প্রোডাক্ট ড্রপ ডাউন সিলেক্টারে বিকল্প লেবেল দ্বারা বৈশিষ্ট্যের ক্রম বাছাই করতে পারেন

Magento\ConfigurableProduct\Model\AttributeOptionProvider

এবং ব্যবহার

usort($data, function($a, $b) {
    return $a['option_title'] <=> $b['option_title'];
});

GetAttributeOptions () এ ফিরে আসা বিকল্পের ডেটা অ্যারের $ ডেটা সাজানোর জন্য


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