2011-02-14 30 views
1

如何將附加信息添加到Magento Packingslip PDF中。我正在使用集成標籤紙,因此我想在頁腳上添加重複客戶交付地址,以及一些詳細信息,例如訂單中項目的總數量和訂單中項目的成本。我目前正在修改本地文件:Mage/Sales/Model/Order/Pdf /,但我只能設法更改爲字體。向Magento packingslip或Invoice添加更多信息PDF

編輯:

好吧,我已經取得了良好進展,並添加大部分我所需要的信息,但是,我現在已經偶然發現了一個問題..我想獲得在每個所有項目的總重量訂單和數量。

我使用的shipment.php驗證碼:

下的foreach(這是很有用的情況下的訂單有分割傳送 - 因爲你可以有一個訂單多「出貨量」所以這就是爲什麼我的代碼後,在這裏:

foreach ($shipment->getAllItems() as $item){ 
    if ($item->getOrderItem()->getParentItem()) { 
     continue; 
... 

然後我有這樣的進一步下跌:。

$shippingweight=0; 
$shippingweight= $item->getWeight()*$item->getQty(); 
$page->drawText($shippingweight . Mage::helper('sales'), $x, $y, 'UTF-8'); 

這是偉大的行總量,而不是針對整個裝運我需要做的就是有這個爲裝運中的每件物品「加起來」代碼以創建整個裝運的總重量。我只有貨件總數 - 而不是訂單,因爲我將分批裝運是非常重要的。

+0

能否請您在底部添加送貨地址共享代碼包裹老化滑倒?謝謝 – 2014-11-13 13:05:36

回答

1

幾乎在getPdf(...)Mage_Sales_Model_Order_Pdf_Shipment最後你會發現,插入新的頁面(線93-94的1.5.0.1)

if($this->y<15) 
    $page = $this->newPage(....) 

在for循環發生的代碼。

您可以在此更改邏輯,使其更改頁面以騰出額外信息的空間,然後在頁面移動之前添加它。如果您希望它也出現在最後一頁上,您還應該在代碼塊後放置代碼。

注意:您不應該直接更改app/code/code/Mage中的文件。相反,您應該使用相同的文件夾結構將更改後的文件置於app/code/local/Mage之下。這樣,您的更改不會在升級中意外覆蓋。

這應該讓你在你的訂單項目總數(有可能是一個更快的方式,但不知道把我的頭頂部):

$quote = Mage::getModel('sales/quote')->load($order->getQuoteId()); 
$itemsCount = $quote->getItemsSummaryQty(); 
+0

謝謝,我已將該文件複製到我的本地文件夾。我明白了我想要的約90% - 但我不知道,我怎麼能得到訂單中物品的總量? – 2011-02-18 21:22:15

1

對於發票PDF

在應用程序/代碼/本地/法師/銷售/型號/訂購/ PDF /項目/發票/如default.php $ lineBlock之前添加此

$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $this->getSku($item), array('weight')); 

    $lines[][] = array(
     'text' => 'Weight: '. $product->getData('weight')*1 .'Kg/ea. Total: ' .$product->getData('weight')*$item->getQty() . 'Kg', 
     'feed' => 400 
    );