<script>
$(function () {
$('form[id^="productForm"').each(function(index, elm) {
$form = $(elm);
var product_id = $form.find('input[name=product_id]').val();
onClassCategorySelect($form, product_id);
});
// 規格1選択時
$('select[name=classcategory_id1]')
.change(function() {
var $form = $(this).parents('form');
var product_id = $form.find('input[name=product_id]').val();
var $sele1 = $(this);
// var $sele2 = $form.find('select[name=classcategory_id2]');
onClassCategorySelect($form, product_id, $sele1.val(), '__unselected');
});
// 規格2選択時
$('select[name=classcategory_id2]')
.change(function() {
var $form = $(this).parents('form');
var product_id = $form.find('input[name=product_id]').val();
var $sele1 = $form.find('select[name=classcategory_id1]');
var $sele2 = $(this);
onClassCategorySelect($form, product_id, $sele1.val(), $sele2.val());
});
});
function onClassCategorySelect($form, product_id, product_class_cat1, product_class_cat2) {
var productData = [];
{% for product_id, productInfo in productData %}
productData['{{ product_id }}'] = [];
productData['{{ product_id }}']['hasClassCat1'] = {{ productInfo['hasClassCat1'] ? 'true' : 'false' }};
productData['{{ product_id }}']['hasClassCat2'] = {{ productInfo['hasClassCat2'] ? 'true' : 'false' }};
productData['{{ product_id }}']['price2IncTaxMin'] = '{{ productInfo['price2IncTaxMin']|price }}';
productData['{{ product_id }}']['price2IncTaxMax'] = '{{ productInfo['price2IncTaxMax']|price }}';
productData['{{ product_id }}']['price02IncTaxMin'] = '{{ productInfo['price02IncTaxMin']|price }}';
productData['{{ product_id }}']['price02IncTaxMax'] = '{{ productInfo['price02IncTaxMax']|price }}';
productData['{{ product_id }}']['price2IncTaxs'] = [];
{% for key, price2IncTax in productInfo['price2IncTaxs'] %}
productData['{{ product_id }}']['price2IncTaxs']['{{ key }}'] = '{{ price2IncTax|price }}';
{% endfor %}
productData['{{ product_id }}']['price02IncTaxs'] = [];
{% for key, price02IncTax in productInfo['price02IncTaxs'] %}
productData['{{ product_id }}']['price02IncTaxs']['{{ key }}'] = '{{ price02IncTax|price }}';
{% endfor %}
{% endfor %}
var prod = productData[product_id];
if (prod === undefined) {
return;
}
if (prod['hasClassCat2']) {
if (product_id === undefined || product_class_cat1 === undefined || product_class_cat1 === '__unselected' || product_class_cat2 === '__unselected') {
interPrice2MultCat($form, prod['price02IncTaxMin'], prod['price02IncTaxMax'], prod['price2IncTaxMin'], prod['price2IncTaxMax']);
return;
}
var key = product_id + "_" + product_class_cat1 + "_" + product_class_cat2;
var price02 = prod['price02IncTaxs'][key];
var price2 = prod['price2IncTaxs'][key];
if (price2 !== undefined) {
interPrice2SingleCat($form, price02, price2);
}
else {
interPrice2SingleCat($form, price02);
}
}
else if (prod['hasClassCat1']) {
if (product_id === undefined || product_class_cat1 === undefined || product_class_cat1 === '__unselected') {
interPrice2MultCat($form, prod['price02IncTaxMin'], prod['price02IncTaxMax'], prod['price2IncTaxMin'], prod['price2IncTaxMax']);
return;
}
var key = product_id + "_" + product_class_cat1;
var price02 = prod['price02IncTaxs'][key];
var price2 = prod['price2IncTaxs'][key];
if (price2 !== undefined) {
interPrice2SingleCat($form, price02, price2);
}
else {
interPrice2SingleCat($form, price02);
}
}
else {
interPrice2SingleCat($form, prod['price02IncTaxMin'], prod['price2IncTaxMin']);
}
}
function interPrice2MultCat($form, price02Min, price02Max, price2Min, price2Max) {
var $elm = $form.parent().find('.price02-default').first();
if (price02Min !== price2Min || price02Max !== price2Max) {
$elm.text(price2Min + ' (初回割引価格 ' + price02Min + ') ~ ' + price2Max + ' (初回割引価格 ' + price02Max + ')');
}
else {
$elm.text(price02Min + ' ~ ' + price02Max);
}
}
function interPrice2SingleCat($form, price02, price2) {
var $elm = $form.parent().find('.price02-default').first();
if (price2 !== undefined && price02 !== price2) {
$elm.text(price2 + ' (初回割引価格 ' + price02 + ')');
}
else {
$elm.text(price02);
}
}
function test() {
var elm;
{% if pagination.totalItemCount > 0 %}
{% for Product in pagination %}
elm = $('li.ec-shelfGrid__item:eq({{ loop.index0 }}) > a > p.price02-default');
{% if hasPrice2Data[Product.id] %}
{% set productInfo = productData[Product.id] %}
{% set price2IncTaxMin = productInfo['price2IncTaxMin'] %}
{% set price2IncTaxMax = productInfo['price2IncTaxMax'] %}
{% if price2IncTaxMin == price2IncTaxMax %}
{% if Product.getPrice02IncTaxMin != price2IncTaxMin %}
{# 単一規格かつ販売価格と異なる #}
elm.text('{{ price2IncTaxMin|price }} (初回割引価格 {{ Product.getPrice02IncTaxMin|price }})');
{% endif %}
{% else %}
{# 複数規格 #}
elm.text('{{ price2IncTaxMin|price }} (初回割引価格 {{ Product.getPrice02IncTaxMin|price }}) ~ {{ price2IncTaxMax|price }} (初回割引価格 {{ Product.getPrice02IncTaxMax|price }})');
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
}
</script>