দলবদ্ধ পণ্য বৈশিষ্ট্য হ্যান্ডলিং


9

আমি একটি নতুন ম্যাজেন্টো শপ তৈরিতে কাজ করছি (ম্যাজেন্টোর সাথে এটি আমার প্রথম)।

আমি আমার পণ্য পৃষ্ঠাগুলির জন্য একটি বিদ্যমান দোকানের চেহারাটি প্রতিলিপি করতে চাইছি, কমপক্ষে বিন্যাসের ক্ষেত্রে:

http://www.panamericantool.com/cobalt-drills/drill-stops.html

http://www.panamericantool.com/screw-driver-bits/paint-cutters.html

আমি বুঝতে পেরেছি যে আমার পরে জিনিসটি তৈরি করার জন্য সহজ পণ্যগুলির সাথে আমার গ্রুপবদ্ধ পণ্যগুলি ব্যবহার করা দরকার।

উপরের উদাহরণগুলিতে, প্রতিটি পণ্যের পৃথক বৈশিষ্ট্য রয়েছে, আমি ধরে নিই এগুলি ম্যাজেন্টোতে বিভিন্ন বৈশিষ্ট্যযুক্ত সেটগুলির মাধ্যমে সম্পন্ন হয়েছে।

তবে কীভাবে তারা থিমটিতে এই বিভিন্ন টেবিল শিরোনাম / মানগুলি প্রদর্শন করতে যায়?

আমি জানি আমি কি করতে পারি ->getAttributeName()বা ->getAttribute('attribute_code')মধ্যে grouped.phtmlফাইল, কিন্তু এই সুবিশাল পরিমাণ স্থাপিত হবে if (->getAttributeName() != '')...এবং আমি যখন আরো যোগ টেমপ্লেট পরিবর্তন করতে হবে না।

আমি নিশ্চিত যে সমস্ত বৈশিষ্ট্য পাওয়া এবং সেগুলির উপরে লুপ করার একটি উপায় আছে তবে আপনি কীভাবে meta_descriptionবৈশিষ্ট্যটি ( $_product->getData()পদ্ধতি দ্বারা ফেরত ) এবং টেবিলে তালিকাবদ্ধ তালিকাতে চান এমন একটি বৈশিষ্ট্যের মধ্যে পার্থক্য করবেন ?

আমি কীভাবে তাদের কাছে যা কিছু আছে তার অনুরূপ অর্জন করতে পারি?

আমি পারফরম্যান্স সম্পর্কেও উদ্বিগ্ন যে দোকানটির প্রবর্তনকালে 5k পণ্য থাকবে যা আমরা আমাদের অবশিষ্ট স্টক যুক্ত করার সাথে সাথে সম্ভবত 25k-30k বাড়িয়ে তুলছি। এর মধ্যে অনেকেরই আলাদা আলাদা অ্যাট্রিবিউটসের প্রয়োজন হবে তবে আমি অনুমান করছি যে আমি খুব বেশি পারফরম্যান্স সমস্যা ছাড়াই অ্যাট্রিবিউট সেটের মধ্যে বৈশিষ্ট্যগুলি ভাগ করতে পারি?


হালনাগাদ:

আমি এটির সাথে খেলা চালিয়েছি, আমি সমস্ত পণ্য বৈশিষ্ট্য পেতে এটি খুঁজে পেয়েছি, তবে এখনও আমি শ্রেণিবদ্ধ পণ্যের টেবিলে নির্দিষ্ট মানগুলিকে দেখানোর সহজ উপায়টি জানি না?

$attributes = Mage::getModel('catalog/product_attribute_api')->items($_product->getAttributeSetId());
foreach($attributes as $_attribute){
    print_r($_attribute);
}

পণ্যের পৃষ্ঠায় প্রদর্শিত হবে কিনা তা নির্ধারণের জন্য বৈশিষ্ট্যের সম্পত্তিটি "ফ্রন্ট-এন্ড প্রোডাক্ট ভিউ পৃষ্ঠায় দৃশ্যমান" ব্যবহার করবেন না কেন?
ব্লুসি

উত্তর:


2

আপনার যা প্রয়োজন তা হ'ল:

$product->getResource()->getAttribute('attribute_code')->getStoreLabel();

তবে এটি কেবল একটি একক বৈশিষ্ট্যটি পাবে, আমার বিভিন্ন পণ্যগুলির জন্য আলাদা আলাদা বৈশিষ্ট্যগুলি দেখানোর একটি উপায় প্রয়োজন - আমি ওপিতে অন্তর্ভুক্ত লিঙ্কগুলি অনুসারে?
টম গ্রিন

2

কেন এমন একটি বৈশিষ্ট্য তৈরি করবেন না যা এটিকে বলে যে কোন বৈশিষ্ট্যটি প্রদর্শন করতে হবে?

আমি এমন একটি মডিউল তৈরি করে শেষ করেছি যা গোষ্ঠীভুক্ত পণ্যের জন্য দুটি পাঠ্য বৈশিষ্ট্যের মান লোড করে যা বৈশিষ্ট্যযুক্ত কোডের স্ট্রিং। মূলত একটি সহায়ক যা এক্সপ্লোড করে যা বিশিষ্ট তালিকা স্ট্রিং করে এবং সম্পর্কিত পণ্যগুলির বৈশিষ্ট্য ডেটা লোড করার জন্য এটির উপরে লুপ করে।

আমার নামে পরিচিত একটি বৈশিষ্ট্য তৈরি করুন:

grouped_attr_array

প্রশাসকগুলিতে গোষ্ঠীভিত্তিক পণ্যের নকশার অ্যাট্রিবিউট সেটটিতে অ্যাট্রিবিউট যুক্ত করুন এবং তারপরে সেগুলিকে পণ্য ডেটাতে একটি সেমিকোলন বিচ্ছিন্ন ক্ষেত্র হিসাবে স্থাপন করুন

torque_range;torque_increments;torque_accuracy

আমি আমার মডিউল থেকে এই কোডটি টানছি। এটি একটি অ্যাট্রিবিউটের মানের উপর ভিত্তি করে ডিফল্ট বৈশিষ্ট্যগুলি আরও লোডিং বা লুকিয়ে রাখছে এবং মডিউলটি আরও কিছুটা জটিল। কিন্তু টেবিলের মধ্যে প্রদর্শিত ডেটা পেতে এগুলি কয়েকটি মূল কার্যাদি রয়েছে। আশা করি এটি আপনাকে আরও বাড়ানোর জন্য একটি ধারণা দেয়। এটি ম্যাজেন্টো 1.9.2 ব্যবহার করছে

মডিউল এর সহায়ক:

public function findAttributes($product, $attributes)
{
    //determined by attribute with id to add additional attributes to the table
    //string needs to be ; separated in ADMIN
    $strattributes = $product->getResource()->getAttribute('grouped_attr_array')->getFrontend()->getValue($product);
    if ($strattributes) {
        $strattributes = explode(';', $strattributes, 5);
        foreach ($strattributes as $additionAttribute) {
            //make sure these are valid attributes
            if ($product->getResource()->getAttribute($additionAttribute)) {
                array_push($attributes, $additionAttribute);
            }
        }
    }
}

public function groupedAttrDump($groupedProduct, $attributes)
{
    $cells = [];
    foreach ($attributes as $attrCode) {
        $attrText = $groupedProduct->getResource()->getAttribute($attrCode);
        if($attrText){
            array_push($cells, $attrText->getFrontend()->getValue($groupedProduct));
        }
    }
    return $cells;
}

public function groupedAttrHeaders($currentProduct, $attributes)
{
    $theads = [];
    foreach ($attributes as $attrCode) {
        $headerText = $currentProduct->getResource()->getAttribute($attrCode);
        if($headerText){
            $headerText = $headerText->getStoreLabel();
            array_push($theads,$headerText);
        }

    }
    return $theads;
}

গ্রুপড প্রোডাক্ট.এফটিএমএলে সহায়তার কাছ থেকে ডেটা নেওয়া

$attrrSetName = Mage::getModel("eav/entity_attribute_set")->load($_product->getAttributeSetId())->getAttributeSetName();
$tableAttributes = Mage::helper('groupedtable')->findAttributes($_product, $attrrSetName);

টি এইচ এর

     <?php foreach (Mage::helper('groupedtable')->groupedAttrHeaders($_product, $tableAttributes) as $attrLabel ): ?>
        <th><?php echo $attrLabel ?> </th>
     <?php endforeach; ?>

টিডি টেবিলের

<?php foreach (Mage::helper('groupedtable')->groupedAttrDump($_associatedProduct, $tableAttributes) as $attr ):?>
        <td><?php if($attr != 'No'){ echo $attr; } ?></td>
   <?php endforeach; ?>

আমি স্টোর উপলভ্য বৈশিষ্ট্যের উপর ভিত্তি করে সেই বৈশিষ্ট্যটি বেছে নেওয়ার উপায়টি তৈরি করতে চাই। সম্ভবত এটি করার আরও অনেক ভাল উপায়। এখনও এটি করা যায় নি।

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