バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 対応状況管理の項目に購入商品名を追加したい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2015/12/7 17:43
対応状況: −−−
対応状況管理の項目に購入商品名を追加したい
EC-CUBEカスタマイズ初心者ですが、対応状況管理の項目に購入商品名を追加したいです。

下記のスレッドを元に配送業者は表示させることが出来ました。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=16432&forum=11&post_id=72639#forumpost72639

同じように、購入(注文)した商品名が表示されるようにしたいのですが、
LC_Page_Admin_Order_Status内、配送業者だと
$this->arrDeliv = SC_Helper_Delivery_Ex::getIDValueList();

のように記述するとのことでしたが、商品名の場合はどのように記述するのかご教授いただけないでしょうか。
よろしくお願い致します。
karin
投稿日時: 2015/12/7 18:24
対応状況: −−−
仙人
登録日: 2008/9/15
居住地: 東京都
投稿: 689
Re: 対応状況管理の項目に購入商品名を追加したい
dolce 様

購入した商品名はdtb_order_detailテーブルのproduct_nameへ格納されていますので、
LC_Page_Admin_Order_Statusの受注一覧を取得しているlfStatusDisp辺りで上記テーブルからも情報を取得するようにする必要があります。(他にも方法は色々あるかもしれません)


----------------

ゲスト
投稿日時: 2015/12/7 18:43
対応状況: −−−
Re: 対応状況管理の項目に購入商品名を追加したい
karin 様

早速のご回答ありがとうございます。
// 対応状況一覧の表示
public function lfStatusDisp($status,$pageno)     {
$objQuery =& SC_Query_Ex::getSingletonInstance();
$select ='*';
$from = 'dtb_order';
$where = 'del_flg = 0 AND status = ?';
$arrWhereVal = array($status);
$order = 'order_id DESC';
$linemax = $objQuery->count($from, $where, $arrWhereVal);
$this->tpl_linemax = $linemax;

↑おそらくここの部分でしょうか・・?


$from = 'dtb_order','dtb_order_detail';

このようにしたらエラーとなってしまいました。
すみません、記述場所が違うのでしょうか?
お手数ですが、よろしければ教えて頂きたいです。。
yuh
投稿日時: 2015/12/8 14:58
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 対応状況管理の項目に購入商品名を追加したい
MYSQLであれば

 $select ="*,
(SELECT group_concat(distinct product_name order by product_id desc separator ',') FROM dtb_order_detail WHERE order_id = dtb_order.order_id) as product_name
 ";

Postgresqlであれば


 $select ="*,
 ARRAY_TO_STRING(ARRAY(SELECT product_name FROM dtb_order_detail WHERE order_id = dtb_order.order_id),',' )as product_name
 ";

ですね。
ゲスト
投稿日時: 2015/12/10 15:58
対応状況: −−−
Re: 対応状況管理の項目に購入商品名を追加したい
お返事が遅くなりすみません。
そして回答頂いてありがとうございます。

いろいろと試行錯誤した結果、status.tplに下記の記述で商品名は表示させることが出来ました。


<td class="center">
<!--{section name=cnt loop=$arrStatus}-->
<!--{assign var="product_name" value=","|explode:$arrStatus[cnt].product_name}-->
<!--{assign var="classcategory_name1" value=`$arrStatus[cnt].classcategory_name1`}-->
<!--{assign var="classcategory_name2" value=`$arrStatus[cnt].classcategory_name2`}-->
<!--{$arrStatus[cnt].product_name|h}-->/
<!--{$arrForm.classcategory_name1.value[$product_index]|default:"(なし)"|h}-->/
<!--{$arrForm.classcategory_name2.value[$product_index]|default:"(なし)"|h}-->
<!--{/section}-->
</td>



ただ、これだと商品名をループした後に、規格がループされるので

商品名A
商品名B
商品名C
/(なし)/(なし)

となってしまい、規格が取得できません。。


どのように記述すべきがご教授頂けないでしょうか。宜しくお願い致します。
yuh
投稿日時: 2015/12/11 12:01
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 対応状況管理の項目に購入商品名を追加したい
<!--{$arrForm.classcategory_name1.value[$product_index]|default:"(なし)"|h}-->/
<!--{$arrForm.classcategory_name2.value[$product_index]|default:"(なし)"|h}-->

この部分がループに対して関係ないデータになっているのと、
<!--{section name=cnt loop=$arrStatus}-->
の部分が全体で2重になってませんか?

取得する商品名に対してそのまま規格名を加えた形で出力すると楽ですね。

前に書いたクエリに対して規格もいっしょに追加する形で変更すればできると思いますよ。
ゲスト
投稿日時: 2015/12/11 14:56
対応状況: −−−
Re: 対応状況管理の項目に購入商品名を追加したい
yuh様

ご回答ありがとうございます。
度々申し訳ございません。

ご指示いただいた<!--{section name=cnt loop=$arrStatus}-->の部分、確かに2重になっていましたので1箇所は削除しました。

><!--{$arrForm.classcategory_name1.value[$product_index]|default:"(なし)"|h}-->/
<!--{$arrForm.classcategory_name2.value[$product_index]|default:"(なし)"|h}-->
この部分がループに対して関係ないデータになっている

とのことで、商品名と同じように記述してみましたが、
何も表示されませんでした。。
同じように個数もやってみましたが表示されませんでした。

商品名が出せたので、同じように記述したにですが、また別の記述方法でないといけないのでしょうか?


>取得する商品名に対してそのまま規格名を加えた形で出力すると楽ですね。

仰るとおりそれが理想形です!


すみません、正しい記述を教えて頂けないでしょうか。
宜しくお願い致します。




<!--{section name=cnt loop=$arrStatus}-->
<!--{assign var=status value="`$arrStatus[cnt].status`"}-->
<!--{assign var="product_name" value=","|explode:$arrStatus[cnt].product_name}-->
<!--{assign var="classcategory_name1" value=`$arrStatus[cnt].classcategory_name1`}-->
<!--{assign var="classcategory_name2" value=`$arrStatus[cnt].classcategory_name2`}-->
<!--{assign var="quantity" value=`$arrStatus[cnt].quantity`}-->

<tr style="background:<!--{$arrORDERSTATUS_COLOR[$status]}-->;">

<td class="center">
 <!--{$arrStatus[cnt].product_name|nl2br}-->/
 <!--{$arrStatus[cnt].classcategory_name1|nl2br}-->/
 <!--{$arrStatus[cnt].classcategory_name2|nl2br}-->/
</td>
<td>
 <!--{$arrStatus[cnt].quantity|nl2br}-->
</td>

</tr>
<!--{/section}-->

yuh
投稿日時: 2015/12/14 15:01
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 対応状況管理の項目に購入商品名を追加したい
MYSQLであれば

$select ="*,
(SELECT group_concat(distinct CONCAT(product_name, '/',classcategory_name1, '/',classcategory_name2) order by product_id desc separator ',') FROM dtb_order_detail WHERE order_id = dtb_order.order_id) as product_name
";

Postgresqlであれば


$select ="*,
ARRAY_TO_STRING(ARRAY(SELECT product_name || '/' || classcategory_name1 || '/' ||classcategory_name2 FROM dtb_order_detail WHERE order_id = dtb_order.order_id),',' )as product_name
";

ですね。
ゲスト
投稿日時: 2015/12/14 16:53
対応状況: −−−
Re: 対応状況管理の項目に購入商品名を追加したい
yuh様

回答ありがとうございます!
サンプルコード頂けるとそこから調べて、記述方法も理解できるので大変助かります。

それぞれを/で区切ってCONCACTで連結するのですね、勉強になります。。

ですが、本当に何度も申し訳ございません。
こちらをLC_Page_Admin_Order_Status.phpに記述すると商品名まで表示されなくなってしまいました。。
記述場所は間違っていないのですが。。

現在の記述です。
実は別トピックでも質問させて頂いているのですが、現在、受注管理画面で検索ができなくなっています。
そちらと何か関係があるのでしょうか・・・?見当違いでしたらすみません。

LC_Page_Admin_Order_Status.php

    // 対応状況一覧の表示
    public function lfStatusDisp($status,$pageno)
    {
        $objQuery =& SC_Query_Ex::getSingletonInstance();

        $select ="*,(SELECT group_concat
        (distinct CONCAT(product_name, '/',classcategory_name1, '/',classcategory_name2) order by product_id desc separator ',') 
        FROM dtb_order_detail WHERE order_id = dtb_order.order_id) as product_name";
        $from = 'dtb_order';
        $where = 'del_flg = 0 AND status = ?';
        $arrWhereVal = array($status);
        $order = 'order_id DESC';

        $linemax = $objQuery->count($from, $where, $arrWhereVal);
        $this->tpl_linemax = $linemax;

        // ページ送りの処理
        $page_max = ORDER_STATUS_MAX;

        // ページ送りの取得
        $objNavi = new SC_PageNavi_Ex($pageno, $linemax, $page_max, 'eccube.moveSearchPage', NAVI_PMAX);
        $this->tpl_strnavi = $objNavi->strnavi;      // 表示文字列
        $startno = $objNavi->start_row;

        $this->tpl_pageno = $pageno;

        // 取得範囲の指定(開始行番号、行数のセット)
        $objQuery->setLimitOffset($page_max, $startno);

        //表示順序
        $objQuery->setOrder($order);

        //検索結果の取得
        $this->arrStatus = $objQuery->select($select, $from, $where, $arrWhereVal);
    }



status.tpl

<!--{section name=cnt loop=$arrStatus}-->
                <!--{assign var=status value="`$arrStatus[cnt].status`"}-->
                <!--{assign var=deliv_id value="`$arrStatus[cnt].deliv_id`"}-->
				<!--{assign var="product_name" value=","|explode:$arrStatus[cnt].product_name}-->
                <!--{assign var="classcategory_name1" value="`$arrStatus[cnt].classcategory_name1`"}-->
                <!--{assign var="classcategory_name2" value="`$arrStatus[cnt].classcategory_name2`"}-->
                <!--{assign var="quantity" value="`$arrStatus[cnt].quantity`"}-->
                
				
                
                <tr style="background:<!--{$arrORDERSTATUS_COLOR[$status]}-->;">
                    <td class="center"><input type="checkbox" name="move[]" value="<!--{$arrStatus[cnt].order_id}-->" ></td>
                    <td class="center"><!--{$arrORDERSTATUS[$status]}--></td>
                    <td class="center"><a href="#" onclick="eccube.openWindow
                    ('./disp.php?order_id=<!--{$arrStatus[cnt].order_id}-->','order_disp','800','900',{resizable:'no',focus:false}); return false;" >
<!--{$arrStatus[cnt].order_id}--></a></td>
                    <td class="center"><!--{$arrStatus[cnt].create_date|sfDispDBDate}--></td>
                    <td><!--{$arrStatus[cnt].order_name01|h}--> <!--{$arrStatus[cnt].order_name02|h}--></td>
                    <!--{assign var=payment_id value=`$arrStatus[cnt].payment_id`}-->
                    <td class="center"><!--{$arrPayment[$payment_id]|h}--></td>
                    <td class="right"><!--{$arrStatus[cnt].total|n2s}--></td>
                    <td class="center"><!--{if $arrStatus[cnt].payment_date != ""}-->
<!--{$arrStatus[cnt].payment_date|sfDispDBDate:false}--><!--{else}-->未入金<!--{/if}--></td>
                    <td class="center"><!--{if $arrStatus[cnt].status eq 5}-->
<!--{$arrStatus[cnt].commit_date|sfDispDBDate:false}--><!--{else}-->未発送<!--{/if}--></td>
                    <!--td><!--{$arrDeliv[$deliv_id]}--><!--/td-->
<td class="center">                  <!--{$arrStatus[cnt].product_name|nl2br}-->/
<!--{$arrStatus[cnt].classcategory_name1.value[$product_index]|default:"(なし)"|h}-->/
<!--{$arrStatus[cnt].classcategory_name2.value[$product_index]|default:"(なし)"|h}-->
                    </td>
                    <td><!--{$arrStatus[cnt].quantity}--></td>
                </tr>
                <!--{/section}-->
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
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.