Добавление дополнительной информации в Magento packingslip или Invoice PDF - PullRequest
1 голос
/ 14 февраля 2011

Как добавить дополнительную информацию в PDF-файл Magento Packingslip.Я использую интегрированную бумагу для этикеток, поэтому я хотел бы добавить повторный адрес доставки клиентов в нижнем колонтитуле, а также некоторые детали, например общее количество товаров в заказе и стоимость товаров в заказе.В настоящее время я изменяю локальные файлы в: Mage / Sales / Model / Order / Pdf /, но мне удалось изменить только шрифт.

EDIT:

Хорошо, я добился хорошего прогресса идобавил большую часть необходимой мне информации, однако теперь я наткнулся на проблему .. Я хотел бы получить общий вес всех предметов в каждом заказе и количестве.

Я использую этот код в отгрузке.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');

Это здорово для итогов за ряд. Но не для всего груза. Что мне нужно сделать, это добавить этот бит кода "добавлен«Для каждого элемента в отгрузке создать общий вес всей отгрузки. Очень важно, чтобы у меня была только общая отгрузка, а не заказ, так как я буду разделять отгрузки.

Ответы [ 2 ]

1 голос
/ 06 апреля 2016

Для счета 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
      );
1 голос
/ 15 февраля 2011

Почти в конце getPdf(...) в Mage_Sales_Model_Order_Pdf_Shipment вы найдете код, который вставляет новые страницы (строки 93-94 в 1.5.0.1)

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

происходит в цикле for.

Здесь вы можете изменить логику, чтобы она сменила страницу раньше, чтобы освободить место для вашей дополнительной информации, а затем добавить ее до сдвига страницы. Вам также следует поместить код после блока for, если вы хотите, чтобы он также отображался на последней странице.

Примечание. Не следует изменять файлы в app/code/code/Mage напрямую. Вместо этого вы должны поместить ваши измененные файлы в app/code/local/Mage, используя ту же структуру папок. Таким образом, ваши изменения не будут случайно перезаписаны при обновлении.

Это должно дать вам общее количество предметов в вашем заказе (возможно, есть более быстрый способ, но я не знаю, как это происходит с моей головы):

$quote = Mage::getModel('sales/quote')->load($order->getQuoteId());
$itemsCount = $quote->getItemsSummaryQty();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...