EC-CUBE4の納品書に注文者情報を出力する。

  • URLをコピーしました!

EC-CUBE4で出力される納品書の左上には、お届け先の住所や氏名が表示されます。

しかし、お中元など注文者とお届け先が異なる場合、購入した方に送る納品書にお届け先の住所が出力されてしまいます。

OrderPdfService.php内のコメントには購入者と書かれていますが、実際のコードはお届け先を出力するようになっていル様です。

EC-CUBEの納品書に関するファイルは、
ec-cube/src/Eccube/Service/OrderPdfService.php
にあります。

購入者情報に関する記述があるのは、OrderPdfService.phpの420行目あたり。

OrderPdfService.php内で、

$Shipping->getName01()

となっているところを

$Shipping->getOrder()->getName01()

と、getOrder()を追加することで、注文者の情報を出力できるようです。

変更前

// =========================================
// 購入者情報部
// =========================================

$Order = $Shipping->getOrder();

// 購入者都道府県+住所1
// $text = $Order->getPref().$Order->getAddr01();
  
$text = $Shipping->getPref().$Shipping->getAddr01(); 
$this->lfText(27, 47, $text, 10);
$this->lfText(27, 51, $Shipping->getOrder()->getAddr02(), 10); //購入者住所2

 // 購入者氏名
$text = $Shipping->getName01().' '.$Shipping->getName02().' 様';
$this->lfText(27, 59, $text, 11);

変更

// =========================================
// 購入者情報部
// =========================================

$Order = $Shipping->getOrder();

// 購入者都道府県+住所1
// $text = $Order->getPref().$Order->getAddr01();
  
$text = $Shipping->getOrder()->getPref().$Shipping->getOrder()->getAddr01(); //変更部分
$this->lfText(27, 47, $text, 10);
$this->lfText(27, 51, $Shipping->getOrder()->getAddr02(), 10); //購入者住所2 //変更部分

 // 購入者氏名
$text = $Shipping->getOrder()->getName01().' '.$Shipping->getOrder()->getName02().' 様'; //変更部分
$this->lfText(27, 59, $text, 11);

説明するために、getOrder()->を複数箇所に追加してますが、すでに注文者情報を出力するための変数

$Order = $Shipping->getOrder();

があるので、これに全部書き換えるのもアリですよね。

目次

参考サイト

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

神奈川生まれ沖縄育ちの88年生まれ。WEB制作3年目。
31歳まで舞台俳優を目指して活動していましたが、将来が不安になり未経験からWEB制作業界へ。
現在はWEB制作会社で働いています。たまに演劇経験を活かしてイベントスタッフも。

目次