নির্বাচিত বহুবিধ বৈশিষ্ট্যের মান পান


14

নিম্নলিখিত "গাড়ী" পণ্য নিন: ভক্সওয়াগেন গল্ফ ।

car_optionsনিম্নলিখিত সম্ভাব্য বিকল্পগুলি এবং তাদের আইডির সাথে এটির একটি বহুবিধ বৈশিষ্ট্য রয়েছে:

  • এয়ারকো (আইডি = 123) নির্বাচিত
  • রেডিও (আইডি = 124) নির্বাচিত
  • ব্লুটুথ (আইডি = 125)
  • নেভিগেশন (আইডি = 126)

রেডিও এবং এয়ারকো এই পণ্যটির জন্য নির্বাচিত হয়েছে। আমি কীভাবে এই দুটি মান (রেডিও, এয়ারকো) পেতে এবং সেগুলি প্রদর্শন করতে পারি? pr _উত্তর দেওয়া হয়।

উত্তর:


19

এটা চেষ্টা কর:

echo $_product->getResource()->getAttribute('car_options')->getFrontend()->getValue($_product);

আমি আউটপুট পাই না! এটি কোনও ড্রপডাউন নয়, তবে একটি বহুবিধ বৈশিষ্ট্য!
— এসপিআরবিএনএন

এটি এখনও একটি বহুবিশেষের সাথে কাজ করা উচিত, আমি কেবল এটি চেষ্টা করেছি। চেষ্টা var_dump($_product->getData('car_options');করে দেখুন আউটপুটটি। এটি একটি কমা দ্বারা পৃথক স্ট্রিং হওয়া উচিত, যদি তা না হয় তবে আমি কেবলমাত্র একটি তৃতীয় পক্ষের মডিউল হস্তক্ষেপ করছে তা কল্পনা করতে পারি।
— মায়ার্স

এখনও আউটপুট নেই। আমরা বেশ কয়েকটি মডিউল ব্যবহার করি, তবে আমি এমন কোনও বৈশিষ্ট্যই জানি না যা গুণাবলির সাথে মিশে যায়।
— এসপিআরবিএনএন

যদি $_product->getData('car_options')NULL ফেরত দেয়, এর অর্থ এটি আপনার পণ্য সংগ্রহের সাথে যুক্ত হয় না। আপনি এই বৈশিষ্ট্যটি কোথায় অ্যাক্সেস করার চেষ্টা করছেন সে সম্পর্কে আমাদের আরও জানতে হবে
— মেয়ার্স

আমি একটি সমাধান খুঁজে পেয়েছি - আমার উত্তর দেখুন।
— এসপিআরবিএনএন

2
$ অবজেক্ট ম্যানেজার = \ ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ অ্যাপ \ অবজেক্ট ম্যানেজার :: getInstance (); $ product = $ অবজেক্ট ম্যানেজার-> পান ('ম্যাজেন্টো \ ক্যাটালগ \ মডেল \ পণ্য') -> লোড ($ প্রোডাক্ট_আইডি);

$ গুণাবলী = $ পণ্য-> getResource () -> getAttributeRawValue ($ product_id, 'my_custom_attribute_code', $ storeid);

এটি কাজ করে .. আশা করি এটি আপনাকে সাহায্য করবে ..


দুর্দান্ত ... এটি কবজির মতো কাজ করে !!!!!
— স্নেহা পঞ্চাল

জানতে পেরে আনন্দিত :) @ স্নেহাঞ্চল
— সমীর

0

নিম্নলিখিত কোড

  1. এই পণ্যটির জন্য নির্বাচিত বিকল্পগুলির মান আইডিগুলি প্রদান করে: 123,124
  2. এটিকে অ্যারেতে পরিণত করে: অ্যারে (123,124)
  3. তারপরে এই বিকল্পগুলির লেবেলটি খুঁজে পান: 123 => এয়ারকো এবং 124 => রেডিও
  4. এবং একটি পাঠ্য স্ট্রিংয়ের মানগুলি প্রদান করে: এয়ারকো, রেডিও
att _attribute_code = 'car_options';
$ car_options_csv = maage :: getResourceModel ('ক্যাটালগ / পণ্য') -> getAttributeRawValue ($ productId, $ _attribute_code, $ storeId); // রিটার্ন: 123,124
$ car_options = বিস্ফোরিত (',', $ car_options_csv);
$ অ্যাট্রিবিউটআইডি = ম্যাজ :: গেটআরসোর্সমোডেল ('ইভা / সত্তা_প্রেম') -> getIdByCode ('ক্যাটালগ_প্রডक्ट', $ _ বৈশিষ্ট্য_কোড);
$ বৈশিষ্ট্য = ম্যাজ :: গেটমোডেল ('ক্যাটালগ / উত্স_ইভ_অ্যাট্রিবিউট') -> লোড ($ বৈশিষ্ট্যযুক্ত);
; গুণাবলী = $ গুণ -> গেটসোর্স () -> getAllOptions ();

$ res = '';
ভবিষ্যদ্বাণী ($ এ্যাট্রিবিউটশনগুলি $ এ হিসাবে)
{
    $ l = $ এ ['লেবেল'];
    $ এম = $ এ ['মান'];
    যদি (স্ট্রেন (ট্রিম ($ l))> 0 && ইন_আরে ($ এম, $ গাড়ী_পশন))
    {
        $ রেস। = ট্রিম ($ l)। ',';
    }
}
প্রতিধ্বনি সাবস্ট্রাস্ট ($ রেস, 0, -2) ;;

খুব - আপনি সাধারণত এই রাস্তায় যেতে চান না। বিশেষত যেহেতু মায়ারের উত্তর উপরে রয়েছে ঠিক আছে। আপনি যদি এইভাবে ম্যাজেন্টোর অনুবাদ সিস্টেমকে বাইপাস না করেন তবে আমি নিশ্চিত নই - যদিও পরীক্ষা করে দেখিনি।
— কর্মপ্রবাহ

0

ধন্যবাদ @ মায়ার্স, তার সমাধানটি নেটিভ getAttributeText ওভাররাইড না করে খুব ভাল:

 public function getAttributeText($attributeCode)  
 {
    return $this->getResource()
        ->getAttribute($attributeCode)
        ->getFrontend()
        ->getValue($this);
 }

এবং পাশাপাশি গ্রাহক মডেল যুক্ত করতে।

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