मेरे पास विशेषता कोडों की एक सरणी है जो मुझे मान प्राप्त करने की आवश्यकता है:क्या विशेषता का फ्रंटएंड मान प्राप्त करने का कोई आसान तरीका है?
$attributes = array(
'Category' => 'type',
'Manufacturer' => 'brand',
'Title' => 'meta_title',
'Description' => 'description',
'Product Link' => 'url_path',
'Price' => 'price',
'Product-image link' => 'image',
'SKU' => 'sku',
'Stock' => 'qty',
'Condition' => 'condition',
'Shipping cost' => 'delivery_cost');
उत्पाद संग्रह के माध्यम से पुनरावृत्ति के बाद मुझे इस तरह के गुणों के अग्रभाग मान प्राप्त होते हैं:
$attributeId = Mage::getResourceModel('eav/entity_attribute')
->getIdByCode('catalog_product', $attribute_code);
$attribute = Mage::getModel('catalog/resource_eav_attribute')
->load($attributeId);
$value = $attribute->getFrontend()->getValue($product);
बस उपयोग $product->getDate($attribute)
ड्रॉपडाउन और बहु-चयन के साथ काम नहीं करेगा, यह सिर्फ उनकी आईडी लौटाता है, न कि उनके फ्रंटएंड वैल्यू।
जबकि उपर्युक्त कोड काम करता है, यह मान प्राप्त करने के लिए एक लंबा रास्ता प्रतीत होता है, लेकिन अधिक महत्वपूर्ण बात यह काफी धीमी गति से चलती है। क्या उत्पाद विशेषताओं के लिए फ्रंटएंड मान प्राप्त करने के लिए कोई तेज़/अधिक समझदार तरीका है?
संपादित करें अब मेरे पास निम्नलिखित है (image
और qty
जैसे विशेष मामलों से निपटने के बाद) जो आंखों पर थोड़ा आसान है और लगता है कि तेज़ी से चल रहा है (हालांकि मुझे नहीं पता क्यों):
$inputType = $product->getResource()
->getAttribute($attribute_code)
->getFrontend()
->getInputType();
switch ($inputType) {
case 'multiselect':
case 'select':
case 'dropdown':
$value = $product->getAttributeText($attribute_code);
if (is_array($value)) {
$value = implode(', ', $value);
}
break;
default:
$value = $product->getData($attribute_code);
break;
}
$attributesRow[] = $value;
अगर कोई इसे सुधार सकता है (इसे सरल/अधिक कुशल बनाएं), तो कृपया एक उत्तर पोस्ट करें।
इस लेख पर एक नजर डालें http://blog.chapagain.com.np/magento-how-to-get-attribute-name-and- मूल्य/ –
धन्यवाद, उपयोगी लेख। – Jamie