2011-03-28 15 views
9

की आवश्यकता है, जब मैं एक नया ग्राहक पंजीकृत करता हूं, तो मैं फ़ील्ड "कंपनी" बनाना चाहता हूं।Magento - एक नया ग्राहक पंजीकृत करते समय, "कंपनी" फ़ील्ड को

मुझे कौन सी फाइल संपादित करनी चाहिए?

बहुत बहुत धन्यवाद।

+0

बनाने के लिए जब आप पंजीकृत कर रहे हैं/ग्राहकों मैन्युअल बनाने या ग्राहकों के लिए खुद को पंजीकृत करने edit.phtml के लिए क्या किया है? कौनसा? –

+0

ग्राहकों को खुद पंजीकृत करने पर, धन्यवाद – Bizboss

+0

मुझे "कंपनी" को वैकल्पिक क्षेत्र के रूप में भी नहीं देखा जाता है। वह कॉन्फ़िगरेशन कहां है? –

उत्तर

19

आपको इसे सर्वर की ओर से अपनी विशेषता में भी जोड़ना चाहिए।

आप Magento Entreprise संस्करण उपयोग कर रहे हैं, तो आप बस कंपनी वापस अंत के माध्यम से गुण संपादित कर सकते हैं, और सेट यह "आवश्यक" के लिए

आप एक समुदाय संस्करण साथ काम कर रहे हैं, तो आप मैन्युअल रूप से एसक्यूएल साथ यह राशि बदल करना होगा। यह eav_attribute तालिका में है, attribute_codecompany है और आपको केवल is_required1 पर सेट करने की आवश्यकता है।

+1

मैं "टेलीफोन" बनाने की कोशिश नहीं कर रहा हूं। मैंने eav_attribute में is_required 0 को बदल दिया है। अग्रभाग अभी भी "आवश्यक" तारांकन दिखाता है। इसलिए मैं नीचे ओगज़ के उत्तर के अनुसार अग्रभाग संपादित करता हूं। अब फॉर्म POSTs है, लेकिन POST का नतीजा है "कृपया टेलीफोन नंबर दर्ज करें"। मुझे और कदम उठाने चाहिए? –

+0

मेरे पास हाथ में एक Magento इंस्टॉल नहीं है, इसलिए मैं वास्तव में मदद नहीं कर सकता, लेकिन टेम्पलेट बदलने के लिए मेरी सलाह _not_ होगी। आप केवल डीबी के माध्यम से इसे बदलने में सक्षम होना चाहिए। क्या आप वाकई सही ईएवी विशेषता का पीछा कर चुके हैं? हो सकता है कि आपने इसे किसी अन्य इकाई के लिए बदल दिया है ... – haltabush

+0

मुझे वास्तव में फॉर्म नियंत्रक को ओवरराइड करना पड़ा - टेलीफोन की उपस्थिति के लिए वहां एक और परीक्षण है। –

5

ग्राहक पता पुस्तिका धारा के लिए (पंजीकृत ग्राहकों के लिए):

/app/design/frontend/base/default/template/customer/address/edit.phtml

के लिए चेकआउट बिलिंग अनुभाग:

/ऐप्स/डिजाइन/दृश्यपटल/आधार/डिफ़ॉल्ट/टेम्पलेट/चेकआउट/onepage/द्वि lling.phtml

चेकआउट शिपिंग अनुभाग के लिए:

/app/design/frontend/base/default/template/checkout/onepage/shipping.phtml

के लिए पंजीकरण अनुभाग:

/ऐप/डिज़ाइन/दृश्यपटल/आधार/डिफ़ॉल्ट/टेम्पलेट/ग्राहक/प्रपत्र/register.phtml

/app/design/frontend/base/default/template/customer/form/address.phtml

ढूँढें लाइन ऐसा दिखाई देता है आवश्यक फ़ील्ड के लिए:

class="input-text validate-email required-entry" 
+1

क्या आप जानते हैं कि आपने केवल फ्रंटेंड के लिए जरूरी फ़ील्ड सेट की है (हार्डकोडेड!) बैकएंड के लिए नहीं? – Besnik

+0

बेस्निक, यह मेरी समस्या नहीं है। मैंने अभी संदर्भित किया है कि यह कहां है। यदि आपके पास एक गंभीर डेवलपर है तो आपको पता होना चाहिए कि यह फ़ंक्शन को ओवरराइड कैसे करता है। यदि नहीं, तो आपको एक साधारण समाधान की आवश्यकता है। जैसा कि आप अनुमान लगा सकते हैं, कोई भी आपको पसंद नहीं करता, खासकर छोटे साइट मालिक! इसके अलावा, मैंने कई बार उपयोग किया और कोई समस्या नहीं देखी है। बेशक, अगर आपको उन क्षेत्रों की जरूरत नहीं है! –

+3

हालांकि इसका एक समान प्रभाव है, यह निश्चित रूप से ऐसा करने का तरीका नहीं है। –

10

ही जवाब haltabush (जो सही एक है) यहाँ आलसी डेवलपर्स के लिए एसक्यूएल है:

UPDATE eav_attribute SET is_required = 1 WHERE attribute_code = 'company'; 
+0

मुझे लगता है कि यह भी हार्डकोडेड तरीका है, है ना? –

+0

संख्या। जब आप बैकएंड में विशेषता संपादित करते हैं तो यह एंटरप्राइज़ संस्करण ही करता है। लेकिन आप क्या कर रहे हैं इसे फ्रंटेंड के लिए ठीक करना है, लेकिन बैकएंड के लिए नहीं ... वैसे भी, हैकिंग Magento एक अच्छा विचार नहीं है। वास्तव में। – Besnik

+0

यह अव्यवस्था क्यों थी? यह सही उत्तरों में से एक है। यदि सबसे पूरा नहीं हुआ है। –

2

यह कैसे इंस्टॉलर का उपयोग यह करने के लिए है। Magento में ऐसा करने का सही तरीका है। यह एंटरप्राइज़ संस्करण और कॉम्यूनिटी संस्करण के लिए काम करता है।लेकिन आप मॉड्यूल एसक्यूएल फ़ोल्डर

<?php 
    $installer = new Mage_Customer_Model_Entity_Setup('core_setup');; 

    $installer->startSetup(); 


    $installer->run("UPDATE eav_attribute SET is_required = 1 WHERE attribute_code = 'company';"); 


    $installer->endSetup(); 

के तहत एक फ़ाइल यह कैसे मेरे मॉड्यूल xml फ़ाइल की तरह लग रहा है को समझने के लिए कॉन्फ़िगर किया गया होगा।

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
     <Package_Customer> 
      <version>1.1.0.4</version> 
     </Package_Customer> 
    </modules> 
    <global> 
     .... 
     <resources> 
     <package_customer_setup> 
      <setup> 
       <module>Package_Customer</module> 
      </setup> 
     </package_customer_setup> 
     </resources> 
     .... 
    </global> 

यह वही है मैं इसे गतिशील

<li class="wide"> 
     <?php 
      $validation_class = $this->helper('customer/address')->getAttributeValidationClass('company') ; 
      $required = strstr($validation_class, 'required-entry'); 
     ?> 
     <label for="company" class=<?php echo $required?"required":""?>><?php echo $this->__('Company') ?> <?php echo $required?"<em>*</em>":""?> </label> 
     <div class="input-box"> 
      <input type="text" name="company" id="company" title="<?php echo $this->__('Company') ?>" value="<?php echo $this->escapeHtml($this->getAddress()->getCompany()) ?>" class="input-text <?php echo $validation_class ?>" /> 
     </div> 
    </li> 
संबंधित मुद्दे