バージョン選択

フォーラム

メニュー

オンライン状況

89 人のユーザが現在オンラインです。 (74 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 89
もっと...

サイト内検索

質問 > 管理機能 > 【2.11.1】納品書にお届け先ごとの商品情報追加

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
brother
投稿日時: 2011/8/18 0:32
対応状況: −−−
半人前
登録日: 2011/8/16
居住地:
投稿: 16
【2.11.1】納品書にお届け先ごとの商品情報追加
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=8431&forum=11&post_id=42017#forumpost42017
上記スレッドにてアドバイスいただき、納品書へお届け先住所、名前、お届け日を表示できるようになりました。

そこでさらに、お届け先ごとに商品名、数量、単価を表示できないか試行錯誤しているのですが表示できません。
(注文確認メールに表示されるお届け先毎の商品情報のイメージです。)

class/SC_Fpdf.php(2.11.1)
-----------------------------------------------------------
// 届先情報 <ここから>
$objShip = new SC_Helper_Purchase_Ex();
$this->arrShip = $objShip->getShippings($this->arrDisp['order_id']);
$y = 204; // お届け先開始y軸位置
for($i =0; $i < count($this->arrShip); $i++){
$y += $i * 4 * 3; // 届け先 * 高さ * 要素数
$text = "[お届け先". (string)($i+1) . "]";
$this->lfText(23, $y, $text, 10);
$y += 4;
$text = "〒"
. $this->arrShip[$i]['shipping_zip01']
. "-"
. $this->arrShip[$i]['shipping_zip02']
. " "
. $this->arrPref[$this->arrShip[$i]['shipping_pref']]
. $this->arrShip[$i]['shipping_addr01']
. $this->arrShip[$i]['shipping_addr02'];
$this->lfText(25, $y, $text, 10);
$y += 4;
$text = $this->arrShip[$i]['shipping_name01'] . " " . $this->arrShip[$i]['shipping_name02'] . " 様";
$this->lfText(25, $y, $text, 10);
$y += 4;
$text = "お届け日 ". $this->arrShip[$i]["shipping_ymd"] = substr($this->arrShip[$i]["shipping_date"],0,4) . "年" . substr($this->arrShip[$i]["shipping_date"],5,2) . "月" . substr($this->arrShip[$i]["shipping_date"],8,2) . "日" . " " . $this->arrShip[$i]['shipping_time'];
$this->lfText(25, $y, $text, 10);
$y += 4;
$text = "商品名 ". $this->arrShip[$i]['product_name'];
$this->lfText(25, $y, $text, 10);

}
// <ここまで>
-----------------------------------------------------------

とりあえず、商品名だけでも表示できないかと上の赤文字部分を追記しましたが表示できませんでした。
お届け先毎の商品情報は複数存在する場合もあるため、for文を入れないといけないでしょうか。

EC-CUBE 2.11.1
PHP 5.3
DB PostgreSQL 8.1.23
OS CentOS
WEBサーバ Apache 2.2.3
ゲスト
投稿日時: 2011/8/18 12:33
対応状況: −−−
Re: 【2.11.1】納品書にお届け先ごとの商品情報追加
$text = "商品名 : " . $this->arrShip[$i]['shipment_item'][0]['product_name'];

で、取り出せる様です。

なお、コードを修正しましたので、下記も参考に、、、どうぞ。。。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=8431&forum=11&post_id=42125#forumpost42125
brother
投稿日時: 2011/8/18 15:51
対応状況: −−−
半人前
登録日: 2011/8/16
居住地:
投稿: 16
Re: 【2.11.1】納品書にお届け先ごとの商品情報追加
Ringo 様

たいへん感謝します。
ありがとうございます。
コードの修正もありがとうございます。

上記ソースで配送先に商品名も表示されるようになりました。

ただこのままでは、1つの配送先に複数種類の商品が注文されていた場合でも1つの商品名しか表示できないようです。

おそらく原因は [0] となっているからだと思うのですが、この値のループのさせ方が分からずにおります。

もし、おわかりになられるようでしたらご教授いただけると幸いです。


EC-CUBE 2.11.1
PHP 5.3
DB PostgreSQL 8.1.23
OS CentOS
WEBサーバ Apache 2.2.3
ゲスト
投稿日時: 2011/8/18 18:30
対応状況: −−−
Re: 【2.11.1】納品書にお届け先ごとの商品情報追加
       // 届先情報 <ここから>
       $objShip = new SC_Helper_Purchase_Ex();
       $this->arrShip = $objShip->getShippings($this->arrDisp['order_id']);
       
       $y = 144; // お届け先開始y軸位置
       
       $count = count($this->arrShip);
       $i = 0; // 配列のindex
       $j = 0; // 届け先取り出し数
       $k = 0; // 要素数
       do {
           if ($j == $count) {
               break;
           }
           if ($this->arrShip[$i]['shipping_id'] != "") {
               $y += $j * 2 * $k; // 届け先 * 高さ * 要素数
               $k = 0;
               $text = "[お届け先". (string)($j + 1) . "]";
               $this->lfText(23, $y, $text, 10);
               $y += 4;
               $k += 1;
               $text = "〒"
                   . $this->arrShip[$i]['shipping_zip01']
                   . "-"
                   . $this->arrShip[$i]['shipping_zip02']
                   . " "
                   . $this->arrPref[$this->arrShip[$i]['shipping_pref']] 
                   . $this->arrShip[$i]['shipping_addr01']
                   . $this->arrShip[$i]['shipping_addr02'];
               $this->lfText(25, $y, $text, 10);
               $y += 4;
               $k += 1;
               $text = $this->arrShip[$i]['shipping_name01'] . " " . $this->arrShip[$i]['shipping_name02'] . " 様";
               $this->lfText(25, $y, $text, 10);
               for ($l = 0; $l < count($this->arrShip[$i]['shipment_item']); $l++) {
                   $y += 4;
                   $k += 1;
                   $text = "商品名 : " . $this->arrShip[$i]['shipment_item'][$l]['product_name'];
                   $this->lfText(25, $y, $text, 10);
               }
               $j += 1;
           }
           $i += 1;
       } while (true);
       // <ここまで>



・高さを「4」から「2」へ変更しました。
・Cell上端y軸位置を$yとの関係式にすべきですが、
 $this->lfText()と$this->pdf->Cell()座標値の関係がわからず、
 断念しました。
brother
投稿日時: 2011/8/19 12:05
対応状況: −−−
半人前
登録日: 2011/8/16
居住地:
投稿: 16
Re: 【2.11.1】納品書にお届け先ごとの商品情報追加
Ringo 様

確認が遅くなってしまい申し訳ございません。
重ね重ねありがとうございます。
おかげ様で理想的な表示ができるようになりました。

引用:

・Cell上端y軸位置を$yとの関係式にすべきですが、
 $this->lfText()と$this->pdf->Cell()座標値の関係がわからず、
 断念しました。


おそらく上記のことが関係していると思いますが、お届け先件数が増えていくと、1ページ目に入りきれない分は2ページ目が生成されずに途切れたままとなってしまうのをなんとか対応したく、いろいろと調べている最中です。
行き詰ったらまたこのスレに相談させていただきたいと思います。
ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,886名です
総投稿数は110,000件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1295
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.