バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 帳票へ出力する商品データを追加したい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nksm
投稿日時: 2012/11/9 1:20
対応状況: −−−
半人前
登録日: 2012/4/25
居住地:
投稿: 24
帳票へ出力する商品データを追加したい
EC-CUBE 2.11.5
DBサーバー MySQL 5.0.51
PHP 5.2.9-2

通常、帳票に出力される商品データは商品コード、商品名、規格、価格、数量程度かと思いますが、
管理画面の商品データで入力した他のデータ(例えば、通常価格やメーカー、サブコメント等)を出力する事は可能でしょうか?

商品が注文された際に、dtb_order_detailに出力したいデータも格納し、
それを帳票で呼び出すという作業になるかと考えたのですが、
dtb_order_detailに項目を追加する作業で、
既に参考になる記述やカスタマイズ方法が見つけられずに困っています。

どなたかアドバイス頂けますと助かります。
seasoft
投稿日時: 2012/11/9 3:25
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 帳票へ出力する商品データを追加したい
可能ですよ。

受注時点の商品情報で出力するためには、nksm 様の仰られる処理が必要ですね。この場合は、受注周りの処理や受注編集周りの処理をカスタマイズする必要があります。(結構面倒です。)

出力時点の商品情報で良ければ、FROM 句の結合や SELECT 句のサブクエリといった方法でも実現可能です。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

nksm
投稿日時: 2012/11/9 10:42
対応状況: −−−
半人前
登録日: 2012/4/25
居住地:
投稿: 24
Re: 帳票へ出力する商品データを追加したい
seasoft様

早々のアドバイス有難うございます。

受注時点での登録となると面倒な作業になりそうなのですね。
出力しようとするデータは不変的な情報ですので、
出力時点の商品情報でも全く問題は無さそうです。

ご教示頂いた様に出力時点での商品情報で実現しようかと思うのですが、
その場合、作業が必要になるのは
/data/class/SC_Fpdf.php
なのでしょうか?

SQLの知識も乏しく、見様見真似でカスタマイズを行っております為、
実現方法のヒントを頂けたら有難いです。

どうぞ宜しくお願い致します。
seasoft
投稿日時: 2012/11/9 12:43
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 帳票へ出力する商品データを追加したい
はい。SC_Fpdf.php で良かったと思います。

その中の、lfGetOrderDetail の $col や SC_Query_Ex::select の第2引数を調整する感じになると思います。

処理時間が長くなっても大丈夫でしたら、無理に1処理で行なわなわずに、もう一度 DB 処理を実行しても良いと思います。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

nksm
投稿日時: 2012/11/9 12:50
対応状況: −−−
半人前
登録日: 2012/4/25
居住地:
投稿: 24
Re: 帳票へ出力する商品データを追加したい
seasoft様からのアドバイスを基にFrom句の結合を試みています。

「/data/class/SC_Fpdf.php」 の

// 受注詳細データの取得
function lfGetOrderDetail($order_id) {
$objQuery = new SC_Query_Ex();
$col = "product_id, product_class_id, product_code, product_name, classcategory_name1, classcategory_name2, price, quantity, point_rate";
$where = "order_id = ?";
$objQuery->setOrder("order_detail_id");
$arrRet = $objQuery->select($col, "dtb_order_detail", $where, array($order_id));
return $arrRet;
}



// 受注詳細データの取得
function lfGetOrderDetail($order_id) {
$objQuery = new SC_Query_Ex();
$col = "product_id, product_class_id, product_code, product_name, classcategory_name1, classcategory_name2, price, quantity, point_rate";
$where = "order_id = ?";
$objQuery->setOrder("order_detail_id");
$arrRet = $objQuery->select($col, "dtb_order_detail INNER JOIN dtb_products_class ON dtb_order_detail.product_id = dtb_products_class.product_id", $where, array($order_id));
return $arrRet;
}

としてみたのですが、帳票の出力ボタンを押した際にエラーでログアウトしてしまいました。

dtb_order_detailと他のテーブルを結合するには何か他にも記述が必要なのでしょうか?
もしくは上記記述に何か誤りがありましたらご指摘頂けると助かります。

seasoft
投稿日時: 2012/11/9 12:54
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 帳票へ出力する商品データを追加したい
まずは、エラーを確認して(*1)、DB のマニュアルや解説書などで構文的に誤っていないかを確認すると良いかと思います。

(*1 参考)
http://seasoft.jp1.cx/ec/tips/error#システムエラーが発生しました_大変お手数ですが_サイト管理者までご連絡ください


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

nksm
投稿日時: 2012/11/9 14:06
対応状況: 解決済
半人前
登録日: 2012/4/25
居住地:
投稿: 24
Re: 帳票へ出力する商品データを追加したい
ありがとうございました。

ご提示頂きました方法で確認しましたところ、
「product_id」が重複していた為にエラーが発生しておりました。

$col = "product_id, product_class_id, product_code, product_name, classcategory_name1, classcategory_name2, price, quantity, point_rate,note";

の部分を

$col = "dtb_order_detail.product_id, product_class_id, product_code, product_name, classcategory_name1, classcategory_name2, price, quantity, point_rate,note";

とする事でエラーは発生せず、また希望していた商品データも出力出来る様になりました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,856名です
総投稿数は109,989件です

投稿数ランキング

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
1291
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.