質問 > フロント機能 > スマートフォンの一覧表示のもっと見るでjsonにおいて在庫数量も取得したい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
shore |
投稿日時: 2017/3/27 21:40
対応状況: −−−
|
新米 登録日: 2017/3/27 居住地: 投稿: 5 |
スマートフォンの一覧表示のもっと見るでjsonにおいて在庫数量も取得したい ▼テンプレート
[EC-CUBE] 2.13.5 [レンタルサーバ] HETEML [OS] Linux users30 [PHP] PHP Version 5.3.28 [データベース] MySQL 5.6.13-log [WEBサーバ] Apache スマートフォンの一覧表示で在庫の表記を行ったのですが、もっと見るでjsonにおいて情報取得を行っているのは理解したのですが、在庫をjsonで取得するコードが分からなく困っております。 在庫の数量表示を行うところまでは出来ております。 JSONでの取得が数量が無いため反映できていない様です。 販売価格のセットとコメントのセットの間で取得しようと思いつくコードを書いたのですが取得できず、諸先輩方にご教授頂きたいと思いまして投稿させて頂きました。 宜しくお願い致します。 |
h_tanaka |
投稿日時: 2017/3/28 9:12
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1646 |
Re: スマートフォンの一覧表示のもっと見るでjsonにおいて在庫数量も取得したい どのファイルをどのようにカスタマイズされたのかソースを教えてもらえますでしょうか。
|
468 |
投稿日時: 2017/3/28 19:27
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: スマートフォンの一覧表示のもっと見るでjsonにおいて在庫数量も取得したい /data/class/pages/products/LC_Page_Products_List.php function doJson()の中で、$this->arrProductsをjson形式に変換して、サーバから返却していると思いますが、
stock_min, stock_maxは返却されるjsonに含まれていませんでしたでしょうか?
|
shore |
投稿日時: 2017/3/28 22:06
対応状況: −−−
|
新米 登録日: 2017/3/27 居住地: 投稿: 5 |
Re: スマートフォンの一覧表示のもっと見るでjsonにおいて在庫数量も取得したい お返事ありがとうございます。
スマートフォンテンプレート内部のlist.tplに 在庫部分を追加しました。 <!--▲商品ステータス--> </div> <!--★商品名★--> <h3><a rel="external" href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrProduct.product_id|u}-->" name="product<!--{$arrProduct.product_id}-->" class="productName"><!--{$arrProduct.name|h}--></a></h3> <!--★商品価格★--> <p> <span class="pricebox sale_price"><span class="mini"><!--{$smarty.const.SALE_PRICE_TITLE|h}-->(税込):</span></span> <span class="price"> <span id="price02_default_<!--{$id}-->"> <!--{if $arrProduct.price02_min_inctax == $arrProduct.price02_max_inctax}--> <!--{$arrProduct.price02_min_inctax|n2s}--> <!--{else}--> <!--{$arrProduct.price02_min_inctax|n2s}-->~<!--{$arrProduct.price02_max_inctax|n2s}--> <!--{/if}--> </span><span id="price02_dynamic_<!--{$id}-->"> </span>円 </span> </p> <!--★商品在庫★--> <p class="stock">在庫: <!--{if $arrProduct.stock_unlimited_min == 1}--><!--{*無制限*}--> あり <!--{else}--> <!--{if $arrProduct.stock_min != $arrProduct.stock_max}--> <!--{$arrProduct.stock_min|escape}-->~<!--{$arrProduct.stock_max|escape}--> <!--{else}--> <!--{$arrProduct.stock_min|escape}--> <!--{/if}-->個 <!--{/if}--> </p> <!--★商品コメント★--> <p class="listcomment"><!--{$arrProduct.main_list_comment|h|nl2br}--></p> </div> </div> PCページでは問題なく 在庫を取得できているのですが・・・ スマートンのもっと見るで jsonで取得する部分に在庫読み込みを反映する部分が無いからだと思われます。 $($(".list_area a.productName").get(maxCnt)).text(product.name); $($(".list_area a.productName").get(maxCnt)).attr("href", url + product.product_id); //販売価格をセット var price = $($(".list_area span.price").get(maxCnt)); //販売価格をクリア price.empty(); var priceVale = ""; //販売価格が範囲か判定 if (product.price02_min == product.price02_max) { priceVale = product.price02_min_inctax_format + '円'; } else { priceVale = product.price02_min_inctax_format + '~' + product.price02_max_inctax_format + '円'; } price.append(priceVale); ここの部分に数量を取得する文面が必要なはずなのですが・・・ //コメントをセット $($(".list_area .listcomment").get(maxCnt)).text(product.main_list_comment); } pageNo++; //全ての商品を表示したか判定 if (parseInt($("#productscount").text()) <= $(".list_area").length) { $("#btn_more_product").hide(); } eccube.hideLoading(); } }); } </script> 間違っておりますでしょうか・・・ |
shore |
投稿日時: 2017/3/28 22:10
対応状況: −−−
|
新米 登録日: 2017/3/27 居住地: 投稿: 5 |
Re: スマートフォンの一覧表示のもっと見るでjsonにおいて在庫数量も取得したい お返事ありがとうございます。
スマートフォンテンプレートのlist.tpl内部の スクリプト部分にstokを呼び出す部分の記載が無いように思います。 <script> var pageNo = 2; var url = "<!--{$smarty.const.P_DETAIL_URLPATH}-->"; var imagePath = "<!--{$smarty.const.IMAGE_SAVE_URLPATH}-->"; var statusImagePath = "<!--{$TPL_URLPATH}-->"; function getProducts(limit) { eccube.showLoading(); var i = limit; //送信データを準備 var postData = {}; $('#form1').find(':input').each(function(){ postData[$(this).attr('name')] = $(this).val(); }); postData["mode"] = "json"; postData["pageno"] = pageNo; $.ajax({ type: "POST", data: postData, url: "<!--{$smarty.const.ROOT_URLPATH}-->products/list.php", cache: false, dataType: "json", error: function(XMLHttpRequest, textStatus, errorThrown){ alert(textStatus); eccube.hideLoading(); }, success: function(result){ var productStatus = result.productStatus; for (var product_id in result) { if (isNaN(product_id)) continue; var product = result[product_id]; var productHtml = ""; var maxCnt = $(".list_area").length - 1; var productEl = $(".list_area").get(maxCnt); productEl = $(productEl).clone(true).insertAfter(productEl); maxCnt++; //商品写真をセット $($(".list_area .listphoto img").get(maxCnt)).attr({ src: "<!--{$smarty.const.IMAGE_SAVE_URLPATH}-->" + product.main_list_image, alt: product.name }); // 商品ステータスをセット var statusAreaEl = $($(".list_area div.statusArea").get(maxCnt)); // 商品ステータスの削除 statusAreaEl.empty(); if (productStatus[product.product_id] != null) { var statusEl = '<ul class="status_icon">'; var statusCnt = productStatus[product.product_id].length; for (var k = 0; k < statusCnt; k++) { var status = productStatus[product.product_id][k]; var statusImgEl = '<li>' + status.status_name + '</li>' + "\n"; statusEl += statusImgEl; } statusEl += "</ul>"; statusAreaEl.append(statusEl); } //商品名をセット $($(".list_area a.productName").get(maxCnt)).text(product.name); $($(".list_area a.productName").get(maxCnt)).attr("href", url + product.product_id); //販売価格をセット var price = $($(".list_area span.price").get(maxCnt)); //販売価格をクリア price.empty(); var priceVale = ""; //販売価格が範囲か判定 if (product.price02_min == product.price02_max) { priceVale = product.price02_min_inctax_format + '円'; } else { priceVale = product.price02_min_inctax_format + '~' + product.price02_max_inctax_format + '円'; } price.append(priceVale); //コメントをセット $($(".list_area .listcomment").get(maxCnt)).text(product.main_list_comment); } pageNo++; //全ての商品を表示したか判定 if (parseInt($("#productscount").text()) <= $(".list_area").length) { $("#btn_more_product").hide(); } eccube.hideLoading(); } }); } </script> 販売価格 と コメントの間に stockの記述が必要ではないかと思っているのですが・・・ |
468 |
投稿日時: 2017/3/31 9:39
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: スマートフォンの一覧表示のもっと見るでjsonにおいて在庫数量も取得したい >スマートフォンテンプレートのlist.tpl内部の スクリプト部分にstokを呼び出す部分の記載が無いように思います。
>販売価格 と コメントの間に stockの記述が必要ではないかと思っているのですが・・・ 投稿いただいているとおり、 デフォルトでは、在庫をセットするスクリプトは記述されていませんので、 ご自身で追記していただく必要があります。 サーバから返却されたjsonには、在庫情報が含まれていると思いますので、 スクリプト内でproduct.stock_maxやproduct.stock_minで在庫数が取り出せると思います。 あとは追記されたtplの<p class="stock"></p>の中にappend等を使ってセットする処理を記述すれば良いと思います。
|
shore |
投稿日時: 2017/4/6 0:48
対応状況: −−−
|
新米 登録日: 2017/3/27 居住地: 投稿: 5 |
Re: スマートフォンの一覧表示のもっと見るでjsonにおいて在庫数量も取得したい shiro8様
色々と試してみたのですが、勉強不足でうまく数量を呼び出すことが出来ず・・・悩んでおります。 厚かましいお願いなのですが・・・ セット方法をご教授いただけませんでしょうか・・・ すでに業務レベルとの事でしたら、その旨ご回答いただいてもかまいません。 |
468 |
投稿日時: 2017/4/6 13:35
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: スマートフォンの一覧表示のもっと見るでjsonにおいて在庫数量も取得したい 動作確認はしていませんので、もしかしたら、エラーが出るかもしれませんが、
以下の記述を<script></script>内のコメントと販売価格をセットしている間に追記すれば良いかと思います。
|
shore |
投稿日時: 2017/4/6 23:09
対応状況: 解決済
|
新米 登録日: 2017/3/27 居住地: 投稿: 5 |
Re: スマートフォンの一覧表示のもっと見るでjsonにおいて在庫数量も取得したい shiro8様
ご回答ありがとうございます。 純粋に価格セットの文面にstokを組み込めばよかったのですね・・・ 余分な記述を入れておりました。 無事、在庫の取得ができるようになりました。 ありがとうございました! |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |