www.magica-bazaar.com
Open in
urlscan Pro
13.230.149.252
Public Scan
URL:
https://www.magica-bazaar.com/items/69090525?gad_source=1
Submission: On December 23 via api from US — Scanned from JP
Submission: On December 23 via api from US — Scanned from JP
Form analysis
3 forms found in the DOMGET //www.magica-bazaar.com/search
<form class="l-header__search c-search" action="//www.magica-bazaar.com/search" method="get">
<input class="c-search__input js-search" type="text" name="q" placeholder="Search" value="" autocomplete="off">
<button class="c-search__submit" type="submit">
<span class="c-search__icon">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 768 768">
<title>SEARCH</title>
<path
d="M756.48 702.719l-142.080-142.080c46.080-57.6 76.799-134.399 76.799-215.039 0-191.999-153.6-345.6-345.6-345.6s-345.6 153.6-345.6 345.6c0 191.999 153.6 345.6 345.6 345.6 80.64 0 157.439-26.88 215.039-76.799l142.080 142.080c7.68 7.68 19.2 11.52 26.88 11.52s19.2-3.84 26.88-11.52c15.36-15.36 15.36-38.4 0-53.76zM76.801 345.6c0-149.76 119.040-268.8 268.8-268.8s268.8 119.040 268.8 268.8c0 72.96-30.72 142.080-76.799 188.16 0 0 0 0 0 0s0 0 0 0c-49.92 49.92-115.2 76.799-188.16 76.799-153.6 3.84-272.639-115.2-272.639-264.96z">
</path>
</svg>
</span>
<!-- /.c-search__icon -->
</button>
<!-- /.c-search__submit -->
</form>
Name: menu — POST https://www.magica-bazaar.com/cart/add/mielikki
<form id="purchase_form" class="x_purchaseForm" name="menu" action="https://www.magica-bazaar.com/cart/add/mielikki" method="post" data-purchase-form="" data-disabled="false">
<div class="p-item__form">
<div class="p-item__select">
<div id="itemSelect">
<div id="variationSelectWrap" class="purchaseElement" data-target-version="v2"> <label for="valiationSelect">種類</label> <select name="select" id="valiationSelect" data-display-stock="1">
<option value="193684011" data-index="0" data-stock="91" selected="">FREE</option>
</select> </div>
<div class="itemOptionElement" data-target-version="v2"> <label for="x_optionSelect87556" data-target-version="v2" class="itemOption__name" style="display: block;">現在のお届けの目安 </label> <input type="hidden" name="options[0][id]" value="87556"
data-target-version="v2"> <input type="hidden" name="options[0][type]" value="select" data-target-version="v2"> <select name="options[0][variation_id]" id="x_optionSelect87556" class="itemOption__select" data-target-version="v2"
required="" style="display: block;">
<option value="346809"> 2-6週間程度かかります。 </option>
</select> </div>
<div class="itemOptionElement" data-target-version="v2"> <label for="x_optionSelect87557" data-target-version="v2" class="itemOption__name" style="display: block;">予定納期を超える場合は連絡いたします。</label> <input type="hidden" name="options[1][id]"
value="87557" data-target-version="v2"> <input type="hidden" name="options[1][type]" value="select" data-target-version="v2"> <select name="options[1][variation_id]" id="x_optionSelect87557" class="itemOption__select"
data-target-version="v2" required="" style="display: block;">
<option value="346810"> 確認しました。 </option>
</select> </div>
<div class="itemOptionElement" data-target-version="v2"> <label for="x_optionSelect87558" data-target-version="v2" class="itemOption__name" style="display: block;">ギフトバッグ 有料</label> <input type="hidden" name="options[2][id]" value="87558"
data-target-version="v2"> <input type="hidden" name="options[2][type]" value="select" data-target-version="v2"> <select name="options[2][variation_id]" id="x_optionSelect87558" class="itemOption__select" data-target-version="v2"
required="" style="display: block;">
<option value="346811"> なし </option>
<option value="1255088"> 有料ギフトバッグ1枚(サイズはこちらで選定します) ¥550 </option>
</select> </div>
<div id="amountSelectWrap" class="purchaseElement" style="" data-target-version="v2"> <label for="amountSelect">数量</label> <select name="amount" id="amountSelect" class="amountSelect" style="">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
<option value="32">32</option>
<option value="33">33</option>
<option value="34">34</option>
<option value="35">35</option>
<option value="36">36</option>
<option value="37">37</option>
<option value="38">38</option>
<option value="39">39</option>
<option value="40">40</option>
<option value="41">41</option>
<option value="42">42</option>
<option value="43">43</option>
<option value="44">44</option>
<option value="45">45</option>
<option value="46">46</option>
<option value="47">47</option>
<option value="48">48</option>
<option value="49">49</option>
<option value="50">50</option>
<option value="51">51</option>
<option value="52">52</option>
<option value="53">53</option>
<option value="54">54</option>
<option value="55">55</option>
<option value="56">56</option>
<option value="57">57</option>
<option value="58">58</option>
<option value="59">59</option>
<option value="60">60</option>
<option value="61">61</option>
<option value="62">62</option>
<option value="63">63</option>
<option value="64">64</option>
<option value="65">65</option>
<option value="66">66</option>
<option value="67">67</option>
<option value="68">68</option>
<option value="69">69</option>
<option value="70">70</option>
<option value="71">71</option>
<option value="72">72</option>
<option value="73">73</option>
<option value="74">74</option>
<option value="75">75</option>
<option value="76">76</option>
<option value="77">77</option>
<option value="78">78</option>
<option value="79">79</option>
<option value="80">80</option>
<option value="81">81</option>
<option value="82">82</option>
<option value="83">83</option>
<option value="84">84</option>
<option value="85">85</option>
<option value="86">86</option>
<option value="87">87</option>
<option value="88">88</option>
<option value="89">89</option>
<option value="90">90</option>
<option value="91">91</option>
</select> </div>
</div>
<style>
body form[id] #variationSelectWrap,
body form[id] .itemOptionElement {
max-width: 100%
}
body #purchase_form #itemSelect #valiationSelect,
body #purchase_form #itemSelect select.itemOption__select,
body form[id] #itemSelect #amountSelect,
body form[id] #itemSelect #valiationSelect,
body form[id] #itemSelect select.itemOption__select {
height: auto;
white-space: normal;
max-width: 100%;
min-height: 2.1em;
appearance: none;
-webkit-appearance: none;
padding-right: 1em;
line-height: normal;
word-break: normal;
background-repeat: no-repeat;
background-position: right .35em center;
background-size: auto;
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cdefs%3E%3Cfilter id='a' x='0' y='0' width='10' height='6' filterUnits='userSpaceOnUse'%3E%3CfeFlood result='flood' flood-color='%23333' flood-opacity='.5'/%3E%3CfeComposite result='composite' operator='in' in2='SourceGraphic'/%3E%3CfeBlend result='blend' mode='multiply' in2='SourceGraphic'/%3E%3C/filter%3E%3C/defs%3E%3Cpath d='M5 6l5-6H0z' fill='%23fafafa' fill-rule='evenodd' filter='url(%23a)'/%3E%3C/svg%3E")
}
</style> <input type="hidden" name="shopID" value="mielikki"> <input type="hidden" name="id" value="69090525">
<script>
($ => {
if (!document.querySelector('form[data-purchase-form]')) {
$('#valiationSelect').on('change', function() {
$('#amountSelectWrap .amountSelect').css('display', 'none').prop('disabled', true);
$('#amountSelectWrap .amountSelect:eq(' + $(this).find(':selected').attr('data-index') + ')').css('display', '').prop('disabled', false);
});
}
window.__initItemSelect = function() {
if (!document.querySelector('form[data-purchase-form]')) {
removeElements('#itemSelect [data-target-version="v2"]');
return;
}
const elements = document.querySelectorAll('#itemSelect');
elements.forEach(el => {
const form = el.closest('form[data-purchase-form]')
if (!form) {
removeElements('#itemSelect [data-target-version="v2"]', el);
$itemSelect = $(el);
$itemSelect.find('#valiationSelect').on('change', function() {
$itemSelect.find('#amountSelectWrap .amountSelect').css('display', 'none').prop('disabled', true);
$itemSelect.find('#amountSelectWrap .amountSelect:eq(' + $(this).find(':selected').attr('data-index') + ')').css('display', '').prop('disabled', false);
});
} else {
removeElements('#itemSelect [data-target-version="v1"]', el);
$form = $(form);
changeAmountSelectAndOptions($form.find('#valiationSelect'), $form);
updatePurchaseFormDisabled($form.find('#itemSelect'), $form);
form.querySelectorAll('#valiationSelect').forEach(select => {
const $select = $(select);
if ($select.data('displayStock')) {
$select.on('change', () => {
const parentForm = $(el.closest('form[data-purchase-form]'));
changeAmountSelectAndOptions(select, parentForm);
updatePurchaseFormDisabled(parentForm.find('#itemSelect'), parentForm);
});
}
});
}
})
function removeElements(selector, parent = document) {
const target_elements = parent.querySelectorAll(selector);
target_elements.forEach(el => {
el.parentNode.removeChild(el);
})
}
}
function changeAmountSelectAndOptions(select, $form) {
$form.find('#amountSelectWrap .amountSelect').css('display', 'none').prop('disabled', true);
$selectedVariation = $(select).find(':selected');
$amountSelectWrap = $form.find('#amountSelectWrap');
$outOfStockButton = $form.find('.purchaseButton__btn--outOfStock');
$addToCartButton = $form.find('.purchaseButton__btn--addToCart');
$itemSelectOptions = $form.find('[class^="itemOption__"]');
$itemSelectOptions.css('display', 'block');
if ($(select).length == 0) {
$amountSelect = $form.find('#amountSelectWrap .amountSelect');
$amountSelect.css('display', '').prop('disabled', false);
$amountSelectWrap.show();
$addToCartButton.css('display', 'block');
$outOfStockButton.css('display', 'none');
return;
}
$amountSelect = $form.find('#amountSelectWrap .amountSelect:eq(' + $selectedVariation.attr('data-index') + ')');
if (Number($selectedVariation.data('stock')) > 0) {
$amountSelect.css('display', '').prop('disabled', false);
$amountSelectWrap.show();
$addToCartButton.css('display', 'block');
$outOfStockButton.css('display', 'none');
} else {
$amountSelectWrap.hide();
$addToCartButton.css('display', 'none');
$outOfStockButton.css('display', 'block');
}
}
/**
* 数量選択が有効でない場合に #purchase_form を送信しないようにする
* @see https://github.com/baseinc/design-engine/issues/1094
*/
function updatePurchaseFormDisabled($itemSelect, $form) {
const isAmountActive = Array.from($itemSelect.find('[name="amount"]')).some((el) => !(el.style.display === 'none' && el.disabled));
$form.attr('data-disabled', isAmountActive ? 'false' : 'true');
}
document.addEventListener('DOMContentLoaded', () => {
window.__initItemSelect && window.__initItemSelect();
window.__initItemSelect = undefined;
});
})(__BASE_JQUERY__);
</script>
</div>
<!-- /.p-item__select -->
<div class="p-item__submit">
<div class="purchaseButton"> <button type="submit" class="purchaseButton__btn purchaseButton__btn--addToCart" style="display: block;"> カートに入れる </button>
<a class="purchaseButton__btn purchaseButton__btn--outOfStock purchaseButton__btn--requestRestockMail x_restockMailNotificationModalOpen" style="display:none;" href="javascript:void(0);">再入荷通知を希望する</a> <input type="hidden"
class="x_ageVerificationGenre" value=""> <input type="hidden" class="x_ageVerificationAge" value="">
<style>
@font-face {
font-family: shopicon;
font-style: normal;
font-weight: 400;
src: url(https://static.thebase.in/font/v1/shopicon.eot?md4x76=);
src: url(https://static.thebase.in/font/v1/shopicon.eot?md4x76=#iefix) format("embedded-opentype"), url(https://static.thebase.in/font/v1/shopicon.ttf?md4x76=) format("truetype"), url(https://static.thebase.in/font/v1/shopicon.woff?md4x76=) format("woff"), url(https://static.thebase.in/font/v1/shopicon.svg?md4x76=#shopicon) format("svg")
}
.purchaseButtonModal__wrapper {
align-items: center;
background: rgba(0, 0, 0, .3);
display: none;
justify-content: center;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 6000000
}
.purchaseButtonModal__container {
background: #fff;
border-radius: 4px;
box-shadow: 0 0 16px rgba(56, 67, 89, .3);
position: relative;
width: 560px
}
.purchaseButtonModal__result {
display: none
}
.is_success .purchaseButtonModal__submit {
display: none
}
.is_success .purchaseButtonModal__result {
display: block
}
.is_success .purchaseButtonModal__resultText {
background: #eaf8f7;
padding: 12px;
border-radius: 4px;
font-weight: 700;
color: #11beae;
font-size: 14px;
margin-bottom: 16px
}
.purchaseButtonModal__title {
border-bottom: 1px solid #f0f1f4;
color: #3d3d3d;
font-size: 20px;
font-weight: 700;
line-height: 68px;
text-align: center
}
.purchaseButtonModal__inner {
padding: 24px 32px;
text-align: left
}
.purchaseButtonModal__text {
color: #3d3d3d;
font-size: 14px;
line-height: 1.4;
margin: 0 0 12px
}
.purchaseButtonModal__subText {
margin: 0 0 40px
}
.purchaseButtonModal__subTextChild {
color: #777;
font-size: 12px;
line-height: 1.4;
margin-left: 1em;
text-indent: -1em
}
.purchaseButtonModal__label {
color: #3d3d3d;
font-size: 14px;
font-weight: 700;
margin-bottom: 4px
}
.purchaseButtonModal__information {
display: flex;
background: #f0f1f4;
padding: 8px;
border-radius: 4px;
margin: 8px auto 24px
}
.purchaseButtonModal__informationText {
margin-left: 8px;
font-size: 12px;
color: #3d3d3d;
margin-top: 0
}
.purchaseButtonModal__inputArea {
display: flex;
align-items: center;
justify-content: center
}
.purchaseButtonModal__inputAreaLabel {
margin: 0 8px;
font-size: 14px
}
.purchaseButtonModal__input {
box-sizing: border-box;
display: block;
font-size: 14px;
height: 40px;
line-height: 40px;
margin: 0 0 32px;
outline: none;
padding: 0 12px;
width: 100%;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none
}
.purchaseButtonModal__input[type=number]::-webkit-inner-spin-button,
.purchaseButtonModal__input[type=number]::-webkit-outer-spin-button {
appearance: none
}
.purchaseButtonModal__input:placeholder-shown {
color: #c7c7cd
}
.purchaseButtonModal__input::-webkit-input-placeholder {
color: #c7c7cd;
opacity: 1
}
.purchaseButtonModal__input::-moz-placeholder {
color: #c7c7cd;
opacity: 1
}
.purchaseButtonModal__input:-ms-input-placeholder {
color: #c7c7cd
}
.purchaseButtonModal__error {
background: #fcdcdc;
border-radius: 4px;
color: #fa5171;
display: none;
font-size: 12px;
font-weight: 700;
margin: 0 0 24px;
padding: 8px;
text-align: left
}
.purchaseButtonModal__errorIcon {
margin-right: 8px;
height: auto;
vertical-align: middle;
width: 12px
}
.purchaseButtonModal__errorText {
vertical-align: middle
}
.purchaseButtonModal__btn {
border: none;
border-radius: 5px;
box-sizing: border-box;
cursor: pointer;
color: #fff;
display: block;
font-size: 16px;
height: 40px;
line-height: 40px;
margin: 0 auto;
outline: none;
padding: 0;
text-align: center;
transition: .3s;
width: 280px;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none
}
.purchaseButtonModal__btn:hover {
opacity: .7;
transition: .3s
}
.purchaseButtonModal__btn--submit {
background: #000
}
.purchaseButtonModal__btn--submit:disabled {
cursor: not-allowed;
opacity: .7
}
.purchaseButtonModal__btn--close {
background: #999
}
.purchaseButtonModal__closeIcon {
background: none;
border: none;
cursor: pointer;
margin: 0;
height: 16px;
outline: none;
padding: 0;
position: absolute;
top: 26px;
right: 26px;
width: 16px;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none
}
.purchaseButtonModal__closeIcon:after,
.purchaseButtonModal__closeIcon:before {
background: #3d3d3d;
content: "";
display: block;
position: absolute;
top: 7px;
right: -3px;
height: 2px;
width: 22px
}
.purchaseButtonModal__closeIcon:before {
transform: rotate(45deg)
}
.purchaseButtonModal__closeIcon:after {
transform: rotate(-45deg)
}
.purchaseButtonModal__ageVerificationWarningText {
font-size: 12px;
font-weight: 700;
text-align: center;
margin-bottom: 16px
}
.si-information:before {
content: "\e919";
font-family: shopicon;
font-style: normal;
font-weight: 400
}
.purchaseButtonModal__inner.ageVerificationModal__inner {
text-align: center
}
.purchaseButtonModal__inner.ageVerificationModal__footer {
border-top: 1px solid #f0f1f4
}
.purchaseButtonModal__input.ageVerificationModal__input {
margin: 0;
width: auto
}
.purchaseButtonModal__input.ageVerificationModal__input[aria-invalid=true] {
border-color: #fa5171;
background-color: #ffe5e9
}
.purchaseButtonModal__error.ageVerificationModal__error {
background: none;
text-align: center;
margin: 0
}
@media screen and (max-width:828px) {
.is_restockMailNotificationModalOpen #mainContent {
position: static
}
.purchaseButtonModal__container {
border-radius: 0;
box-shadow: none;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%
}
.purchaseButtonModal__title {
font-size: 16px;
line-height: 48px;
padding: 0 30px
}
.purchaseButtonModal__inner {
padding: 16px
}
.purchaseButtonModal__closeIcon {
top: 16px;
right: 16px
}
.purchaseButtonModal__input {
background: #fff;
border: 1px solid #bbb
}
.purchaseButtonModal__btn {
height: 55px;
line-height: 55px;
width: 100%
}
.is_success .purchaseButtonModal__container {
height: auto
}
}
</style>
<script>
($ => {
if (window.__initPurchaseButtonModal) {
window.removeEventListener('DOMContentLoaded', window.__initPurchaseButtonModal)
}
window.__initPurchaseButtonModal = function() {
const KEYCODE_ENTER = 13;
const MODAL_TYPE_RESTOCK_MAIL_NOTIFICATION = 'restockMailNotification';
const MODAL_TYPE_AGE_VERIFICATION = 'ageVerification';
const $modals = $('.x_purchaseButtonModal')
$modals.remove()
document.body.appendChild($modals[0])
var modalType = '';
const showPurchaseButtonModal = (type) => {
// 文字入れオプションのinput 等のフォーカスを外す
document.activeElement.blur();
$('.purchaseButtonModal__title').each((_i, el) => {
$(el).hide();
});
$('.purchaseButtonModal__inner').each((_i, el) => {
$(el).hide();
});
$(`.purchaseButtonModal__title[data-type="${type}"]`).show();
$(`.purchaseButtonModal__inner[data-type="${type}"]`).show();
$('.x_purchaseButtonModal').fadeIn(250).css('display', 'flex');
$('.x_purchaseButtonModal').attr('id', `${type}Modal`);
$('body').addClass('is_purchaseButtonModalOpen');
modalType = type;
};
const hidePurchaseButtonModal = function() {
$('.x_purchaseButtonModal').fadeOut(150);
$('body').removeClass('is_purchaseButtonModalOpen');
};
$('.x_restockMailNotificationModalOpen').on('click', function() {
showPurchaseButtonModal(MODAL_TYPE_RESTOCK_MAIL_NOTIFICATION);
});
$('.x_purchaseButtonModalClose, .x_purchaseButtonModal').on('click', function() {
hidePurchaseButtonModal();
});
$('.x_purchaseButtonModalInner').on('click', function(event) {
event.stopPropagation();
});
$('.x_purchaseButtonModalSubmit').on('click', function() {
purchaseButtonModalSubmit();
});
$(".x_purchaseButtonModalInput").on('keypress', function(ev) {
if ((ev.which && ev.which === KEYCODE_ENTER) || (ev.keyCode && ev.keyCode === KEYCODE_ENTER)) {
purchaseButtonModalSubmit()
return false;
} else {
return true;
}
});
var purchaseButtonModalSubmit = function() {
$('.x_purchaseButtonModalError').hide();
$('.x_purchaseButtonModalErrorText').text('')
$(this).prop('disabled', true);
modalRequestFunction().then(function(data) {
onSuccessModalRequest();
}).catch(function(errorText) {
$('.x_purchaseButtonModalError').show();
$('.x_purchaseButtonModalErrorText').text(errorText);
}).finally(function() {
$('.x_purchaseButtonModalSubmit').prop('disabled', false);
});
};
var modalRequestFunction = function() {
if (modalType === MODAL_TYPE_RESTOCK_MAIL_NOTIFICATION) {
return requestRestockMailNotification();
} else if (modalType === MODAL_TYPE_AGE_VERIFICATION) {
return requestAgeVerification();
}
};
var onSuccessModalRequest = function() {
if (modalType === MODAL_TYPE_RESTOCK_MAIL_NOTIFICATION) {
$('.x_purchaseButtonModal').addClass('is_success');
} else if (modalType === MODAL_TYPE_AGE_VERIFICATION) {
onAgeVerificationSubmit();
}
};
// 再入荷通知
var requestRestockMailNotification = function() {
var selectedVariation = $('[name="select"]');
var variation_id = null;
if (selectedVariation.length > 0) {
variation_id = selectedVariation.val();
}
var data = {
shop_id: 'mielikki',
item_id: 69090525,
variation_id: variation_id,
notification_address: $('.x_purchaseButtonModalInput').val(),
};
return new Promise(function(resolve, reject) {
$.ajax({
type: 'POST',
url: '/restock_mail_notification/restock_mail_notification_api/subscribe',
dataType: 'JSON',
data: JSON.stringify(data)
}).then(function(data) {
resolve(data);
}, function(jqXHR) {
reject(JSON.parse(jqXHR.responseText).error.user_message);
})
});
};
// 年齢確認
const COOKIE_KEY_FOR_AGE_VARIFICATION = 'AgeVerificationModalCheckisCompleted' + 'mielikki';
var ageVerificationAge = $('.x_ageVerificationAge').val();
var $ageVerificationInput = $('.x_ageVerificationInput');
var $ageVerificationError = $('.x_ageVerificationError');
var $ageVerificationButton = $('.x_ageVerificationSubmit');
var ageVerificationTargetForm = null;
var requestAgeVerification = function() {
return new Promise(function(resolve, reject) {
if (checkAgeWithUI($ageVerificationInput.val())) {
resolve();
}
reject();
});
};
var onAgeVerificationSubmit = function() {
if (ageVerificationTargetForm) {
if (!validateSubmitButton(ageVerificationTargetForm)) {
hidePurchaseButtonModal();
return
}
setCookieForAgeVerificationCheck();
ageVerificationTargetForm.submit();
}
};
var validateSubmitButton = function(form) {
if (!form.classList.contains('x_purchaseForm')) {
return true;
}
// 商品オプションあり時のバリデーションエラーがないか button の disabled 状態で判定
// button が存在し disabled だった場合のみ false
var button = form.querySelector('.purchaseButton__btn');
return button ? !button.disabled : true;
};
var getCookie = function(name) {
var matches = document.cookie.match(new RegExp("(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"));
return matches ? decodeURIComponent(matches[1]) : undefined;
};
var isCompleteAgeVerificationCheck = function() {
return !!getCookie(COOKIE_KEY_FOR_AGE_VARIFICATION);
};
var setCookieForAgeVerificationCheck = function() {
if (!isCompleteAgeVerificationCheck()) {
document.cookie = COOKIE_KEY_FOR_AGE_VARIFICATION + "=true; max-age=3600";
}
};
var shouldShowAgeVerificationModal = function() {
return !isCompleteAgeVerificationCheck();
};
var nonZeroPadded = function(string) {
if (typeof string !== 'string' || string === '') {
return '';
}
return String(Number(string));
};
var limitTo3digits = function(string) {
return string.slice(0, 3);
};
var convertToHalfWidthNumber = function(string) {
return string.replace(/[^0-90-9]/g, '').replace(/[0-9]/g, (str) => {
return String.fromCharCode(str.charCodeAt(0) - 0xFEE0);
});
};
var checkAge = function(age) {
return ageVerificationAge ? Number(age) >= ageVerificationAge : false;
};
var checkAgeWithUI = function() {
var valid = checkAge($ageVerificationInput.val());
if (valid) {
$ageVerificationError.hide();
$ageVerificationInput.attr('aria-invalid', 'false')
$ageVerificationButton.prop('disabled', false);
return true;
}
$ageVerificationError.show();
$ageVerificationInput.attr('aria-invalid', 'true')
$ageVerificationButton.prop('disabled', true);
return false;
};
var currentValue = '';
var onAgeInput = function(string) {
if (string.length > 1) {
checkAgeWithUI();
}
currentValue = string;
};
// IME 有効のとき
// (type="number" の影響で) IME 入力確定時に input 要素の既存の value がクリアされてしまうので、既存の値は currentValue にとっておき確定時にこれを利用する
var isComposing = false;
$ageVerificationInput.on('compositionstart', (e) => {
isComposing = true;
});
$ageVerificationInput.on('compositionend', (e) => {
e.target.value = limitTo3digits(nonZeroPadded(currentValue + convertToHalfWidthNumber(e.originalEvent.data)));
onAgeInput(e.target.value);
isComposing = false;
});
// IME 無効のとき(IME 入力未確定時はスキップ)
$ageVerificationInput.on('input', (e) => {
if (!isComposing) {
e.target.value = limitTo3digits(nonZeroPadded(e.target.value));
onAgeInput(e.target.value);
}
});
var closeCommunityModal = function() {
$('.communityOverlay').hide();
};
if ($('.x_ageVerificationGenre').val()) {
const classes = ['x_purchaseForm', 'x_communityPurchaseForm', 'x_communityGuestForm'];
// コミュニティモーダル購入時の動的に生成されたformによるsubmitもフックしたい & submit処理の最後に年齢確認モーダルを出したいので、documentへのイベントバブリング時にフックする
$(document).on('submit', 'form', function(e) {
// 購入フォーム or コミュニティモーダルのフォームを対象とする
if (classes.some((cls) => e.target.classList.contains(cls))) {
if (shouldShowAgeVerificationModal()) {
ageVerificationTargetForm = e.target;
closeCommunityModal();
showPurchaseButtonModal(MODAL_TYPE_AGE_VERIFICATION);
return false;
}
}
});
}
}
window.addEventListener('DOMContentLoaded', window.__initPurchaseButtonModal)
})(__BASE_JQUERY__);
</script> <button id="oc-restock-button" type="button" class="oc-restock-nc-button purchaseButton__btn"
onclick="window.open('https://liff.line.me/1660825063-zR0p16gE?mode=restock_notification&shop_id=mielikki&item_id=69090525&variantId=193684011', '_blank')"
style="display: none; margin-top: 30px; background-color: rgb(6, 199, 85);">LINEで再入荷通知を受け取る</button>
</div>
<style>
body#shopDetailPage #purchase_form .purchaseButton .purchaseButton__btn--disabled:hover {
cursor: default;
opacity: 1;
}
</style>
</div>
<!-- /.p-item__submit -->
</div>
<!-- /.p-item__form -->
</form>
POST /items/69090525
<form action="/items/69090525" id="x_illegalReportForm" method="post" accept-charset="utf-8">
<div style="display:none;"><input type="hidden" name="_method" value="POST"><input type="hidden" name="data[_Token][key]"
value="a91d53a31c5edc288206df05d9eabc465e089146856f1d3256ef64bdf3ace85ef5e9e2e1b95f8c787986ffb5d951dffec59ea3fede1c8abbceea58ac63d58bce" id="Token1449917761" autocomplete="off"></div> <input type="hidden" value="69090525" id="item_id">
<legend>違反商品の通報</legend>
<input type="hidden" name="data[IllegalReport][item_id]" value="69090525" id="IllegalReportItemId">
<div class="input select"><select name="data[IllegalReport][title]" required="required" id="IllegalReportTitle">
<option value="0">商品が法律に違反している</option>
<option value="1">金額が不正</option>
<option value="2">その他</option>
</select></div>
<div class="input textarea"><textarea name="data[IllegalReport][message]" placeholder="内容をご記入ください。" required="required" id="x_illegalReportMessage" cols="30" rows="6"></textarea></div><a class="btn btn-danger" id="checkSubmit">通報する</a>
<div style="display:none;"><input type="hidden" name="data[_Token][fields]" value="59224a92e1a2e4a08b458ac43a7317d6d7dd8b8e%3AIllegalReport.item_id" id="TokenFields2129444659" autocomplete="off"><input type="hidden" name="data[_Token][unlocked]"
value="" id="TokenUnlocked967120041" autocomplete="off"></div>
</form>
Text Content
* * About Blog Community Contact SEARCH CATEGORY * NEW ARRIVAL * 魔女コーデ✬人気ランキング * NEW✬ギフトラッピング * NEW✬クリスタル 天然石 * 魔女のアウターコレクション * NEW✬ドラゴン特集 * 魔女部屋特集 * アニバーサリーグッズ * 魔女の使い魔 黒猫特集 * 星読み魔女特集 * オリジナルTシャツ特集 * 大人の為の【アリスコレクション】特集 * 魔女の私服(個性派・クラシカルファッション) * ワンピース * トップス * ボトム * アウター * シューズ * ストール * バッグ * 靴下 * アクセサリー * コルセット * ハット * お得なセットアイテム * 妖精と精霊特集 * スチームパンク特集 * SALEアイテム * メディア紹介アイテム * 占い魔女アイテム * Witch Express(2−4日営業日で発送) * 魔女たちのアクセサリー * 魔法雑貨 * 即納✬魔女コーデ * アウター * ドレス * セットアップ * トップス * ボトム * メンズ * アクセサリー * 天然石アクセサリー * ジュエリー * バッグ * シューズ * 帽子・ストール * 靴下 * コルセット * ステーショナリー * スマホケース * ディフューザー・アロマネックレス * インテリア雑貨 * その他 * 蝶モチーフ * 魔女の正装(Blackコーデ) * ワンピース * トップス * ボトム * アウター * シューズ * バッグ * アクセサリー * ハット * セットアップ * とんがり魔女靴 * とんがり魔女帽子 * 魔女のローブ、マント * 魔法の杖〜Magica wand〜 * アンティーク調アクセサリー✬ギフトに♥ * おとぎ話の主人公コーデ * 妖精とおとぎ話のアウター * 妖精とおとぎ話のドレス * 妖精とおとぎ話のトップス * 妖精とおとぎ話のボトム * 妖精とおとぎ話の小物・アクセサリー * ちょい足し✬3000円台以下アイテム * Instagramer様着用分 * 魔法的アイテム * 魔法的アクセサリー * 魔法的インテリア雑貨・小物 * アンティーク調雑貨 * 星特集 * 人魚特集 波音の記憶 〜ブルートパーズ導きのリング〜 M22676 ¥9,980 ✬年末年始営業のお知らせ✬12/28-1/7までお客様対応休業✬1/8-対応✬ ✬ご注文24時間OK✬只今のお届け2-8週間✬ ✬12/22 20:00-12/25 23:59 までYule SALE✬ ✬クーポンコード 2023YULE ✬こちらは期間中何度でもご利用いただけます。※一部除外品あり✬ ✩魔法や魔法使いに妖精、おとぎ話、異世界好きなあなたへ✩ ✩個性派ちょっぴりダークで可愛い✩現実とファンタジーが混ざり合った不思議なアイテム✩ 波音の記憶 〜ブルートパーズ導きのリング〜 M22676 繰り返す波の音にかつての遠い記憶が蘇る 一歩前へ踏み出したいあなたを導いてくれるリングです ブルートパーズは、精神をリラックスさせ、感情をコントロールするのに役立つとされています。 集中力や感受性、創造性を高め、目的の達成や夢の実現をサポートしてくれることでしょう ヴィンテージスタイルのアクセサリーシリーズはこちら♥ ギフトボックス入りでプレゼントにもぴったりです https://www.magica-bazaar.com/search?q=Vintage+style+Accessories 【素材】天然石ブルートパーズ シルバー925 ※アクセサリーはギフトボックスに入りますが、 デザインやカラーは予告なく変更する場合もございます。 【サイズ】※海外製品につき若干度誤差がある場合がございます。 Freeサイズ サイズ調整可能 不定期でクーポン配布♪奇妙な洋装雑貨店 Magica Bazaar インスタグラム @magica_bazaar Follow me♡ https://www.instagram.com/magica_bazaar/ ↓ファンタジーと現実が混ざり合った不思議なアイテムをもっと見る https://www.magica-bazaar.com/ 【お届けについて】 こちらの商品は海外店舗より直接発送となる為、(一部国内発送あり) ご入金から2−4週間前後で発送致します。 (倉庫の都合により、4−6週間かかる場合もございます。) ◼️注意事項 ・タイミングによっては 商品在庫切れにより 注文キャンセルとさせていただく恐れもございますので、予めご了承くださいませ。 ・こちらは輸入品となります。日本製とは検品基準が異なる為、 新品未使用品でもごくわずかな傷やほつれ等がある場合もございます。 ・仕入れ工場を変えることがあるため、記載サイズと若干異なる場合がございます。 ・商品の色味は、お手持ちのスマートフォンの画面によって実物と若干異なる場合がございます。 ・イメージ違いやサイズ交換等、お客さまご都合による交換、返品は対応出来かねます。 ———————————— ご購入前にこちらをお読みください →https://www.magica-bazaar.com/blog/2021/09/29/005357 ———————————— 管理番号:M22676 お取り寄せまでに少々お時間を頂戴いたしますので、皆様にご安心してご利用いただけるように 誠心誠意対応させていただきます。ご質問などはお気軽に♡ 種類 FREE 現在のお届けの目安 2-6週間程度かかります。 予定納期を超える場合は連絡いたします。 確認しました。 ギフトバッグ 有料 なし 有料ギフトバッグ1枚(サイズはこちらで選定します) ¥550 数量 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 カートに入れる 再入荷通知を希望する LINEで再入荷通知を受け取る ※こちらの価格には消費税が含まれています。 ※別途送料がかかります。送料を確認する 送料・配送方法について この商品の送料・配送方法は下記のとおりです。 ¥10,000以上のご注文で国内送料が無料になります。 * ヤマト宅急便 ヤマトが提供する定番の配送方法です。荷物追跡に対応しています。 送料は地域により異なります 詳しく見る 閉じる * 北海道 ¥1,500 * 東北 青森県, 岩手県, 宮城県, 秋田県, 山形県, 福島県 ¥800 * 関東 茨城県, 栃木県, 群馬県, 埼玉県, 千葉県, 東京都, 神奈川県, 山梨県 ¥800 * 信越 新潟県, 長野県 ¥800 * 北陸 富山県, 石川県, 福井県 ¥800 * 東海 岐阜県, 静岡県, 愛知県, 三重県 ¥800 * 近畿 滋賀県, 京都府, 大阪府, 兵庫県, 奈良県, 和歌山県 ¥800 * 中国 鳥取県, 島根県, 岡山県, 広島県, 山口県 ¥800 * 四国 徳島県, 香川県, 愛媛県, 高知県 ¥800 * 九州 福岡県, 佐賀県, 長崎県, 熊本県, 大分県, 宮崎県, 鹿児島県 ¥800 * 沖縄 ¥1,500 ※¥10,000以上のご注文で国内送料が無料になります。 通報する 違反商品の通報 商品が法律に違反している 金額が不正 その他 通報する error RELATED PRODUCTS 我を守り給え 〜オレンジガーネットの魔除けリング〜 M21026 ¥8,980 人生の道標 〜ブルートパーズ星の煌めきネックレス〜 M21027 ¥7,980 ギャラクシー ブラックオパールネックレス M23666 ¥12,800 CATEGORY * NEW ARRIVAL * 魔女コーデ✬人気ランキング * NEW✬ギフトラッピング * NEW✬クリスタル 天然石 * 魔女のアウターコレクション * NEW✬ドラゴン特集 * 魔女部屋特集 * アニバーサリーグッズ * 魔女の使い魔 黒猫特集 * 星読み魔女特集 * オリジナルTシャツ特集 * 大人の為の【アリスコレクション】特集 * 魔女の私服(個性派・クラシカルファッション) * ワンピース * トップス * ボトム * アウター * シューズ * ストール * バッグ * 靴下 * アクセサリー * コルセット * ハット * お得なセットアイテム * 妖精と精霊特集 * スチームパンク特集 * SALEアイテム * メディア紹介アイテム * 占い魔女アイテム * Witch Express(2−4日営業日で発送) * 魔女たちのアクセサリー * 魔法雑貨 * 即納✬魔女コーデ * アウター * ドレス * セットアップ * トップス * ボトム * メンズ * アクセサリー * 天然石アクセサリー * ジュエリー * バッグ * シューズ * 帽子・ストール * 靴下 * コルセット * ステーショナリー * スマホケース * ディフューザー・アロマネックレス * インテリア雑貨 * その他 * 蝶モチーフ * 魔女の正装(Blackコーデ) * ワンピース * トップス * ボトム * アウター * シューズ * バッグ * アクセサリー * ハット * セットアップ * とんがり魔女靴 * とんがり魔女帽子 * 魔女のローブ、マント * 魔法の杖〜Magica wand〜 * アンティーク調アクセサリー✬ギフトに♥ * おとぎ話の主人公コーデ * 妖精とおとぎ話のアウター * 妖精とおとぎ話のドレス * 妖精とおとぎ話のトップス * 妖精とおとぎ話のボトム * 妖精とおとぎ話の小物・アクセサリー * ちょい足し✬3000円台以下アイテム * Instagramer様着用分 * 魔法的アイテム * 魔法的アクセサリー * 魔法的インテリア雑貨・小物 * アンティーク調雑貨 * 星特集 * 人魚特集 BLOG 2021.09.29 ✬お買い上げの際の注意事項✬ 2023.12.22 ✬Yule 10%OFFクーポン✬ 2023.12.01 ✬ドラゴン特集✬ 2023.12.01 ギフトラッピングにつきまして More プライバシーポリシー 特定商取引法に基づく表記 ©︎奇妙な洋装雑貨店 Magica Bazaar 再入荷のお知らせを希望する 年齢確認 再入荷されましたら、登録したメールアドレス宛にお知らせします。 メールアドレス 折返しのメールが受信できるように、ドメイン指定受信で「thebase.in」と「gmail.com」を許可するように設定してください。 登録する 再入荷のお知らせを希望する 再入荷のお知らせを受け付けました。 ご記入いただいたメールアドレス宛に確認メールをお送りしておりますので、ご確認ください。 メールが届いていない場合は、迷惑メールフォルダをご確認ください。 通知受信時に、メールサーバー容量がオーバーしているなどの理由で受信できない場合がございます。ご確認ください。 折返しのメールが受信できるように、ドメイン指定受信で「thebase.in」と「gmail.com」を許可するように設定してください。 閉じる