トップ  >  もしも ゲットAPI(^-^)/の使い方

インストール

  • ダウンロードしたら、config.php を開き、
/*!
 * API認証コードを設定してください
 */
define( 'AUTHORIZATION_CODE', 'API認証コードを記入して保存してください' ) ;

/*!
 * ショップIDを設定してください
 */
define( 'MOSHIMO_SHOP_ID', 'ショップIDを入力して保存してください' ) ;

/*!
 * キャッシュの有効期限(デフォルトは24時間)
 */
define( 'CASHE_LIMIT', 60 * 60 * 24 ) ;

/*!
 * 送料無料や同梱不可などの文言を設定できます
 */
define( 'FREECARRIAGE', 'こちらの商品は送料無料でお届けします!' ) ;
define( 'BUNDLE', '同梱不可' ) ;
define( 'PAYMENT_TYPE1', 'クレジット支払のみ' ) ;
define( 'PAYMENT_TYPE2', 'クレジット / 代引き' ) ;
define( 'NEWLY', '新着!' ) ;
define( 'ISHEAVYSELLER', 'ヒット実績あり!' ) ;
define( 'ISDELIVERYSAMEDAY', '平日・土曜 15時00分までのご注文で即日発送' ) ;
define( 'DELIVERYGUIDE', '営業日程度' ) ;
define( 'PREORDERFLAG', '予約販売' ) ;
define( 'SELLOUT', '申し訳ございません。こちらの商品は取り扱い終了いたしました。' ) ;
define( 'OUTOFSTOCK', '申し訳ございません。この商品は入荷待ちです。' ) ;
define( 'PRICE_FORMAT', '%s円(税込) ' ) ;
define( 'DISCOUNTRATE_FORMAT', '%s off!' ) ;
define( 'DISCOUNT_FORMAT', 'なんと、%s円割引!' ) ;
define( 'DATE_FORMAT', 'Y年m月d日' ) ;

/*!
 * 割引率を表示する下限値(%)を設定できます
 * デフォルトの状態では、割引率は 5%以上の場合のみ表示されます
 */
define( 'LOWER_LIMIT_DISCOUNTRATE', 5 ) ;

/*!
 * 新着商品などのアイコンを設定できます
 * http:// から始まるフルパスで記入してください
 */
define( 'NEW_ICON', 'images/new.png' ) ;  // 新着商品のアイコン
define( 'POP_ICON', 'images/pop.png' ) ;  // ヒット実績あり商品のアイコン
define( 'FREECARRIAGE_ICON', 'images/icon-free-shipping.gif' ) ;  // 送料無料のアイコン

/*!
 * 関連商品のオプション
 * javascript でもオプションを設定でき、javascript 側の設定が優先されます
 * GroupItemaddKey は、sannkou.htm を参考に、表示する項目のキーををコンマ( , )区切りで指定してください
 */
$option = array(
	'GroupItemAddclass'  => 'groupitem',
	'GroupItemCol'       => 4
	'GroupItemTitle'     => '関連商品',
	'GroupItemlen'       => 30,
	'GroupItemimageSize' => 'r',
	'GroupItemaddKey' => 'ShopPrice,StockStatusWord,PopIcon',
) ;
  • 'API認証コードを記入して保存してください'の部分に、ご自分のAPI認証コードを入力して保存してください
  • 'ショップIDを入力して保存してください'の部分に、ご自分のショップIDを入力して保存してください
  • また、この config.php で、キャッシュの有効期限などを設定できるようになっていますので、必要に応じて修正してください
  • メモ帳ではなく、Terapad for Windowsなどのテキストエディタを使って修正してください
mbstring の設定をしよう♪
/*!
 * mbstring の設定
 * mbstring の設定をする場合は、$mbstring_setting を  true にし、
 * $encoding に UTF-8、EUC-JP、SJIS のいずれかを入れてください
 */
$mbstring_setting = false ; ← ここを true にする
$encoding = 'UTF-8' ;    ← ここに UTF-8、EUC-JP、SJIS のいずれかを入れる
if ( $mbstring_setting ) {
	mb_language( 'Japanese' ) ;
	ini_set( 'output_buffering', 'Off' ) ;
	ini_set( 'default_charset', ( $encoding === 'SJIS' ) ? 'Shift_JIS' : $encoding ) ;
	ini_set( 'mbstring.detect_order', 'SJIS,EUC-JP,JIS,UTF-8,ASCII' ) ;
	ini_set( 'mbstring.http_input'  , 'pass' ) ;
	ini_set( 'mbstring.http_output' , 'pass' ) ;
	ini_set( 'mbstring.internal_encoding', $encoding ) ;
	ini_set( 'mbstring.substitute_character', 'none' ) ;
}
  • このアプリは、php の mbstring.internal_encoding に設定された値を利用して、文字コード変換をしています
  • このため、鯖屋さんから借りて、そのままデフォルトの状態で使ってると、文字化けしてしまう場合があります
  • 既に php.ini や .htaccess で mbstring の設定をしている人は文字化けの心配は少ないかもしれませんが、そうでない人は、ファイルをアップロードする前に、 mbstring の設定をしておきましょう
  • config.php を開くと、上記のように、mbstring の設定をできるようになっています
  • mbstring の設定をする場合は、$mbstring_setting を true にし、$encoding に UTF-8、EUC-JP、SJIS のいずれかを入れてください
  • 次に、以下の内容を、設置したいページの<HEAD>内に記載してください
<script type="text/javascript" src="http://www.example.jp/moshimo_api/lib/jquery.js"></script>
<script type="text/javascript" src="http://www.example.jp/moshimo_api/jquery.moshimo_api.js" charset="utf-8"></script>
<script type="text/javascript" src="http://www.example.jp/moshimo_api/moshimo_get_api.js" charset="utf-8"></script>
<link rel="stylesheet" href="http://www.example.jp/moshimo_api/style.css" type="text/css" media="screen" />
  • 朱書きの moshimo_get_api.js というファイルは、jQuery の使い方に慣れていない方向けのサンプルファイルです
  • jQuery を使い慣れている方は、moshimo_get_sozai.js を記載しなくてもいいかもしれません
  • また、既に jQuery を使っている方は jquery.js を記載する必要はありませんんが、このアプリは jQuery1.4 以降に追加されたメソッドを利用しています
  • 古いバージョンの jQuery をお使いの場合は、バージョンアップのうえご利用ください
  • 全てのファイルをサーバーにアップロードしてください
  • cache デレクトリのパーミッションを 777 にしてください。
  • アップロードした sample.htm をネット上で開いて閲覧してみてください
  • うまく表示されていれば、とりあえず、インストールは成功です♪

1ページにひとつの商品のデータを表示させたい場合は config.php を修正しよう♪

  • デフォルトの状態では、例えば、商品名は Name という id を持つ要素に表示されるようになっていますが、config.php を修正することで、ページ内の id や class などを自由に指定することができます
// 取得したデータを表示する要素の id や class を設定できます
$selectors = array(
    'ArticleId'          => '#ArticleId' ,            // 商品ID
    'Name'               => '#Name' ,                 // 商品名
    'Description'        => '#Description' ,          // 商品説明
    'SpecialDescription' => '#SpecialDescription' ,   // ポイント
    'Spec'               => '#Spec' ,                 // 商品スペック
    'CatchCopy'          => '#CatchCopy' ,            // キャッチコピー
    'MakerName'          => '#MakerName' ,            // メーカー名
    'ModelNumber'        => '#ModelNumber' ,          // 型番
    'Tag'                => '#Tag' ,                  // タグ
    'Newly'              => '#Newly' ,                // 新着商品
    'NewIcon'            => '#NewIcon' ,              // 新着商品のアイコン
    'IsHeavySeller'      => '#IsHeavySeller' ,        // ヒット実績あり
    'PopIcon'            => '#PopIcon' ,              // ヒット実績あり商品のアイコン
    'FreeCarriage'       => '#FreeCarriage' ,         // 送料無料
    'FreeCarriageIcon'   => '#FreeCarriageIcon' ,     // 送料無料のアイコン
    'DeliveryGuide'      => '#DeliveryGuide' ,        // 配送目安
    'PreorderPeriod'     => '#PreorderPeriod' ,       // 予約販売時期
    'CategoryName'       => '#CategoryName' ,         // カテゴリ名
    'ParentCategoryName' => '#ParentCategoryName' ,   // 親カテゴリ名
    'JanCode'            => '#JanCode' ,              // JANコード
    'Payment'            => '#Payment' ,              // 支払方法
    'Bundle'             => '#Bundle' ,               // 同梱不可
    'StartDate'          => '#StartDate' ,            // もしも入荷日付
    'FixedPrice'         => '#FixedPrice' ,           // 希望小売価格
    'ShopPrice'          => '#ShopPrice' ,            // 販売価格
    'DiscountRate'       => '#DiscountRate' ,         // 割引率
    'Discount'           => '#Discount' ,             // 割引額
    'StockStatusWord'    => '#StockStatusWord' ,      // 在庫状況
    'ItemImage_l_1'      => '#ItemImage_l_1' ,        // 商品写真1 300px × 300px
    'ItemImage_l_2'      => '#ItemImage_l_2' ,        // 商品写真2 300px × 300px
    'ItemImage_l_3'      => '#ItemImage_l_3' ,        // 商品写真3 300px × 300px
    'ItemImage_l_4'      => '#ItemImage_l_4' ,        // 商品写真4 300px × 300px
    'ItemImage_l_5'      => '#ItemImage_l_5' ,        // 商品写真5 300px × 300px
    'ItemImage_l_6'      => '#ItemImage_l_6' ,        // 商品写真6 300px × 300px
    'ItemImage_r_1'      => '#ItemImage_r_1' ,        // 商品写真1 150px × 150px
    'ItemImage_r_2'      => '#ItemImage_r_2' ,        // 商品写真2 150px × 150px
    'ItemImage_r_3'      => '#ItemImage_r_3' ,        // 商品写真3 150px × 150px
    'ItemImage_r_4'      => '#ItemImage_r_4' ,        // 商品写真4 150px × 150px
    'ItemImage_r_5'      => '#ItemImage_r_5' ,        // 商品写真5 150px × 150px
    'ItemImage_r_6'      => '#ItemImage_r_6' ,        // 商品写真6 150px × 150px
    'ItemImage_m_1'      => '#ItemImage_m_1' ,        // 商品写真1 80px × 80px
    'ItemImage_m_2'      => '#ItemImage_m_2' ,        // 商品写真2 80px × 80px
    'ItemImage_m_3'      => '#ItemImage_m_3' ,        // 商品写真3 80px × 80px
    'ItemImage_m_4'      => '#ItemImage_m_4' ,        // 商品写真4 80px × 80px
    'ItemImage_m_5'      => '#ItemImage_m_5' ,        // 商品写真5 80px × 80px
    'ItemImage_m_6'      => '#ItemImage_m_6' ,        // 商品写真6 80px × 80px
    'ItemImage_s_1'      => '#ItemImage_s_1' ,        // 商品写真1 58px × 58px
    'ItemImage_s_2'      => '#ItemImage_s_2' ,        // 商品写真2 58px × 58px
    'ItemImage_s_3'      => '#ItemImage_s_3' ,        // 商品写真3 58px × 58px
    'ItemImage_s_4'      => '#ItemImage_s_4' ,        // 商品写真4 58px × 58px
    'ItemImage_s_5'      => '#ItemImage_s_5' ,        // 商品写真5 58px × 58px
    'ItemImage_s_6'      => '#ItemImage_s_6' ,        // 商品写真6 58px × 58px
    'GroupItem'          => '#GroupItem' ,            // 関連商品
    'Material'           => '#moshimo_sozai' ,        // 素材 要 もしも ゲット素材(^-^)/のインスール
) ;
  • 例えば、item_zaio という id を持つ要素に在庫状況を表示させたい場合は
	'StockStatusWord'    => '#item_zaio' ,      // 在庫状況
  • 朱書き部分にあるように、id名 の頭にシャープ(#)を付けて指定します
  • また、zaio という class を持つ要素に在庫状況を表示させたい場合は
	'StockStatusWord'    => '.zaio' ,      // 在庫状況
  • こんな感じで class名 の頭にドット(.)を付けて指定します
  • 設定が終わったら、ページの好きな場所に
<span id="item_zaio"></span>
  • というように、config.php で設定した id や class を使って記載すれば、在庫状況を表示できるはずです
  • 自分の好みに併せて修正して、使いやすくしてくださいね♪
  • なお、config.php での設定は、カートがある販売ページで使うことを前提にしており、ページ内から、
http://www.moshimo.com/cart/add?shop_id=ショップID&article_id=商品ID 番号

1ページに複数の商品のデータを表示させたい場合は moshimo_get_api.js を修正しよう♪

  • 1ページに複数の商品のデータを表示させるに場合は、表示せたい場所または親要素(divタグやテーブルレイアウトの場合の tdタグなど)の id属性で商品ID 番号を指定する必要があります
  • たとえば、在庫状況を表示させたい場合は、こんな感じにしといて
<span class="StockStatusWord" id="Item_162039"></span>
  • また、テーブルレイアウトで、複数の項目を表示させたい場合は、こんな感じ
<table>
    <tbody>
        <tr>
            <td id="Item_162039">
                <div>
                    <a href="http://www.moshimo.com/article/396675/162039">
                        <span class="ItemImage_r_1"></span>
                    </a>
                </div>
                <div>
                    <a href="http://www.moshimo.com/article/396675/162039">
                        <span class="Name"></span>
                    </a>
                </div>
                <div>
                    <span class="ShopPrice"></span>円(税込)
                </div>
                <div>
                    <span class="DiscountRate"></span>
                </div>
                <div>
                    <span class="PopIcon"></span>
                </div>
                <div>
                    <span class="FreeCarriageIcon"></span>
                </div>
            </td>
        </tr>
    </tbody>
</table>
  • 朱書き部分の Item_162039 のように、id属性で商品ID 番号を指定し、データを表示せたい場所に StockStatusWord などの class属性を付けています
  • デフォルトの状態では、例えば、商品名は Name という class を持つ要素に表示されるようになっていますが、moshimo_get_api.js を自分の好みに併せて修正して、使いやすくしてください♪
$.getItemsApi({
    'ArticleId'          : '.ArticleId' ,            // 商品ID
    'Name'               : '.Name' ,                 // 商品名
    'Description'        : '.Description' ,          // 商品説明
    'SpecialDescription' : '.SpecialDescription' ,   // ポイント
    'Spec'               : '.Spec' ,                 // 商品スペック
    'CatchCopy'          : '.CatchCopy' ,            // キャッチコピー
    'MakerName'          : '.MakerName' ,            // メーカー名
    'ModelNumber'        : '.ModelNumber' ,          // 型番
    'Tag'                : '.Tag' ,                  // タグ
    'Newly'              : '.Newly' ,                // 新着商品
    'NewIcon'            : '.NewIcon' ,              // 新着商品のアイコン
    'IsHeavySeller'      : '.IsHeavySeller' ,        // ヒット実績あり
    'PopIcon'            : '.PopIcon' ,              // ヒット実績あり商品のアイコン
    'FreeCarriage'       : '.FreeCarriage' ,         // 送料無料
    'FreeCarriageIcon'   : '.FreeCarriageIcon' ,     // 送料無料のアイコン
    'DeliveryGuide'      : '.DeliveryGuide' ,        // 配送目安
    'PreorderPeriod'     : '.PreorderPeriod' ,       // 予約販売時期
    'CategoryName'       : '.CategoryName' ,         // カテゴリ名
    'ParentCategoryName' : '.ParentCategoryName' ,   // 親カテゴリ名
    'JanCode'            : '.JanCode' ,              // JANコード
    'Payment'            : '.Payment' ,              // 支払方法
    'Bundle'             : '.Bundle' ,               // 同梱不可
    'StartDate'          : '.StartDate' ,            // もしも入荷日付
    'FixedPrice'         : '.FixedPrice' ,           // 希望小売価格
    'ShopPrice'          : '.ShopPrice' ,            // 販売価格
    'DiscountRate'       : '.DiscountRate' ,         // 割引率
    'Discount'           : '.Discount' ,             // 割引額
    'StockStatusWord'    : '.StockStatusWord' ,      // 在庫状況
    'ItemImage_l_1'      : '.ItemImage_l_1' ,        // 商品写真1 300px × 300px
    'ItemImage_l_2'      : '.ItemImage_l_2' ,        // 商品写真2 300px × 300px
    'ItemImage_l_3'      : '.ItemImage_l_3' ,        // 商品写真3 300px × 300px
    'ItemImage_l_4'      : '.ItemImage_l_4' ,        // 商品写真4 300px × 300px
    'ItemImage_l_5'      : '.ItemImage_l_5' ,        // 商品写真5 300px × 300px
    'ItemImage_l_6'      : '.ItemImage_l_6' ,        // 商品写真6 300px × 300px
    'ItemImage_r_1'      : '.ItemImage_r_1' ,        // 商品写真1 150px × 150px
    'ItemImage_r_2'      : '.ItemImage_r_2' ,        // 商品写真2 150px × 150px
    'ItemImage_r_3'      : '.ItemImage_r_3' ,        // 商品写真3 150px × 150px
    'ItemImage_r_4'      : '.ItemImage_r_4' ,        // 商品写真4 150px × 150px
    'ItemImage_r_5'      : '.ItemImage_r_5' ,        // 商品写真5 150px × 150px
    'ItemImage_r_6'      : '.ItemImage_r_6' ,        // 商品写真6 150px × 150px
    'ItemImage_m_1'      : '.ItemImage_m_1' ,        // 商品写真1 80px × 80px
    'ItemImage_m_2'      : '.ItemImage_m_2' ,        // 商品写真2 80px × 80px
    'ItemImage_m_3'      : '.ItemImage_m_3' ,        // 商品写真3 80px × 80px
    'ItemImage_m_4'      : '.ItemImage_m_4' ,        // 商品写真4 80px × 80px
    'ItemImage_m_5'      : '.ItemImage_m_5' ,        // 商品写真5 80px × 80px
    'ItemImage_m_6'      : '.ItemImage_m_6' ,        // 商品写真6 80px × 80px
    'ItemImage_s_1'      : '.ItemImage_s_1' ,        // 商品写真1 58px × 58px
    'ItemImage_s_2'      : '.ItemImage_s_2' ,        // 商品写真2 58px × 58px
    'ItemImage_s_3'      : '.ItemImage_s_3' ,        // 商品写真3 58px × 58px
    'ItemImage_s_4'      : '.ItemImage_s_4' ,        // 商品写真4 58px × 58px
    'ItemImage_s_5'      : '.ItemImage_s_5' ,        // 商品写真5 58px × 58px
    'ItemImage_s_6'      : '.ItemImage_s_6' ,        // 商品写真6 58px × 58px
    'GroupItem'          : '.GroupItem' ,            // 関連商品
    'Material'           : '.moshimo_sozai'          // 素材 要 もしも ゲット素材(^-^)/のインスール
});
  • 例えば、zaio という class を持つ要素に在庫状況を表示させたい場合は
	'StockStatusWord'    : '.zaio' ,      // 在庫状況
  • こんな感じで class名 の頭にドット(.)を付けて指定します

自分で javascript のコードを書いて、使いたいという方へ

  • 例えば、teika という id を持つ要素に、希望小売価格を表示させたい場合は、
var ArticleId = $.getArticleId() ;
$( '#teika' ).getMoshimoApi( ArticleId, 'FixedPrice' ) ;
  • これで、希望小売価格が自動的に表示されるようになります・・・オープンプライスの商品は何も表示されませんけど♪
  • なお、$.getArticleId() は、販売ページから、
http://www.moshimo.com/cart/add?shop_id=ショップID&article_id=商品ID 番号
  • という url を探し出し、商品ID 番号を返します
  • なんらかの事情で商品ID 番号を取得できない場合や、直接指定したい場合は、
$( '#teika' ).getMoshimoApi( 380143, 'FixedPrice' ) ;
  • こんな感じで商品ID 番号を直接指定したり、ページの好きな場所に
<span class="teika" id="Item_162039"></span>
  • というように id に id名_商品ID 番号という形式で記載した上で、javascript で、
$( '.teika' ).getMoshimoApi( 'FixedPrice' ) ;
  • という使い方もできます
  • さらに、親要素(divタグやテーブルレイアウトの場合の tdタグなど)の id属性で商品ID 番号を指定することも可能です
  • たとえば、テーブルレイアウトの場合、こんな感じにしといて
<table>
    <tbody>
        <tr>
            <td id="Item_162039">
                <div>
                    <a href="http://www.moshimo.com/article/396675/162039">
                        <span class="ItemImage_r_1"></span>
                    </a>
                </div>
                <div>
                    <a href="http://www.moshimo.com/article/396675/162039">
                        <span class="Name"></span>
                    </a>
                </div>
                <div>
                    <span class="ShopPrice"></span>円(税込)
                </div>
                <div>
                    <span class="DiscountRate"></span>
                </div>
                <div>
                    <span class="PopIcon"></span>
                </div>
                <div>
                    <span class="FreeCarriageIcon"></span>
                </div>
            </td>
        </tr>
    </tbody>
</table>
  • javascript のコードはこんな感じ
	$( '.Name' ).getMoshimoApi( 'Name' ) ;
	$( '.ItemImage_r_1' ).getMoshimoApi( 'ItemImage_r_1' ) ;
	$( '.ShopPrice' ).getMoshimoApi( 'ShopPrice' ) ;
	$( '.DiscountRate' ).getMoshimoApi( 'DiscountRate' ) ;
	$( '.PopIcon' ).getMoshimoApi( 'PopIcon' ) ;
	$( '.FreeCarriageIcon' ).getMoshimoApi( 'FreeCarriageIcon' ) ;
  • また、$.getItemsApi({ key : selector }) を使って、複数の項目をまとめて指定することも可能です
$.getItemsApi({ 'CatchCopy' : '.Catch' ,'StockStatusWord' : '.Stock' });
  • この例では、Catch という class を持つ要素にキャッチコピーを表示させ、Stock という class を持つ要素に在庫状況を表示させています
  • なお、$.getItemsApi({ key : selector }) は、表示せたい場所または親要素の id属性で商品ID 番号を指定した場合にのみ、正常に動作します

オプション使用例 1

var ArticleId = $.getArticleId() ;
$( '#IsHeavySeller' ).getMoshimoApi( ArticleId, 'IsHeavySeller', function( el, value ){
	if ( value = 'ヒット実績あり!' ) {
		el.css( 'border', '3px solid red' ) ;
		alert( 'ヒット実績あり! おすすめですよ♪' ) ;
	}
}, { addclass: 'IsHeavySeller',	duration: 1500 });
  • この例では、データの表示が完了した時に実行されるコールバック関数を登録し、ヒット実績がある商品の場合に、赤い border を付け、alert を実行しています
  • また、addclass で、指定した要素に適用する classを設定できます デフォルトは指定なし
  • duration の数字を大きくすると、データがフェードインして表示されるようになります デフォルトは 0

オプション使用例 2

var ArticleId = $j.getArticleId() ;
$( '#stockstatus' ).getMoshimoApi( ArticleId, 'StockStatus', function( el, value ){
	switch( value ) {
		case '0':
			var img = '<img src="在庫切れの画像url" alt="在庫切れ">' ;
			break;
		case '1':
			var img = '<img src="在庫わずかの画像url" alt="在庫わずか">' ;
			break;
		case '2':
			var img = '<img src="在庫ありの画像url" alt="在庫あり">' ;
			break;
		case '3':
			var img = '<img src="在庫豊富の画像url" alt="在庫豊富">' ;
			break;
	}
	el.html( img ) ;
}, { getValue: true });
  • この例では、StockStatus の値を取得して、在庫状況をアイコン画像で表示させています

もしも API 仕様書 ver 1.08 p8 から抜粋

パラメータ(物理名称) 概要(論理名称) 必須 備考
StockStatus 在庫状況コード 0 :在庫切れ
1 :在庫わずか
2 :在庫あり
3 :在庫豊富
  • 仕様書にあるように、StockStatus には 0〜 3 の数字が入っていますので、これを利用してアイコン画像を表示させているわけですね
  • 仕様書に記載されているパラメータは、おおむねそまま使えますので、いろいろ試してくださいね♪
  • この例のように、コールバック関数を使って、文字や画像を表示させる場合は、getValue というオプションを true にして、お使いください

オプション使用例 3

var ArticleId = $j.getArticleId() ;
$( '#GroupItem' ).getMoshimoApi( ArticleId, 'GroupItem', {
	GroupItemAddclass: 'groupitem',
	GroupItemCol:  4,
	GroupItemTitle: '関連商品',
	GroupItemlen:  30,
	GroupItemimageSize:  'r',
	GroupItemaddKey: 'ShopPrice,StockStatusWord,PopIcon'
});
  • これは、関連商品のオプションをjavascript で設定した場合のサンプルです
  • 関連商品のオプションは、config.php でも設定できますが、javascript 側の設定が優先されます
  • GroupItemAddclass で、関連商品に適用する classを設定
  • GroupItemCol で、関連商品の列数を数字で指定
  • GroupItemTitle で、関連商品のタイトルを指定
  • GroupItemlen で、商品名の文字数を指定 0 にすると制限なし
  • GroupItemimageSizeは "s, m, r, l" のいずれかを指定
  • GroupItemaddKey で、表示する項目のキーををコンマ( , )区切りで指定 sannkou.htm を参考に、表示する項目のキーををコンマ( , )区切りで指定してください
  • なお、このサンプルを使う場合、config.php での設定が不要になりますので、
 // 'GroupItem' => '#GroupItem' , // 関連商品
  • 朱書きの通り、GroupItem の行をコメントアウトしてから試してください

オプション使用例 4

var ArticleId = $j.getArticleId() ;
$( '#Review' ).getMoshimoApi( ArticleId, 'Review', function( el, value ){
    var ShopId = ショップIDを入力してください ;
    var post = '<a id="ReviewPost" href="http://www.moshimo.com/articles/review/post?article_id=' + ArticleId + 
               '&amp;shop_id=' + ShopId + '" target="_blank">投稿はこちら</a>' ;
    switch ( value !== '' )  {
        case true :
            var html = value ;
            el.after( '<div>' + post + '</div>' ) ;
            break;
        case false:
            var html = 'この商品に関する投稿はまだありません (' + post + ')' ;
            el.addClass( 'red bold' ) ;
            break;
    }
    el.html( html ) ;
}, { password: password , ajaxUrl: ajaxUrl , getValue: true });
  • これは、お客様の感想を javascript でカスタマイズした場合のサンプルです
  • この例では、感想データが空の場合に、「この商品に関する投稿はまだありません (投稿はこちら)」と表示するようにカスタマイズしています
  • サンプルですので、このコードを参考に、朱書きの red bold の部分を修正して、好きな class を適用し、スタイルシートでデザインしたり、#ReviewPost を画像リンクにするなど、自由にいじってください
  • なお、このサンプルを使う場合、config.php での設定が不要になりますので、
 // 'Review' => '#Review' , // お客様の感想
  • 朱書きの通り、Review の行をコメントアウトしてから試してください

ランキングも表示できるんだよ♪

  • $( selector ).getMoshimoRanking() を利用すると、ランキングを表示することができます
$( '#Ranking' ).getMoshimoRanking( { category : '01' });
  • これは、Ranking という id を持つ要素にランキングを表示させた例で、category でカテゴリーコードを指定しています
  • サンプルファイル の moshimo_get_api.js には、上記のコードが記載されていますので、自由に修正して使ってください
  • カテゴリーコードはこちらのページで確認できます←クリックしてね♪
  • 検索ワードやタグを指定することも可能です
$( '#Ranking' ).getMoshimoRanking( { word : 'お歳暮' });
$( '#Ranking' ).getMoshimoRanking( { tag : '掃除機' });
  • なお、もしもAPI の仕様上の制限のため、カテゴリーコード、検索ワード、タグのいずれかを指定しないと、動作しないようになっています
  • また、version 1.10 から、ページの好きな場所に、class属性を使ってカテゴリ、検索ワード、タグを指定できるようになりました
<div id="Ranking" class="category_01"></div> ← これはカテゴリーコードを指定したサンプル
<div id="Ranking" class="word_自転車"></div> ← これは検索ワードを指定したサンプル
<div id="Ranking" class="tag_掃除機"></div> ← これはタグを指定したサンプル
<div id="Ranking" class="category_01 word_訳あり"></div> ←これはカテゴリーコードと検索ワードを指定したサンプル
  • このように、class属性を使って検索条件を指定した場合、javascriptのコードは、
$( '#Ranking' ).getMoshimoRanking();
  • としてください

getMoshimoRankingのオプション

$( '#Ranking' ).getMoshimoRanking({
    word                           : 'お歳暮',
    tag                            : '掃除機',
    category                       : '01,',
    title                          : '%s のランキングTOP5',
    len                            : 30,
    imageSize                      : 'm',
    addkey                         : 'ShopPrice,StockStatusWord,PopIcon',
    addclass                       : 'ranking',
    col                            : 5,
    duration                       : 0,
    preShow:function( el ){
        alert( 'ランキング表示するね ちょっと待ってね♪' ) ;
    },
    onAfter:function( el ){
        alert( 'やった ランキング表示できたよ♪' ) ;
    }
});
  • title で、ランキングのタイトルを指定します %s にはカテゴリー名、検索ワード、タグのいずれかが入ります
  • len で、表示する商品名の文字数を指定します 0 にすると制限なし デフォルトは 30
  • imageSizeは "s, m, r, l" のいずれかを指定します デフォルトは m
コード 画像サイズ
s 58px × 58px
m 80px × 80px
r 150px × 150px
l 300px × 300px
  • addclass で、ランキングに適用する classを設定できます デフォルトは ranking
  • addkey で、ランキングに表示する項目のキーををコンマ( , )区切りで指定できます sannkou.htm を参考に、表示する項目のキーををコンマ( , )区切りで指定してください
  • col で、ランキングの列数を数字で指定 デフォルトは 5
  • duration の数字を大きくすると、ランキングがフェードインして表示されるようになります デフォルトは 0
  • preShow で、ランキングが表示される直前に実行されるコールバック関数を登録できます
  • onAfter で、ランキングの表示が完了した時に実行されるコールバック関数を登録できます
  • なお、コールバック関数以外のオプションは、config.php でも設定できますが、javascript 側の設定が優先されます

MoshimoSearch を使って自由に検索条件を指定して商品の一覧を表示しよう♪

  • $( selector ).MoshimoSearch() を利用すると、自由に検索条件を指定して商品の一覧を表示することができます
$( '#Search' ).MoshimoSearch( { category : '01' });
  • これは、Search という id を持つ要素に商品の一覧を表示させた例で、category でカテゴリーコードを指定しています
  • サンプルファイル の moshimo_get_api.js には、上記のコードが記載されていますので、自由に修正して使ってください
  • カテゴリーコードはこちらのページで確認できます←クリックしてね♪
  • 検索ワードやタグを指定することも可能です
$( '#Search' ).MoshimoSearch( { word : 'お歳暮' });
$( '#Search' ).MoshimoSearch( { tag : '掃除機' });
  • なお、もしもAPI の仕様上の制限のため、カテゴリーコード、検索ワード、タグのいずれかを指定しないと、動作しないようになっています
  • デフォルトの状態では、在庫がある新着商品を 10件表示する設定になっていますが、config.php で自由に検索条件を指定することができます
  • また、version 1.10 から、ページの好きな場所に、class属性を使ってカテゴリ、検索ワード、タグを指定できるようになりました
<div id="Search" class="category_01"></div> ← これはカテゴリーコードを指定したサンプル
<div id="Search" class="word_自転車"></div> ← これは検索ワードを指定したサンプル
<div id="Search" class="tag_掃除機"></div> ← これはタグを指定したサンプル
<div id="Search" class="category_01 word_訳あり"></div> ←これはカテゴリーコードと検索ワードを指定したサンプル
  • このように、class属性を使って検索条件を指定した場合、javascriptのコードは、
$( '#Search' ).MoshimoSearch();
  • としてください
/*!
 * MoshimoSearchのオプション
 * javascript でもオプションを設定でき、javascript 側の設定が優先されます
 * SEARCH_ADDKEY は、sannkou.htm を参考に、表示する項目のキーををコンマ( , )区切りで指定してください
 */
define( 'SEARCH_LIMIT', 12 ) ;
define( 'SEARCH_TITLE', '%s の新着商品' ) ;
define( 'SEARCH_LEN', 30 ) ;
define( 'SEARCH_IMAGESIZE', 'm' ) ;
define( 'SEARCH_ADDKEY', 'ShopPrice,StockStatusWord,PopIcon' ) ;
define( 'SEARCH_ADDCLASS', 'search' ) ;
define( 'SEARCH_COL', 5 ) ;
define( 'SEARCH_DURATION', 0 ) ;
/*!
 * MoshimoSearchの並び順
 * 設定可能な値:
 * newly                 :新着順
 * word                  :キーワード順
 * profit_price_a        :標準利益額昇順
 * profit_price_d        :標準利益額降順
 * profit_rate_a         :標準利益率昇順
 * profit_rate_d         :標準利益率降順
 * recommendation_price_a:推奨販売価格昇順
 * recommendation_price_d:推奨販売価格降順
 * fixed_price_a         :希望小売価格昇順
 * fixed_price_d         :希望小売価格降順
 */
define( 'SEARCH_SORT_ORDER', 'newly' ) ;
/*!
 * MoshimoSearchのパラメータ
 */
$search_parameter = array(
	'is_newly'                      => 0,
	'is_salable'                    => 0,
	'is_delivery_sameday'           => 0,
	'is_free_shipping'              => 0,
	'stock_status'                  => 0,
	'exists_stock'                  => 1,
	'fixed_price_from'              => 0,
	'fixed_price_to'                => 0,
	'default_profit_price_from'     => 0,
	'default_profit_price_to'       => 0,
	'default_profit_rate_from'      => 0,
	'default_profit_rate_to'        => 0,
	'recommended_sales_price_from'  => 0,
	'recommended_sales_price_to'    => 0,
	'minimum_price_from'            => 0,
	'minimum_price_to'              => 0,
	'wholesale_price_from'          => 0,
	'wholesale_price_to'            => 0,
	'has_shop_price'                => '',
	'field'                         => '',
	'image_count_from'              => 0,
	'image_count_to'                => 0,
	'jan_code'                      => '',
	'payment_type'                  => 0,
	'start_date_from'               => '',
	'start_date_to'                 => '',
) ;
  • SEARCH_LIMIT で、表示件数を指定します デフォルトは 12
  • SEARCH_TITLE で、タイトルを指定します %s にはカテゴリー名、検索ワード、タグのいずれかが入ります
  • SEARCH_LEN で、表示する商品名の文字数を指定します 0 にすると制限なし デフォルトは 30
  • SEARCH_IMAGESIZEは "s, m, r, l" のいずれかを指定します デフォルトは m
コード 画像サイズ
s 58px × 58px
m 80px × 80px
r 150px × 150px
l 300px × 300px
  • SEARCH_ADDKEY で、表示する項目のキーををコンマ( , )区切りで指定できます sannkou.htm を参考に、表示する項目のキーををコンマ( , )区切りで指定してください
  • SEARCH_ADDCLASS で、適用する classを設定できます デフォルトは search
  • SEARCH_COL で、列数を数字で指定 デフォルトは 5
  • SEARCH_DURATION の数字を大きくすると、フェードインして表示されるようになります デフォルトは 0
  • SEARCH_SORT_ORDER で、並び順を指定できます デフォルトは newly
  • $search_parameter で、自由に検索条件を指定することができます
  • MoshimoSearchのオプションは、javascript でもオプションを設定でき、javascript 側の設定が優先されます

MoshimoSearchのオプション

$( '#Search' ).MoshimoSearch({
	word                          : 'お歳暮',
	tag                           : '掃除機',
	category                      : '01,',
	sortorder                     : 'newly',
	is_newly                      :  0,
	is_salable                    :  0,
	is_delivery_sameday           :  0,
	is_free_shipping              :  0,
	stock_status                  :  0,
	exists_stock                  :  1,
	fixed_price_from              :  0,
	fixed_price_to                :  0,
	default_profit_price_from     :  0,
	default_profit_price_to       :  0,
	default_profit_rate_from      :  0,
	default_profit_rate_to        :  0,
	recommended_sales_price_from  :  0,
	recommended_sales_price_to    :  0,
	minimum_price_from            :  0,
	minimum_price_to              :  0,
	wholesale_price_from          :  0,
	wholesale_price_to            :  0,
	has_shop_price                :  '',
	field                         :  '',
	image_count_from              :  0,
	image_count_to                :  0,
	jan_code                      :  '',
	payment_type                  :  0,
	start_date_from               :  '',
	start_date_to                 :  '',
	title                         : '%s の新着商品',
	len                           : 30,
	imageSize                     : 'm',
	addkey                        : 'ShopPrice,StockStatusWord,PopIcon',
	addclass                      : 'search',
	col                           : 5,
	duration                      : 0,
	preShow:function( el ){
		alert( '新着商品表示するね ちょっと待ってね♪' ) ;
	},
	onAfter:function( el ){
		alert( 'やった 新着商品表示できたよ♪' ) ;
	}
});

php が動作しないサーバーでも使っちゃおう♪

  • version 0.99 から、クロスドメインに対応しました
  • これにより、php が動かないサイトでも、php を他のサーバーで実行させることで、利用可能になりますた(^-^)/
  • php が動作しないサーバーで利用する場合は、まず php が動作するサーバーにアップロードした config.php で、パスワード等を設定する必要があります
/*!
 * クロスドメインでの実行を許可する場合のパスワード
 * クロスドメインでの実行を許可しない場合は空欄にしてください
 */
define( 'JSONP_PASSWORD', '任意のパスワード' ) ;

/*!
 * クロスドメインでの実行を許可するホスト名をコンマ( , )区切りで指定してください
 * 例 define( 'JSONP_CHECK_HOST', 'example.com,example.net' ) ;
 * クロスドメインでの実行を許可しない場合は空欄にしてください
 */
define( 'JSONP_CHECK_HOST', 'example.com,example.net' ) ;
  • JSONP_CHECK_HOST には php が動作しないサーバーのホスト名をコンマ( , )区切りで記入します
  • config.php の設定後、php が動作しないサーバー用に、moshimo_get_api.js を次のように修正します
var password = 'パスワード' ;
var ajaxUrl = 'http://www.example.jp/moshimo_api/' ;
  • password には config.php で設定したパスワードをそのまま記入、ajaxUrl には php が動作するサーバー側の url( config.php があるディレクトリまでの url )を記入します
  • 次に、以下の内容を、設置したいページの<HEAD>内に記載してください
<script type="text/javascript" src="http://www.example.jp/moshimo_api/lib/jquery.js"></script>
<script type="text/javascript" src="http://www.example.jp/moshimo_api/jquery.moshimo_api.js" charset="utf-8"></script>
<script type="text/javascript" src="http://www.example.jp/moshimo_api/moshimo_get_api.js" charset="utf-8"></script>
<link rel="stylesheet" href="http://www.example.jp/moshimo_api/style.css" type="text/css" media="screen" />
  • 修正が済んだら、php が動作しないサーバーに、libディレクトリ、jquery.moshimo_api.js、moshimo_get_api.js、style.css、sample.htm のみをアップロード( php ファイルはアップロードする必要はありませんん )
  • アップロードした sample.htm をネット上で開いて閲覧してみてください
  • うまく表示されていれば、インストールは成功です♪

もしも ゲット素材(^-^)/と併用する場合について

  • もしも ゲット素材(^-^)/をインストールしている場合、もしも ゲットAPI(^-^)/側の指定で、素材を表示することができます
  • ただし、<HEAD>内には jquery.get_sozai.js の後に jquery.moshimo_api.js を記載してください
  • また、ゲット素材(^-^)/同梱の moshimo_get_sozai.js は不要になりますので、
<script type="text/javascript" src="http://www.example.jp/get_sozai/lib/jquery.js"></script>
<script type="text/javascript" src="http://www.example.jp/get_sozai/jquery.get_sozai.js"></script>
<script type="text/javascript" src="http://www.example.jp/get_sozai/moshimo_get_sozai.js"></script>
<link rel="stylesheet" href="http://www.example.jp/get_sozai/style.css" type="text/css" media="screen" />
  • 朱書き部分は外して、ご利用ください
  • なお、クロスドメインで利用する場合、ゲット素材(^-^)/ version 0.93以降が必要になります

おやぁ、ランキングと MoshimoSearch のオプションを変更しても反映されないよ('A`)

  • このアプリは、もしものサーバーへの過度な負荷を避けるため、取得したデータをキャシュとして保存しています
  • このため、ランキングと MoshimoSearch のオプションを変更してもリアルタイムには反映されず、キャシュに保存されたデータを読み出す場合があります
  • このような場合で、すぐに動作確認したい時は、version 0.96 以降では、config.php で TEST_MODE を 1 にして試してください
  • version 0.95 以前をお使いの場合は、cacheディレクトリのキャシュを削除して、試してください
  • なお、ランキングのキャシュは頭に ranking_が付いたファイル名で保存され、MoshimoSearchは頭に search_が付いたファイル名で保存されています

おやぁ、動作しないよ('A`)

  • version 0.96以降では、cacheディレクトリの response.log に、もしも APIへアクセスした際のステータスコード等が保存されています
  • このファイルの内容を確認すれば、動作しない原因が分かるかもしれません
380091,200,OK ← 個別の商品データについては 商品ID番号,ステータスコード,概要 の形式で保存
ranking,200,OK ← ランキングでは ranking,ステータスコード,概要 の形式で保存
search,200,OK ← MoshimoSearchでは search,ステータスコード,概要 の形式で保存
  • ステータスコードの概要等については 次の表を参考にしてください
コード 概要 説明
200 OK リクエストに成功した場合
400 Bad Request リクエストパラメータが不正である場合
401 Unauthorized 認証に失敗した場合
403 Forbidden 認証コードが凍結状態(※)であるか、権限がないメソッドにリクエストした場合
※ リクエストが一定数を超えた場合、1分程度認証コードが凍結されます。
404 Not Found 存在しないメソッドにリクエストした場合
503 Service Unavailable 処理がタイムアウトした場合
  • ステータスコードが 401 の場合、config.php を開いて、API認証コードの設定に誤りがないか確認してください
  • ステータスコードが 403 または 503 の場合は、しばらく時間をおいてから動作確認してください
  • response.log というファイル自体が無い場合は、インストールがうまく出来ていない可能性がありますので、ページの<HEAD>内に記載したパス等に誤りがないか確認してください
  • response.log を確認しても解決しない場合は、ページ下側にあるコメント欄で質問していただければ、分かる範囲内で回答しますが・・・
  • 質問の際には・・・
  • phpとブラウザのバージョン
  • アプリ同梱のsample.htmでは動作するかどうか
  • cacheディレクトリに response.log やキャッシュファイルが出来ているかどうか
  • config.phpで設定した id や class を記載しているか
  • 商品ID番号 を記載しているか
  • Firefoxのエラーコンソールなどでエラーが出ていないかどうか
  • 等、可能な範囲で結構ですから、情報を記載するようにしてください
プリンタ用画面
投票数:14 平均点:9.29
前
もしも ゲットAPI (^-^)/
カテゴリートップ
TOP
次
もしも ゲットAPI(^-^)/のライセンス・利用規約
  • コメント欄において、当サイトまたは第三者に対し、誹謗中傷、その他の不利益を与える行為があったため、特定ホストまたは IP アドレスからの投稿を制限しております

新しくコメントをつける

題名
ゲスト名   :
投稿本文
より詳細なコメント入力フォームへ

コメント一覧

goodsmore  投稿日時 2015/7/8 20:28 | 最終変更

引用:
ゲストさんは書きました:
クロスオリジンリクエストをブロック: 同一生成元ポリシーにより、http://localhost/moshimo_api/ajax_load.php?id=102779 にあるリモートリソースの読み込みを拒否します。リソースを同一ドメインに移動するか、CORS を有効にすると解決できます。

ブラウザが、何らかの理由で、ブラウザがクロスドメインアクセスであると判断しているようですね

http://dev.classmethod.jp/etc/about-cors/

このサイトで、詳しく解説されていますが

・プロトコルが異なる(httpとhttpsも異なると判定される)
・ホスト名が異なる
・(ポート番号が明示されている場合)ポート番号が異なる

場合に、クロスドメインであると判断する場合があります

例えば、XAMPP でホストを http://localhost:8080/ と設定していて、src 属性では http://localhost:8081/ と設定していた場合には、クロスドメインと見なされ、エラーが可能性はあります

jquery.moshimo_api.js をエディタで開き、getMoshimoApi: function( params ) という行を探して、

var option = $.extend( {},defaultOption( 'api' ), o ) ;
var baseUrl = option.ajaxUrl || base_url() ;
alert( baseUrl ) ;

朱書き部分を追記した上で、アクセスした場合に、ポップアップで何が表示されますでしょうか?

ゲスト   投稿日時 2015/7/8 15:39

何度も申し訳御座いません。
コンソールを再度確認したらエラーが出ておりました。
お手数ですがよろしくお願いいたします。

クロスオリジンリクエストをブロック: 同一生成元ポリシーにより、http://localhost/moshimo_api/ajax_load.php?id=102779 にあるリモートリソースの読み込みを拒否します。リソースを同一ドメインに移動するか、CORS を有効にすると解決できます。

クロスオリジンリクエストをブロック: 同一生成元ポリシーにより、http://localhost/moshimo_api/ajax_load.php?id=1066641 にあるリモートリソースの読み込みを拒否します。リソースを同一ドメインに移動するか、CORS を有効にすると解決できます。

クロスオリジンリクエストをブロック: 同一生成元ポリシーにより、http://localhost/moshimo_api/ajax_load.php?type=ranking&category=01 にあるリモートリソースの読み込みを拒否します。リソースを同一ドメインに移動するか、CORS を有効にすると解決できます。

クロスオリジンリクエストをブロック: 同一生成元ポリシーにより、http://localhost/moshimo_api/ajax_load.php?type=search&category=01 にあるリモートリソースの読み込みを拒否します。リソースを同一ドメインに移動するか、CORS を有効にすると解決できます。

ゲスト   投稿日時 2015/7/8 15:21

ご多忙の中ご返答頂きありがとうございます
お手数ですがよろしくお願いいたします。

■src 属性や href属性を http:// から始まるフルパスで修正すると、どうなりますでしょうか?

フルパスに変えてもなにも変わりませんでした・・

■また、config.php に「API認証コード」や「ショップID」は設定していますか?

config.phpには 「API認証コード」と「ショップID」は書き換えております


goodsmore  投稿日時 2015/7/7 20:02 | 最終変更

引用:
ゲストさんは書きました:
■アプリ同梱のsample.htmでは動作するかどうか
sample.htmに標準で記載されてるものだけ表示されます
価格がいくらかとは表示されません

■cacheディレクトリについて
response.logのファイルは出来ておりません

アプリがまったく動作していないように見えますね

sample.htm では、

<script type="text/javascript" src="lib/jquery.js"></script>
<script type="text/javascript" src="jquery.moshimo_api.js" charset="utf-8"></script>
<script type="text/javascript" src="moshimo_get_api.js" charset="utf-8"></script>
<link rel="stylesheet" href="style.css" type="text/css" media="screen" />

というように相対パスで記載していますが、src 属性や href属性を http:// から始まるフルパスで修正すると、どうなりますでしょうか?

また、config.php に「API認証コード」や「ショップID」は設定していますか?

ゲスト   投稿日時 2015/7/7 3:07

ご多忙の中ご返答頂きありがとうございます
お手数ですがよろしくお願いいたします。

■phpとブラウザのバージョン
Firefox 37.0.2
PHP version: 5.5.9

■アプリ同梱のsample.htmでは動作するかどうか
sample.htmに標準で記載されてるものだけ表示されます
価格がいくらかとは表示されません

■cacheディレクトリについて
response.logのファイルは出来ておりません

■商品ページに、商品ID番号 を記載しているか
ゲットAPI(^-^)/の使い方
にしたがって記載してるつもりです・・・

■Firefoxのエラーコンソールなどでエラーが出ていないかどうか
エラーコンソールは出ていませんでした。




goodsmore  投稿日時 2015/7/6 19:09 | 最終変更

引用:
ゲストさんは書きました:
XAMPPを使用してローカルでテストをしたいのですが
ダウンロード後、使い方の通りにしているはずなのですが
何故か表示されません。

隣で一緒に見ている訳ではありませんので、この内容だけで、何かを判断することはできません

使い方のページに書いてあるとおりですが、質問の際には・・・

・phpとブラウザのバージョン
・アプリ同梱のsample.htmでは動作するかどうか
・cacheディレクトリに response.log やキャッシュファイルが出来ているかどうか
・商品ページに config.phpで設定した id や class を記載しているか
・商品ページに、商品ID番号 を記載しているか
・Firefoxのエラーコンソールなどでエラーが出ていないかどうか

等、可能な範囲で結構ですから、できるだけ多くの具体的な情報を記載するようにしてください

ゲスト   投稿日時 2015/7/6 0:30

XAMPPを使用してローカルでテストをしたいのですが
ダウンロード後、使い方の通りにしているはずなのですが
何故か表示されません。
ワードプレスなどは、ちゃんとXAMPPで動作をしております。

ご多忙の所大変恐縮ですがアドバイスを下さい!


goodsmore  投稿日時 2015/2/3 21:28

引用:
ゲストさんは書きました:
PHP関数の利用を制限しているとありました。
これが原因でしょうか?

このアプリでは、一覧に挙がってる PHP関数は利用していませんので、影響はありません

引用:
もしものサーバに短時間のうちに連続して商品数分の問い合わせが必要になります

このため、サーバに負荷がかかり、エラーが出やすくなる場合があります

前回の投稿で、このように書きましたが、ここで言う「サーバ」とは、アプリが動作しているサーバではなく、もしものサーバのことです

細かく検証したわけではないですが・・・利用者が多くなってきたためか、高負荷の場合等にレスポンスが遅くなる場合があるようです

ゲスト   投稿日時 2015/2/3 10:32

ご多忙のところ、ありがとうございます。

表示させたいのは、特定の個別商品の価格、在庫状況、発送目安、送料無料の画像のみのため、少し厳しいです。
サーバーに
fscokopen
pfsockopen
stream_socket_client
dl
backtick_operator
shell_exec
system
exec
passthru
popen
phpinfo
proc_open
pcntl_exec
のPHP関数の利用を制限しているとありました。
これが原因でしょうか?


goodsmore  投稿日時 2015/1/31 21:14

引用:
ゲストさんは書きました:
1ページに複数の商品を表示(class指定)させた場合、2商品くらい(4項目程)ならAPIは作動するのですが、それ以上になると読み込んだり、読み込まなかったり、一部読み込んだりと動作が安定しません。

直接の原因はよく分かりませんので、一般論ですが・・・

商品数を増やした場合、その商品の情報を取得するために、もしものサーバに短時間のうちに連続して商品数分の問い合わせが必要になります

このため、サーバに負荷がかかり、エラーが出やすくなる場合があります

エラーが出る場合、可能なら moshimo_get_api.js 内 MoshimoSearch がある行を修正し、カテゴリーコードや検索ワードを指定して商品表示する等、 検討してください

MoshimoSearch を利用した場合は、サーバに一度アクセスするだけで、より多くの商品の情報を取得できます





Back to Top