क्रेडिट मेमो - 0 उत्पादों पर डिफ़ॉल्ट लौटा


13

क्रेडिट मेमो के लिए मेरा विशिष्ट उपयोग मामला मूल्य समायोजन (समायोजन शिपिंग, शिष्टाचार छूट, आदि) है। यह दुर्लभ है कि मैं इसे कुल रिटर्न के लिए उपयोग कर रहा हूं।

यह मेरे लिए अजीब है कि मैगेंटो का डिफ़ॉल्ट व्यवहार यह है कि एक क्रेडिटमेमो सभी उत्पादों को वापस कर रहा है और सभी शिपिंग को वापस कर रहा है। यहां तक ​​कि जब रिटर्न होता है, तो यह दुर्लभ है कि शिपिंग भी वापस कर दी जाती है।

यह बेहतर होगा (और सुरक्षित) अगर CreditMemo $ 0 (कोई भी उत्पाद वापस नहीं किया जाता है, और कोई शिपिंग वापस नहीं किया जाता है) से चूक जाता है, तो इस बारे में स्पष्ट है कि क्या वापसी की जा रही है (डिफ़ॉल्ट रूप से कुछ भी नहीं)। अन्यथा, यह बहुत आसान है, उदाहरण के लिए, शिपिंग वापस करने के लिए एक क्रेडिट मेमो बनाएं, लेकिन पूरे ऑर्डर को वापस कर दें!

क्या कोई कॉन्फ़िगरेशन, या अनुकूलन है, जो एक क्रेडिटमेमो को $ 0 में डिफ़ॉल्ट करने का समर्थन करेगा?


कोई उत्तर नहीं: कॉन्फ़िगरेशन समाधान। क्या इसे विस्तार के माध्यम से पूरा किया जा सकता है? यही है, क्रेडिट मेमो पर प्रारंभिक सेटिंग्स सेट करें?
मार्क

जवाबों:


2

यकीन नहीं है कि अगर आप मैग्नेटो की बुनियादी कार्यक्षमता को बढ़ाए बिना क्या हासिल कर सकते हैं। मुझे भी कुछ ऐसा ही करना था और यही मैंने किया: पहले मैंने स्वचालित क्रेडिटमेमो के लिए sales_order_creditmemo_totals को फिर से लिखा था (हो सकता है कि आपको इसकी आवश्यकता न हो, इसलिए आप दूसरे भाग में जा सकते हैं):

मेरे मॉड्यूल में config.xml:

    <blocks>
        <adminhtml>
            <rewrite>
                ...
                <sales_order_creditmemo_totals>Bla_Customercredit_Block_Adminhtml_Sales_Creditmemo</sales_order_creditmemo_totals>
            </rewrite>
        </adminhtml>

        <sales>
            <rewrite>
                ...
                <order_creditmemo_totals>Bla_Customercredit_Block_Sales_Creditmemo</order_creditmemo_totals>
            </rewrite>
        </sales>
    </blocks>

फिर Block / Adminhtml / Sales / Creditmemo.php में

class Bla_Customercredit_Block_Adminhtml_Sales_Creditmemo extends Mage_Sales_Block_Order_Creditmemo_Totals 
{
    protected $_code = 'credit';

    protected function _initTotals() 
    {
        $helper = $this->getCreditsHelper();
        parent::_initTotals();
        $baseAmount = $this->getOrder()->getBaseCustomerCredit();

        $this->addTotal(
            new Varien_Object(
                array(
                    'code' => $this->_code,
                    'value' => -$creditAmount,
                    'base_value' => -$baseAmount,
                    'label' => $helper->__('Bla Credit'),
                )
            ), 
            'discount'
        );

        return $this;
    }
}

जैसा कि आप देख सकते हैं कि मैंने कस्टमर क्रेडिट के ऑर्डर के लिए क्रेडिटमेमो बनाने के लिए ऐसा किया है, इसलिए मैंने sales_order_totals और sales_order_invoice_totals को भी फिर से लिखा है लेकिन मुझे लगता है कि आपको ऐसा करने की आवश्यकता नहीं है।

दूसरा: मैंने मैन्युअल क्रेडिटमेमो क्रेटियन के दौरान कुछ कार्यक्षमता जोड़ने के लिए अपना खुद का टेम्पलेट भी जोड़ा, इसलिए व्यवस्थापक यह तय कर सकता है कि इसे कैसे उत्पन्न किया जाए। उसके लिए मैंने app / design / adminhtml / default / default / टेम्पलेट / MODULE_NAME / ऑर्डर / creditmemo / create / items.phtml के तहत एक आइटम बनाया। इस phtml में मैंने कुछ इनपुट फ़ील्ड्स जोड़कर efault मानों को बदल दिया। मैंने Company_CustomerCredit_Adminhtml_CustomerController के अंतर्गत व्यवस्थापक नियंत्रक में अपने मॉड्यूल में भी जोड़ा

require_once 'Mage/Adminhtml/controllers/CustomerController.php';
class Bla_Customercredit_Adminhtml_CustomerController extends Mage_Adminhtml_CustomerController
{
    /**
     * Overload to save customer credits, then call 
     * parent::saveAction() 
     */
    public function saveAction()
    {
        $data = $this->getRequest()->getPost();
        if($data && $data['bla_credits'])
        {
            if(!empty($data['bla_credits']['id']))
            {
                $model = Mage::getModel('credits/credits')->load($data['bla_credits']['id']);
            }
            else
            {
                unset($data['bla_credits']['id']);
                $model = Mage::getModel('credits/credits');
            }

            try
            {
                $model->setData($data['bla_credits']);
                $model->save();
            }
            catch(Exception $e)
            {
            }
        }

        parent::saveAction();
    }
}

धन्यवाद, मैं आपकी प्रतिक्रिया की सराहना करता हूं और देखूंगा कि क्या मैं आपकी आवश्यकताओं के लिए आपके समाधान को लागू कर सकता हूं।
मार्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.