バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 販売制限数の表示について

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
000
投稿日時: 2020/11/25 17:10
対応状況: −−−
常連
登録日: 2020/1/29
居住地:
投稿: 69
販売制限数の表示について
EC-CUBE2.13.5

商品一覧及び商品詳細のページに販売制限数を表示させたいのですが、うまくいきません。

SC_Product.phpにalldtlSQL関数がなく、SC_DB_DBFactory_ExのalldtlSQL関数に
引用:

T4.sale_limit_max
T4.sale_limit_min

MAX(sale_limit) AS sale_limit_max
MIN(sale_limit) AS sale_limit_min

を追加しましたが表示されませんでした。

2.13.5は別に表示方法があるのでしょうか。
ご教授いただけますと幸いです。
coremobile
投稿日時: 2020/11/25 20:49
対応状況: −−−
長老
登録日: 2018/8/30
居住地:
投稿: 186
Re: 販売制限数の表示について
一覧画面に表示する場合は
SC_Product.phpのlists関数の$col = <<< __EOS__部分にも
下記を追加してみてください。
sale_limit_max,
sale_limit_min,
000
投稿日時: 2020/11/26 9:39
対応状況: −−−
常連
登録日: 2020/1/29
居住地:
投稿: 69
Re: 販売制限数の表示について
ご返信ありがとうございます

SC_Product.phpのlists関数の$col = <<< __EOS__部分にも
下記を追加したところシステムエラーとなり画面自体が表示されなくなりました。
sale_limit_max,
sale_limit_min,

また、現時点では商品詳細及び一覧の両方で表示ができていない状態なのですが
他に考えられる点はありますでしょうか
coremobile
投稿日時: 2020/11/26 22:12
対応状況: −−−
長老
登録日: 2018/8/30
居住地:
投稿: 186
Re: 販売制限数の表示について
SC_Product.phpのlist関数に下記のように「sale_limit_max」と「sale_limit_min」を追加してみてください。

public function lists(&$objQuery)
{
$col = <<< __EOS__
product_id
,product_code_min
,product_code_max
,name
,comment1
,comment2
,comment3



,sale_limit_max←ここ
,sale_limit_min←ここ
__EOS__;



}

またalldtlSQL関数はこのようになります。

public function alldtlSQL($where_products_class = '')
{
if (!SC_Utils_Ex::isBlank($where_products_class)) {
$where_products_class = 'AND (' . $where_products_class . ')';
}
/*
* point_rate, deliv_fee は商品規格(dtb_products_class)ごとに保持しているが,
* 商品(dtb_products)ごとの設定なので MAX のみを取得する.
*/
$sql = <<< __EOS__
(
SELECT
dtb_products.*
,T4.product_code_min
,T4.product_code_max
,T4.price01_min
,T4.price01_max
,T4.price02_min
,T4.price02_max
,T4.stock_min
,T4.stock_max
,T4.stock_unlimited_min
,T4.stock_unlimited_max
,T4.point_rate
,T4.deliv_fee
,T4.sale_limit_max←ここ
,T4.sale_limit_min←ここ
,dtb_maker.name AS maker_name
FROM dtb_products
INNER JOIN (
SELECT product_id
,MIN(product_code) AS product_code_min
,MAX(product_code) AS product_code_max
,MIN(price01) AS price01_min
,MAX(price01) AS price01_max
,MIN(price02) AS price02_min
,MAX(price02) AS price02_max
,MIN(stock) AS stock_min
,MAX(stock) AS stock_max
,MIN(stock_unlimited) AS stock_unlimited_min
,MAX(stock_unlimited) AS stock_unlimited_max
,MAX(point_rate) AS point_rate
,MAX(deliv_fee) AS deliv_fee
,MAX(sale_limit) AS sale_limit_max←ここ
,MIN(sale_limit) AS sale_limit_min←ここ
FROM dtb_products_class
WHERE del_flg = 0 $where_products_class
GROUP BY product_id
) AS T4
ON dtb_products.product_id = T4.product_id
LEFT JOIN dtb_maker
ON dtb_products.maker_id = dtb_maker.maker_id
) AS alldtl
__EOS__;

return $sql;
}

これでうまくいくと思いますのでご確認ください。
000
投稿日時: 2020/11/27 10:18
対応状況: −−−
常連
登録日: 2020/1/29
居住地:
投稿: 69
Re: 販売制限数の表示について
ご丁寧にご返信いただきありがとうございました。
あの後、試行錯誤していたところ
使用しているDBの都合上、呼ばれるファイルが異なっていることが判明いたしました。

修正ファイル:【SC_DB_DBFactory_MYSQL_Ex】
引用:

public function alldtlSQL($where_products_class = '')
{
if (!SC_Utils_Ex::isBlank($where_products_class)) {
$where_products_class = 'AND (' . $where_products_class . ')';
}
/*
* point_rate, deliv_fee は商品規格(dtb_products_class)ごとに保持しているが,
* 商品(dtb_products)ごとの設定なので MAX のみを取得する.
*/
$sql = <<< __EOS__
(
SELECT
dtb_products.*
,T4.product_code_min
,T4.product_code_max
,T4.price01_min
,T4.price01_max
,T4.price02_min
,T4.price02_max
,T4.stock_min
,T4.stock_max
,T4.stock_unlimited_min
,T4.stock_unlimited_max
,T4.point_rate
,T4.deliv_fee
,T4.sale_limit_min
,T4.sale_limit_max
,dtb_maker.name AS maker_name
,T4.product_type_id
FROM dtb_products
INNER JOIN (
SELECT product_id
,MIN(product_code) AS product_code_min
,MAX(product_code) AS product_code_max
,MIN(price01) AS price01_min
,MAX(price01) AS price01_max
,MIN(price02) AS price02_min
,MAX(price02) AS price02_max
,MIN(stock) AS stock_min
,MAX(stock) AS stock_max
,MIN(stock_unlimited) AS stock_unlimited_min
,MAX(stock_unlimited) AS stock_unlimited_max
,MAX(point_rate) AS point_rate
,MAX(deliv_fee) AS deliv_fee
,MIN(sale_limit) AS sale_limit_min
,MAX(sale_limit) AS sale_limit_max
,product_type_id
FROM dtb_products_class
WHERE del_flg = 0 $where_products_class
GROUP BY product_id,product_type_id
) AS T4
ON dtb_products.product_id = T4.product_id
LEFT JOIN dtb_maker
ON dtb_products.maker_id = dtb_maker.maker_id
) AS alldtl
__EOS__;

return $sql;
}


こちらとSC_Productsに記載を加えることで、商品一覧及び詳細に販売制限数を表示することができました。

この度はありがとうございました。
coremobile
投稿日時: 2020/11/27 16:39
対応状況: −−−
長老
登録日: 2018/8/30
居住地:
投稿: 186
Re: 販売制限数の表示について
解決のお手伝いができてよかったです。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,853名です
総投稿数は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.