バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 在庫のない商品を非表示にするパラメータをURLに付け加えたい。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Aichi
投稿日時: 2015/11/29 16:08
対応状況: −−−
半人前
登録日: 2012/6/19
居住地:
投稿: 27
在庫のない商品を非表示にするパラメータをURLに付け加えたい。
通常、商品一覧ページを表示させた場合、在庫のない商品も表示されるので、これを在庫のない商品は非表示にさせる方法を実行しました。
検索ヒット数を上げるために管理画面のシステム設定のパラメータ「NOSTOCK_HIDDEN」は「false」にしています。

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=11958&forum=10&post_id=55031#forumpost55031
こちらのスレッドを参考にしました。

その結果、
http://ec-cube.com/products/list.php?
のURLに
http://ec-cube.com/products/list.php?nostock_hidden=1
http://ec-cube.com/products/list.php?category_id=61&nostock_hidden=1
といったようなパラメータを付ける事で在庫のない商品を非表示にすることが出来ました。

教えていただきたいことは、ここからで。
商品一覧ページのフロント部分、「価格順・新着順」の左側に
「在庫無しを非表示」といったチェック、もしくはリンクを作成して、
それをチェック・クリックすることによって、URLにnostock_hidden=1もしくは&nostock_hidden=1を付け加えたいのですが、具体的な方法が分かりません。
data|Smarty|templates|default|products|list.tpl
のみに何らかの修正・追加だけで可能なのか?
data|class|pages|products|LC_Page_Products_List.php
にも修正を行う必要があるのか。

なにとぞご教授いただきますよう、宜しくお願い致します。



EC-CUBEバージョン 2.12.2
PHPバージョン PHP 5.3.3
DBバージョン MySQL 5.0.95
tsuji
投稿日時: 2015/11/30 10:08
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 在庫のない商品を非表示にするパラメータをURLに付け加えたい。
Aichi 様

方法はいくつかあるかと思いますが、
list.tplにあるfnChangeOrderbyが参考になると思います。
リンクをクリックしたらnostock_hiddenをgetで渡してリロードする形でしょうか。
そして各商品のURLにgetで取得したnostock_hiddenをそのままつけたらよいと思います。


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

Aichi
投稿日時: 2015/11/30 15:35
対応状況: 解決済
半人前
登録日: 2012/6/19
居住地:
投稿: 27
Re: 在庫のない商品を非表示にするパラメータをURLに付け加えたい。
tsuji 様

アドバイスいただき誠に有難うございます。
早速、試させていただきました。
そして、なんとかうまくいったようです。

list.tplにあるfnChangeOrderbyを参考に

list.tplファイルに以下のように追加してみました。

<!--▼ページナビ(本文)-->
<!--{capture name=page_navi_body}-->
<div class="pagenumber_area clearfix">
<div class="change">
↓↓追加↓↓
<!--{if $nostock_hidden != 'nostock_hidden'}-->
<a href="java script:fnChangeNostock_hidden('nostock_hidden');">在庫切れ非表示</a>
<!--{else}-->
<strong>在庫切れ非表示</strong>
<!--{/if}-->&nbsp;
↑↑追加↑↑
<!--{if $orderby != 'price'}-->
<a href="java script:fnChangeOrderby('price');">価格安い順</a>
<!--{else}-->
<strong>価格安い順</strong>
<!--{/if}-->&nbsp;
<!--{if $orderby != 'price2'}-->
<a href="java script:fnChangeOrderby('price2');">価格高い順</a>
<!--{else}-->
<strong>価格高い順</strong>
<!--{/if}-->&nbsp;
<!--{if $orderby != "date"}-->
<a href="java script:fnChangeOrderby('date');">新着順</a>
<!--{else}-->
<strong>新着順</strong>
<!--{/if}-->
表示件数

上記のように追加してみたら、思い通りに動いてくれました。
すばやく対応する事ができて大変感謝しております。
本当に有難うございました。


Aichi
投稿日時: 2015/12/1 1:16
対応状況: −−−
半人前
登録日: 2012/6/19
居住地:
投稿: 27
Re: 在庫のない商品を非表示にするパラメータをURLに付け加えたい。
上記のパソコン版を参考にスマホでも在庫無し非表示を実現しようと試みましたが、どうもうまくいきません。

sphoneのlist.tplを抜粋します。

<script type="text/javascript" src="<!--{$smarty.const.ROOT_URLPATH}-->js/products.js"></script>
<script type="text/javascript">//<![CDATA[
// 並び順を変更
function fnChangeOrderby(orderby) {
fnSetVal('orderby', orderby);
fnSetVal('pageno', 1);
fnSubmit();
}
// 表示件数を変更
function fnChangeDispNumber(dispNumber) {
fnSetVal('disp_number', dispNumber);
fnSetVal('pageno', 1);
fnSubmit();
}
// 在庫切れ非表示
function fnChangeNostock_hidden(nostock_hidden) {
fnSetVal('nostock_hidden', nostock_hidden);
fnSetVal('nostock_hidden', 1);
fnSubmit();
}
//]]></script>


〜〜〜


<!--▼ページナビ(本文)-->
<section class="pagenumberarea clearfix">
<ul>
<!--{if $nostock_hidden != 'nostock_hidden'}-->
<li><a href="java script:fnChangeNostock_hidden('nostock_hidden');" rel="external">在庫切れ非表示</a></li>
<!--{else}-->
<li class="on_number">在庫切れ非表示</li>
<!--{/if}-->
<!--{if $orderby != 'price'}-->
<li><a href="java script:fnChangeOrderby('price');" rel="external">価格順</a></li>
<!--{else}-->
<li class="on_number">価格順</li>
<!--{/if}-->
<!--{if $orderby != "date"}-->
<li><a href="java script:fnChangeOrderby('date');" rel="external">新着順</a></li>
<!--{else}-->
<li class="on_number">新着順</li>
<!--{/if}-->
</ul>
</section>
<!--▲ページナビ(本文)-->


スマホのフロントには「在庫切れ表示」と表示されるのですが
クリックしても何の反応もありません。
価格順や新着順は従来通り機能しています。

LC_Page_Products_List.phpは前回のパソコン用に修正したままです。

なんとかスマホ版でも在庫切れの商品を非表示にする機能を実装したいです。
なにとぞ、アドバイスのほど宜しくお願い致します。



Aichi
投稿日時: 2015/12/1 23:56
対応状況: −−−
半人前
登録日: 2012/6/19
居住地:
投稿: 27
Re: 在庫のない商品を非表示にするパラメータをURLに付け加えたい。
自己解決したので、記載しておきます。

sphoneのlist.tplの中に設定を追加することで解決しました。
前回の省略してしまった部分に解決策がありました。

<section id="product_list">
<form name="form1" id="form1" method="get" action="<!--{$smarty.const.ROOT_URLPATH}-->products/list.php">
<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
<input type="hidden" name="mode" value="<!--{$mode|h}-->" />
<input type="hidden" name="category_id" value="<!--{$arrSearchData.category_id|h}-->" />
<input type="hidden" name="maker_id" value="<!--{$arrSearchData.maker_id|h}-->" />
<input type="hidden" name="name" value="<!--{$arrSearchData.name|h}-->" />
<input type="hidden" name="orderby" value="<!--{$orderby|h}-->" />
<input type="hidden" name="disp_number" value="<!--{$disp_number|h}-->" />
<input type="hidden" name="pageno" value="<!--{$tpl_pageno|h}-->" />
<input type="hidden" name="product_id" value="" />
<input type="hidden" name="classcategory_id1" value="" />
<input type="hidden" name="classcategory_id2" value="" />
<input type="hidden" name="product_class_id" value="" />
<input type="hidden" name="quantity" value="" />
<input type="hidden" name="rnd" value="<!--{$tpl_rnd|h}-->" />
↓↓追加↓↓
<input type="hidden" name="nostock_hidden" value="<!--{$nostock_hidden|h}-->" />
↑↑追加↑↑
</form>

上記を追加する事によって、きちんと動作する事が出来ました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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