2011-06-30 11 views
5

मैंने एक उत्पाद जोड़ा था जिसे दो विशेषताओं द्वारा गणना की जाती है और इसकी गणना की जाती है। समस्या यह है कि मुझे दादा और उप-योग गणना को फिर से लिखना पड़ा ... उदाहरण के लिए सामान को ओवरराइट करने के साथ।Magento कैसे totals.phtml गणना लाने/बदलने/ओवरराइट करने के लिए?

मैं यहाँ आशा @stackoverflow एक Magento गुरु कि मेरी समस्या हल था :-)

मैं/ऐप्स/डिजाइन/दृश्यपटल/डिफ़ॉल्ट/gutlauf/टेम्पलेट/चेकआउट/गाड़ी/आइटम/डिफ़ॉल्ट बदल गया था है .phtml जहां कार्ट आइटम का लेआउट किया जाता है।

लेकिन अब मैं के साथ/ऐप्स/डिजाइन/दृश्यपटल/डिफ़ॉल्ट/gutlauf/टेम्पलेट/चेकआउट/गाड़ी/totals.phtml

<table id="shopping-cart-totals-table"> 
    <col /> 
    <col width="1" /> 
    <tfoot> 
     <?php echo $this->renderTotals('footer'); ?> 
    </tfoot> 
    <tbody> 
     <?php echo $this->renderTotals(); ?> 
    </tbody> 
</table> 

कैसे मैं अपने गणना प्राप्त कर सकते हैं एक समस्या है? मैं पता लगा कि ब्लॉक

कर/checkout_grandtotal कर/checkout_subtotal कर/checkout_tax

/app/design/frontend/default/gutlauf/template/tax/checkout/grandtotal.phtml उदाहरण के लिए

<?php echo $this->helper('checkout')->formatPrice($this->getTotal()->getValue()) ?> 

स्रोत कोड फ़ाइल के अनुसार वहाँ "Mage_Tax_Block_Checkout_Grandtotal"

मैं/ऐप्स/कोड/कोर/दाना/कर/ब्लॉक/चे को देखा की एक मनोभाव है ckout/Grandtotal.php ने कुछ लाइनों पर टिप्पणी की ... लेकिन कुछ भी नहीं बदला ...

मुझे उम्मीद है कि कोई मुझे बता सकता है कि खरीदारी-कार्ट गणना "छिपी हुई" है, मुझे एक foreach की आवश्यकता है जहां कुल निर्माण किया गया है।

मैं भी पर/ऐप्स/कोड देखा/कोर/दाना/चेकआउट/ब्लॉक/गाड़ी/Totals.php

मैं renderTotal ... कोई कहीं से foreach पाश होने का समाधान नहीं मिला आइटम, जहां मैं की तरह

  $productIds = array(); 
      $productIds[] = $_item['product_id']; 

      $products = Mage::getModel('catalog/product')->getCollection() 
      ->addAttributeToSelect('gl_special') 
      ->addMinimalPrice() 
      ->addStoreFilter() 
      ->addIdFilter($productIds); 

      $product = $products->getItemById($_item['product_id']); 
      #print_r($product); 
      $bBerechnet = $product->getData('gl_special'); 


$childProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null, $product); 

कुछ का उपयोग करना चाहते हैं सरल उत्पाद है जो मैं

public function renderTotal($total, $area = null, $colspan = 1) 
{ 
    $code = $total->getCode(); 

    if ($total->getAs()) { 
     $code = $total->getAs(); 
    } 
    return $this->_getTotalRenderer($code) 
     ->setTotal($total) 
     ->setColspan($colspan) 
     ->setRenderingArea(is_null($area) ? -1 : $area) 
     ->toHtml(); 
} 
+0

क्या आपको इसके लिए कोई समाधान मिला? – anasaitali

+0

आप यह कैसे कर रहे हैं यह काम नहीं करेगा। ब्लॉक स्तर पर मूल्य गणना में हेरफेर करना मॉडल/डेटा परत के अनुरूप नहीं होगा।प्रचार के तहत व्यवस्थापक पर जाएं -> शॉपिंग कार्ट मूल्य नियम और देखें कि क्या आपको वहां जो चाहिए वह प्राप्त नहीं कर सकता है। –

उत्तर

2

के साथ लोड फ़ाइल को फिर से लिखने की आवश्यकता नहीं है पाने के लिए। उदाहरण के लिए, यदि आप अपने उप-योग तो कस्टम मॉड्यूल बनाना की गणना बदलने की जरूरत है और मॉड्यूल के config.xml फ़ाइल के वैश्विक टैग के अंदर कोड के नीचे डाल दिया

 <sales> 
     <quote> 
      <totals> 
       <subtotal><class>modulename/sales_quote_address_total_subtotal</class></subtotal> 
      </totals> 
     </quote> 
    </sales> 

तो नीचे

class Namespace_Modulename_Model_Quote_Address_Total_Subtotal extends Mage_Sales_Model_Quote_Address_Total_Subtotal { } 

कॉपी की तरह अपने मॉडल वर्ग नज़र पेरेंट क्लास से _initItem() फ़ंक्शन और उपरोक्त बनाए गए मॉडल पर पेस्ट करें और आपको आवश्यकतानुसार गणना बदलें।

आशा है कि यह आपके लिए उपयोगी होगा !!

संबंधित मुद्दे