Magento: добавить группу клиентов в упаковочный лист pdf

#magento

#magento

Вопрос:

Я пытаюсь добавить группу клиентов в упаковочные листы pdf. Я предполагаю, что это должно быть сделано в Sales/Model/Order/Pdf/Abstract.php но что мне куда поместить?

Спасибо

Комментарии:

1. Генерация PDF в Magento отвратительна. Желаю удачи 🙂

2. Я сделал именно это несколько недель назад. Позвольте мне найти свой код, и я опубликую его.

Ответ №1:

Хорошо, вот что я сделал. Я ввел следующий код, который я написал:

 /* Add Customer Type to Invoice */
$write = Mage::getSingleton('core/resource')->getConnection('core_write');
$readresult=$write->query("select customer_id from `sales_order` where increment_id = ".$order->getIncrementId()." limit 0,1;");
$row = $readresult->fetch();
$customerId = $row['customer_id'];
$myRoleId = 1;

if (!empty($customerId)) {
    $write = Mage::getSingleton('core/resource')->getConnection('core_write');
    $readresult=$write->query("select group_id from `customer_entity` where entity_id = ".$customerId." limit 0,1;");
    $row = $readresult->fetch();
    $myRoleId = $row['group_id'];
}

switch ($myRoleId){
case 2: $groupTitle = 'Wholesaler Invoice';
  break;
case 3: $groupTitle = 'Retailer Invoice';
  break;
case 4: $groupTitle = 'Dealer Invoice';
  break;
default: $groupTitle = 'Customer Invoice';
  break;
}

$page->drawText($groupTitle, 480, 780, 'UTF-8');    
/* End add Customer Type */     
  

Сразу после этого блока кода, который уже существовал:

 /* Add head */
$this->insertOrder($page, $order, Mage::getStoreConfigFlag(self::XML_PATH_SALES_PDF_INVOICE_PUT_ORDER_ID, $order->getStoreId()));

$page->setFillColor(new Zend_Pdf_Color_GrayScale(1));
$this->_setFontRegular($page);
$page->drawText(Mage::helper('sales')->__('Invoice # ') . $invoice->getIncrementId(), 35, 780, 'UTF-8');
  

В appcodelocalMageSalesModelOrderPdfInvoice.php файл

Комментарии:

1. спасибо, lazyDBA! Меня не было в офисе, но я только что попробовал это, и это сработало отлично. Мне просто пришлось изменить свою таблицу на sales_flat_order

2. Спасибо за ответную публикацию о sales_flat_order. мы только что обновились до версии 1.5, и мне пришлось внести те же изменения.

Ответ №2:

Если у вас есть $order в наличии, например, в Abstract.php для получения идентификатора и имени группы клиентов можно использовать следующий код.

 $customerGroupId = $order->getCustomerGroupId();
$groupname = Mage::getModel('customer/group')->load($customerGroupId)->getCustomerGroupCode();