バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > メンバー管理での商品管理

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
paprika03
投稿日時: 2013/11/2 13:20
対応状況: −−−
新米
登録日: 2013/11/2
居住地:
投稿: 8
メンバー管理での商品管理
初めまして、見て頂きましてありがとうございます。

EC-CUBEバージョン 2.11.5
PHPバージョン PHP 5.2.6
DBバージョン MySQL 5.1.62
PHPのスキル 初心者・・・です。

上記の環境で運営しております。
EC-CUBEメンバー管理機能がありますがどのメンバーでログインしても
商品管理→商品マスタを使うとすべてのメンバーが登録した商品が出ると思います。

EC-CUBEメンバー管理機能を利用して
商品登録したメンバーごとに商品一覧を表示させるような事は
出来ますでしょうか・・・(他のメンバーの商品が出ないように)

もし、出来るとしたらどのような方法がありますでしょうか
ヒントを頂けると幸いです。

何卒、よろしくお願い申し上げます。
namahage
投稿日時: 2013/11/2 16:50
対応状況: −−−
長老
登録日: 2013/2/28
居住地: 大阪
投稿: 198
Re: メンバー管理での商品管理
ども

可能ですが、PHPのカスタマイズをする必要がありますね。

似た対応をしているのが過去のスレッドにありますので、ご紹介させていただきますね。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=12998&forum=10&post_id=59923#forumpost59923


簡単にいいますと、dtb_productsから商品情報を抽出している箇所で、creator_idの条件を追加してやる必要があります。
ログインしている人のIDの取得方法についても上記のスレッド内で記述されていますので、参考にカスタマイズすれば大丈夫だと思います。




paprika03
投稿日時: 2013/11/2 16:59
対応状況: −−−
新米
登録日: 2013/11/2
居住地:
投稿: 8
Re: メンバー管理での商品管理
ご丁寧にご返信ありがとうございます。
同型スレッドを探すことが出来ず申し訳ございませんでした
参考に作業をやってみて、新しい点等があったら続けて
ご報告させて頂きます。
paprika03
投稿日時: 2013/11/5 14:56
対応状況: −−−
新米
登録日: 2013/11/2
居住地:
投稿: 8
Re: メンバー管理での商品管理
何度も申し訳ございません、紹介して頂いたスレッドを見ながら
まとめてみたのですが、下記のようなSQLという事なのでしょうか・・・

引用(紹介スレッド先)

function findProducts($where, $arrValues, $limit, $offset, $order, &$objProduct,) {
$objQuery =& SC_Query_Ex::getSingletonInstance();

// 読み込む列とテーブルの指定
$col = 'product_id, name, authority, main_list_image, status, product_code_min, product_code_max, price02_min, price02_max, stock_min, stock_max, stock_unlimited_min, stock_unlimited_max, update_date';


$member_id = $_SESSION['member_id'];
$objProduct = new SC_Product_Ex();
if ($val['dtb_member.authority'] == 0){
$from = $objProduct->alldtlSQL($where_products_class = '');}
else{
$from = $objProduct->alldtlSQL2($where_products_class = '') ;}
WHERE dtb_products.creator_id = $member_id


return $objQuery->select($col, $from, $where, $arrValues);
}

ご教授頂けると幸いです。
namahage
投稿日時: 2013/11/5 16:45
対応状況: −−−
長老
登録日: 2013/2/28
居住地: 大阪
投稿: 198
Re: メンバー管理での商品管理

if ($val['dtb_member.authority'] == 0){

は、

if ($member_id == 0){

に修正。

}else{
$from = $objProduct->alldtlSQL2($where_products_class = ''); 
}
WHERE dtb_products.creator_id = $member_id

は、

}else{
$from = $objProduct->alldtlSQL2($where_products_class = '');
$where = "WHERE dtb_products.creator_id = ".$member_id;
}

にしてください。

paprika03
投稿日時: 2013/11/5 17:07
対応状況: −−−
新米
登録日: 2013/11/2
居住地:
投稿: 8
Re: メンバー管理での商品管理
namahage様
丁寧な、説明ありがとうございます。
SC_Product.phpでのSQL切り替え部分についてなのですが、
スレッド先では下記のようになっておりましたが
こちらの部分の記述についてもご教授頂けないでしょうか・・・
お忙しいところ申し訳ありません。

(引用)SC_Product.php761行目付近
LEFT JOIN dtb_maker
ON dtb_products.maker_id = dtb_maker.maker_id

************        
LEFT JOIN dtb_member
ON dtb_products.creator_id = dtb_member.member_id

If (dtb_member.authority == 1)
{WHERE dtb_products.creator_id = dtb_member.member_id AND dtb_member.login_date > DATE_ADD(NOW(),INTERVAL 1 MIN);}
else {WHERE dtb_products.creator_id = dtb_member.member_id;}
************

) AS alldtl __EOS__; return $sql;}

namahage
投稿日時: 2013/11/5 18:13
対応状況: −−−
長老
登録日: 2013/2/28
居住地: 大阪
投稿: 198
Re: メンバー管理での商品管理

If (dtb_member.authority == 1) 

dtb_member.authority == 1ってのは、
ログインしているユーザの権限が店舗オーナーだった場合という制御になります。
僕がご案内させていただいたURLの内容が「店舗オーナーは自らが登録した商品だけしか検索できないようにしたい」という件名だったためにこういった制御があります。

今回はとくにこういった制御はないので、必要ありません。


LEFT JOIN dtb_member
ON dtb_products.creator_id = dtb_member.member_id
WHERE dtb_products.creator_id = dtb_member.member_id;

としていただいて結構ですよ。
paprika03
投稿日時: 2013/11/5 19:56
対応状況: −−−
新米
登録日: 2013/11/2
居住地:
投稿: 8
Re: メンバー管理での商品管理
namahage 様
ありがとうございます、初心者の質問に答えて頂けて大変感謝しております。

早速SC_Product.php820行目付近へ記載してみたのですが
申し訳ございません上手く動かすことが出来ませんでした。

LEFT JOIN dtb_member
ON dtb_products.creator_id = dtb_member.member_id
WHERE dtb_products.creator_id = dtb_member.member_id;
$where_clause
) as prdcls
__EOS__;
return $sql;
}

-----デバッグ情報-----
Fatal error: Call to undefined method SC_Product_Ex::alldtlSQL2() in /data/class/pages/admin/products/LC_Page_Admin_Products.php on line 391
-----デバッグ情報ここまで-----

LC_Page_Admin_Products.phpの記載を私が間違えたのでしょうか。

$member_id = $_SESSION['member_id'];
$objProduct = new SC_Product_Ex();
if ($member_id == 0){
$from = $objProduct->alldtlSQL($where_products_class = '');}
else{
$from = $objProduct->alldtlSQL2($where_products_class = '');
$where = "WHERE dtb_products.creator_id = ".$member_id;
}
return $objQuery->select($col, $from, $where, $arrValues);

お忙しいところ申し訳ございません、ご教授頂けると幸いです。
namahage
投稿日時: 2013/11/5 20:09
対応状況: −−−
長老
登録日: 2013/2/28
居住地: 大阪
投稿: 198
Re: メンバー管理での商品管理

if ($member_id == 0){
$from = $objProduct->alldtlSQL($where_products_class = '');}
else{
$from = $objProduct->alldtlSQL2($where_products_class = '');
$where = "WHERE dtb_products.creator_id = ".$member_id;
}


alldtlSQL2って関数がありませんて書いてます。おそらくここは、alldtlSQLで良いと思います。

$from = $objProduct->alldtlSQL($where_products_class = '');
if ($member_id != 0){
$where = "WHERE dtb_products.creator_id = ".$member_id;
}

にしてください。
paprika03
投稿日時: 2013/11/5 22:52
対応状況: −−−
新米
登録日: 2013/11/2
居住地:
投稿: 8
Re: メンバー管理での商品管理
本当にお手数をおかけして申し訳ございませんありがとうございます。
LC_Page_Admin_Products.phpは下記のように変更し実行してみたところ、エラーが出てしまい、返信させて頂きました。

// 読み込む列とテーブルの指定
$col = "product_id, name, main_list_image, status, product_code_min, product_code_max, price02_min, price02_max, stock_min, stock_max, stock_unlimited_min, stock_unlimited_max, update_date";

$member_id = $_SESSION['member_id'];
$objProduct = new SC_Product_Ex();
$from = $objProduct->alldtlSQL($where_products_class = '');
if ($member_id != 0){
$where = "WHERE dtb_products.creator_id = ".$member_id;
}

return $objQuery->select($col, $from, $where, $arrValues);
}
}

=====デバック情報一部======
MDB2 Error: syntax error

_doQuery: [Error message: Could not execute statement]
[Last executed query: PREPARE mdb2_statement_mysql_XXXXテーブル名が続きます・・・

[Native code: 1064]
[Native message: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE dtb_products.creator_id = 6' at line 1]

=====ここまで=====

情報が長く一部抜粋してみたのですが見当違いの場所を抜粋していましたらご指摘ください。

こんなに、お手数をおかけして申し訳ございません何卒よろしくお願い申し上げます。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


ec-cube.co

統計情報

総メンバー数は48,101名です
総投稿数は92,809件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1908
4
468
1818
5
yuh
1600
6
red
1330
7
umebius
1296
8
fukap
907
9
tsuji
852
10
h_tanaka
849
11
shutta
835
12 ramrun 789
13
tao_s
758
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

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