<!doctype html>
{#
This file is part of EC-CUBE
Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
http://www.ec-cube.co.jp/
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
#}
<html lang="{{ eccube_config.locale }}">
<head prefix="og: https://ogp.me/ns# fb: https://ogp.me/ns/fb# product: https://ogp.me/ns/product#">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="eccube-csrf-token" content="{{ csrf_token(constant('Eccube\\Common\\Constant::TOKEN_NAME')) }}">
<title>{{ BaseInfo.shop_name }}{% if subtitle is defined and subtitle is not empty %} / {{ subtitle }}{% elseif title is defined and title is not empty %} / {{ title }}{% endif %}</title>
{% if Page.meta_tags is not empty %}
{{ include(template_from_string(Page.meta_tags)) }}
{% if Page.description is not empty %}
<meta name="description" content="{{ Page.description }}">
{% endif %}
{% else %}
{{ include('meta.twig') }}
{% endif %}
{% if Page.author is not empty %}
<meta name="author" content="{{ Page.author }}">
{% endif %}
{% if Page.keyword is not empty %}
<meta name="keywords" content="{{ Page.keyword }}">
{% endif %}
{% if Page.meta_robots is not empty %}
<meta name="robots" content="{{ Page.meta_robots }}">
{% endif %}
<link rel="icon" href="{{ asset('assets/img/common/favicon.ico', 'user_data') }}">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
<link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
<script src="{{ asset('front.bundle.js', 'bundle') }}"></script>
{% block stylesheet %}{% endblock %}
<script>
$(function() {
$.ajaxSetup({
'headers': {
'ECCUBE-CSRF-TOKEN': $('meta[name="eccube-csrf-token"]').attr('content')
}
});
});
</script>
{# Layout: HEAD #}
{% if Layout.Head %}
{{ include('block.twig', {'Blocks': Layout.Head}) }}
{% endif %}
{# プラグイン用styleseetやmetatagなど #}
{% if plugin_assets is defined %}{{ include('@admin/snippet.twig', { snippets: plugin_assets }) }}{% endif %}
<link rel="stylesheet" href="{{ asset('assets/css/customize.css', 'user_data') }}">
{% if app.user %}
<!--
EC-CUBEカスタマイズ
-->
<script type="text/javascript">
// 値取得確認
console.log(window);
console.log('The user id is ' + '{{ app.user.id }}');
console.log('The user email is ' + '{{ app.user.email }}');
console.log('The user name is ' + '{{ app.user.name01 }} {{ app.user.name02 }}');
console.log('The user point is ' + '{{ app.user.point }}');
{% endif %}
</script>
<!--
DataCloud用タグ
-->
<script type="text/javascript" src="https://cdn.c360a.salesforce.com/beacon/c360a/f36d614a-e1b5-4bfd-8585-97d816238409/scripts/c360a.min.js">
console.log('DataCloud tag loaded');
</script>
<!--
//ここまで DataCloud用Beaconタグ
-->
<!--
//ここまで EC-CUBEカスタマイズ
-->
<!--
Personalization用Beaconタグ
<script type="text/javascript" async src="//cdn.evgnet.com/beacon/directusinc/tokutakeaws/scripts/evergage.min.js"></script>
//ここまで Personalization様Beconタグ
-->
<!--
Braze用WebSDKタグ
-->
<!-- SDK読み込み(必須。ただし直接記述の方法)
<script type="text/javascript">
+function(a,p,P,b,y){a.braze={};a.brazeQueue=[];for(var s="BrazeSdkMetadata DeviceProperties Card Card.prototype.dismissCard Card.prototype.removeAllSubscriptions Card.prototype.removeSubscription Card.prototype.subscribeToClickedEvent Card.prototype.subscribeToDismissedEvent Card.fromContentCardsJson Banner CaptionedImage ClassicCard ControlCard ContentCards ContentCards.prototype.getUnviewedCardCount Feed Feed.prototype.getUnreadCardCount ControlMessage InAppMessage InAppMessage.SlideFrom InAppMessage.ClickAction InAppMessage.DismissType InAppMessage.OpenTarget InAppMessage.ImageStyle InAppMessage.Orientation InAppMessage.TextAlignment InAppMessage.CropType InAppMessage.prototype.closeMessage InAppMessage.prototype.removeAllSubscriptions InAppMessage.prototype.removeSubscription InAppMessage.prototype.subscribeToClickedEvent InAppMessage.prototype.subscribeToDismissedEvent InAppMessage.fromJson FullScreenMessage ModalMessage HtmlMessage SlideUpMessage User User.Genders User.NotificationSubscriptionTypes User.prototype.addAlias User.prototype.addToCustomAttributeArray User.prototype.addToSubscriptionGroup User.prototype.getUserId User.prototype.incrementCustomUserAttribute User.prototype.removeFromCustomAttributeArray User.prototype.removeFromSubscriptionGroup User.prototype.setCountry User.prototype.setCustomLocationAttribute User.prototype.setCustomUserAttribute User.prototype.setDateOfBirth User.prototype.setEmail User.prototype.setEmailNotificationSubscriptionType User.prototype.setFirstName User.prototype.setGender User.prototype.setHomeCity User.prototype.setLanguage User.prototype.setLastKnownLocation User.prototype.setLastName User.prototype.setPhoneNumber User.prototype.setPushNotificationSubscriptionType InAppMessageButton InAppMessageButton.prototype.removeAllSubscriptions InAppMessageButton.prototype.removeSubscription InAppMessageButton.prototype.subscribeToClickedEvent automaticallyShowInAppMessages destroyFeed hideContentCards showContentCards showFeed showInAppMessage toggleContentCards toggleFeed changeUser destroy getDeviceId initialize isPushBlocked isPushPermissionGranted isPushSupported logCardClick logCardDismissal logCardImpressions logContentCardImpressions logContentCardsDisplayed logCustomEvent logFeedDisplayed logInAppMessageButtonClick logInAppMessageClick logInAppMessageHtmlClick logInAppMessageImpression logPurchase openSession requestPushPermission removeAllSubscriptions removeSubscription requestContentCardsRefresh requestFeedRefresh refreshFeatureFlags requestImmediateDataFlush enableSDK isDisabled setLogger setSdkAuthenticationSignature addSdkMetadata disableSDK subscribeToContentCardsUpdates subscribeToFeedUpdates subscribeToInAppMessage subscribeToSdkAuthenticationFailures toggleLogging unregisterPush wipeData handleBrazeAction subscribeToFeatureFlagsUpdates getAllFeatureFlags".split(" "),i=0;i<s.length;i++){for(var m=s[i],k=a.braze,l=m.split("."),j=0;j<l.length-1;j++)k=k[l[j]];k[l[j]]=(new Function("return function "+m.replace(/\./g,"_")+"(){window.brazeQueue.push(arguments); return true}"))()}window.braze.getCachedContentCards=function(){return new window.braze.ContentCards};window.braze.getCachedFeed=function(){return new window.braze.Feed};window.braze.getUser=function(){return new window.braze.User};window.braze.getFeatureFlag=function(){return new window.braze.FeatureFlag};(y=p.createElement(P)).type='text/javascript';
y.src='https://js.appboycdn.com/web-sdk/4.5/braze.min.js';
y.async=1;(b=p.getElementsByTagName(P)[0]).parentNode.insertBefore(y,b)
}(window,document,'script');
// initialize the SDK(初期設定)
braze.initialize('712642bd-8b92-4338-8417-373195f29d87', {
baseUrl: "sdk.iad-05.braze.com",
enableLogging: true
});
// optionally show all in-app messages without custom handling
braze.automaticallyShowInAppMessages();
// if you use Content Cards
braze.subscribeToContentCardsUpdates(function(cards){
// cards have been updated
});
// optionally set the current user's External ID
//if (isLoggedIn){
// braze.changeUser(userIdentifier);
//}
// Be sure to call `openSession` after `automaticallyShowInAppMessages`
braze.openSession();
// Troubleshooting
// braze.toggleLogging()
-->
<script type="text/javascript">
{% if app.user %}
// 変数前準備
const userId = '{{ app.user.id }}';
const lastName = '{{ app.user.name01 }}';
const firstName = '{{ app.user.name02 }}';
const email = '{{ app.user.email }}';
{% endif %}
</script>
<!--
// ID設定
braze.changeUser(userId);
// StanderdAttributesへユーザー情報をセットする為の関数
const setStandardAttributes = () => {
if (lastName) {
braze.getUser().setLastName(lastName);
}
if (firstName) {
braze.getUser().setFirstName(firstName);
}
if (email) {
braze.getUser().setEmail(email);
}
}
// StanderdAttributesの関数呼び出し(実行)
setStandardAttributes();
{% if app.user %}
// カスタムユーザー属性のKeyの作成。事前にBraze Manage Settingsからカスタム属性を作成しておく
const point = 'point'
const pointValue = '{{ app.user.point }}';
{% endif %}
// カスタムユーザー属性
const setCustomUserAttribute = () => {
if (point && pointValue) {
braze.getUser().setCustomUserAttribute(point, pointValue);
}
}
// setCustomUserAttributeの関数呼び出し(実行)
setCustomUserAttribute();
// カスタムイベント属性の作成。事前にBraze Manage Settingsからカスタムイベントを作成しておく
const eventName = 'changeRegist'; // EventName
const eventPropertyName = 'open'; // EventPropertyName
const eventPropertyValue = new Date(); // EventPropertyValue
console.log('The time is ' + eventPropertyValue.toLocaleString())
// カスタムイベント
const setCustomEvent = () => {
if (eventName) {
if (eventPropertyName && eventPropertyValue) {
let eventProperties = {}
eventProperties[eventPropertyName] = eventPropertyValue.toLocaleString()
braze.logCustomEvent(eventName, eventProperties)
}
else {
braze.logCustomEvent(eventName)
}
}
}
// setCustomEventの関数呼び出し(実行)本来はカスタムイベントを起こす場所で発火
setCustomEvent();
// 購入イベント
const setPurchaseEvent = () => {
}
</script>
//ここまで Braze用WebSDKタグ
-->
</head>
<body id="page_{{ app.request.get('_route') }}" class="{{ body_class|default('other_page') }}">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5JZRBCNS"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
{# Layout: BODY_AFTER #}
{% if Layout.BodyAfter %}
{{ include('block.twig', {'Blocks': Layout.BodyAfter}) }}
{% endif %}
{% if isMaintenance %}
<div class="ec-maintenanceAlert">
<div>
<div class="ec-maintenanceAlert__icon"><img src="{{ asset('assets/icon/exclamation-white.svg') }}"/></div>
{{ 'メンテナンスモードが有効になっています。'|trans }}
</div>
</div>
{% endif %}
<div class="ec-layoutRole">
{# Layout: HEADER #}
{% if Layout.Header %}
<header class="ec-layoutRole__header">
{{ include('block.twig', {'Blocks': Layout.Header}) }}
</header>
{% endif %}
{# Layout: CONTENTS_TOP #}
{% if Layout.ContentsTop %}
<div class="ec-layoutRole__contentTop">
{{ include('block.twig', {'Blocks': Layout.ContentsTop}) }}
</div>
{% endif %}
<div class="ec-layoutRole__contents">
{# Layout: SIDE_LEFT #}
{% if Layout.SideLeft %}
<aside class="ec-layoutRole__left">
{{ include('block.twig', {'Blocks': Layout.SideLeft}) }}
</aside>
{% endif %}
{% set layoutRoleMain = 'ec-layoutRole__main' %}
{% if Layout.ColumnNum == 2 %}
{% set layoutRoleMain = 'ec-layoutRole__mainWithColumn' %}
{% elseif Layout.ColumnNum == 3 %}
{% set layoutRoleMain = 'ec-layoutRole__mainBetweenColumn' %}
{% endif %}
<main class="{{ layoutRoleMain }}">
{# Layout: MAIN_TOP #}
{% if Layout.MainTop %}
<div class="ec-layoutRole__mainTop">
{{ include('block.twig', {'Blocks': Layout.MainTop}) }}
</div>
{% endif %}
{# MAIN AREA #}
{% block main %}{% endblock %}
{# Layout: MAIN_Bottom #}
{% if Layout.MainBottom %}
<div class="ec-layoutRole__mainBottom">
{{ include('block.twig', {'Blocks': Layout.MainBottom}) }}
</div>
{% endif %}
</main>
{# Layout: SIDE_RIGHT #}
{% if Layout.SideRight %}
<aside class="ec-layoutRole__right">
{{ include('block.twig', {'Blocks': Layout.SideRight}) }}
</aside>
{% endif %}
</div>
{# Layout: CONTENTS_BOTTOM #}
{% if Layout.ContentsBottom %}
<div class="ec-layoutRole__contentBottom">
{{ include('block.twig', {'Blocks': Layout.ContentsBottom}) }}
</div>
{% endif %}
{# Layout: CONTENTS_FOOTER #}
{% if Layout.Footer %}
<footer class="ec-layoutRole__footer">
{{ include('block.twig', {'Blocks': Layout.Footer}) }}
</footer>
{% endif %}
</div><!-- ec-layoutRole -->
<div class="ec-overlayRole"></div>
<div class="ec-drawerRoleClose"><i class="fas fa-times"></i></div>
<div class="ec-drawerRole">
{# Layout: DRAWER #}
{% if Layout.Drawer %}
{{ include('block.twig', {'Blocks': Layout.Drawer}) }}
{% endif %}
</div>
<div class="ec-blockTopBtn pagetop">{{'ページトップへ'|trans}}</div>
{% include('@common/lang.twig') %}
<script src="{{ asset('assets/js/function.js') }}"></script>
<script src="{{ asset('assets/js/eccube.js') }}"></script>
{% block javascript %}{% endblock %}
{# Layout: CLOSE_BODY_BEFORE #}
{% if Layout.CloseBodyBefore %}
{{ include('block.twig', {'Blocks': Layout.CloseBodyBefore}) }}
{% endif %}
{# プラグイン用Snippet #}
{% if plugin_snippets is defined %}
{{ include('snippet.twig', { snippets: plugin_snippets }) }}
{% endif %}
<script src="{{ asset('assets/js/customize.js', 'user_data') }}"></script>
</body>
</html>