2011-06-30 26 views
5

tôi đã thêm một sản phẩm được tính bằng hai thuộc tính và sử dụng giá được tính toán riêng. vấn đề là tôi phải viết lại phép tính tổng quát và tổng phụ ... ví dụ như ghi đè lên nội dung.Magento howto fetch/change/ghi đè lên tính toán totals.phtml?

tôi hy vọng đây @stackoverflow là một guru Magento đã giải quyết vấn đề của tôi :-)

tôi đã thay đổi/app/thiết kế/frontend/default/gutlauf/template/thanh toán/giỏ/item/mặc định .phtml nơi bố cục các mục trong giỏ hàng được thực hiện.

nhưng bây giờ tôi có một vấn đề với/app/thiết kế/frontend/default/gutlauf/template/thanh toán/giỏ/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> 

làm thế nào tôi có thể nhận được tính toán của riêng tôi? tôi đã tìm ra rằng các khối

thuế/checkout_grandtotal thuế/checkout_subtotal thuế/checkout_tax

ví dụ /app/design/frontend/default/gutlauf/template/tax/checkout/grandtotal.phtml

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

theo các tập tin mã nguồn có một mentation của "Mage_Tax_Block_Checkout_Grandtotal"

tôi nhìn/app/code/core/Mage/thuế/Khối/Che ckout/Grandtotal.php đã nhận xét một số dòng ... nhưng không có gì thay đổi ...

tôi hy vọng ai đó có thể giải thích cho tôi rằng tính toán giỏ hàng là "ẩn", tôi cần một foreach nơi tổng số được xây dựng.

tôi cũng nhìn/app/code/core/Mage/Thanh toán/Khối/giỏ/Totals.php

tôi tìm thấy renderTotal ... không có đâu là giải pháp nhận được vòng lặp foreach của mặt hàng, nơi tôi muốn sử dụng cái gì đó như

  $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); 

để có được những sản phẩm đơn giản mà tôi tải với

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

Bạn có tìm thấy giải pháp cho việc này không? – anasaitali

+0

Cách bạn đang thực hiện nó sẽ không hoạt động. Thao tác tính toán giá ở cấp khối sẽ không nhất quán với lớp mô hình/dữ liệu.Chuyển đến quản trị viên, trong Chương trình khuyến mãi -> Quy tắc giá giỏ hàng và xem bạn có thể đạt được những gì bạn cần không. –

Trả lời

2

Không cần phải viết lại các tập tin. Ví dụ, bạn cần thay đổi tính tổng số phụ của bạn sau đó tạo ra mô-đun tùy chỉnh và đặt dưới mã bên trong thẻ toàn cầu của tập tin config.xml mô-đun của

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

để bạn mô hình lớp nhìn như dưới đây

class Namespace_Modulename_Model_Quote_Address_Total_Subtotal extends Mage_Sales_Model_Quote_Address_Total_Subtotal { } 

Sao chép Hàm _initItem() từ lớp cha và dán vào mô hình được tạo ở trên và thay đổi tính toán theo nhu cầu của bạn.

Hy vọng nó hữu ích cho bạn !!

Các vấn đề liên quan