バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > [2.13.5] 販売最低購入数について

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
l58
投稿日時: 2017/1/28 14:46
対応状況: −−−
常連
登録日: 2015/2/15
居住地:
投稿: 36
Re: [2.13.5] 販売最低購入数について
出来ました!!

丁重にご教授頂きありがとうございます!
無事に希望通りの機能を追加することが出来ました。

本当にありがとうございました。
468
投稿日時: 2017/1/27 13:13
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: [2.13.5] 販売最低購入数について
返信が遅くなってしまいましたが、
(数日前からコミュニティに投稿できない?状態になってました・・・)
/data/class/db/SC_DB_DBFactory.php 245行目付近にある
function alldtlSQL()内にてSQLが記述されていると思いますが、
以下のようにsale_limitに関する取得を追記すればいいかと思います。

[cord]
$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
,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
,MIN(sale_limit) AS sale_limit
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__;
[/cord]

MIN(sale_limit) AS sale_limitで記述していますので、
前回質問させていただいた以下のような商品の場合、2が取得されます。

アイス 抹茶 S 販売最低個数:10個
アイス 抹茶 M 販売最低個数:5個
アイス 抹茶 L 販売最低個数:2個

MIN → MAXに変更すると10が取得されるようになりますので、
一番大きい数値を取得したい場合は、要件に合わせて変更してください。

あとは、data/Smarty/templates/my_template/detail.tpl側で
$arrProduct.sale_limit で値を出力できるのではないかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

l58
投稿日時: 2017/1/23 13:28
対応状況: −−−
常連
登録日: 2015/2/15
居住地:
投稿: 36
Re: [2.13.5] 販売最低購入数について
ご連絡が遅くなり申し訳ありません。

規格ごとの最低販売個数は特にありません。
規格が違っても最低販売個数は一緒です。
商品ごとに設定したいです。

最小値のみです。
最大値(販売数上限)はありません。

宜しくお願いします。
468
投稿日時: 2017/1/17 16:52
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: [2.13.5] 販売最低購入数について
規格毎に販売最低個数に異なる数値がセットされた時はどのような動きを想定されていますか?
最小値ですか?最大値ですか?

例えば、以下のような商品が登録されている場合、アイスの詳細ページを表示した時には、どの数字を表示させたいのでしょうか?

アイス 抹茶 S 販売最低個数:10個
アイス 抹茶 M 販売最低個数:5個
アイス 抹茶 L 販売最低個数:2個


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

l58
投稿日時: 2017/1/17 16:31
対応状況: −−−
常連
登録日: 2015/2/15
居住地:
投稿: 36
Re: [2.13.5] 販売最低購入数について
ご連絡ありがとうございます。
function alldtlSQL() に記述するSQLの記述が分かりません。
DBはMySQLになります。

初心者なりに思考錯誤しておりますが。まだまだ勉強不足で申し訳ありません。

よろしくお願いします。
468
投稿日時: 2017/1/13 23:07
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: [2.13.5] 販売最低購入数について
/data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php
/data/class/db/SC_DB_DBFactory.php

function alldtlSQL() に記述するSQLの記述が分からないという事でしょうか?
ご利用のDBによって記述が変わりますが、
MySQLでしょうか?PostgreSQLでしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

l58
投稿日時: 2017/1/13 18:31
対応状況: −−−
常連
登録日: 2015/2/15
居住地:
投稿: 36
Re: [2.13.5] 販売最低購入数について
返信が遅くなってしまって申し訳ありません。
色々調べてみたのですが、
dtb_products_class.sale_limitを取得する記述がよくわかりませんでした。
大変恐縮なのですが、もう少し具体的に教えて頂けませんでしょうか?
468
投稿日時: 2016/12/26 11:57
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: [2.13.5] 販売最低購入数について
まず商品詳細画面に渡されている商品情報にsale_limitが含まれていませんので、DBから値を取得するところから変更する必要があります。
商品詳細のデータを取得する際の項目を指定している箇所は以下のようです。

/data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php
/data/class/db/SC_DB_DBFactory.php

function alldtlSQL()の中に該当のSQLの記述があります。
MySQLとPostgreSQLで実行している箇所が違いますのでご注意ください。

そこでdtb_products_class.sale_limitを取得する記述を追記すれば、
/product/detail.tpl内で、$arrProduct.sale_limitで販売制限を取得する事が出来そうです。

<!--{$arrForm.quantity.value|default:$arrProduct.sale_limit|h}-->
の記述でデフォルト値もセット出来そうですし、
<!--{$arrProduct.sale_limit|h}-->個以上から購入可能です。といったメッセージも表示できると思います。

SQLを記述する際の注意点は、dtb_products_classにsale_limitのカラムがあるようですので、stockなどと同じようにMAX()かMIN()等の集約関数を記述する必要があるかと思います。

以上、よろしくお願いします。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

l58
投稿日時: 2016/12/25 21:35
対応状況: −−−
常連
登録日: 2015/2/15
居住地:
投稿: 36
Re: [2.13.5] 販売最低購入数について
ご教授いただいたとおり、

data/class/SC_CartSession.phpを下記のように変更したところ
「販売制限数」を「最低販売数」に変更することが出来ました。
ありがとうございました!!

/*
* 販売制限数, 在庫数のチェック
*/
$limit = $objProduct->getBuyLimit($product);
if (!is_null($limit) && $arrItem['quantity'] < $limit) {
if ($limit < 0) {
$this->setProductValue($arrItem['id'], 'quantity', $limit, $productTypeId);
$total_inctax = $limit * SC_Helper_TaxRule_Ex::sfCalcIncTax($arrItem['price'],
$product['product_id'],
$arrItem['id'][0]);
$this->setProductValue($arrItem['id'], 'total_inctax', $total_inctax, $productTypeId);
$tpl_message .= '※「' . $product['name'] . '」は販売制限(または在庫が不足)しております。';
$tpl_message .= "一度に数量{$limit}を超える購入はできません。\n";
} else {
$this->delProduct($arrItem['cart_no'], $productTypeId);
$tpl_message .= '※「' . $product['name'] . "」は{$limit}個以上 からのお買い上げとなります。\n";
continue;
}

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

追加の質問なのですが
さらに、商品詳細ページ購入箇所の「数量」を指定する欄に設定した「最低販売数」を表示させるにはどうすればよいのでしょうか。

通常は「1」と表示されているのですが
data/Smarty/templates/my_template/detail.tpl

<!--★数量★-->
<tr>
<th>数量:</th>
<td><input type="text" class="box60" name="quantity" value="<!--{$arrForm.quantity.value|default:1|h}-->" maxlength="<!--{$smarty.const.INT_LEN}-->" style="<!--{$arrErr.quantity|sfGetErrorColor}-->" />
<!--{if $arrErr.quantity != ""}-->
<br /><span class="attention"><!--{$arrErr.quantity}--></span>
<!--{/if}-->

</td>
</tr>

上記の中の
<input type="text" class="box60" name="quantity" value="<!--{$arrForm.quantity.value|default:1|h}-->

を修正すればよいのかとは思ったのですが、
「1」ではなくて「最低販売制限数」を表示させるにはどうすればよいのでしょうか。

また、ここの横に注意書き等で
{$sale_limit}個以上 からのお買い上げとなります
等の記述を加えるにはどのように書けばよいのでしょうか。

下記を参考に見てみましたが、バージョンが違うためか、修正箇所が見つけられませんでした。
http://ec-cube.nakweb.com/blog/1906.html

お分かりになりましたら、ご教授いただけると幸いです。
よろしくお願い致します。
l58
投稿日時: 2016/12/20 19:06
対応状況: −−−
常連
登録日: 2015/2/15
居住地:
投稿: 36
Re: [2.13.5] 販売最低購入数について
ありがとうございます。
やってみます。

取り急ぎお礼まで。
また報告させて頂きます。
(1) 2 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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