/** * レコメンドリクエストコールバック * @param data */ function func_(data) { const url = '/ajax/getProductInfo'; var prodArray = data.prod; // 空の場合 if(! prodArray || prodArray.length <= 0 ) { return false; } let prodInfo_jqxhr = $.ajax({ url: url, type: 'GET', dataType: 'json', data: { prodArray: JSON.stringify(prodArray), 'entry': 'ec/recommendedProductsEntry.html', 'rqid': data.rqid } }); prodInfo_jqxhr.done(function (data) { if (data.result == '0') { // 処理成功 let target = $('.product-recommend.'); // 空の場合 if( data.output.length <= 0 ) { return false; } target.append(data.output); // 可視化(スレイダー化の前に) target.parents('.area_recommended').show(); // スライダー化 .slider-group__listまたは.slider-group__list-pc const sliderClassName = ''; if (sliderClassName.length > 0) { target.addClass(sliderClassName); se_slick(''); } $("img.lazyload").lazyload(); // 画像拡大対応 ※product_lightbox2.jsでセット済みの処理を呼び出す $('body').trigger("loadedlightboxItems", ['.product-recommend.']); recommendSwipe(); } else { // ほかのエラー location.reload(); } }); console.log('Callbackが実行されました:func_'); } /** * クリック通知コールバック * @param data */ function func_click_(data) { console.log(data); console.log('Callbackが実行されました:func_click_'); } /** * コンバージョンコールバック * @param data */ function func_conversion(data) { console.log(data); console.log('Callbackが実行されました:func_conversion'); } /** * asset/js/common.jsの初期化処理からコピペ * @param slickしたいスライダーグループのclass(pc1111等) */ function se_slick(target_class) { $('.' + target_class + '.slider-group__list').each(function () { var $windowWidth = $(window).width(); if ($windowWidth > 768) { let parent = $(this).closest('.slider-group__wrap') let arrow_left = parent.find('.slider-group__arrow--prev'), arrow_right = parent.find('.slider-group__arrow--next'), dots = parent.find('.slider-group__controls--dots') $(this).slick({ arrows: true, dots: true, appendDots: dots, prevArrow: arrow_left, nextArrow: arrow_right, slidesToShow: 3, slidesToScroll: 1, pauseOnHover: false, cssEase: 'linear' }) } }) function slickify() { var $windowWidth = $(window).width(); if ($windowWidth > 768) { $('.' + target_class + '.slider-group__list-pc').not('.slick-initialized').each(function () { let parent = $(this).closest('.slider-group__wrap') let arrow_left = parent.find('.slider-group__arrow--prev'), arrow_right = parent.find('.slider-group__arrow--next'), dots = parent.find('.slider-group__controls--dots') $(this).slick({ arrows: true, dots: true, appendDots: dots, prevArrow: arrow_left, nextArrow: arrow_right, responsive: [ { breakpoint: 768, settings: "unslick" } ] }) }) }else{ $('.slider-group__list').each(function () { let parent = $(this).closest('.slider-group__wrap') let arrow_left = parent.find('.slider-group__arrow--prev'), arrow_right = parent.find('.slider-group__arrow--next'), dots = parent.find('.slider-group__controls--dots') $(this).not('.slick-initialized').slick({ arrows: true, dots: true, appendDots: dots, prevArrow: arrow_left, nextArrow: arrow_right, responsive: [ { breakpoint: 768, settings: "unslick" } ] }) }) } } slickify(); $(window).resize(function () { slickify(); }); } /** * レコメンドリクエストクエリ送信 * ※html scriptタグで記述すると * slider関連ライブラリ読込前にリクエスト結果が返ってきてslider化処理が実行されてエラーとなるため * ページ読込完了を待ってjavascriptで生成して送信する */ function sendRecommendRequestQuery() { const spec = ''; const cust = ''; const num = ; const cat = ''; const shohinId = ''; const src_1 = 'https://kimonoichiba.silveregg.net/pycre5/jsonp/recommend?merch=kimonoichiba'; let src_2 = ''; const src_3 = `&cookie=&callback=func_`; const src_cust = cust.length > 0 ? `&cust=${cust}` : ''; const src_cat = cat.length > 0 ? `&cat=${cat}` : ''; if (spec === 'pc1111') { src_2 = `&spec=${spec}&num=${num}`; } else if (spec === 'pc2111') { src_2 = `&spec=${spec}&num=${num}${src_cat}`; /* ----- 221は廃止 ここから ----- //} else if (spec === 'pc2211') { // src_2 = `&spec=${spec}&num=${num}${src_cat}`; /* ----- 221は廃止 ここまで ----- */ } else if (spec === 'pc3111') { // 特別おすすめ商品の場合はprodなし const src_prod = (shohinId.length > 0 && $('#jisha_tokubetsu_shohin_flg').val() == '0') ? `&prod=${shohinId}` : ''; src_2 = src_prod + `&spec=${spec}&num=${num}` + src_cust; } else if (spec === 'pc4111') { let src_prod = ''; $('.cart-wrap__list-product .cart-wrap__product-item').each(function(index, item) { // 削除ボタンのdata属性商品ID取得 src_prod += '&prod=' + $(item).find('.delete')[0].dataset.shohin_id; }); // src_cat 現行でGETパラメータからセットする記述があるが、実際はあり得ない src_2 = src_prod + `&spec=${spec}&num=${num}`+ src_cat + src_cust; } else if (spec === 'pc6111') { src_2 = `&spec=${spec}&num=${num}` + src_cust; } var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = src_1 + src_2 + src_3; var e = document.getElementsByTagName('script')[0]; e.parentNode.insertBefore(s, e); } /** * クリック通知クエリ送信 * @param shohinId * @param cref */ function clickNotificationQuery(shohinId, rqid) { var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = `https://kimonoichiba.silveregg.net/pycre5/jsonp/click?prod=${shohinId}&merch=kimonoichiba&spec=&cookie=&cref=${rqid}&callback=func_click_` var e = document.getElementsByTagName('script')[0]; e.parentNode.insertBefore(s, e); console.log('clickNotificationQuery'); } $(function () { // 初期表示時、レコメンドリクエストクエリ送信 sendRecommendRequestQuery(); // レコメンドクリック時、クリック通知クエリ送信 $(document).on('click', '.product-recommend .product-item__image figure a, .product-recommend .product-item__body h3 a', function (event) { event.stopPropagation(); event.preventDefault(); const dataset = $(this).parents('.product-item')[0].dataset; clickNotificationQuery(dataset.shohin_id, dataset.rqid); // 遷移 location.href = $(this).attr('href'); } ); });