दिलचस्प पोस्ट
आईकंस और मैक विकास के लिए सतत एकीकरण के रूप में जेनकिंस / हडसन का उपयोग करते समय चाबी का गुच्छा में प्रमाण पत्र और कुंजियाँ गुम हैं IOError: अनुरोध डेटा पढ़ने त्रुटि पीआईएल का प्रयोग करके पिक्सेल की आरजीबी प्राप्त करें नाम डेटाबेस डिजाइन संकेतन आप पसंद करते हैं और क्यों? एएससीआईआई कला रूपांतरण की छवि सी # में स्ट्रीम के साथ बड़ी पाठ फ़ाइलें पढ़ना ObjectContext.Refresh ()? शेल में कार्यक्रम निष्पादन समय प्राप्त करें आईडी से कई तत्व प्राप्त करें सीएसएस में प्रत्येक एनथ एलिमेंट चुनें सी # का उपयोग करके मेरी स्ट्रिंग मैच करने के लिए मैं कॉम्बो बॉक्स में चुने गए आइटम को कैसे सेट करूं? मैं विंडो में एक चर में एक कमांड के परिणाम कैसे प्राप्त करूं? स्तंभ द्वारा NumPy में क्रमबद्ध सरणियाँ आईफ़ोन और ओपनसीवी Java में क्वेरी स्ट्रिंग मैनिपुलियन

ग्राहक इकाई के लिए विशेषताएं जोड़ना

मेरा मौजूदा लक्ष्य एक नया ग्राहक विशेषता ( int प्रकार के साथ) जोड़ना है, जिसे पूर्वनिर्धारित विकल्पों के साथ चयन के रूप में दिखना चाहिए (बैकएंड में संपादन योग्य संपादन वाले मॉडल से लोड किया जाता है, जो किया जाता है)। मैं $installer->addAttribute() विधि का उचित उपयोग के साथ संघर्ष कर रहा हूं, विशेष रूप से सही स्रोत विकल्प निर्दिष्ट करना अन्य समस्या यह है कि नई विशेषता को eav_entity_attribute तालिका में सहेजा नहीं गया है

मैं Magento CE 1.5.1.0 पर हूँ

वेब के समाधान से एकत्रित समाधान "ग्राहक इकाई के लिए विशेषताएं जोड़ना"

यह text रेंडरर के साथ एक बुनियादी int विशेषता के लिए कोड है:

 $installer = $this; $installer->startSetup(); $setup = new Mage_Eav_Model_Entity_Setup('core_setup'); $entityTypeId = $setup->getEntityTypeId('customer'); $attributeSetId = $setup->getDefaultAttributeSetId($entityTypeId); $attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId); $setup->addAttribute('customer', 'your_attribute_code_here', array( 'input' => 'text', 'type' => 'int', 'label' => 'Some textual description', 'visible' => 1, 'required' => 0, 'user_defined' => 1, )); $setup->addAttributeToGroup( $entityTypeId, $attributeSetId, $attributeGroupId, 'your_attribute_code_here', '999' //sort_order ); $oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'your_attribute_code_here'); $oAttribute->setData('used_in_forms', array('adminhtml_customer')); $oAttribute->save(); $setup->endSetup(); 

विशेषताओं को जोड़ने के लिए असामान्य कदम है setData('used_in_forms') यह ग्राहक विशेषताओं के लिए अद्वितीय लगता है इसके बिना, क्षेत्र प्रदान नहीं किया जाएगा, निश्चित रूप से व्यवस्थापक HTML में वैसे भी नहीं। आप customer_form_attribute डेटाबेस तालिका में इस सरणी के लिए मान्य विकल्प देख सकते हैं।

पूर्वनिर्धारित विकल्पों के साथ एक select का उपयोग करने के मामले में, यह आपको जरूरी है:

 $iAttributeId = $installer->getAttributeId($entityTypeId, 'your_attribute_code_here'); $aClasses = array('TV','DVD','Home Theatre','Air Conditioner','Stereo/Hifi','Game Console','Camcorder','VCR','Set Top Box','PVR'); $aOption = array(); $aOption['attribute_id'] = $iAttributeId; for($iCount=0;$iCount<sizeof($aClasses);$iCount++){ $aOption['value']['option'.$iCount][0] = $aClasses[$iCount]; } $setup->addAttributeOption($aOption); 

और यहां आपके ड्रॉप-डाउन के लिए कस्टम स्रोत का उपयोग करने के दौरान एक चलना है

उम्मीद है की यह मदद करेगा,
जद

@ योनातन डे का जवाब महान है और मुझे काफी मदद मिली है हालांकि – जब तक आप अपना setup क्लास को Mage_Customer_Model_Entity_Setup सेट कर Mage_Customer_Model_Entity_Setup , तब Magento आपके लिए उस सभी काम कर सकता है:

 <!-- config.xml Example --> <?xml version="1.0"?> <config> <global> <resources> <acme_module_setup> <setup> <module>Acme_Module</module> <class>Mage_Customer_Model_Entity_Setup</class> </setup> <connection> <use>core_setup</use> </connection> </acme_module_setup> </resources> </global> </config> 

और यहां mysql4-install-XXXphp फ़ाइल है:

 <?php $installer = $this; /* @var $installer Mage_Customer_Model_Entity_Setup */ $installer->startSetup(); $installer->addAttribute( 'customer', 'acme_imported', array( 'group' => 'Default', 'type' => 'int', 'label' => 'Imported into Acme', 'input' => 'select', 'source' => 'eav/entity_attribute_source_boolean', 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE, 'required' => 0, 'default' => 0, 'visible_on_front' => 1, 'used_for_price_rules' => 0, 'adminhtml_only' => 1, ) ); $installer->endSetup(); 

उपरोक्त adminhtml_only सभी आपके लिए उपयोग किए used_in_forms तर्क को संभाल लेंगे। साथ ही, परिभाषित group विशेषता समूह को निर्दिष्ट करने का ध्यान रखेगा।

बस आपने निम्नलिखित कस्टम स्क्रिप्ट के माध्यम से अपनी कस्टम मॉड्यूल mysql सेटअप फ़ाइल के तहत अपने ग्राहक विशेषता को जोड़ दिया है।

 $installer = $this; $installer->startSetup(); $installer->addAttribute("customer", "yourattributename", array( "type" => "int", "backend" => "", "label" => "Bad Customer", "input" => "select", "source" => "eav/entity_attribute_source_boolean", "visible" => true, "required" => false, "default" => "", "frontend" => "", "unique" => false, "note" => "" )); $attribute = Mage::getSingleton("eav/config")->getAttribute("customer", "yourattributename"); 

ग्राहक विशेषता का उपयोग करना चाहते हैं, जहां के लिए निम्नलिखित स्क्रिप्ट का इस्तेमाल किया गया है

 $used_in_forms=array(); $used_in_forms[]="adminhtml_customer"; $attribute->setData("used_in_forms", $used_in_forms) ->setData("is_used_for_customer_segment", true) ->setData("is_system", 0) ->setData("is_user_defined", 1) ->setData("is_visible", 0) ->setData("sort_order", 100) ; $attribute->save(); $installer->endSetup(); 

इस ब्लॉग पोस्ट में फ़ील्ड मापदंडों और अर्थों के विस्तृत वर्णन के साथ Magento EAV मॉडल का एक बहुत ही विस्तृत विवरण है: http://www.solvingmagento.com/magento-eav-system/

एलेक्स और लीक द्वारा दिए गए समाधान मेरे लिए काम किया केवल मुझे हमारे AccountController.php में सेटर फ़ंक्शन जोड़ना होगा

 $customer->setProfession($this->getRequest()->getPost('profession')) ->save(); // Added for updating Profession 

जहां "व्यवसाय" मेरा कस्टम विशेषता था