/**
* レコメンドリクエストコールバック
* @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');
}
);
});