\n\n\nStyleguide 9.1\n*/\n\n/*\nマイページ\n\nマイページで表示するメニューリストです。\n\nul を利用したリスト要素で記述します。\n\nex [マイページ メニューリスト部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-navlist\n\nStyleguide 9.1.1\n*/\n.ec-navlistRole{\n & &__navlist {\n @include reset_link;\n display: flex;\n flex-wrap: wrap;\n border-color: #D0D0D0;\n border-style: solid;\n border-width: 1px 0 0 1px;\n margin-bottom: 32px;\n padding: 0;\n list-style: none;\n @include media_desktop {\n flex-wrap: nowrap;\n }\n }\n\n & &__item{\n width: 50%;\n border-color: #D0D0D0;\n border-style: solid;\n border-width: 0 1px 1px 0;\n text-align: center;\n font-weight: bold;\n a {\n padding: 16px;\n width: 100%;\n display: inline-block;\n &:hover{\n background: #f5f7f8;\n }\n }\n }\n .active {\n a {\n color: #DE5D50;\n }\n }\n}\n\n/*\nマイページ(お気に入り機能無効)\n\nマイページで表示するメニューリストです。\n\nul を利用したリスト要素で記述します。\n\nex [マイページ メニューリスト部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-navlist_noFavorite\n\nStyleguide 9.1.2\n*/\n\n/*\nWelcome メッセージ\n\nマイページで表示するログイン名の表示コンポーネントです。\n\nex [マイページ メニューリスト下部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-welcomeMsg\n\nStyleguide 9.1.3\n*/\n.ec-welcomeMsg{\n @include mypageContainer;\n margin: 1em 0;\n padding-bottom: 32px;\n text-align: center;\n @include borderBottom;\n\n}\n\n/*\nお気に入り一覧\n\nお気に入り一覧で表示するアイテムの表示コンポーネントです。\n\nex [マイページ お気に入り一覧](http://demo3.ec-cube.net/mypage/favorite)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-favorite\n\nStyleguide 9.1.4\n*/\n.ec-favoriteRole{\n & &__header {\n margin-bottom: 16px;\n }\n & &__detail {\n }\n & &__itemList {\n @include reset_link;\n display: flex;\n flex-wrap: wrap;\n padding: 0;\n list-style: none;\n }\n & &__item{\n margin-bottom: 8px;\n width: 47.5%;\n position: relative;\n box-sizing: border-box;\n padding: 10px;\n &-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center;\n @include media_desktop() {\n height: 250px;\n }\n }\n img{\n width: auto;\n max-height: 100%;\n }\n @include media_desktop(){\n width: 25%;\n }\n .ec-closeBtn--circle {\n position: absolute;\n right: 10px;\n top: 10px;\n .ec-icon img{\n width: 1em;\n height: 1em;\n }\n }\n }\n & &__itemThumb {\n display: block;\n height:auto;\n margin-bottom: 8px;\n }\n & &__itemTitle{\n margin-bottom: 2px;\n }\n & &__itemPrice{\n font-weight: bold;\n margin-bottom: 0;\n }\n\n}\n","@import \"./variables\";\n@import \"./clearfix\";\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n\n\n\n//@mixin media_tablet(){\n// @media only screen and (min-width: 768px) {\n// @content;\n// }\n//}\n\n@mixin media_desktop(){\n @media only screen and (min-width: 768px) {\n @content;\n }\n}\n\n//@mixin media_desktop2(){\n// @media only screen and (min-width: 768px) {\n// @content;\n// }\n//}\n//\n//@mixin media_desktop3(){\n// @media only screen and (min-width: 768px) {\n// @content;\n// }\n//}\n\n\n@mixin container(){\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n @include clearfix;\n @include commonStyle();\n width: 100%;\n max-width: 1130px;\n\n //@media (min-width: $desktop) {\n // width: 720 + 30px;\n //}\n //@media (min-width: $desktop2) {\n // width: 940 + 30px;\n //}\n //@media (min-width: $desktop3) {\n // width: 1140 + 30px;\n //}\n}\n@mixin mypageContainer(){\n margin-right: auto;\n margin-left: auto;\n padding-left: 16px;\n padding-right: 16px;\n box-sizing: border-box;\n @include clearfix;\n @include commonStyle();\n width: 100%;\n //max-width: 1130px;\n @include media_desktop {\n padding-left: 26px;\n padding-right: 26px;\n }\n}\n\n@mixin commonStyle(){\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n\n //a {\n //color: #0092C4;\n //color: #A092C4;\n //text-decoration: none;\n //cursor: pointer;\n //}\n //a:hover,\n //a:focus,\n //a:active { color: #33A8D0;text-decoration: none; outline: none;}\n\n\n textarea { /* for chrome fontsize bug */\n font-family: sans-serif;\n }\n\n //ul, ol {\n // list-style: none;\n // margin: 0; padding: 0;\n //}\n //dl, dt, dd, li{\n // margin: 0; padding: 0;\n //}\n img {\n max-width: 100%;\n }\n\n html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n *,\n *::before,\n *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n img{\n width: 100%;\n }\n\n\n}\n","@import \"../mixins/media\";\n\n/*\n標準セクション\n\n通常のコンテナブロックです。\n\nex [商品詳細ページ コンテナ](http://demo3.ec-cube.net/products/detail/33)\n\nMarkup:\ninclude /assets/tmpl/elements/11.1.role.pug\n+ec-roleRole\n\nStyleguide 11.1\n*/\n.ec-role{\n @include container;\n}\n\n/*\nマイページセクション\n\nマイページ専用のコンテナブロックです。\n\nex [マイページ コンテナ](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/11.1.role.pug\n+ec-mypageRole\n\nStyleguide 11.1.2\n*/\n.ec-mypageRole{\n @include mypageContainer;\n\n .ec-pageHeader h1{\n @include media_desktop {\n margin: 10px 0 48px;\n padding: 8px 0 18px;\n }\n }\n\n}\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n@import \"../mixins/clearfix\";\n@import \"../mixins/animation\";\n\n/*\nヘッダー\n\nヘッダー用のプロジェクトコンポーネントを提供します。\n\nex [トップページ ヘッダー](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\ninclude /assets/tmpl/elements/11.4.categoryNavi.pug\n+b.ec-layoutRole\n +e.header\n +ec-headerRole\n +ec-headerNaviRole\n +ec-categoryNaviRole\n\nStyleguide 11.2\n*/\n.ec-layoutRole {\n width: 100%;\n transition: transform 0.3s;\n background: #fff;\n & &__contentTop {\n padding: 0;\n }\n\n & &__contents {\n margin-right: auto;\n margin-left: auto;\n width: 100%;\n max-width: 1150px;\n display: flex;\n flex-wrap: nowrap;\n\n }\n & &__main {\n width: 100%;\n }\n & &__mainWithColumn {\n width: 100%;\n @include media_desktop() {\n width: 75%;\n }\n }\n & &__mainBetweenColumn {\n width: 100%;\n @include media_desktop() {\n width: 50%;\n }\n }\n & &__left,\n & &__right {\n display: none;\n @include media_desktop() {\n display: block;\n width: 25%;\n }\n }\n}\n\n\n.ec-headerRole {\n @include container;\n padding-top: 15px;\n position: relative;\n &:after {\n display: none;\n }\n @include media_desktop {\n @include clearfix;\n }\n &::before {\n display: none;\n }\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n width: auto;\n @include media_desktop {\n width: 100%;\n @include clearfix;\n }\n & &__title {\n width: 100%;\n }\n & &__navSP {\n display: block;\n position: absolute;\n top: 15px;\n width: 27%;\n right: 0;\n text-align: right;\n @include media_desktop {\n display: none;\n }\n }\n}\n\n.ec-headerNaviRole {\n @include container;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-top: 15px;\n\n .fa-bars {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n @include media_desktop {\n padding-bottom: 40px;\n }\n\n & &__left {\n width: calc(100% / 3);\n\n }\n\n & &__search {\n display: none;\n @include media_desktop() {\n display: inline-block;\n margin-top: 10px;\n @include reset_link;\n }\n }\n & &__navSP {\n display: block;\n @include media_desktop() {\n display: none;\n @include reset_link;\n }\n }\n\n & &__right {\n width: calc(100% * 2 / 3);\n display: flex;\n justify-content: flex-end;\n align-items: center;\n }\n\n & &__nav {\n display: inline-block;\n @include reset_link;\n }\n & &__cart {\n display: inline-block;\n @include reset_link;\n }\n}\n\n.ec-headerNavSP {\n display: block;\n cursor: pointer;\n //display: inline-block;\n border-radius: 50%;\n box-sizing: border-box;\n padding: 10px;\n width: 40px;\n height: 40px;\n font-size: 18px;\n text-align: center;\n color: black;\n background: white;\n position: fixed;\n top: 10px;\n left: 10px;\n z-index: 1000;\n\n .fas {\n vertical-align: top;\n }\n\n @include media_desktop {\n display: none;\n }\n}\n.ec-headerNavSP.is-active {\n display: none;\n}\n\n/*\nヘッダー:タイトル\n\nヘッダー内で使用されるタイトルコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\n+ec-headerTitle\n\nStyleguide 11.2.1\n*/\n.ec-headerTitle {\n @include commonStyle();\n & &__title {\n text-align: center;\n h1 {\n margin: 0;\n padding: 0;\n }\n a {\n display: inline-block;\n margin-bottom: 30px;\n text-decoration: none;\n font-size: 20px;\n\n @include media_desktop() {\n font-size: 40px;\n }\n font-weight: bold;\n color: black;\n\n &:hover {\n opacity: .8;\n }\n }\n }\n & &__subtitle {\n font-size: 10px;\n text-align: center;\n @include media_desktop() {\n font-size: 16px;\n margin-bottom: 10px;\n }\n a {\n display: inline-block;\n color: #0092C4;\n text-decoration: none;\n cursor: pointer;\n }\n }\n}\n\n/*\nヘッダー:ユーザナビゲーション\n\nヘッダー内でユーザに関与するナビゲーションコンポーネントです。\n
\n`.ec-headerNaviRole`>`.ec-headerNaviRole__nav`内に記述すると2カラム上の右側に配置することができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\n+ec-headerNav\n\nsg-wrapper:\n\n\nStyleguide 11.2.3\n*/\n.ec-headerNav {\n text-align: right;\n & &__item {\n margin-left: 0;\n display: inline-block;\n font-size: 28px;\n }\n & &__itemIcon {\n display: inline-block;\n margin-right: 10px;\n margin-left: 10px;\n font-size: 18px;\n color: black;\n @include media_desktop {\n margin-right: 0;\n font-size: 20px;\n }\n }\n & &__itemLink {\n display: none;\n margin-right: 5px;\n font-size: 14px;\n vertical-align: middle;\n color: black;\n @include media_desktop {\n display: inline-block;\n }\n }\n}\n\n/*\nヘッダー:検索ボックス\n\nヘッダー内で使用される商品検索コンポーネントです。\n
\n`.ec-headerNaviRole`>`.ec-headerNaviRole__search`内に記述すると2カラム上の右側に配置することができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\n+ec-headerSearch\n\nsg-wrapper:\n\n\nStyleguide 11.2.4\n*/\n.ec-headerSearch{\n @include clearfix;\n & &__category {\n float: none;\n @include media_desktop {\n float: left;\n width: 43%;\n }\n .ec-select {\n overflow: hidden;\n width: 100%;\n margin: 0;\n text-align: center;\n\n select {\n width: 100%;\n cursor: pointer;\n padding: 8px 24px 8px 8px;\n text-indent: 0.01px;\n text-overflow: ellipsis;\n border: none;\n outline: none;\n background: transparent;\n background-image: none;\n box-shadow: none;\n appearance: none;\n color: #fff;\n\n @include media_desktop {\n max-width: 165px;\n height: 36px;\n }\n\n option {\n color: #000;\n }\n\n &::-ms-expand {\n display: none;\n }\n }\n\n &.ec-select_search {\n position: relative;\n border: 0;\n background: #000;\n color: #fff;\n border-top-right-radius: 10px;\n border-top-left-radius: 10px;\n\n @include media_desktop {\n border-top-right-radius: inherit;\n border-top-left-radius: 50px;\n border-bottom-left-radius: 50px;\n }\n\n &::before {\n position: absolute;\n top: 0.8em;\n right: 0.4em;\n width: 0;\n height: 0;\n padding: 0;\n content: '';\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid #fff;\n pointer-events: none;\n }\n }\n }\n }\n & &__keyword{\n position: relative;\n color: $clrDarkGray;\n border: 1px solid #ccc;\n background-color: #f6f6f6;\n border-bottom-right-radius: 10px;\n border-bottom-left-radius: 10px;\n\n @include media_desktop {\n float: right;\n width: 57%;\n border-bottom-left-radius: inherit;\n border-top-right-radius: 50px;\n border-bottom-right-radius: 50px;\n }\n input[type=\"search\"]{\n width: 100%;\n height: 34px;\n font-size: 16px;\n border: 0 none;\n padding: 0.5em 50px 0.5em 1em;\n box-shadow: none;\n background: none;\n box-sizing: border-box;\n margin-bottom: 0;\n @include media_desktop {\n font-size: 12px;\n }\n }\n .ec-icon {\n width: 22px;\n height: 22px;\n }\n }\n & &__keywordBtn{\n border: 0;\n background: none;\n position: absolute;\n right: 5px;\n top: 50%;\n transform: translateY(-55%);\n display: block;\n white-space: nowrap;\n z-index: 1;\n }\n}\n\n/*\nヘッダー:カテゴリナビ\n\nヘッダー内で使用されている商品のカテゴリ一覧として使用します。\n`li`の中に`ul > li`要素を入れることで、階層を深くする事ができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.4.categoryNavi.pug\n+ec-itemNav\n\nsg-wrapper:\n
\n\nStyleguide 11.2.5\n*/\n.ec-categoryNaviRole {\n @include container;\n display: none;\n @include media_desktop() {\n display: block;\n width: 100%;\n @include reset_link;\n }\n}\n\n.ec-itemNav {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n text-align: center;\n}\n\n.ec-itemNav__nav {\n display: block;\n margin: 0 auto;\n padding: 0;\n width: auto;\n height: auto;\n list-style-type: none;\n text-align: center;\n vertical-align: bottom;\n @include media_desktop {\n display: inline-block;\n }\n}\n\n.ec-itemNav__nav li {\n float: none;\n margin: 0;\n padding: 0;\n width: 100%;\n text-align: center;\n position: relative;\n @include media_desktop {\n float: left;\n width: auto;\n }\n}\n\n.ec-itemNav__nav li a {\n display: block;\n border-bottom: 1px solid #E8E8E8;\n margin: 0;\n padding: 16px;\n height: auto;\n color: #2e3233;;\n font-size: 16px;\n font-weight: bold;\n line-height: 20px;\n text-decoration: none;\n text-align: left;\n background: #fff;\n border-bottom: 1px solid #E8E8E8;\n @include media_desktop {\n text-align: center;\n border-bottom: none;\n }\n}\n\n.ec-itemNav__nav li ul {\n display: none;\n z-index: 0;\n margin: 0;\n padding: 0;\n min-width: 200px;\n list-style: none;\n position: static;\n top: 100%;\n left: 0;\n @include media_desktop {\n display: block;\n z-index: 100;\n position: absolute;\n }\n}\n\n.ec-itemNav__nav li ul li {\n overflow: hidden;\n width: 100%;\n height: auto;\n transition: .3s;\n @include media_desktop {\n overflow: hidden;\n height: 0;\n }\n}\n\n.ec-itemNav__nav li ul li a {\n border-bottom: 1px solid #E8E8E8;\n padding: 16px 22px 16px 16px;\n font-size: 16px;\n font-weight: bold;\n color: white;\n text-align: left;\n background: black;\n}\n\n.ec-itemNav__nav > li:hover > a {\n background: #fafafa;\n}\n\n.ec-itemNav__nav > li:hover li:hover > a {\n background: #333;\n}\n\n.ec-itemNav__nav > li:hover > ul > li {\n @include media_desktop {\n overflow: visible;\n height: auto;\n\n }\n}\n\n.ec-itemNav__nav li ul li ul {\n top: 0;\n left: 100%;\n width: auto;\n}\n\n.ec-itemNav__nav li ul li ul:before {\n @include media_desktop {\n content: \"\\f054\";\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900;\n font-size: 12px;\n color: white;\n position: absolute;\n top: 19px;\n right: auto;\n left: -20px;\n }\n}\n\n.ec-itemNav__nav li ul li:hover > ul > li {\n @include media_desktop {\n overflow: visible;\n height: auto;\n width: auto;\n }\n}\n\n.ec-itemNav__nav li ul li ul li a {\n background: #7D7D7D\n}\n\n.ec-itemNav__nav li:hover ul li ul li a:hover {\n background: #333;\n}\n\n/*\nヘッダー:SPヘッダー\n\nSP時のみ出現するヘッダーに関係するコンポーネントです。
\n`.ec-headerSearch`、`.ec-headerNav`、`.ec-itemNav`は`.ec-drawerRole`の子要素にある場合、ドロワーに適したスタイルに変化します。
\n\nStyleguide 11.2.6\n*/\n\n.ec-drawerRole {\n overflow-y: scroll;\n background: black;\n width: 260px;\n height: 100vh;\n transform: translateX(-300px);\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n transition: z-index 0ms 1ms;\n @include media_desktop() {\n display: none;\n }\n\n\n .ec-headerSearchArea {\n padding: 20px 10px;\n width: 100%;\n background: #F8F8F8;\n }\n\n .ec-headerSearch{\n padding: 16px 8px 26px;\n background: #EBEBEB;\n color: #636378;\n select{\n width: 100% !important;\n }\n }\n\n .ec-headerCategoryArea{\n .ec-headerCategoryArea__heading {\n border-top: 1px solid #CCCCCC;\n border-bottom: 1px solid #CCCCCC;\n padding: 1em 10px;\n font-size: 16px;\n font-weight: bold;\n color: black;\n background: #F8F8F8;\n }\n\n p {\n margin-top: 0;\n margin-bottom: 0;\n }\n\n .ec-itemNav__nav li a {\n border-bottom: 1px solid #ccc;\n border-bottom: 1px solid #ccc;\n color: black;\n font-weight: normal;\n background: #f8f8f8;\n }\n\n .ec-itemNav__nav li ul li a {\n border-bottom: 1px solid #ccc;\n padding-left: 20px;\n font-weight: normal;\n background: white;\n }\n\n .ec-itemNav__nav > li:hover > a {\n background: #f8f8f8;\n }\n\n .ec-itemNav__nav > li:hover li:hover > a {\n background: white;\n }\n\n .ec-itemNav__nav li ul li ul li a {\n padding-left: 40px;\n color: black;\n background: white;\n }\n\n .ec-itemNav__nav li:hover ul li ul li a:hover {\n background: white;\n }\n\n .ec-itemNav__nav li ul li ul li ul li a{\n padding-left: 60px;\n font-weight: normal;\n }\n }\n .ec-headerLinkArea {\n background: black;\n\n .ec-headerLink__list {\n border-top: 1px solid #ccc;\n\n }\n\n .ec-headerLink__item {\n display: block;\n border-bottom: 1px solid #ccc;\n padding: 15px 20px;\n font-size: 16px;\n font-weight: bold;\n color: white;\n }\n .ec-headerLink__icon {\n display: inline-block;\n width: 28px;\n font-size: 17px;\n }\n\n\n\n }\n\n}\n\n.ec-drawerRoleClose {\n display: none;\n cursor: pointer;\n border-radius: 50%;\n box-sizing: border-box;\n padding: 10px;\n width: 40px;\n height: 40px;\n font-size: 18px;\n text-align: center;\n color: black;\n background: white;\n position: fixed;\n top: 10px;\n left: 270px;\n z-index: 1000;\n\n .fas {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n @include media_desktop {\n display: none;\n }\n\n}\n\n.ec-drawerRole.is_active {\n display: block;\n transform: translateX(0);\n transition: all .3s;\n z-index: 100000;\n\n @include media_desktop() {\n display: none;\n }\n}\n.ec-drawerRoleClose.is_active {\n display: inline-block;\n transition: all .3s;\n\n @include media_desktop {\n display: none;\n }\n}\n\n.ec-overlayRole {\n position: fixed;\n width: 100%;\n height: 100vh;\n top: 0;\n left: 0;\n opacity: 0;\n background: transparent;\n transform: translateX(0);\n transition: all .3s;\n visibility: hidden;\n\n @include media_desktop {\n display: none;\n }\n}\n\n.have_curtain .ec-overlayRole {\n display: block;\n opacity: 1;\n background: rgba(0, 0, 0, 0.5);\n visibility: visible;\n\n @include media_desktop {\n display: none;\n }\n}\n\n/*\nヘッダー:test\n\ntest\n\nMarkup:\nspan.ec-itemAccordionParent test1\nul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test2\n ul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test3\n ul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test4\n\nStyleguide 11.2.7\n*/\n\n.ec-itemNavAccordion {\n display: none;\n}\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n/*\nフッター\n\n全ページで使用されるフッターのプロジェクトコンポーネントです。\n\nex [トップページ フッター](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerRole\n\nStyleguide 11.3\n*/\n.ec-footerRole{\n border-top: 1px solid #7d7d7d;\n margin-top: 30px;\n background: black;\n\n @include media_desktop(){\n padding-top: 40px;\n margin-top: 100px;\n }\n & &__inner{\n @include media_desktop {\n @include container;\n }\n }\n}\n\n/*\nフッターナビ\n\nフッタープロジェクトで使用するナビゲーション用のコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerNav\n\nsg-wrapper:\n\n\nStyleguide 11.3.1\n*/\n.ec-footerNavi{\n padding: 0;\n color: white;\n list-style: none;\n text-align: center;\n\n & &__link{\n display: block;\n\n @include media_desktop {\n display: inline-block;\n }\n\n a{\n display: block;\n border-bottom: 1px solid #7d7d7d;\n padding: 15px 0;\n font-size: 14px;\n color: inherit;\n text-decoration: none;\n\n @include media_desktop {\n display: inline-block;\n border-bottom: none;\n margin: 0 10px;\n padding: 0;\n text-decoration: underline;\n }\n }\n &:hover {\n a {\n opacity: .8;\n text-decoration: none;\n }\n\n }\n\n }\n}\n\n/*\nフッタータイトル\n\nフッタープロジェクトで使用するタイトル用のコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerTitle\n\nsg-wrapper:\n\n\nStyleguide 11.3.2\n*/\n.ec-footerTitle{\n padding: 40px 0 60px;\n text-align: center;\n color: white;\n\n @include media_desktop {\n padding: 50px 0 80px;\n }\n\n & &__logo{\n display: block;\n margin-bottom: 10px;\n font-weight: bold;\n @include reset_link();\n\n a{\n font-size: 22px;\n color: inherit;\n @include media_desktop {\n font-size: 24px;\n }\n\n }\n\n &:hover {\n a {\n opacity: .8;\n text-decoration: none;\n }\n }\n }\n & &__copyright{\n font-size: 10px;\n\n @include media_desktop {\n font-size: 12px;\n }\n }\n}\n","@import \"../mixins/media\";\n/*\nトップページ\n\nトップページ スライド部に関する Project コンポーネントを定義します。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/12.1.slider.pug\n+ec-sliderRole\n\nStyleguide 12.1\n*/\n.ec-sliderRole{\n @include container;\n margin-bottom: 24px;\n ul{\n padding: 0;\n list-style: none;\n }\n}\n.ec-sliderItemRole{\n @include container;\n margin-bottom: 24px;\n ul{\n padding: 0;\n list-style: none;\n }\n .item_nav {\n display: none;\n @include media_desktop {\n display: flex;\n justify-content: flex-start;\n flex-wrap: wrap;\n margin-bottom: 0;\n }\n\n }\n .slideThumb{\n margin-bottom: 25px;\n width: 33%;\n opacity: .8;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n &:hover {\n opacity: 1;\n }\n img {\n width: 80%;\n }\n }\n}\n","@import \"../mixins/media\";\n\n/*\nアイキャッチ\n\nトップページ アイキャッチ部に関する Project コンポーネントを定義します。\n\nex [トップページスライダー直下 アイキャッチ部](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/12.2.eyecatch.pug\n+ec-eyecatchRole\n\nStyleguide 12.2\n*/\n.ec-eyecatchRole {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 40px;\n\n @include media_desktop {\n flex-wrap: nowrap;\n }\n\n & &__image {\n display: block;\n margin-bottom: 40px;\n width: 100%;\n height: 100%;\n\n @include media_desktop {\n order: 2;\n }\n }\n\n & &__intro {\n color: black;\n\n @include media_desktop {\n padding-right: 5%;\n order: 1;\n }\n }\n & &__introEnTitle {\n margin-bottom: .8em;\n font-size: 16px;\n font-weight: normal;\n\n @include media_desktop {\n margin-top: 45px;\n }\n }\n & &__introTitle {\n margin-bottom: .8em;\n font-size: 24px;\n font-weight: bold;\n\n @include media_desktop {\n margin-bottom: 1em;\n font-size: 26px;\n }\n }\n /* Deprecated https://github.com/EC-CUBE/ec-cube/pull/4220 */\n & &__introDescriptiron {\n margin-bottom: 20px;\n font-size: 16px;\n line-height: 2;\n @include media_desktop {\n margin-bottom: 30px;\n }\n }\n & &__introDescription {\n margin-bottom: 20px;\n font-size: 16px;\n line-height: 2;\n @include media_desktop {\n margin-bottom: 30px;\n }\n }\n}\n","@import \"../mixins/btn\";\n@import \"../mixins/media\";\n\n/*\nボタン\n\nトップページで使用されているボタンのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n\nStyleguide 12.3\n*/\n\n/*\n通常ボタン\n\nインラインの要素としてボタンを定義出来ます。\n\nMarkup:\n.ec-inlineBtn--top more\n\nStyleguide 12.3.1\n*/\n.ec-inlineBtn--top{\n @include _btn(white, black, black);\n}\n\n/*\nロングボタン(全幅)\n\nロングタイプのボタンです。\n\nMarkup:\n.ec-blockBtn--top 商品一覧へ\n\nStyleguide 2.1.2\n*/\n.ec-blockBtn--top{\n @include _btn(white, black, black);\n display: block;\n height:56px;\n line-height:56px;\n padding-top: 0;\n padding-bottom: 0;\n\n @include media_desktop {\n max-width: 260px;\n }\n}\n","/*\n見出し\n\nトップページで使用されている見出しのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n\nStyleguide 12.4\n*/\n\n/*\n横並び見出し\n\n横並びの見出しです。\n\nMarkup:\n.ec-secHeading\n span.ec-secHeading__en TOPIC\n span.ec-secHeading__line |\n span.ec-secHeading__ja 特集\n\nStyleguide 12.4.1\n*/\n.ec-secHeading {\n margin-bottom: 15px;\n color: black;\n & &__en{\n font-size: 18px;\n font-weight: bold;\n letter-spacing: .2em;\n }\n & &__line{\n display: inline-block;\n margin: 0 20px;\n width: 1px;\n height: 14px;\n background: black;\n }\n & &__ja{\n font-size: 12px;\n font-weight: normal;\n letter-spacing: .15em;\n vertical-align: 2px;\n }\n}\n\n/*\n縦並び見出し\n\n縦並びの見出しです。\n\nMarkup:\n.ec-secHeading--tandem\n span.ec-secHeading__en TOPIC\n span.ec-secHeading__line |\n span.ec-secHeading__ja 特集\n\nStyleguide 12.4.2\n*/\n\n.ec-secHeading--tandem {\n margin-bottom: 15px;\n color: black;\n text-align: center;\n & .ec-secHeading__en{\n display: block;\n font-size: 18px;\n font-weight: bold;\n letter-spacing: .2em;\n }\n & .ec-secHeading__line{\n display: block;\n margin: 13px auto;\n width: 20px;\n height: 1px;\n background: black;\n }\n & .ec-secHeading__ja{\n display: block;\n margin-bottom: 30px;\n font-size: 12px;\n font-weight: normal;\n letter-spacing: .15em;\n vertical-align: 2px;\n }\n}\n","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n\n/*\nトピック(アイテム2列)\n\nトップページで使用されているトピックのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n\nStyleguide 12.5.1\n*/\n\n.ec-topicRole {\n padding: 40px 0;\n background: #F8F8F8;\n\n @include media_desktop {\n padding: 60px 0;\n }\n\n & &__list {\n display: flex;\n flex-wrap: wrap;\n\n @include media_desktop {\n flex-wrap: nowrap;\n }\n\n }\n & &__listItem {\n margin-bottom: 20px;\n width: 100%;\n height: auto;\n\n @include media_desktop {\n width: calc(100% / 2);\n\n &:not(:last-of-type){\n margin-right: 30px;\n }\n }\n\n }\n & &__listItemTitle {\n margin-top: .5em;\n font-size: 14px;\n color: black;\n\n @include media_desktop {\n margin-top: 1em;\n }\n }\n\n}\n","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n\n/*\nカテゴリ(アイテム4列 スマホの時は2列)\n\nトップページで使用されているアイテムリストのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n\nStyleguide 12.6.1\n*/\n\n.ec-newItemRole {\n padding: 40px 0;\n\n @include media_desktop {\n padding: 60px 0;\n }\n\n & &__list {\n display: flex;\n flex-wrap: wrap;\n\n @include media_desktop {\n flex-wrap: nowrap;\n }\n\n }\n & &__listItem {\n margin-bottom: 4%;\n width: 48%;\n height: auto;\n\n &:not(:first-child){\n a {\n color: black;\n }\n }\n\n @include media_desktop {\n margin-bottom: 15px;\n width: calc(100% / 4);\n\n &:not(:last-of-type){\n margin-right: 30px;\n }\n }\n\n &:nth-child(odd){\n margin-right: 4%;\n\n @include media_desktop {\n margin-right: 30px;\n }\n }\n }\n & &__listItemHeading {\n margin-top: calc(45% - 20px);\n }\n & &__listItemTitle {\n margin: 8px 0;\n font-size: 14px;\n font-weight: bold;\n\n @include media_desktop {\n margin: 20px 0 10px;\n }\n }\n\n & &__listItemPrice {\n font-size: 12px;\n }\n\n}\n","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n\n/*\nカテゴリ(アイテム3列)\n\nトップページで使用されているカテゴリのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n\nStyleguide 12.7.1\n*/\n\n.ec-categoryRole {\n padding: 40px 0;\n color: black;\n background: #F8F8F8;\n\n @include media_desktop {\n padding: 60px 0;\n }\n\n & &__list {\n display: flex;\n flex-wrap: wrap;\n\n @include media_desktop {\n flex-wrap: nowrap;\n }\n\n }\n & &__listItem {\n margin-bottom: 20px;\n width: 100%;\n height: auto;\n\n @include media_desktop {\n width: calc(100% / 3);\n\n &:not(:last-of-type){\n margin-right: 30px;\n }\n }\n\n }\n\n}\n","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n\n/*\n見出し\n\nトップページで使用されている新着情報のスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n\nStyleguide 12.8.1\n*/\n\n.ec-newsRole {\n padding: 40px 0 0;\n\n @include media_desktop {\n padding: 60px 0 0;\n }\n\n & &__news {\n\n box-sizing: border-box;\n\n @include media_desktop {\n border: 16px solid #F8F8F8;\n padding: 20px 30px;\n }\n }\n & &__newsItem {\n width: 100%;\n\n &:not(:last-of-type){\n border-bottom: 1px solid #ccc;\n }\n\n &:last-of-type {\n margin-bottom: 20px;\n\n @include media_desktop {\n margin-bottom: 0;\n }\n }\n\n\n @include media_desktop {\n\n padding: 20px 0;\n }\n }\n & &__newsHeading {\n cursor: pointer;\n\n @include media_desktop {\n display: flex;\n }\n\n }\n & &__newsDate {\n display: block;\n margin: 15px 0 5px;\n font-size: 12px;\n color: black;\n\n @include media_desktop {\n display: inline-block;\n margin: 0;\n min-width: 120px;\n font-size: 14px;\n }\n\n }\n & &__newsColumn {\n display: flex;\n\n @include media_desktop {\n display: inline-flex;\n min-width: calc(100% - 120px);\n }\n }\n\n & &__newsTitle {\n display: inline-block;\n margin-bottom: 10px;\n width: 90%;\n font-size: 14px;\n font-weight: bold;\n color: #7D7D7D;\n line-height: 1.6;\n\n @include media_desktop {\n margin-bottom: 0;\n line-height: 1.8;\n }\n\n }\n & &__newsClose {\n display: inline-block;\n width: 10%;\n position: relative;\n\n }\n & &__newsCloseBtn {\n display: inline-block;\n margin-left: auto;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n color: white;\n text-align: center;\n background: black;\n cursor: pointer;\n position: absolute;\n right: 5px;\n }\n & &__newsDescription {\n display: none;\n margin: 0 0 10px;\n font-size: 14px;\n line-height: 1.4;\n overflow: hidden;\n\n @include media_desktop {\n margin: 20px 0 0;\n line-height: 1.8;\n }\n\n a {\n color: #0092C4;\n }\n }\n &__newsItem.is_active &__newsDescription{\n margin: 0 0 10px;\n\n @include media_desktop {\n margin: 20px 0 0;\n }\n }\n &__newsItem.is_active &__newsCloseBtn i {\n display: inline-block;\n transform: rotateX(180deg) translateY(2px);\n\n }\n\n}\n","@import \"../mixins/media\";\n/*\n検索ラベル\n\n商品一覧 ヘッダー部 に関する Project コンポーネントを定義します。\n\nex [商品一覧 ヘッダー部](http://demo3.ec-cube.net/products/list)\n\nMarkup:\ninclude /assets/tmpl/elements/13.1.searchnav.pug\n+ec-searchnavRole__topicpath\n+ec-searchnavRole__info\n\nStyleguide 13.1\n\n*/\n.ec-searchnavRole{\n margin-bottom: 0;\n padding: 0;\n @include media_desktop {\n @include container;\n }\n & &__infos{\n @include container;\n display: flex;\n border-top: 0;\n margin-bottom: 16px;\n padding-top: 5px;\n flex-direction:column;\n @include media_desktop {\n padding-left: 0;\n padding-right: 0;\n border-top: 1px solid #ccc;\n padding-top: 16px;\n flex-direction:row;\n }\n }\n\n & &__counter{\n margin-bottom: 16px;\n width: 100%;\n @include media_desktop {\n margin-bottom: 0;\n width: 50%;\n }\n }\n\n & &__actions{\n text-align: right;\n width: 100%;\n @include media_desktop {\n width: 50%;\n }\n }\n\n\n}\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n/*\n商品一覧\n\n商品一覧 に関する Project コンポーネントを定義します。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGrid\n\nStyleguide 13.2\n\n*/\n.ec-shelfRole{\n @include container;\n}\n\n/*\n商品一覧グリッド\n\n商品一覧 で使用するグリッドコンポーネントです。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGrid\n\nStyleguide 13.2.1\n\n*/\n.ec-shelfGrid{\n @include reset_link;\n display: flex;\n margin-left: 0;\n margin-right: 0;\n flex-wrap: wrap;\n padding: 0;\n list-style: none;\n\n @include media_desktop {\n margin-left: -16px;\n margin-right: -16px;\n }\n & &__item{\n margin-bottom: 36px;\n width: 50%;\n display: flex;\n flex-direction: column;\n &-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center;\n @include media_desktop() {\n height: 250px;\n }\n }\n img{\n width: auto;\n max-height: 100%;\n }\n @include media_desktop(){\n padding: 0 16px;\n width: 25%;\n }\n\n .ec-productRole__btn {\n margin-top: auto;\n margin-bottom: 15px;\n }\n }\n & &__item:nth-child(odd){\n padding-right: 8px;\n @include media_desktop(){\n padding: 0 16px;\n }\n }\n & &__item:nth-child(even){\n padding-left: 8px;\n @include media_desktop(){\n padding: 0 16px;\n }\n }\n & &__title {\n margin-bottom: 7px;\n }\n & &__plice {\n font-weight: bold;\n }\n}\n\n/*\n13.2.2 商品一覧グリッド(中央寄せ)\n\n商品一覧 で使用するグリッドコンポーネントです。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n商品のあまりはセンタリングされ、中央に表示されます。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGridCenter\n\nStyleguide 13.2.2\n\n*/\n.ec-shelfGridCenter{\n @include reset_link;\n display: flex;\n margin-left: 0;\n margin-right: 0;\n flex-wrap: wrap;\n padding: 0;\n list-style: none;\n justify-content: center;\n\n @include media_desktop {\n margin-left: -16px;\n margin-right: -16px;\n }\n & &__item{\n margin-bottom: 36px;\n width: 50%;\n &-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center;\n @include media_desktop() {\n height: 250px;\n }\n }\n img{\n width: auto;\n max-height: 100%;\n }\n @include media_desktop(){\n padding: 0 16px;\n width: 25%;\n }\n\n .ec-productRole__btn {\n margin-top: auto;\n padding-top: 1em;\n }\n }\n & &__item:nth-child(odd){\n padding-right: 8px;\n @include media_desktop(){\n padding: 0 16px;\n }\n }\n & &__item:nth-child(even){\n padding-left: 8px;\n @include media_desktop(){\n padding: 0 16px;\n }\n }\n & &__title {\n margin-bottom: 7px;\n }\n & &__plice {\n font-weight: bold;\n }\n}\n","@import \"../mixins/media\";\n\n/*\nカート追加モーダル\n\nカート追加モーダルに関する Project コンポーネントを定義します。\n\nex [商品一覧、商品詳細](http://demo3.ec-cube.net/products/list)\n\n+ec-modal\n\nStyleguide 13.4\n\n*/\n\n.ec-modal {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n z-index: 99999;\n width: 100%;\n height: 100%;\n\n &.small {\n width: 30%;\n }\n\n &.full {\n width: 100%;\n height: 100%;\n }\n\n .ec-modal-overlay {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(0, 0, 0, 0.3);\n width: 100%;\n height: 100%;\n }\n\n .ec-modal-wrap {\n position: relative;\n border-radius: 2px;\n border: 1px solid #333;\n background-color: #fff;\n width: 90%;\n margin: 20px;\n padding: 40px 5px;\n @include media_desktop {\n padding: 40px 10px;\n width: 50%;\n margin: 20px auto;\n }\n }\n\n .ec-modal-close {\n cursor: pointer;\n position: absolute;\n right: 20px;\n top: 10px;\n font-size: 20px;\n height: 30px;\n width: 20px;\n &:hover {\n color: #4b5361;\n }\n }\n\n .ec-modal-box {\n text-align: center;\n }\n\n .ec-role {\n margin-top: 20px;\n }\n}\n","@import \"../mixins/media\";\n\n/*\n商品詳細\n\n商品詳細ページに関する Project コンポーネントを定義します。\n\nex [商品詳細ページ](http://demo3.ec-cube.net/products/detail/18)\n\n\nMarkup:\ninclude /assets/tmpl/elements/14.1.product.pug\n+ec-productSimpleRole\n\nStyleguide 14.1\n*/\n.ec-productRole {\n @include container;\n & &__img {\n margin-right: 0;\n margin-bottom: 20px;\n @include media_desktop {\n margin-right: 16px;\n margin-bottom: 0;\n }\n }\n & &__profile {\n margin-left: 0;\n @include media_desktop {\n margin-left: 16px;\n }\n }\n & &__title {\n .ec-headingTitle {\n font-size: 20px;\n @include media_desktop {\n font-size: 32px;\n }\n }\n }\n & &__tags {\n margin-top: 16px;\n padding: 0;\n padding-bottom: 16px;\n border-bottom: 1px dotted #ccc;\n }\n & &__tag {\n display: inline-block;\n padding: 2px 5px;\n list-style: none;\n font-size: 80%;\n color: #525263;\n border: solid 1px #D7DADD;\n border-radius: 3px;\n background-color: #F5F7F8;\n }\n & &__priceRegular {\n padding-top: 14px\n }\n & &__priceRegularTax {\n margin-left: 5px;\n font-size: 10px;\n }\n & &__price {\n color: #DE5D50;\n font-size: 28px;\n padding: 0;\n border-bottom: 0;\n @include media_desktop {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc;\n }\n }\n & &__code {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc;\n }\n & &__category {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc;\n a {\n color: #33A8D0;\n }\n ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n }\n & &__actions {\n padding: 14px 0;\n .ec-select {\n select {\n height: 40px;\n max-width: 100%;\n min-width: 100%;\n @include media_desktop {\n min-width: 350px;\n max-width: 350px;\n }\n }\n }\n }\n & &__btn {\n width: 100%;\n margin-bottom: 10px;\n @include media_desktop {\n width: 60%;\n margin-bottom: 16px;\n min-width: 350px;\n }\n }\n & &__description {\n margin-bottom: 16px;\n }\n\n}\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n\n/*\nカート\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [カートページ](http://demo3.ec-cube.net/shopping)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n+ec-cartRole\n\nStyleguide 15.1\n\n*/\n.ec-cartRole{\n @include container;\n &::before{\n display: none;\n }\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n\n & &__progress{\n width: 100%;\n text-align: center;\n }\n & &__error{\n width: 100%;\n text-align: center;\n .ec-alert-warning {\n max-width: 80%;\n display: inline-block;\n }\n }\n & &__totalText{\n margin-bottom: 0;\n padding: 16px 0 6px;\n width: 100%;\n text-align: center;\n font-weight: normal;\n @include media_desktop {\n margin-bottom: 30px;\n padding: 0;\n }\n }\n & &__cart{\n margin: 0;\n width: 100%;\n @include media_desktop {\n margin: 0 10%;\n }\n\n }\n & &__actions{\n text-align: right;\n width: 100%;\n @include media_desktop {\n width: 20%;\n margin-right: 10%;\n }\n }\n & &__total{\n padding: 15px 0 30px ;\n font-weight: bold;\n font-size: 16px;\n }\n & &__totalAmount{\n margin-left: 30px;\n color: #de5d50;\n font-size: 16px;\n @include media_desktop {\n font-size: 24px;\n }\n }\n\n .ec-blockBtn--action {\n margin-bottom: 10px;\n }\n}\n\n\n/*\nカート商品表示枠(テーブルヘッダ)\n\nカート内の商品をを表示するテーブル枠です。\n\nex [カートページ テーブル部分(カート内に商品がある状態でアクセス)](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n+ec-cartTable\n\nsg-wrapper:\n
\n\nStyleguide 15.1.2\n*/\n.ec-cartTable{\n display: table;\n border-top: 1px dotted #ccc;\n width: 100%;\n @include media_desktop {\n border-top: none;\n }\n}\n\n\n/*\nカート商品表示枠(テーブルヘッダ)\n\nカート内の商品を表示するテーブルのヘッダです。\nスマホでは非表示となります。\n\nex [カートページ カートテーブルヘッダ部分(カート内に商品がある状態でアクセス)](http://demo3.ec-cube.net/cart)\n\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartHeader\n\nsg-wrapper:\n
\n\n\nStyleguide 15.1.3\n*/\n.ec-cartHeader{\n display: none;\n width: 100%;\n background: #F4F3F0;\n @include media_desktop {\n display: table-row;\n }\n & &__label{\n display: table-cell;\n padding: 16px;\n text-align: center;\n background: #F4F3F0;\n overflow-x: hidden;\n font-weight: bold;\n }\n}\n.ec-cartCompleteRole {\n @include container;\n}\n/*\nカート内商品\n\nカート内のアイテムを表示するテーブル行です。\nスマホでは非表示となります。\n\nex [カートページ テーブル部分](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartRow\n\nsg-wrapper:\n
\n\n\nStyleguide 15.1.4\n*/\n\n.ec-cartRow{\n display: table-row;\n & &__delColumn{\n border-bottom: 1px dotted #ccc;\n text-align: center;\n display: table-cell;\n width: 14%;\n vertical-align: middle;\n @include media_desktop{\n width: 8.3333333%;\n }\n .ec-icon {\n img {\n width: 1.5em;\n height: 1.5em;\n @include media_desktop {\n width: 1em;\n height: 1em;\n }\n }\n }\n }\n & &__contentColumn{\n border-bottom: 1px dotted #ccc;\n padding: 10px 0;\n display: table;\n @include media_desktop {\n display: table-cell;\n }\n }\n & &__img{\n display: table-cell;\n width: 40%;\n vertical-align: middle;\n padding-right: 10px;\n @include media_desktop {\n display: inline-block;\n min-width: 80px;\n max-width: 100px;\n padding-right: 0;\n }\n }\n & &__summary{\n display: table-cell;\n margin-left: 5px;\n font-weight: bold;\n vertical-align: middle;\n width: 46%;\n @include media_desktop {\n display: inline-block;\n margin-left: 20px;\n vertical-align: middle;\n }\n .ec-cartRow__name {\n margin-bottom: 5px;\n }\n .ec-cartRow__sutbtotalSP {\n display: block;\n font-weight: normal;\n @include media_desktop {\n display: none;\n }\n }\n }\n & &__amountColumn{\n display: table-cell;\n border-bottom: 1px dotted #ccc;\n vertical-align: middle;\n text-align: center;\n width: 20%;\n @include media_desktop {\n width: 16.66666667%;\n }\n\n .ec-cartRow__amount {\n display: none;\n margin-bottom: 10px;\n @include media_desktop {\n display: block;\n }\n }\n .ec-cartRow__amountSP {\n display: block;\n margin-bottom: 10px;\n @include media_desktop {\n display: none;\n }\n }\n\n .ec-cartRow__amountUpDown {\n display: flex;\n justify-content: center;\n @include media_desktop {\n display: block;\n }\n }\n\n .ec-cartRow__amountUpButton {\n margin: 0 2px;\n display: inline-block;\n border: 2px solid #c9c9c9;\n border-radius: 50%;\n width: 30px;\n min-width: 30px;\n max-width: 30px;\n height: 30px;\n cursor: pointer;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center;\n background: #fff;\n\n\n .ec-cartRow__amountUpButton__icon {\n img {\n display: block;\n margin-left: -0.4em;\n width: .8em;\n height: .8em;\n position: absolute;\n top: 28%;\n left: 50%;\n }\n }\n }\n .ec-cartRow__amountDownButton {\n margin: 0 2px;\n display: inline-block;\n border: 2px solid #c9c9c9;\n border-radius: 50%;\n width: 30px;\n min-width: 30px;\n max-width: 30px;\n height: 30px;\n cursor: pointer;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center;\n background: #fff;\n\n .ec-cartRow__amountDownButton__icon {\n img {\n display: block;\n margin-left: -0.4em;\n width: .8em;\n height: .8em;\n position: absolute;\n top: 28%;\n left: 50%;\n }\n }\n }\n\n .ec-cartRow__amountDownButtonDisabled {\n @extend .ec-cartRow__amountDownButton;\n cursor: default;\n }\n }\n & &__subtotalColumn{\n display: none;\n border-bottom: 1px dotted #ccc;\n text-align: right;\n width: 16.66666667%;\n @include media_desktop {\n display: table-cell;\n }\n }\n}\n\n/*\nカート内商品(商品が1の場合)\n\n商品が1の場合はカート商品を減らす「-」ボタンの無効化状態になります。\n\nex [カートページ テーブル部分](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartRowOnly\n\nsg-wrapper:\n
\n\n\nStyleguide 15.1.5\n*/\n\n.ec-cartRow{\n & &__amountColumn{\n .ec-cartRow__amountDownButtonDisabled {\n @extend .ec-cartRow__amountDownButton;\n cursor: default;\n }\n }\n}\n\n/*\nアラート\n\nカート内の商品に問題があることを示す警告メッセージです。\n\nex [マイページ カート](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartRole\n .ec-cartRole__cart\n +ec-alert-warning\n\nStyleguide 15.1.6\n*/\n\n.ec-alert-warning {\n width: 100%;\n padding: 10px;\n text-align: center;\n background: #F99;\n margin-bottom: 20px;\n\n\n & &__icon {\n display: inline-block;\n margin-right: 1rem;\n width: 20px;\n height: 20px;\n color: #fff;\n fill: #fff;\n vertical-align: top;\n }\n & &__text {\n display: inline-block;\n font-size: 16px;\n font-weight: bold;\n color: #fff;\n position: relative;\n }\n}\n\n\n\n\n/*\nアラート(空)\n\nカートが空であることを示す警告メッセージです。\n\nex [マイページ カート](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-off3Grid\n .ec-off3Grid__cell\n +ec-alert-warningEnpty\n\nStyleguide 15.1.7\n*/\n","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n@import \"../mixins/projects\";\n/*\n注文内容確認\n\nカート内 注文内容確認に関する Project コンポーネントを定義します。\n\nex [マイページ 注文詳細](http://demo3.ec-cube.net/shopping)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderRole\n\nStyleguide 15.2\n*/\n.ec-orderRole{\n @include container;\n display: flex;\n flex-direction: column;\n margin-top: 0;\n @include media_desktop {\n margin-top: 20px;\n flex-direction: row;\n }\n .ec-inlineBtn {\n font-weight: normal;\n }\n & &__detail{\n padding: 0;\n width: 100%;\n @include media_desktop {\n padding: 0 16px;\n width: 66.66666%;\n }\n }\n & &__summary{\n width: 100%;\n .ec-inlineBtn {\n display: inline-block;\n }\n @include media_desktop {\n width: 33.33333%;\n padding: 0 16px;\n .ec-inlineBtn {\n display: none;\n }\n }\n }\n .ec-borderedList {\n margin-bottom: 20px;\n border-top: 1px dotted #ccc;\n @include media_desktop {\n border-top: none;\n }\n }\n\n}\n\n/*\n注文履歴詳細 オーダ情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ オーダ情報](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderInfo\n\nStyleguide 15.2.1\n*/\n.ec-orderOrder{\n margin-bottom: 30px;\n & &__items{\n @include borderBottom;\n @include borderTop;\n }\n}\n\n/*\n注文履歴詳細 お客様情報\n\nマイページ 注文詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ オーダ情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderAccount\n\nStyleguide 15.2.2\n*/\n.ec-orderAccount{\n margin-bottom: 30px;\n p {\n margin-bottom: 0;\n }\n @include clearfix;\n & &__change{\n display: inline-block;\n margin-left: 10px;\n float: right;\n }\n & &__account {\n margin-bottom: 16px;\n }\n\n}\n\n\n/*\n注文詳細 配送情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 配送情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderDelivery\n\nStyleguide 15.2.3\n*/\n.ec-orderDelivery{\n & &__title{\n padding: 16px 0 17px;\n font-weight: bold;\n font-size: 18px;\n position: relative;\n }\n & &__change{\n display: inline-block;\n position: absolute;\n right: 0;\n top:0;\n }\n & &__items{\n @include borderBottom;\n @include borderTop;\n }\n & &__address{\n margin: 10px 0 18px ;\n p{\n margin:0;\n }\n }\n & &__edit{\n }\n\n}\n\n\n/*\n注文履歴詳細 支払情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 支払情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-orderRole\n .ec-orderPayment\n .ec-rectHeading\n h2 お支払方法\n p 支払方法: 郵便振替\n\nStyleguide 15.2.4\n*/\n.ec-orderPayment{\n\n}\n\n\n/*\n注文履歴詳細 お問い合わせ\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ お問い合わせ(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-orderRole\n .ec-orderConfirm\n .ec-rectHeading\n h2 お問い合わせ\n p 記載なし\n\nStyleguide 15.2.5\n*/\n.ec-orderConfirm{\n margin-bottom: 20px;\n @include media_desktop {\n margin-bottom: 0;\n }\n .ec-input {\n textarea {\n height: 96px;\n }\n }\n\n}\n\n\n/*\nお届け先の複数指定\n\nお届け先の複数指定に関するコンポーネントを定義します。\n\nex [マイページ お届け先の複数指定](http://demo3.ec-cube.net/shopping/shipping_multiple)\n(商品購入画面 → 「お届け先を追加する」を押下)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderAddAddress\n\nStyleguide 15.2.6\n*/\n.ec-AddAddress {\n padding: 0 10px;\n @include media_desktop {\n margin: 0 10%;\n }\n\n & &__info {\n margin-bottom: 32px;\n text-align: center;\n font-size: 16px;\n }\n & &__add {\n border-top: 1px solid #f4f4f4;\n padding-top: 20px;\n margin-bottom: 20px;\n }\n & &__item {\n display: table;\n padding:16px;\n background: #f4f4f4;\n margin-bottom: 16px;\n }\n & &__itemThumb {\n display: table-cell;\n min-width: 160px;\n width: 20%;\n img {\n width: 100%;\n }\n }\n & &__itemtContent {\n display: table-cell;\n vertical-align: middle;\n padding-left: 16px;\n font-size:16px;\n }\n & &__itemtTitle {\n font-weight: bold;\n margin-bottom: 10px;\n }\n & &__itemtSize {\n margin-bottom: 10px;\n }\n & &__itemtPrice {\n\n }\n & &__itemtNumber {\n\n }\n & &__select {\n margin-bottom: 5px;\n }\n & &__selectAddress {\n display: inline-block;\n label {\n font-size: 16px;\n font-weight: normal;\n }\n select {\n min-width: 100%;\n @include media_desktop {\n min-width: 350px;\n }\n }\n }\n & &__selectNumber {\n display: inline-block;\n margin-left: 30px;\n label {\n font-size: 16px;\n font-weight: normal;\n }\n input {\n display: inline-block;\n margin-left: 10px;\n width: 80px;\n }\n }\n & &__actions {\n .ec-blockBtn--action {\n margin-bottom: 8px;\n }\n }\n & &__new {\n margin-bottom: 20px;\n }\n}\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n\n/*\n注文履歴一覧\n\nマイページ 注文履歴部に関する Project コンポーネントを定義します。\n\nex [マイページ 注文履歴一覧](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyRole\n\nStyleguide 16.1\n*/\n.ec-historyRole{\n & &__contents{\n padding-top: 1em;\n padding-bottom: 16px;\n border-top: 1px solid #ccc;\n display: flex;\n flex-direction: column;\n color: #525263;\n @include media_desktop {\n flex-direction: row;\n }\n }\n & &__header{\n width: 100%;\n @include media_desktop {\n width: 33.3333%;\n }\n }\n & &__detail{\n @include borderTop;\n width: 100%;\n\n .ec-imageGrid:nth-of-type(1) {\n border-top: none;\n }\n\n .ec-historyRole__detailTitle {\n margin-bottom: 8px;\n font-size: 1.6rem;\n font-weight: bold;\n }\n\n .ec-historyRole__detailPrice {\n margin-bottom: 8px;\n font-size: 1.6rem;\n font-weight: bold;\n }\n\n @include media_desktop {\n width: 66.6666%;\n border-top: none;\n }\n }\n}\n\n/*\n注文履歴一覧 規格\n\nマイページ 注文履歴内アイテムの規格を定義します。\n\nex [マイページ 注文履歴一覧](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyRole-option\n\nStyleguide 16.1.1\n*/\n\n.ec-historyRole{\n & &__detail {\n .ec-historyRole__detailOption {\n display: inline-block;\n margin-bottom: 8px;\n margin-right: .5rem;\n font-size: 1.6rem;\n }\n .ec-historyRole__detailOption::after {\n display: inline-block;\n padding-left: .5rem;\n content: \"/\";\n font-weight: bold;\n }\n }\n}\n\n/*\n注文履歴一覧ヘッダ\n\n注文履歴一覧で使用するヘッダのコンポーネントを定義します。\n\nex [マイページ 注文履歴一覧ヘッダ](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyHeader\np hofe\n\nStyleguide 16.1.2\n*/\n\n\n.ec-historyListHeader{\n & &__date{\n font-weight: bold;\n font-size: 16px;\n @include media_desktop {\n font-weight: bold;\n font-size: 20px;\n }\n }\n & &__action{\n margin : 16px 0;\n a {\n font-size: 12px;\n font-weight: normal;\n @include media_desktop {\n font-size: 14px;\n }\n }\n }\n}\n","@import \"../mixins/projects\";\n@import \"../mixins/media\";\n\n/*\n注文履歴詳細\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 注文詳細](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailRole\n\nStyleguide 16.2\n*/\n\n\n/*\n注文履歴詳細 メール履歴\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ メール履歴](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailMail\n\nStyleguide 16.2.5\n*/\n.ec-orderMails{\n & &__item{\n padding-bottom: 10px;\n @include borderBottom();\n }\n & &__time{\n margin: 0;\n }\n & &__body{\n display: none;\n }\n}\n\n\n\n\n/*\n注文履歴詳細 メール履歴個別\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ メール履歴個別](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailMailHistory\n\nStyleguide 16.2.6\n*/\n.ec-orderMail{\n padding-bottom: 10px;\n @include borderBottom();\n margin-bottom: 16px;\n & &__time{\n margin: 0;\n }\n & &__body{\n display: none;\n }\n & &__time {\n margin-bottom: 4px;\n }\n & &__link {\n a {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer;\n }\n a:hover {\n color: #33A8D0;\n }\n margin-bottom: 4px;\n }\n & &__close{\n a {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer;\n }\n a:hover {\n color: #33A8D0;\n }\n }\n}\n","/*\n住所一覧\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [マイページ内 お届け先編集](http://demo3.ec-cube.net/mypage/delivery)\n\nMarkup:\ninclude /assets/tmpl/elements/17.1.address.pug\n+ec-addressList\n+ec-addressRole\n\nsg-wrapper:\n
\n\nStyleguide 17.1\n\n*/\n.ec-addressRole{\n & &__item{\n border-top: 1px dotted #ccc;\n }\n & &__actions{\n margin-top: 32px;\n padding-bottom:20px;\n border-bottom: 1px dotted #ccc;\n }\n}\n.ec-addressList{\n & &__item{\n display: table;\n width: 100%;\n position: relative;\n border-bottom: 1px dotted #ccc;\n }\n & &__remove{\n //display: table-cell;\n vertical-align: middle;\n padding: 16px;\n text-align: center;\n .ec-icon img {\n width: 1em;\n height: 1em;\n }\n }\n & &__address{\n display: table-cell;\n vertical-align: middle;\n padding: 16px;\n margin-right:4em;\n width: 80%;\n }\n & &__action{\n position: relative;\n vertical-align: middle;\n text-align: right;\n top: 27px;\n padding-right: 10px;\n }\n}\n","@import \"../mixins/media\";\n/*\nパスワードリセット\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [パスワードリセット画面](http://demo3.ec-cube.net/forgot)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/18.1.password.pug\n+ec-passwordRole\n\nStyleguide 18.1\n\n*/\n.ec-forgotRole{\n @include container;\n & &__intro {\n font-size: 16px;\n }\n & &__form {\n margin-bottom: 16px;\n }\n\n}\n","@import \"../mixins/media\";\n/*\n会員登録\n\n新規会員登録 に関する Project コンポーネントを定義します。\n\nex [新規会員登録画面 会員登録](http://demo3.ec-cube.net/entry)\n\nMarkup:\ninclude /assets/tmpl/elements/19.1.register.pug\n+ec-registerRole\n\nStyleguide 19.1\n\n*/\n.ec-registerRole{\n @include container;\n & &__actions {\n padding-top:20px;\n text-align: center;\n @include media_desktop {\n text-align: left;\n }\n p {\n margin-bottom: 16px;\n }\n }\n .ec-blockBtn--action {\n margin-bottom: 16px;\n }\n}\n.ec-registerCompleteRole {\n @include container;\n}\n","@import \"../mixins/media\";\n/*\nお問い合わせ\n\nお問い合わせ に関する Project コンポーネントを定義します。\n\nex [お問い合わせ](http://demo3.ec-cube.net/contact)\n\nMarkup:\ninclude /assets/tmpl/elements/19.2.contact.pug\n+ec-contactRole\n\nStyleguide 19.2\n\n*/\n.ec-contactRole{\n @include container;\n & &__actions {\n padding-top:20px;\n }\n p {\n margin:16px 0;\n }\n\n}\n.ec-contactConfirmRole {\n @include container;\n & &__actions {\n padding-top:20px;\n }\n .ec-blockBtn--action {\n margin-bottom: 16px;\n }\n}\n.ec-contactCompleteRole {\n @include container;\n}\n","@import \"../mixins/media\";\n/*\nお客様情報の入力\n\nログインせずゲストとして商品を購入する際の、お客様情報の入力 に関する Project コンポーネントを定義します。\n\nex [カートSTEP2 お客様情報の入力(ゲスト購入)](http://demo3.ec-cube.net/shopping/nonmember)\n\nMarkup:\ninclude /assets/tmpl/elements/19.3.customer.pug\n+ec-customerRole\nhoge\n\nStyleguide 19.3\n\n*/\n.ec-customerRole{\n @include container;\n & &__actions {\n padding-top:20px;\n }\n .ec-blockBtn--action {\n margin-bottom: 10px;\n @include media_desktop {\n margin-bottom: 16px;\n }\n }\n}\n\n.ec-contactConfirmRole {\n @include container;\n & &__actions {\n padding-top:20px;\n }\n .ec-blockBtn--action {\n margin-bottom: 16px;\n }\n}\n.ec-contactCompleteRole {\n @include container;\n}\n","@import \"../mixins/variables\";\n@import \"../mixins/media\";\n@import \"../mixins/animation\";\n/*\n404ページ\n\n404 エラー画面で使用するページコンポーネントです。\n\nex [404エラー画面](http://demo3.ec-cube.net/404)\n\nMarkup:\ninclude /assets/tmpl/elements/20.1.404.pug\n+ec-404Role\n\nStyleguide 20.1\n\n*/\n.ec-404Role{\n @include commonStyle();\n width: 100%;\n height: 100vh;\n background-color: #f2f2f2;\n text-align: center;\n box-sizing: border-box;\n & &__icon{\n img {\n width: 1em;\n height: 1em;\n }\n }\n & &__title{\n font-weight: bold;\n font-size: 25px;\n }\n\n}\n","@import \"../mixins/media\";\n/*\n退会手続き\n\n退会手続きで使用するページコンポーネントです。\n\nex [退会手続き](http://demo3.ec-cube.net/mypage/withdraw)\n\nMarkup:\ninclude /assets/tmpl/elements/21.1.withdraw.pug\n+ec-withdrawRole\n\nStyleguide 21.1\n\n*/\n.ec-withdrawRole{\n @include container;\n text-align: center;\n padding: 0 16px;\n & &__title{\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px;\n }\n & &__description{\n margin-bottom: 32px;\n font-size: 16px;\n }\n .ec-icon {\n img {\n width: 100px;\n height: 100px;\n }\n }\n}/*\n退会手続き実行確認\n\n退会手続き実行確認で使用するページコンポーネントです。\n\nex [退会手続き 退会手続きへボタン→押下](http://demo3.ec-cube.net/mypage/withdraw)\n\nMarkup:\ninclude /assets/tmpl/elements/21.1.withdraw.pug\n+ec-withdrawConfirm\n\nStyleguide 21.1.2\n\n*/\n.ec-withdrawConfirmRole {\n & &__cancel {\n margin-bottom: 20px;\n }\n & &__title{\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px;\n }\n & &__description{\n margin-bottom: 32px;\n font-size: 16px;\n }\n .ec-icon {\n img {\n width: 100px;\n height: 100px;\n }\n }\n}\n","@import \"../mixins/media\";\n/*\n会員情報編集完了\n\n会員情報編集完了で使用するページコンポーネントです。\n\nex [会員情報編集完了](http://demo3.ec-cube.net/mypage/change_complete)\n\nMarkup:\ninclude /assets/tmpl/elements/22.1.editComplete.pug\n+ec-userEditCompleteRole\n\nStyleguide 22.1\n\n*/\n.ec-userEditCompleteRole{\n @include container;\n text-align: center;\n padding: 0 16px;\n & &__title{\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px;\n @include media_desktop(){\n font-size: 32px;\n }\n }\n & &__description{\n margin-bottom: 32px;\n font-size: 16px;\n }\n}\n"]}
\ No newline at end of file
diff --git a/html/template/default/assets/js/eccube.js b/html/template/default/assets/js/eccube.js
index 258a761635d..4b98605ad15 100644
--- a/html/template/default/assets/js/eccube.js
+++ b/html/template/default/assets/js/eccube.js
@@ -92,26 +92,26 @@
var $cartbtn = $form.parent().find('.add-cart').first();
if (typeof this.product_cart_origin === 'undefined') {
// 初期値を保持しておく
- this.product_cart_origin = $cartbtn.text();
+ this.product_cart_origin = $cartbtn.html();
}
$cartbtn.prop('disabled', false);
- $cartbtn.text(this.product_cart_origin);
+ $cartbtn.html(this.product_cart_origin);
// 通常価格
var $price01 = $form.parent().find('.price01-default').first();
if (typeof this.price01_origin === 'undefined') {
// 初期値を保持しておく
- this.price01_origin = $price01.text();
+ this.price01_origin = $price01.html();
}
- $price01.text(this.price01_origin);
+ $price01.html(this.price01_origin);
// 販売価格
var $price02 = $form.parent().find('.price02-default').first();
if (typeof price02_origin[product_id] === 'undefined') {
// 初期値を保持しておく
- price02_origin[product_id] = $price02.text();
+ price02_origin[product_id] = $price02.html();
}
- $price02.text(price02_origin[product_id]);
+ $price02.html(price02_origin[product_id]);
// 商品規格
var $product_class_id_dynamic = $form.find('[id^=ProductClass]');
@@ -130,38 +130,38 @@
var $cartbtn = $form.parent().find('.add-cart').first();
if (typeof this.product_cart_origin === 'undefined') {
// 初期値を保持しておく
- this.product_cart_origin = $cartbtn.text();
+ this.product_cart_origin = $cartbtn.html();
}
if (classcat2 && classcat2.stock_find === false) {
$cartbtn.prop('disabled', true);
$cartbtn.text('ただいま品切れ中です');
} else {
$cartbtn.prop('disabled', false);
- $cartbtn.text(this.product_cart_origin);
+ $cartbtn.html(this.product_cart_origin);
}
// 通常価格
var $price01 = $form.parent().find('.price01-default').first();
if (typeof this.price01_origin === 'undefined') {
// 初期値を保持しておく
- this.price01_origin = $price01.text();
+ this.price01_origin = $price01.html();
}
if (classcat2 && typeof classcat2.price01_inc_tax !== 'undefined' && String(classcat2.price01_inc_tax).length >= 1) {
- $price01.text('¥' + classcat2.price01_inc_tax);
+ $price01.text(classcat2.price01_inc_tax_with_currency);
} else {
- $price01.text(this.price01_origin);
+ $price01.html(this.price01_origin);
}
// 販売価格
var $price02 = $form.parent().find('.price02-default').first();
if (typeof price02_origin[product_id] === 'undefined') {
// 初期値を保持しておく
- price02_origin[product_id] = $price02.text();
+ price02_origin[product_id] = $price02.html();
}
if (classcat2 && typeof classcat2.price02_inc_tax !== 'undefined' && String(classcat2.price02_inc_tax).length >= 1) {
- $price02.text('¥' + classcat2.price02_inc_tax);
+ $price02.text(classcat2.price02_inc_tax_with_currency);
} else {
- $price02.text(price02_origin[product_id]);
+ $price02.html(price02_origin[product_id]);
}
// ポイント
diff --git a/html/template/default/assets/scss/project/_13.4.cartModal.scss b/html/template/default/assets/scss/project/_13.4.cartModal.scss
index 06599f8c715..e182ce63593 100644
--- a/html/template/default/assets/scss/project/_13.4.cartModal.scss
+++ b/html/template/default/assets/scss/project/_13.4.cartModal.scss
@@ -14,101 +14,65 @@ Styleguide 13.4
*/
.ec-modal {
-
- .checkbox {
- display: none;
+ display: none;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 99999;
+ width: 100%;
+ height: 100%;
+
+ &.small {
+ width: 30%;
}
- .ec-modal-overlay {
- opacity: 0;
- transition: all 0.3s ease;
+ &.full {
width: 100%;
height: 100%;
- position: fixed;
- top: 0;
- left: 0;
- z-index: -100;
- transform: scale(1);
+ }
+
+ .ec-modal-overlay {
display: flex;
+ justify-content: center;
+ align-items: center;
background-color: rgba(0, 0, 0, 0.3);
+ width: 100%;
+ height: 100%;
}
.ec-modal-wrap {
- background-color: #fff;
+ position: relative;
+ border-radius: 2px;
border: 1px solid #333;
+ background-color: #fff;
width: 90%;
margin: 20px;
padding: 40px 5px;
- border-radius: 2px;
- transition: all 0.5s ease;
- -ms-flex-item-align: center;
- align-self: center;
-
- .ec-modal-box {
- text-align: center;
- }
-
- .ec-modal-box div {
- margin-top: 20px;
- }
-
@include media_desktop {
- & {
- padding: 40px 10px;
- width: 50%;
- margin: 20px auto;
- }
- }
-
- &.small {
- width: 30%;
- }
-
- &.full {
- width: 100%;
- height: 100%;
+ padding: 40px 10px;
+ width: 50%;
+ margin: 20px auto;
}
}
- .ec-modal-overlay {
- .ec-modal-close {
- position: absolute;
- right: 20px;
- top: 10px;
- font-size: 20px;
- height: 30px;
- width: 20px;
-
- &:hover {
- cursor: pointer;
- color: #4b5361;
- }
+ .ec-modal-close {
+ cursor: pointer;
+ position: absolute;
+ right: 20px;
+ top: 10px;
+ font-size: 20px;
+ height: 30px;
+ width: 20px;
+ &:hover {
+ color: #4b5361;
}
}
- .ec-modal-overlay-close {
- display: none;
- width: 100%;
- height: 100%;
- position: fixed;
- left: 0;
- top: 0;
+ .ec-modal-box {
+ text-align: center;
}
- input:checked {
- ~ .ec-modal-overlay {
- transform: scale(1);
- opacity: 1;
- z-index: 9997;
- overflow: auto;
- .ec-modal-overlay-close {
- display: block;
- }
- }
-
- ~ .ec-modal-overlay .ec-modal-wrap {
- transform: translateY(0);
- z-index: 9999;
- }
+ .ec-role {
+ margin-top: 20px;
}
}
diff --git a/html/user_data/.gitkeep b/html/user_data/.gitkeep
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/package-lock.json b/package-lock.json
index 0c333f8c2de..894c9d7f19f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,9 +1,47 @@
{
"name": "eccube",
- "version": "4.0.4",
+ "version": "4.0.5",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+ "dev": true
+ },
+ "@babel/highlight": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+ "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@types/color-name": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
+ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
+ "dev": true
+ },
+ "@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "dev": true
+ },
"abbrev": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -26,6 +64,24 @@
"integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
"dev": true
},
+ "aggregate-error": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz",
+ "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==",
+ "dev": true,
+ "requires": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "dependencies": {
+ "indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true
+ }
+ }
+ },
"ajv": {
"version": "6.10.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
@@ -62,6 +118,15 @@
"ansi-wrap": "0.1.0"
}
},
+ "ansi-escapes": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
+ "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.11.0"
+ }
+ },
"ansi-gray": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
@@ -303,6 +368,12 @@
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
"dev": true
},
+ "astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true
+ },
"async": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
@@ -339,12 +410,6 @@
"integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
"dev": true
},
- "async-limiter": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
- "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
- "dev": true
- },
"async-settle": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz",
@@ -394,21 +459,12 @@
"dev": true
},
"axios": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
- "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
+ "version": "0.21.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+ "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
"dev": true,
"requires": {
- "follow-redirects": "1.5.10",
- "is-buffer": "^2.0.2"
- },
- "dependencies": {
- "is-buffer": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
- "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
- "dev": true
- }
+ "follow-redirects": "^1.10.0"
}
},
"bach": {
@@ -496,15 +552,15 @@
}
},
"base64-arraybuffer": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
- "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz",
+ "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=",
"dev": true
},
"base64id": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
- "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
+ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
"dev": true
},
"batch": {
@@ -522,15 +578,6 @@
"tweetnacl": "^0.14.3"
}
},
- "better-assert": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
- "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
- "dev": true,
- "requires": {
- "callsite": "1.0.0"
- }
- },
"binary-extensions": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
@@ -604,28 +651,28 @@
}
},
"browser-sync": {
- "version": "2.26.7",
- "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.7.tgz",
- "integrity": "sha512-lY3emme0OyvA2ujEMpRmyRy9LY6gHLuTr2/ABxhIm3lADOiRXzP4dgekvnDrQqZ/Ec2Fz19lEjm6kglSG5766w==",
+ "version": "2.26.14",
+ "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.14.tgz",
+ "integrity": "sha512-3TtpsheGolJT6UFtM2CZWEcGJmI4ZEvoCKiKE2bvcDnPxRkhQT4nIGVtfiyPcoHKXGM0LwMOZmYJNWfiNfVXWA==",
"dev": true,
"requires": {
- "browser-sync-client": "^2.26.6",
- "browser-sync-ui": "^2.26.4",
+ "browser-sync-client": "^2.26.14",
+ "browser-sync-ui": "^2.26.14",
"bs-recipes": "1.3.4",
"bs-snippet-injector": "^2.0.1",
- "chokidar": "^2.0.4",
+ "chokidar": "^3.5.1",
"connect": "3.6.6",
"connect-history-api-fallback": "^1",
"dev-ip": "^1.0.1",
"easy-extender": "^2.3.4",
- "eazy-logger": "^3",
+ "eazy-logger": "3.1.0",
"etag": "^1.8.1",
"fresh": "^0.5.2",
"fs-extra": "3.0.1",
- "http-proxy": "1.15.2",
+ "http-proxy": "^1.18.1",
"immutable": "^3",
- "localtunnel": "1.9.2",
- "micromatch": "^3.1.10",
+ "localtunnel": "^2.0.1",
+ "micromatch": "^4.0.2",
"opn": "5.3.0",
"portscanner": "2.1.1",
"qs": "6.2.3",
@@ -636,15 +683,126 @@
"serve-index": "1.9.1",
"serve-static": "1.13.2",
"server-destroy": "1.0.1",
- "socket.io": "2.1.1",
- "ua-parser-js": "0.7.17",
- "yargs": "6.4.0"
+ "socket.io": "2.4.0",
+ "ua-parser-js": "^0.7.18",
+ "yargs": "^15.4.1"
+ },
+ "dependencies": {
+ "anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chokidar": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
+ "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.1",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.5.0"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz",
+ "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==",
+ "dev": true,
+ "optional": true
+ },
+ "glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+ "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "readdirp": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
+ "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
}
},
"browser-sync-client": {
- "version": "2.26.6",
- "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.6.tgz",
- "integrity": "sha512-mGrkZdNzttKdf/16I+y+2dTQxoMCIpKbVIMJ/uP8ZpnKu9f9qa/2CYVtLtbjZG8nsM14EwiCrjuFTGBEnT3Gjw==",
+ "version": "2.26.14",
+ "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.14.tgz",
+ "integrity": "sha512-be0m1MchmKv/26r/yyyolxXcBi052aYrmaQep5nm8YNMjFcEyzv0ZoOKn/c3WEXNlEB/KeXWaw70fAOJ+/F1zQ==",
"dev": true,
"requires": {
"etag": "1.8.1",
@@ -654,16 +812,16 @@
}
},
"browser-sync-ui": {
- "version": "2.26.4",
- "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.26.4.tgz",
- "integrity": "sha512-u20P3EsZoM8Pt+puoi3BU3KlbQAH1lAcV+/O4saF26qokrBqIDotmGonfWwoRbUmdxZkM9MBmA0K39ZTG1h4sA==",
+ "version": "2.26.14",
+ "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.26.14.tgz",
+ "integrity": "sha512-6oT1sboM4KVNnWCCJDMGbRIeTBw97toMFQ+srImvwQ6J5t9KMgizaIX8HcKLiemsUMSJkgGM9RVKIpq2UblgOA==",
"dev": true,
"requires": {
"async-each-series": "0.1.1",
"connect-history-api-fallback": "^1",
"immutable": "^3",
"server-destroy": "1.0.1",
- "socket.io-client": "^2.0.4",
+ "socket.io-client": "^2.4.0",
"stream-throttle": "^0.1.3"
}
},
@@ -743,12 +901,6 @@
"caller-callsite": "^2.0.0"
}
},
- "callsite": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
- "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
- "dev": true
- },
"callsites": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
@@ -822,6 +974,12 @@
"upath": "^1.1.1"
}
},
+ "ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
+ },
"class-utils": {
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
@@ -854,6 +1012,65 @@
"source-map": "~0.6.0"
}
},
+ "clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "dev": true
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "cli-truncate": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+ "dev": true,
+ "requires": {
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
+ }
+ },
"cliui": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
@@ -952,9 +1169,15 @@
}
},
"commander": {
- "version": "2.20.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz",
- "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==",
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ },
+ "compare-versions": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
+ "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==",
"dev": true
},
"component-bind": {
@@ -1044,9 +1267,9 @@
}
},
"cookie": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
- "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
"dev": true
},
"copy-descriptor": {
@@ -1095,6 +1318,37 @@
}
}
},
+ "cross-env": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz",
+ "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.1"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
"cross-spawn": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
@@ -1164,6 +1418,12 @@
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
"dev": true
},
+ "dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=",
+ "dev": true
+ },
"default-compare": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz",
@@ -1273,6 +1533,12 @@
"integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=",
"dev": true
},
+ "dlv": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
+ "dev": true
+ },
"duplexify": {
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
@@ -1305,12 +1571,12 @@
}
},
"eazy-logger": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz",
- "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz",
+ "integrity": "sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==",
"dev": true,
"requires": {
- "tfunk": "^3.0.1"
+ "tfunk": "^4.0.0"
}
},
"ecc-jsbn": {
@@ -1335,6 +1601,12 @@
"integrity": "sha512-qYWNMjKLEfQAWZF2Sarvo+ahigu0EArnpCFSoUuZJS3W5wIeVfeEvsgmT2mgIrieQkeQ0+xFmykK3nx2ezekPQ==",
"dev": true
},
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
"encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
@@ -1351,19 +1623,44 @@
}
},
"engine.io": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz",
- "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz",
+ "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==",
"dev": true,
"requires": {
"accepts": "~1.3.4",
- "base64id": "1.0.0",
- "cookie": "0.3.1",
+ "base64id": "2.0.0",
+ "cookie": "~0.4.1",
+ "debug": "~4.1.0",
+ "engine.io-parser": "~2.2.0",
+ "ws": "~7.4.2"
+ }
+ },
+ "engine.io-client": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.0.tgz",
+ "integrity": "sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA==",
+ "dev": true,
+ "requires": {
+ "component-emitter": "~1.3.0",
+ "component-inherit": "0.0.3",
"debug": "~3.1.0",
- "engine.io-parser": "~2.1.0",
- "ws": "~3.3.1"
+ "engine.io-parser": "~2.2.0",
+ "has-cors": "1.1.0",
+ "indexof": "0.0.1",
+ "parseqs": "0.0.6",
+ "parseuri": "0.0.6",
+ "ws": "~7.4.2",
+ "xmlhttprequest-ssl": "~1.5.4",
+ "yeast": "0.1.2"
},
"dependencies": {
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
@@ -1373,70 +1670,44 @@
"ms": "2.0.0"
}
},
- "engine.io-parser": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
- "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
- "dev": true,
- "requires": {
- "after": "0.8.2",
- "arraybuffer.slice": "~0.0.7",
- "base64-arraybuffer": "0.1.5",
- "blob": "0.0.5",
- "has-binary2": "~1.0.2"
- }
- },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
- },
- "ws": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
- "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
- "dev": true,
- "requires": {
- "async-limiter": "~1.0.0",
- "safe-buffer": "~5.1.0",
- "ultron": "~1.1.0"
- }
}
}
},
- "engine.io-client": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz",
- "integrity": "sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==",
- "dev": true,
- "requires": {
- "component-emitter": "1.2.1",
- "component-inherit": "0.0.3",
- "debug": "~4.1.0",
- "engine.io-parser": "~2.2.0",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "ws": "~6.1.0",
- "xmlhttprequest-ssl": "~1.5.4",
- "yeast": "0.1.2"
- }
- },
"engine.io-parser": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz",
- "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz",
+ "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==",
"dev": true,
"requires": {
"after": "0.8.2",
"arraybuffer.slice": "~0.0.7",
- "base64-arraybuffer": "0.1.5",
+ "base64-arraybuffer": "0.1.4",
"blob": "0.0.5",
"has-binary2": "~1.0.2"
}
},
+ "enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^4.1.1"
+ },
+ "dependencies": {
+ "ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true
+ }
+ }
+ },
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -1490,6 +1761,12 @@
"es6-symbol": "^3.1.1"
}
},
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true
+ },
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -1515,10 +1792,49 @@
"dev": true
},
"eventemitter3": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
- "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=",
- "dev": true
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "dev": true
+ },
+ "execa": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz",
+ "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
},
"expand-brackets": {
"version": "2.1.4",
@@ -1701,6 +2017,15 @@
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
"dev": true
},
+ "figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
"fill-range": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
@@ -1766,6 +2091,15 @@
"pinkie-promise": "^2.0.0"
}
},
+ "find-versions": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz",
+ "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==",
+ "dev": true,
+ "requires": {
+ "semver-regex": "^2.0.0"
+ }
+ },
"findup-sync": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
@@ -1808,41 +2142,21 @@
}
},
"follow-redirects": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
- "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
- "dev": true,
- "requires": {
- "debug": "=3.1.0"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- }
- }
- },
- "for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
- "dev": true
- },
- "for-own": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
- "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz",
+ "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==",
+ "dev": true
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "for-own": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
"dev": true,
"requires": {
"for-in": "^1.0.1"
@@ -2104,12 +2418,6 @@
"dev": true,
"optional": true
},
- "ini": {
- "version": "1.3.5",
- "bundled": true,
- "dev": true,
- "optional": true
- },
"is-fullwidth-code-point": {
"version": "1.0.0",
"bundled": true,
@@ -2504,12 +2812,39 @@
"integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
"dev": true
},
+ "get-own-enumerable-property-symbols": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
+ "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==",
+ "dev": true
+ },
"get-stdin": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
"integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
"dev": true
},
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
"get-value": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
@@ -3094,13 +3429,14 @@
}
},
"http-proxy": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz",
- "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=",
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
+ "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
"dev": true,
"requires": {
- "eventemitter3": "1.x.x",
- "requires-port": "1.x.x"
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
}
},
"http-signature": {
@@ -3114,6 +3450,129 @@
"sshpk": "^1.7.0"
}
},
+ "human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true
+ },
+ "husky": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz",
+ "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "ci-info": "^2.0.0",
+ "compare-versions": "^3.6.0",
+ "cosmiconfig": "^6.0.0",
+ "find-versions": "^3.2.0",
+ "opencollective-postinstall": "^2.0.2",
+ "pkg-dir": "^4.2.0",
+ "please-upgrade-node": "^3.2.0",
+ "slash": "^3.0.0",
+ "which-pm-runs": "^1.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "dev": true,
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
+ "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz",
+ "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -3195,9 +3654,9 @@
"dev": true
},
"ini": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
- "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
+ "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==",
"dev": true
},
"interpret": {
@@ -3388,6 +3847,12 @@
"lodash.isfinite": "^3.3.2"
}
},
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -3397,6 +3862,12 @@
"isobject": "^3.0.1"
}
},
+ "is-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
+ "dev": true
+ },
"is-relative": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
@@ -3406,6 +3877,12 @@
"is-unc-path": "^1.0.0"
}
},
+ "is-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+ "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
+ "dev": true
+ },
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
@@ -3475,6 +3952,12 @@
"integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
"dev": true
},
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
"js-yaml": {
"version": "3.13.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
@@ -3608,11 +4091,271 @@
}
},
"limiter": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.4.tgz",
- "integrity": "sha512-XCpr5bElgDI65vVgstP8TWjv6/QKWm9GU5UG0Pr5sLQ3QLo8NVKsioe+Jed5/3vFOe3IQuqE7DKwTvKQkjTHvg==",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz",
+ "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==",
"dev": true
},
+ "lines-and-columns": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
+ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
+ "dev": true
+ },
+ "lint-staged": {
+ "version": "10.2.11",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.2.11.tgz",
+ "integrity": "sha512-LRRrSogzbixYaZItE2APaS4l2eJMjjf5MbclRZpLJtcQJShcvUzKXsNeZgsLIZ0H0+fg2tL4B59fU9wHIHtFIA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "cli-truncate": "2.1.0",
+ "commander": "^5.1.0",
+ "cosmiconfig": "^6.0.0",
+ "debug": "^4.1.1",
+ "dedent": "^0.7.0",
+ "enquirer": "^2.3.5",
+ "execa": "^4.0.1",
+ "listr2": "^2.1.0",
+ "log-symbols": "^4.0.0",
+ "micromatch": "^4.0.2",
+ "normalize-path": "^3.0.0",
+ "please-upgrade-node": "^3.2.0",
+ "string-argv": "0.3.1",
+ "stringify-object": "^3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "commander": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "dev": true,
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
+ "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "parse-json": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz",
+ "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "listr2": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-2.6.0.tgz",
+ "integrity": "sha512-nwmqTJYQQ+AsKb4fCXH/6/UmLCEDL1jkRAdSn9M6cEUzoRGrs33YD/3N86gAZQnGZ6hxV18XSdlBcJ1GTmetJA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "cli-truncate": "^2.1.0",
+ "figures": "^3.2.0",
+ "indent-string": "^4.0.0",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rxjs": "^6.6.2",
+ "through": "^2.3.8"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true
+ },
+ "rxjs": {
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz",
+ "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
"load-json-file": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
@@ -3627,42 +4370,144 @@
}
},
"localtunnel": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.9.2.tgz",
- "integrity": "sha512-NEKF7bDJE9U3xzJu3kbayF0WTvng6Pww7tzqNb/XtEARYwqw7CKEX7BvOMg98FtE9es2CRizl61gkV3hS8dqYg==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.1.tgz",
+ "integrity": "sha512-LiaI5wZdz0xFkIQpXbNI62ZnNn8IMsVhwxHmhA+h4vj8R9JG/07bQHWwQlyy7b95/5fVOCHJfIHv+a5XnkvaJA==",
"dev": true,
"requires": {
- "axios": "0.19.0",
- "debug": "4.1.1",
+ "axios": "0.21.1",
+ "debug": "4.3.1",
"openurl": "1.1.1",
- "yargs": "6.6.0"
+ "yargs": "16.2.0"
},
"dependencies": {
- "yargs": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
- "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"requires": {
- "camelcase": "^3.0.0",
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "os-locale": "^1.4.0",
- "read-pkg-up": "^1.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^1.0.2",
- "which-module": "^1.0.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^4.2.0"
+ "color-convert": "^2.0.1"
}
- }
- }
- },
- "lodash": {
- "version": "4.17.19",
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz",
+ "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ }
+ }
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.19",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
"dev": true
@@ -3704,6 +4549,160 @@
"lodash._reinterpolate": "^3.0.0"
}
},
+ "log-symbols": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
+ "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "log-update": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ }
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ }
+ }
+ },
"loud-rejection": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
@@ -3807,6 +4806,12 @@
"trim-newlines": "^1.0.0"
}
},
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
"micromatch": {
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
@@ -3849,6 +4854,12 @@
"mime-db": "1.40.0"
}
},
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -3865,9 +4876,9 @@
"dev": true
},
"mitt": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.1.3.tgz",
- "integrity": "sha512-mUDCnVNsAi+eD6qA0HkRkwYczbLHJ49z17BGe2PYRhZL4wpZUFZGJHU7/5tmvohoma+Hdn0Vh/oJTiPEmgSruA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz",
+ "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==",
"dev": true
},
"mixin-deep": {
@@ -4016,9 +5027,9 @@
}
},
"node-sass": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz",
- "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz",
+ "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==",
"dev": true,
"requires": {
"async-foreach": "^0.1.3",
@@ -4028,24 +5039,36 @@
"get-stdin": "^4.0.1",
"glob": "^7.0.3",
"in-publish": "^2.0.0",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.15",
"meow": "^3.7.0",
"mkdirp": "^0.5.1",
"nan": "^2.13.2",
"node-gyp": "^3.8.0",
"npmlog": "^4.0.0",
"request": "^2.88.0",
- "sass-graph": "^2.2.4",
+ "sass-graph": "2.2.5",
"stdout-stream": "^1.4.0",
"true-case-path": "^1.0.2"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
"ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
},
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
@@ -4059,11 +5082,196 @@
"supports-color": "^2.0.0"
}
},
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "sass-graph": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz",
+ "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.0",
+ "lodash": "^4.0.0",
+ "scss-tokenizer": "^0.2.3",
+ "yargs": "^13.3.2"
+ }
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"dev": true
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "13.3.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
+ "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
}
}
},
@@ -4133,6 +5341,15 @@
"once": "^1.3.2"
}
},
+ "npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
"npmlog": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
@@ -4169,12 +5386,6 @@
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
},
- "object-component": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
- "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
- "dev": true
- },
"object-copy": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
@@ -4212,12 +5423,6 @@
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true
},
- "object-path": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz",
- "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=",
- "dev": true
- },
"object-visit": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
@@ -4298,6 +5503,21 @@
"wrappy": "1"
}
},
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "opencollective-postinstall": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
+ "dev": true
+ },
"openurl": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz",
@@ -4353,6 +5573,56 @@
"os-tmpdir": "^1.0.0"
}
},
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-map": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "dev": true,
+ "requires": {
+ "aggregate-error": "^3.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ }
+ }
+ },
"parse-filepath": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
@@ -4386,22 +5656,16 @@
"dev": true
},
"parseqs": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
- "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
- "dev": true,
- "requires": {
- "better-assert": "~1.0.0"
- }
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz",
+ "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==",
+ "dev": true
},
"parseuri": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
- "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
- "dev": true,
- "requires": {
- "better-assert": "~1.0.0"
- }
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz",
+ "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==",
+ "dev": true
},
"parseurl": {
"version": "1.3.3",
@@ -4436,6 +5700,12 @@
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true
},
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
@@ -4474,6 +5744,12 @@
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
"dev": true
},
+ "picomatch": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+ "dev": true
+ },
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
@@ -4495,6 +5771,42 @@
"pinkie": "^2.0.0"
}
},
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ }
+ }
+ },
+ "please-upgrade-node": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
+ "dev": true,
+ "requires": {
+ "semver-compare": "^1.0.0"
+ }
+ },
"plugin-error": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz",
@@ -4941,6 +6253,16 @@
}
}
},
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
"ret": {
"version": "0.1.15",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
@@ -4992,50 +6314,6 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true
},
- "sass-graph": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
- "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
- "dev": true,
- "requires": {
- "glob": "^7.0.0",
- "lodash": "^4.0.0",
- "scss-tokenizer": "^0.2.3",
- "yargs": "^7.0.0"
- },
- "dependencies": {
- "yargs": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
- "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
- "dev": true,
- "requires": {
- "camelcase": "^3.0.0",
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "os-locale": "^1.4.0",
- "read-pkg-up": "^1.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^1.0.2",
- "which-module": "^1.0.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^5.0.0"
- }
- },
- "yargs-parser": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
- "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
- "dev": true,
- "requires": {
- "camelcase": "^3.0.0"
- }
- }
- }
- },
"scss-tokenizer": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
@@ -5063,6 +6341,12 @@
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
},
+ "semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
+ "dev": true
+ },
"semver-greatest-satisfied-range": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz",
@@ -5072,6 +6356,12 @@
"sver-compat": "^1.5.0"
}
},
+ "semver-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
+ "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==",
+ "dev": true
+ },
"send": {
"version": "0.16.2",
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
@@ -5255,6 +6545,21 @@
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
"dev": true
},
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
"shellwords": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
@@ -5267,6 +6572,56 @@
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"dev": true
},
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ }
+ }
+ },
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -5396,151 +6751,97 @@
}
},
"socket.io": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
- "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.0.tgz",
+ "integrity": "sha512-9UPJ1UTvKayuQfVv2IQ3k7tCQC/fboDyIK62i99dAQIyHKaBsNdTpwHLgKJ6guRWxRtC9H+138UwpaGuQO9uWQ==",
"dev": true,
"requires": {
- "debug": "~3.1.0",
- "engine.io": "~3.2.0",
+ "debug": "~4.1.0",
+ "engine.io": "~3.5.0",
"has-binary2": "~1.0.2",
"socket.io-adapter": "~1.1.0",
- "socket.io-client": "2.1.1",
- "socket.io-parser": "~3.2.0"
+ "socket.io-client": "2.4.0",
+ "socket.io-parser": "~3.4.0"
},
"dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "engine.io-client": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz",
- "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==",
- "dev": true,
- "requires": {
- "component-emitter": "1.2.1",
- "component-inherit": "0.0.3",
- "debug": "~3.1.0",
- "engine.io-parser": "~2.1.1",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "ws": "~3.3.1",
- "xmlhttprequest-ssl": "~1.5.4",
- "yeast": "0.1.2"
- }
- },
- "engine.io-parser": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
- "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
- "dev": true,
- "requires": {
- "after": "0.8.2",
- "arraybuffer.slice": "~0.0.7",
- "base64-arraybuffer": "0.1.5",
- "blob": "0.0.5",
- "has-binary2": "~1.0.2"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- },
- "socket.io-client": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz",
- "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==",
- "dev": true,
- "requires": {
- "backo2": "1.0.2",
- "base64-arraybuffer": "0.1.5",
- "component-bind": "1.0.0",
- "component-emitter": "1.2.1",
- "debug": "~3.1.0",
- "engine.io-client": "~3.2.0",
- "has-binary2": "~1.0.2",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "object-component": "0.0.3",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "socket.io-parser": "~3.2.0",
- "to-array": "0.1.4"
- }
- },
"socket.io-parser": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz",
- "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz",
+ "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==",
"dev": true,
"requires": {
"component-emitter": "1.2.1",
- "debug": "~3.1.0",
+ "debug": "~4.1.0",
"isarray": "2.0.1"
}
- },
- "ws": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
- "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
- "dev": true,
- "requires": {
- "async-limiter": "~1.0.0",
- "safe-buffer": "~5.1.0",
- "ultron": "~1.1.0"
- }
}
}
},
"socket.io-adapter": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
- "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz",
+ "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==",
"dev": true
},
"socket.io-client": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz",
- "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz",
+ "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==",
"dev": true,
"requires": {
"backo2": "1.0.2",
- "base64-arraybuffer": "0.1.5",
"component-bind": "1.0.0",
- "component-emitter": "1.2.1",
- "debug": "~4.1.0",
- "engine.io-client": "~3.4.0",
+ "component-emitter": "~1.3.0",
+ "debug": "~3.1.0",
+ "engine.io-client": "~3.5.0",
"has-binary2": "~1.0.2",
- "has-cors": "1.1.0",
"indexof": "0.0.1",
- "object-component": "0.0.3",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
+ "parseqs": "0.0.6",
+ "parseuri": "0.0.6",
"socket.io-parser": "~3.3.0",
"to-array": "0.1.4"
+ },
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
}
},
"socket.io-parser": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz",
- "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz",
+ "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==",
"dev": true,
"requires": {
- "component-emitter": "1.2.1",
+ "component-emitter": "~1.3.0",
"debug": "~3.1.0",
"isarray": "2.0.1"
},
"dependencies": {
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
@@ -5723,6 +7024,12 @@
"limiter": "^1.0.5"
}
},
+ "string-argv": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
+ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
+ "dev": true
+ },
"string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@@ -5743,6 +7050,17 @@
"safe-buffer": "~5.1.0"
}
},
+ "stringify-object": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
+ "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
+ "dev": true,
+ "requires": {
+ "get-own-enumerable-property-symbols": "^3.0.0",
+ "is-obj": "^1.0.1",
+ "is-regexp": "^1.0.0"
+ }
+ },
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -5761,6 +7079,12 @@
"is-utf8": "^0.2.0"
}
},
+ "strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true
+ },
"strip-indent": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
@@ -5807,13 +7131,13 @@
}
},
"tfunk": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz",
- "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz",
+ "integrity": "sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==",
"dev": true,
"requires": {
- "chalk": "^1.1.1",
- "object-path": "^0.9.0"
+ "chalk": "^1.1.3",
+ "dlv": "^1.1.3"
},
"dependencies": {
"ansi-styles": {
@@ -5843,6 +7167,12 @@
}
}
},
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
"through2": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
@@ -5975,6 +7305,12 @@
"glob": "^7.1.2"
}
},
+ "tslib": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+ "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+ "dev": true
+ },
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
@@ -5996,6 +7332,12 @@
"integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
"dev": true
},
+ "type-fest": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+ "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "dev": true
+ },
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
@@ -6003,15 +7345,9 @@
"dev": true
},
"ua-parser-js": {
- "version": "0.7.17",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz",
- "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==",
- "dev": true
- },
- "ultron": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
- "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
+ "version": "0.7.23",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.23.tgz",
+ "integrity": "sha512-m4hvMLxgGHXG3O3fQVAyyAQpZzDOvwnhOTjYz5Xmr7r/+LpkNy3vJXdVRWgd1TkAb7NGROZuSy96CrlNVjA7KA==",
"dev": true
},
"unc-path-regex": {
@@ -6301,6 +7637,12 @@
"integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
"dev": true
},
+ "which-pm-runs": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
+ "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=",
+ "dev": true
+ },
"wide-align": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
@@ -6310,12 +7652,6 @@
"string-width": "^1.0.2 || 2"
}
},
- "window-size": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
- "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=",
- "dev": true
- },
"wrap-ansi": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
@@ -6333,13 +7669,10 @@
"dev": true
},
"ws": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
- "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
- "dev": true,
- "requires": {
- "async-limiter": "~1.0.0"
- }
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz",
+ "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==",
+ "dev": true
},
"xmlhttprequest-ssl": {
"version": "1.5.5",
@@ -6365,36 +7698,172 @@
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
"dev": true
},
+ "yaml": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz",
+ "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==",
+ "dev": true
+ },
"yargs": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz",
- "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=",
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
"dev": true,
"requires": {
- "camelcase": "^3.0.0",
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "os-locale": "^1.4.0",
- "read-pkg-up": "^1.0.1",
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
+ "require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
- "string-width": "^1.0.2",
- "which-module": "^1.0.0",
- "window-size": "^0.2.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^4.1.0"
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+ "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
+ "dev": true
+ },
+ "yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
}
},
"yargs-parser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
- "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
- "dev": true,
- "requires": {
- "camelcase": "^3.0.0"
- }
+ "version": "20.2.4",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+ "dev": true
},
"yeast": {
"version": "0.1.2",
diff --git a/package.json b/package.json
index a54dfcecfd1..f95515ee5e2 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "eccube",
- "version": "4.0.4",
+ "version": "4.0.5",
"description": "EC-CUBE EC open platform.",
"main": "index.js",
"directories": {
@@ -22,12 +22,23 @@
"url": "https://github.com/EC-CUBE/ec-cube/issues"
},
"homepage": "https://www.ec-cube.net/",
+ "lint-staged": {
+ "*.php": [
+ "cross-env vendor/bin/php-cs-fixer --config=.php_cs.dist --path-mode=intersection fix"
+ ]
+ },
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged 2>&1 | echo || node -e ''"
+ }
+ },
"dependencies": {},
"devDependencies": {
"autoprefixer": "^9.6.4",
"bootstrap": "^4.3.1",
"bootstrap-sass": "^3.4.1",
- "browser-sync": "^2.26.7",
+ "browser-sync": "^2.26.14",
+ "cross-env": "^7.0.2",
"css-mqpacker": "^7.0.0",
"gulp": "^4.0.2",
"gulp-clean-css": "^4.2.0",
@@ -36,6 +47,8 @@
"gulp-postcss": "^8.0.0",
"gulp-rename": "^1.4.0",
"gulp-sass": "^4.0.2",
+ "husky": "^4.2.5",
+ "lint-staged": "^10.2.11",
"normalize.css": "^5.0.0",
"postcss-import": "^12.0.1",
"process": "^0.11.10",
diff --git a/phpstan.neon.dist b/phpstan.neon.dist
new file mode 100644
index 00000000000..8b9b71bfd1d
--- /dev/null
+++ b/phpstan.neon.dist
@@ -0,0 +1,6 @@
+parameters:
+ level: 1
+ ignoreErrors:
+ -
+ message: "#^Function twig_localized_date_filter not found\\.$#"
+ path: src/Eccube/Twig/Extension/IntlExtension.php
diff --git a/src/Eccube/Command/ComposerRemoveCommand.php b/src/Eccube/Command/ComposerRemoveCommand.php
index 1422d8b99a6..d4259f13a06 100644
--- a/src/Eccube/Command/ComposerRemoveCommand.php
+++ b/src/Eccube/Command/ComposerRemoveCommand.php
@@ -15,9 +15,11 @@
use Eccube\Service\Composer\ComposerApiService;
use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Style\SymfonyStyle;
class ComposerRemoveCommand extends Command
{
@@ -42,5 +44,17 @@ protected function configure()
protected function execute(InputInterface $input, OutputInterface $output)
{
$this->composerService->execRemove($input->getArgument('package'), $output);
+
+ $io = new SymfonyStyle($input, $output);
+ try {
+ /* @var Command $command */
+ $command = $this->getApplication()->get('cache:clear');
+ $command->run(new ArrayInput([
+ 'command' => 'cache:clear',
+ '--no-warmup' => true,
+ ]), $io);
+ } catch (\Exception $e) {
+ $io->error($e->getMessage());
+ }
}
}
diff --git a/src/Eccube/Command/InstallerCommand.php b/src/Eccube/Command/InstallerCommand.php
index 7a55c3b39e1..efc2b83393f 100644
--- a/src/Eccube/Command/InstallerCommand.php
+++ b/src/Eccube/Command/InstallerCommand.php
@@ -113,8 +113,8 @@ protected function interact(InputInterface $input, OutputInterface $output)
$this->io->text([
'If you prefer to not use this interactive wizard, define the environment valiables as follows:',
'',
- ' $ export APP_ENV=dev',
- ' $ export APP_DEBUG=1',
+ ' $ export APP_ENV=prod',
+ ' $ export APP_DEBUG=0',
' $ export DATABASE_URL=database_url',
' $ export DATABASE_SERVER_VERSION=server_version',
' $ export MAILER_URL=mailer_url',
@@ -150,15 +150,15 @@ protected function interact(InputInterface $input, OutputInterface $output)
// 以下環境変数に規定済の設定値があれば利用する
// APP_ENV
- $appEnv = env('APP_ENV', 'dev');
- // .envが存在しない状態では規定値'install'となっているため、devに更新する
+ $appEnv = env('APP_ENV', 'prod');
+ // .envが存在しない状態では規定値'install'となっているため、prodに更新する
if ($appEnv === 'install') {
- $appEnv = 'dev';
+ $appEnv = 'prod';
}
$this->envFileUpdater->appEnv = $appEnv;
// APP_DEBUG
- $this->envFileUpdater->appDebug = env('APP_DEBUG', '1');
+ $this->envFileUpdater->appDebug = env('APP_DEBUG', '0');
// ECCUBE_ADMIN_ROUTE
$adminRoute = $this->container->getParameter('eccube_admin_route');
diff --git a/src/Eccube/Command/PluginGenerateCommand.php b/src/Eccube/Command/PluginGenerateCommand.php
index db83c4298bf..0e199211e4e 100644
--- a/src/Eccube/Command/PluginGenerateCommand.php
+++ b/src/Eccube/Command/PluginGenerateCommand.php
@@ -396,56 +396,58 @@ public function index(Request \$request)
use Doctrine\\ORM\\Mapping as ORM;
-/**
- * Config
- *
- * @ORM\Table(name="plg_${snakecased}_config")
- * @ORM\Entity(repositoryClass="Plugin\\${code}\\Repository\\ConfigRepository")
- */
-class Config
-{
- /**
- * @var int
- *
- * @ORM\Column(name="id", type="integer", options={"unsigned":true})
- * @ORM\Id
- * @ORM\GeneratedValue(strategy="IDENTITY")
- */
- private \$id;
-
+if (!class_exists('\\Plugin\\${code}\\Entity\\Config', false)) {
/**
- * @var string
+ * Config
*
- * @ORM\Column(name="name", type="string", length=255)
- */
- private \$name;
-
- /**
- * @return int
+ * @ORM\Table(name="plg_${snakecased}_config")
+ * @ORM\Entity(repositoryClass="Plugin\\${code}\\Repository\\ConfigRepository")
*/
- public function getId()
+ class Config
{
- return \$this->id;
- }
+ /**
+ * @var int
+ *
+ * @ORM\Column(name="id", type="integer", options={"unsigned":true})
+ * @ORM\Id
+ * @ORM\GeneratedValue(strategy="IDENTITY")
+ */
+ private \$id;
+
+ /**
+ * @var string
+ *
+ * @ORM\Column(name="name", type="string", length=255)
+ */
+ private \$name;
+
+ /**
+ * @return int
+ */
+ public function getId()
+ {
+ return \$this->id;
+ }
- /**
- * @return string
- */
- public function getName()
- {
- return \$this->name;
- }
+ /**
+ * @return string
+ */
+ public function getName()
+ {
+ return \$this->name;
+ }
- /**
- * @param string \$name
- *
- * @return \$this;
- */
- public function setName(\$name)
- {
- \$this->name = \$name;
+ /**
+ * @param string \$name
+ *
+ * @return \$this;
+ */
+ public function setName(\$name)
+ {
+ \$this->name = \$name;
- return \$this;
+ return \$this;
+ }
}
}
diff --git a/src/Eccube/Common/Constant.php b/src/Eccube/Common/Constant.php
index 122c13ecc71..501ea2b56f0 100644
--- a/src/Eccube/Common/Constant.php
+++ b/src/Eccube/Common/Constant.php
@@ -18,7 +18,7 @@ class Constant
/**
* EC-CUBE VERSION.
*/
- const VERSION = '4.0.4';
+ const VERSION = '4.0.5';
/**
* Enable value.
diff --git a/src/Eccube/Controller/Admin/AbstractCsvImportController.php b/src/Eccube/Controller/Admin/AbstractCsvImportController.php
index 8a695b84330..2bbe2a8a6a9 100644
--- a/src/Eccube/Controller/Admin/AbstractCsvImportController.php
+++ b/src/Eccube/Controller/Admin/AbstractCsvImportController.php
@@ -54,7 +54,7 @@ protected function getImportData(UploadedFile $formFile)
}
} else {
// アップロードされたファイルがUTF-8以外は文字コード変換を行う
- $encode = StringUtil::characterEncoding($file);
+ $encode = StringUtil::characterEncoding($file, $this->eccubeConfig['eccube_csv_import_encoding']);
if (!empty($encode) && $encode != 'UTF-8') {
$file = mb_convert_encoding($file, 'UTF-8', $encode);
}
@@ -81,7 +81,7 @@ protected function sendTemplateResponse(Request $request, $columns, $filename)
set_time_limit(0);
$response = new StreamedResponse();
- $response->setCallback(function () use ($request, $columns) {
+ $response->setCallback(function () use ($columns) {
// ヘッダ行の出力
$row = [];
foreach ($columns as $column) {
diff --git a/src/Eccube/Controller/Admin/AdminController.php b/src/Eccube/Controller/Admin/AdminController.php
index 80ee0ccce82..a0ed5dd3f7b 100644
--- a/src/Eccube/Controller/Admin/AdminController.php
+++ b/src/Eccube/Controller/Admin/AdminController.php
@@ -285,6 +285,15 @@ public function sale(Request $request)
return $this->json(['status' => 'NG'], 400);
}
+ $event = new EventArgs(
+ [
+ 'excludes' => $this->excludes,
+ ],
+ $request
+ );
+ $this->eventDispatcher->dispatch(EccubeEvents::ADMIN_ADMIM_INDEX_SALES, $event);
+ $this->excludes = $event->getArgument('excludes');
+
// 週間の売上金額
$toDate = Carbon::now();
$fromDate = Carbon::today()->subWeek();
@@ -445,7 +454,7 @@ protected function getOrderEachStatus(array $excludes)
}
/**
- * @param $dateTime
+ * @param \DateTime $dateTime
*
* @return array|mixed
*
@@ -453,24 +462,23 @@ protected function getOrderEachStatus(array $excludes)
*/
protected function getSalesByDay($dateTime)
{
- // concat... for pgsql
- // http://stackoverflow.com/questions/1091924/substr-does-not-work-with-datatype-timestamp-in-postgres-8-3
- $dql = 'SELECT
- SUBSTRING(CONCAT(o.order_date, \'\'), 1, 10) AS order_day,
- SUM(o.payment_total) AS order_amount,
- COUNT(o) AS order_count
- FROM
- Eccube\Entity\Order o
- WHERE
- o.OrderStatus NOT IN (:excludes)
- AND SUBSTRING(CONCAT(o.order_date, \'\'), 1, 10) = SUBSTRING(:targetDate, 1, 10)
- GROUP BY
- order_day';
+ $dateTimeStart = clone $dateTime;
+ $dateTimeStart->setTime(0, 0, 0, 0);
+
+ $dateTimeEnd = clone $dateTimeStart;
+ $dateTimeEnd->modify('+1 days');
- $q = $this->entityManager
- ->createQuery($dql)
+ $qb = $this->orderRepository
+ ->createQueryBuilder('o')
+ ->select('
+ SUM(o.payment_total) AS order_amount,
+ COUNT(o) AS order_count')
->setParameter(':excludes', $this->excludes)
- ->setParameter(':targetDate', $dateTime);
+ ->setParameter(':targetDateStart', $dateTimeStart)
+ ->setParameter(':targetDateEnd', $dateTimeEnd)
+ ->andWhere(':targetDateStart <= o.order_date and o.order_date < :targetDateEnd')
+ ->andWhere('o.OrderStatus NOT IN (:excludes)');
+ $q = $qb->getQuery();
$result = [];
try {
@@ -483,7 +491,7 @@ protected function getSalesByDay($dateTime)
}
/**
- * @param $dateTime
+ * @param \DateTime $dateTime
*
* @return array|mixed
*
@@ -491,24 +499,25 @@ protected function getSalesByDay($dateTime)
*/
protected function getSalesByMonth($dateTime)
{
- // concat... for pgsql
- // http://stackoverflow.com/questions/1091924/substr-does-not-work-with-datatype-timestamp-in-postgres-8-3
- $dql = 'SELECT
- SUBSTRING(CONCAT(o.order_date, \'\'), 1, 7) AS order_month,
- SUM(o.payment_total) AS order_amount,
- COUNT(o) AS order_count
- FROM
- Eccube\Entity\Order o
- WHERE
- o.OrderStatus NOT IN (:excludes)
- AND SUBSTRING(CONCAT(o.order_date, \'\'), 1, 7) = SUBSTRING(:targetDate, 1, 7)
- GROUP BY
- order_month';
-
- $q = $this->entityManager
- ->createQuery($dql)
+ $dateTimeStart = clone $dateTime;
+ $dateTimeStart->setTime(0, 0, 0, 0);
+ $dateTimeStart->modify('first day of this month');
+
+ $dateTimeEnd = clone $dateTime;
+ $dateTimeEnd->setTime(0, 0, 0, 0);
+ $dateTimeEnd->modify('first day of 1 month');
+
+ $qb = $this->orderRepository
+ ->createQueryBuilder('o')
+ ->select('
+ SUM(o.payment_total) AS order_amount,
+ COUNT(o) AS order_count')
->setParameter(':excludes', $this->excludes)
- ->setParameter(':targetDate', $dateTime);
+ ->setParameter(':targetDateStart', $dateTimeStart)
+ ->setParameter(':targetDateEnd', $dateTimeEnd)
+ ->andWhere(':targetDateStart <= o.order_date and o.order_date < :targetDateEnd')
+ ->andWhere('o.OrderStatus NOT IN (:excludes)');
+ $q = $qb->getQuery();
$result = [];
try {
diff --git a/src/Eccube/Controller/Admin/Content/FileController.php b/src/Eccube/Controller/Admin/Content/FileController.php
index 5c044b699b3..ed54ca9dea2 100644
--- a/src/Eccube/Controller/Admin/Content/FileController.php
+++ b/src/Eccube/Controller/Admin/Content/FileController.php
@@ -178,7 +178,11 @@ public function create(Request $request)
$nowDir = $this->checkDir($nowDir, $topDir)
? $this->normalizePath($nowDir)
: $topDir;
- $fs->mkdir($nowDir.'/'.$filename);
+ $newFilePath = $nowDir.'/'.$filename;
+ if (file_exists($newFilePath)) {
+ throw new IOException(trans('admin.content.file.dir_exists', [ '%file_name%' => $filename, ]));
+ }
+ $fs->mkdir($newFilePath);
$this->addSuccess('admin.common.create_complete', 'admin');
} catch (IOException $e) {
diff --git a/src/Eccube/Controller/Admin/Content/LayoutController.php b/src/Eccube/Controller/Admin/Content/LayoutController.php
index f5e32e07be6..c5b34f0660e 100644
--- a/src/Eccube/Controller/Admin/Content/LayoutController.php
+++ b/src/Eccube/Controller/Admin/Content/LayoutController.php
@@ -207,7 +207,7 @@ public function edit(Request $request, $id = null, $previewPageId = null, CacheU
throw new NotFoundHttpException();
}
- if ($Page->getEditType() == \Eccube\Entity\Page::EDIT_TYPE_DEFAULT) {
+ if ($Page->getEditType() >= \Eccube\Entity\Page::EDIT_TYPE_DEFAULT) {
if ($Page->getUrl() === 'product_detail') {
$product = $this->productRepository->findOneBy(['Status' => ProductStatus::DISPLAY_SHOW]);
if (is_null($product)) {
diff --git a/src/Eccube/Controller/Admin/Content/PageController.php b/src/Eccube/Controller/Admin/Content/PageController.php
index 13bf8cfe0fb..1515593159c 100644
--- a/src/Eccube/Controller/Admin/Content/PageController.php
+++ b/src/Eccube/Controller/Admin/Content/PageController.php
@@ -68,7 +68,7 @@ public function __construct(
* @Route("/%eccube_admin_route%/content/page", name="admin_content_page")
* @Template("@admin/Content/page.twig")
*/
- public function index(Request $request)
+ public function index(Request $request, RouterInterface $router)
{
$Pages = $this->pageRepository->getPageList();
@@ -82,6 +82,7 @@ public function index(Request $request)
return [
'Pages' => $Pages,
+ 'router' => $router,
];
}
@@ -117,12 +118,12 @@ public function edit(Request $request, $id = null, Environment $twig, RouterInte
// 更新時
$fileName = null;
$namespace = '@user_data/';
+ $PrevPage = clone $Page;
if ($id) {
// 編集不可ページはURL、ページ名、ファイル名を保持
- if ($Page->getEditType() == Page::EDIT_TYPE_DEFAULT) {
+ if ($Page->getEditType() >= Page::EDIT_TYPE_DEFAULT) {
$isUserDataPage = false;
$namespace = '';
- $PrevPage = clone $Page;
}
// テンプレートファイルの取得
$source = $twig->getLoader()
@@ -244,6 +245,7 @@ public function edit(Request $request, $id = null, Environment $twig, RouterInte
'form' => $form->createView(),
'page_id' => $Page->getId(),
'is_user_data_page' => $isUserDataPage,
+ 'is_confirm_page' => $Page->getEditType() == Page::EDIT_TYPE_DEFAULT_CONFIRM,
'template_path' => $templatePath,
'url' => $url,
];
diff --git a/src/Eccube/Controller/Admin/Customer/CustomerController.php b/src/Eccube/Controller/Admin/Customer/CustomerController.php
index 7e3a9fba14a..880d3c80c49 100644
--- a/src/Eccube/Controller/Admin/Customer/CustomerController.php
+++ b/src/Eccube/Controller/Admin/Customer/CustomerController.php
@@ -245,7 +245,7 @@ public function delete(Request $request, $id, TranslatorInterface $translator)
$this->entityManager->flush($Customer);
$this->addSuccess('admin.common.delete_complete', 'admin');
} catch (ForeignKeyConstraintViolationException $e) {
- log_error('会員削除失敗', [$e], 'admin');
+ log_error('会員削除失敗', [$e]);
$message = trans('admin.common.delete_error_foreign_key', ['%name%' => $Customer->getName01().' '.$Customer->getName02()]);
$this->addError($message, 'admin');
diff --git a/src/Eccube/Controller/Admin/Customer/CustomerDeliveryEditController.php b/src/Eccube/Controller/Admin/Customer/CustomerDeliveryEditController.php
index 112805c1a83..79a85c6002d 100644
--- a/src/Eccube/Controller/Admin/Customer/CustomerDeliveryEditController.php
+++ b/src/Eccube/Controller/Admin/Customer/CustomerDeliveryEditController.php
@@ -144,7 +144,7 @@ public function delete(Request $request, Customer $Customer, $did)
$this->customerAddressRepository->delete($CustomerAddress);
$this->addSuccess('admin.common.delete_complete', 'admin');
} catch (ForeignKeyConstraintViolationException $e) {
- log_error('お届け先削除失敗', [$e], 'admin');
+ log_error('お届け先削除失敗', [$e]);
$message = trans('admin.common.delete_error_foreign_key', ['%name%' => trans('admin.customer.customer_address')]);
$this->addError($message, 'admin');
diff --git a/src/Eccube/Controller/Admin/Customer/CustomerEditController.php b/src/Eccube/Controller/Admin/Customer/CustomerEditController.php
index 8270cee2d1e..eebe0afa65e 100644
--- a/src/Eccube/Controller/Admin/Customer/CustomerEditController.php
+++ b/src/Eccube/Controller/Admin/Customer/CustomerEditController.php
@@ -72,6 +72,7 @@ public function index(Request $request, $id = null)
$Customer = $this->customerRepository->newCustomer();
$oldStatusId = null;
+ $previous_password = null;
}
// 会員登録フォーム
diff --git a/src/Eccube/Controller/Admin/Order/EditController.php b/src/Eccube/Controller/Admin/Order/EditController.php
index 0fdba5afeee..2cfe72d402f 100644
--- a/src/Eccube/Controller/Admin/Order/EditController.php
+++ b/src/Eccube/Controller/Admin/Order/EditController.php
@@ -408,7 +408,7 @@ public function index(Request $request, $id = null, RouterInterface $router)
* 顧客情報を検索する.
*
* @Route("/%eccube_admin_route%/order/search/customer/html", name="admin_order_search_customer_html")
- * @Route("/%eccube_admin_route%/order/search/customer/html/page/{page_no}", requirements={"page_No" = "\d+"}, name="admin_order_search_customer_html_page")
+ * @Route("/%eccube_admin_route%/order/search/customer/html/page/{page_no}", requirements={"page_no" = "\d+"}, name="admin_order_search_customer_html_page")
* @Template("@admin/Order/search_customer.twig")
*
* @param Request $request
@@ -629,7 +629,7 @@ public function searchProduct(Request $request, $page_no = null, Paginator $pagi
foreach ($Products as $Product) {
/* @var $builder \Symfony\Component\Form\FormBuilderInterface */
$builder = $this->formFactory->createNamedBuilder('', AddCartType::class, null, [
- 'product' => $this->productRepository->findWithSortedClassCategories($Product->getId()),
+ 'product' => $Product,
]);
$addCartForm = $builder->getForm();
$forms[$Product->getId()] = $addCartForm->createView();
diff --git a/src/Eccube/Controller/Admin/Product/CsvImportController.php b/src/Eccube/Controller/Admin/Product/CsvImportController.php
index 902e60d825f..84b3374fa39 100644
--- a/src/Eccube/Controller/Admin/Product/CsvImportController.php
+++ b/src/Eccube/Controller/Admin/Product/CsvImportController.php
@@ -31,6 +31,7 @@
use Eccube\Repository\DeliveryDurationRepository;
use Eccube\Repository\Master\ProductStatusRepository;
use Eccube\Repository\Master\SaleTypeRepository;
+use Eccube\Repository\ProductImageRepository;
use Eccube\Repository\ProductRepository;
use Eccube\Repository\TagRepository;
use Eccube\Repository\TaxRuleRepository;
@@ -39,11 +40,15 @@
use Eccube\Util\StringUtil;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Filesystem\Filesystem;
+use Symfony\Component\Finder\Finder;
use Symfony\Component\Form\FormInterface;
+use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\StreamedResponse;
+use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Routing\Annotation\Route;
+use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
use Symfony\Component\Validator\Constraints\GreaterThanOrEqual;
use Symfony\Component\Validator\Validator\ValidatorInterface;
@@ -74,6 +79,11 @@ class CsvImportController extends AbstractCsvImportController
*/
protected $classCategoryRepository;
+ /**
+ * @var ProductImageRepository
+ */
+ protected $productImageRepository;
+
/**
* @var ProductStatusRepository
*/
@@ -101,6 +111,12 @@ class CsvImportController extends AbstractCsvImportController
private $errors = [];
+ protected $isSplitCsv = false;
+
+ protected $csvFileNo = 1;
+
+ protected $currentLineNo = 1;
+
/**
* CsvImportController constructor.
*
@@ -109,6 +125,7 @@ class CsvImportController extends AbstractCsvImportController
* @param TagRepository $tagRepository
* @param CategoryRepository $categoryRepository
* @param ClassCategoryRepository $classCategoryRepository
+ * @param ProductImageRepository $productImageRepository
* @param ProductStatusRepository $productStatusRepository
* @param ProductRepository $productRepository
* @param TaxRuleRepository $taxRuleRepository
@@ -122,6 +139,7 @@ public function __construct(
TagRepository $tagRepository,
CategoryRepository $categoryRepository,
ClassCategoryRepository $classCategoryRepository,
+ ProductImageRepository $productImageRepository,
ProductStatusRepository $productStatusRepository,
ProductRepository $productRepository,
TaxRuleRepository $taxRuleRepository,
@@ -133,6 +151,7 @@ public function __construct(
$this->tagRepository = $tagRepository;
$this->categoryRepository = $categoryRepository;
$this->classCategoryRepository = $classCategoryRepository;
+ $this->productImageRepository = $productImageRepository;
$this->productStatusRepository = $productStatusRepository;
$this->productRepository = $productRepository;
$this->taxRuleRepository = $taxRuleRepository;
@@ -158,6 +177,9 @@ public function csvProduct(Request $request, CacheUtil $cacheUtil)
if ('POST' === $request->getMethod()) {
$form->handleRequest($request);
if ($form->isValid()) {
+ $this->isSplitCsv = $form['is_split_csv']->getData();
+ $this->csvFileNo = $form['csv_file_no']->getData();
+
$formFile = $form['import_file']->getData();
if (!empty($formFile)) {
log_info('商品CSV登録開始');
@@ -198,7 +220,8 @@ public function csvProduct(Request $request, CacheUtil $cacheUtil)
$this->entityManager->getConnection()->beginTransaction();
// CSVファイルの登録処理
foreach ($data as $row) {
- $line = $data->key() + 1;
+ $line = $this->convertLineNo($data->key() + 1);
+ $this->currentLineNo = $line;
if ($headerSize != count($row)) {
$message = trans('admin.common.csv_invalid_format_line', ['%line%' => $line]);
$this->addErrors($message);
@@ -629,7 +652,11 @@ public function csvProduct(Request $request, CacheUtil $cacheUtil)
// 画像ファイルの削除(commit後に削除させる)
foreach ($deleteImages as $images) {
+ /** @var ProductImage $image */
foreach ($images as $image) {
+ if ($this->productImageRepository->findOneBy(['file_name' => $image->getFileName()])) {
+ continue;
+ }
try {
$fs = new Filesystem();
$fs->remove($this->eccubeConfig['eccube_save_image_dir'].'/'.$image);
@@ -640,8 +667,10 @@ public function csvProduct(Request $request, CacheUtil $cacheUtil)
}
log_info('商品CSV登録完了');
- $message = 'admin.common.csv_upload_complete';
- $this->session->getFlashBag()->add('eccube.admin.success', $message);
+ if (!$this->isSplitCsv) {
+ $message = 'admin.common.csv_upload_complete';
+ $this->session->getFlashBag()->add('eccube.admin.success', $message);
+ }
$cacheUtil->clearDoctrineCache();
}
@@ -856,6 +885,18 @@ protected function renderWithError($form, $headers, $rollback = true)
$this->removeUploadedFile();
+ if ($this->isSplitCsv) {
+ return $this->json([
+ 'success' => !$this->hasErrors(),
+ 'success_message' => trans('admin.common.csv_upload_line_success', [
+ '%from%' => $this->convertLineNo(2),
+ '%to%' => $this->currentLineNo]),
+ 'errors' => $this->errors,
+ 'error_message' => trans('admin.common.csv_upload_line_error',[
+ '%from%' => $this->convertLineNo(2)])
+ ]);
+ }
+
return [
'form' => $form->createView(),
'headers' => $headers,
@@ -1202,7 +1243,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod
$ProductClass->setProduct($Product);
$line = $data->key() + 1;
- if ($row[$headerByKey['sale_type']] == '') {
+ if (!isset($row[$headerByKey['sale_type']]) || $row[$headerByKey['sale_type']] == '') {
$message = trans('admin.common.csv_invalid_required', ['%line%' => $line, '%name%' => $headerByKey['sale_type']]);
$this->addErrors($message);
} else {
@@ -1221,7 +1262,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod
}
// 規格分類1、2をそれぞれセットし作成
- if ($row[$headerByKey['class_category1']] != '') {
+ if (isset($row[$headerByKey['class_category1']]) && $row[$headerByKey['class_category1']] != '') {
if (preg_match('/^\d+$/', $row[$headerByKey['class_category1']])) {
$ClassCategory = $this->classCategoryRepository->find($row[$headerByKey['class_category1']]);
if (!$ClassCategory) {
@@ -1236,7 +1277,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod
}
}
- if ($row[$headerByKey['class_category2']] != '') {
+ if (isset($row[$headerByKey['class_category2']]) && $row[$headerByKey['class_category2']] != '') {
if (preg_match('/^\d+$/', $row[$headerByKey['class_category2']])) {
$ClassCategory = $this->classCategoryRepository->find($row[$headerByKey['class_category2']]);
if (!$ClassCategory) {
@@ -1251,7 +1292,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod
}
}
- if ($row[$headerByKey['delivery_date']] != '') {
+ if (isset($row[$headerByKey['delivery_date']]) && $row[$headerByKey['delivery_date']] != '') {
if (preg_match('/^\d+$/', $row[$headerByKey['delivery_date']])) {
$DeliveryDuration = $this->deliveryDurationRepository->find($row[$headerByKey['delivery_date']]);
if (!$DeliveryDuration) {
@@ -1266,7 +1307,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod
}
}
- if (StringUtil::isNotBlank($row[$headerByKey['product_code']])) {
+ if (isset($row[$headerByKey['product_code']]) && StringUtil::isNotBlank($row[$headerByKey['product_code']])) {
$ProductClass->setCode(StringUtil::trimAll($row[$headerByKey['product_code']]));
} else {
$ProductClass->setCode(null);
@@ -1298,7 +1339,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod
$this->addErrors($message);
}
- if ($row[$headerByKey['sale_limit']] != '') {
+ if (isset($row[$headerByKey['sale_limit']]) && $row[$headerByKey['sale_limit']] != '') {
$saleLimit = str_replace(',', '', $row[$headerByKey['sale_limit']]);
if (preg_match('/^\d+$/', $saleLimit) && $saleLimit >= 0) {
$ProductClass->setSaleLimit($saleLimit);
@@ -1308,7 +1349,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod
}
}
- if ($row[$headerByKey['price01']] != '') {
+ if (isset($row[$headerByKey['price01']]) && $row[$headerByKey['price01']] != '') {
$price01 = str_replace(',', '', $row[$headerByKey['price01']]);
$errors = $this->validator->validate($price01, new GreaterThanOrEqual(['value' => 0]));
if ($errors->count() === 0) {
@@ -1319,7 +1360,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod
}
}
- if ($row[$headerByKey['price02']] == '') {
+ if (!isset($row[$headerByKey['price02']]) || $row[$headerByKey['price02']] == '') {
$message = trans('admin.common.csv_invalid_required', ['%line%' => $line, '%name%' => $headerByKey['price02']]);
$this->addErrors($message);
} else {
@@ -1548,4 +1589,148 @@ private function makeProductCategory($Product, $Category, $sortNo)
return $ProductCategory;
}
+
+ /**
+ * @Route("/%eccube_admin_route%/product/csv_split", name="admin_product_csv_split")
+ * @param Request $request
+ * @return \Symfony\Component\HttpFoundation\JsonResponse
+ */
+ public function splitCsv(Request $request)
+ {
+ $this->isTokenValid();
+
+ if (!$request->isXmlHttpRequest()) {
+ throw new BadRequestHttpException();
+ }
+
+ $form = $this->formFactory->createBuilder(CsvImportType::class)->getForm();
+ $form->handleRequest($request);
+
+ if ($form->isSubmitted() && $form->isValid()) {
+
+ $dir = $this->eccubeConfig['eccube_csv_temp_realdir'];
+ if (!file_exists($dir)) {
+ $fs = new Filesystem();
+ $fs->mkdir($dir);
+ }
+
+ $data = $form['import_file']->getData();
+ $src = new \SplFileObject($data->getRealPath());
+ $src->setFlags(\SplFileObject::READ_CSV | \SplFileObject::READ_AHEAD | \SplFileObject::SKIP_EMPTY | \SplFileObject::DROP_NEW_LINE);
+
+ $fileNo = 1;
+ $fileName = StringUtil::random(8);
+
+ $dist = new \SplFileObject($dir.'/'.$fileName.$fileNo.'.csv', 'w');
+ $header = $src->current();
+ $src->next();
+ $dist->fputcsv($header);
+
+ $i = 0;
+ while ($row = $src->current()) {
+ $dist->fputcsv($row);
+ $src->next();
+
+ if (!$src->eof() && ++$i % $this->eccubeConfig['eccube_csv_split_lines'] === 0) {
+ $fileNo++;
+ $dist = new \SplFileObject($dir.'/'.$fileName.$fileNo.'.csv', 'w');
+ $dist->fputcsv($header);
+ }
+ }
+
+ return $this->json(['success' => true, 'file_name' => $fileName, 'max_file_no' => $fileNo]);
+ }
+
+ return $this->json(['success' => false, 'message' => $form->getErrors(true ,true)]);
+ }
+
+ /**
+ * @Route("/%eccube_admin_route%/product/csv_split_import", name="admin_product_csv_split_import")
+ * @param Request $request
+ * @return \Symfony\Component\HttpFoundation\JsonResponse
+ */
+ public function importCsv(Request $request, CsrfTokenManagerInterface $tokenManager)
+ {
+ $this->isTokenValid();
+
+ if (!$request->isXmlHttpRequest()) {
+ throw new BadRequestHttpException();
+ }
+
+ $choices = $this->getCsvTempFiles();
+
+ $filename = $request->get('file_name');
+ if (!isset($choices[$filename])) {
+ throw new BadRequestHttpException();
+ }
+
+ $path = $this->eccubeConfig['eccube_csv_temp_realdir'].'/'.$filename;
+ $request->files->set('admin_csv_import', ['import_file' => new UploadedFile(
+ $path,
+ 'import.csv',
+ 'text/csv',
+ filesize($path),
+ null,
+ true
+ )]);
+
+ $request->setMethod('POST');
+ $request->request->set('admin_csv_import', [
+ Constant::TOKEN_NAME => $tokenManager->getToken('admin_csv_import')->getValue(),
+ 'is_split_csv' => true,
+ 'csv_file_no' => $request->get('file_no'),
+ ]);
+
+ return $this->forwardToRoute('admin_product_csv_import');
+ }
+
+ /**
+ * @Route("/%eccube_admin_route%/product/csv_split_cleanup", name="admin_product_csv_split_cleanup")
+ * @param Request $request
+ * @return \Symfony\Component\HttpFoundation\JsonResponse
+ */
+ public function cleanupSplitCsv(Request $request)
+ {
+ $this->isTokenValid();
+
+ if (!$request->isXmlHttpRequest()) {
+ throw new BadRequestHttpException();
+ }
+
+ $files = $request->get('files', []);
+ $choices = $this->getCsvTempFiles();
+
+ foreach ($files as $filename) {
+ if (isset($choices[$filename])) {
+ unlink($choices[$filename]);
+ } else {
+ return $this->json(['success' => false]);
+ }
+ }
+
+ return $this->json(['success' => true]);
+ }
+
+ protected function getCsvTempFiles()
+ {
+ $files = Finder::create()
+ ->in($this->eccubeConfig['eccube_csv_temp_realdir'])
+ ->name('*.csv')
+ ->files();
+
+ $choices = [];
+ foreach ($files as $file) {
+ $choices[$file->getBaseName()] = $file->getRealPath();
+ }
+
+ return $choices;
+ }
+
+ protected function convertLineNo($currentLineNo) {
+ if ($this->isSplitCsv) {
+ return ($this->eccubeConfig['eccube_csv_split_lines']) * ($this->csvFileNo - 1) + $currentLineNo;
+ }
+
+ return $currentLineNo;
+ }
}
diff --git a/src/Eccube/Controller/Admin/Product/ProductController.php b/src/Eccube/Controller/Admin/Product/ProductController.php
index b77dc83f781..f8ae3d3b731 100644
--- a/src/Eccube/Controller/Admin/Product/ProductController.php
+++ b/src/Eccube/Controller/Admin/Product/ProductController.php
@@ -374,6 +374,8 @@ public function edit(Request $request, $id = null, RouterInterface $router, Cach
$ProductStock->setProductClass($ProductClass);
} else {
$Product = $this->productRepository->find($id);
+ $ProductClass = null;
+ $ProductStock = null;
if (!$Product) {
throw new NotFoundHttpException();
}
@@ -513,7 +515,7 @@ public function edit(Request $request, $id = null, RouterInterface $router, Cach
$count++;
/* @var $Product \Eccube\Entity\Product */
$Product->addProductCategory($ProductCategory);
- $categoriesIdList[$ParentCategory->getId()] = true;
+ $categoriesIdList[$Category->getId()] = true;
}
}
@@ -545,10 +547,13 @@ public function edit(Request $request, $id = null, RouterInterface $router, Cach
$this->entityManager->remove($ProductImage);
}
$this->entityManager->persist($Product);
+ $this->entityManager->flush();
- // 削除
- $fs = new Filesystem();
- $fs->remove($this->eccubeConfig['eccube_save_image_dir'].'/'.$delete_image);
+ if (!$this->productImageRepository->findOneBy(['file_name' => $delete_image])) {
+ // 削除
+ $fs = new Filesystem();
+ $fs->remove($this->eccubeConfig['eccube_save_image_dir'] . '/' . $delete_image);
+ }
}
$this->entityManager->persist($Product);
$this->entityManager->flush();
@@ -719,7 +724,11 @@ public function delete(Request $request, $id = null, CacheUtil $cacheUtil)
$deleteImages = $event->getArgument('deleteImages');
// 画像ファイルの削除(commit後に削除させる)
+ /** @var ProductImage $deleteImage */
foreach ($deleteImages as $deleteImage) {
+ if ($this->productImageRepository->findOneBy(['file_name' => $deleteImage->getFileName()])) {
+ continue;
+ }
try {
$fs = new Filesystem();
$fs->remove($this->eccubeConfig['eccube_save_image_dir'].'/'.$deleteImage);
diff --git a/src/Eccube/Controller/Admin/Product/TagController.php b/src/Eccube/Controller/Admin/Product/TagController.php
index 681681c45e2..b3e10d2ce26 100644
--- a/src/Eccube/Controller/Admin/Product/TagController.php
+++ b/src/Eccube/Controller/Admin/Product/TagController.php
@@ -148,7 +148,7 @@ public function delete(Request $request, Tag $Tag)
} catch (\Exception $e) {
log_info('タグ削除エラー', [$Tag->getId(), $e]);
- $message = trans('admin.common.delete_error.foreign_key', ['%name%' => $Tag->getName()]);
+ $message = trans('admin.common.delete_error_foreign_key', ['%name%' => $Tag->getName()]);
$this->addError($message, 'admin');
}
diff --git a/src/Eccube/Controller/Admin/Setting/Shop/MailController.php b/src/Eccube/Controller/Admin/Setting/Shop/MailController.php
index d8fc1731617..efe3ebb5d9c 100644
--- a/src/Eccube/Controller/Admin/Setting/Shop/MailController.php
+++ b/src/Eccube/Controller/Admin/Setting/Shop/MailController.php
@@ -24,9 +24,11 @@
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
use Symfony\Component\Routing\Annotation\Route;
use Twig\Environment;
+
/**
* Class MailController
*/
@@ -177,9 +179,9 @@ public function preview(Request $request)
protected function getHtmlFileName($fileName)
{
// HTMLテンプレートファイルの取得
- $targetTemplate = explode('.', $fileName);
+ $targetTemplate = pathinfo($fileName);
$suffix = '.html';
- return $targetTemplate[0].$suffix.'.'.$targetTemplate[1];
+ return $targetTemplate['dirname'].DIRECTORY_SEPARATOR.$targetTemplate['filename'].$suffix.'.'.$targetTemplate['extension'];
}
}
diff --git a/src/Eccube/Controller/Admin/Setting/Shop/OrderStatusController.php b/src/Eccube/Controller/Admin/Setting/Shop/OrderStatusController.php
new file mode 100644
index 00000000000..fe10bf9b206
--- /dev/null
+++ b/src/Eccube/Controller/Admin/Setting/Shop/OrderStatusController.php
@@ -0,0 +1,103 @@
+orderStatusRepository = $orderStatusRepository;
+ $this->orderStatusColorRepository = $orderStatusColorRepository;
+ $this->customerOrderStatusRepository = $customerOrderStatusRepository;
+ }
+
+ /**
+ * 受注ステータス編集画面.
+ *
+ * @Route("/%eccube_admin_route%/setting/shop/order_status", name="admin_setting_shop_order_status")
+ * @Template("@admin/Setting/Shop/order_status.twig")
+ */
+ public function index(Request $request)
+ {
+ $OrderStatuses = $this->orderStatusRepository->findBy([], ['sort_no' => 'ASC']);
+ $builder = $this->formFactory->createBuilder();
+ $builder
+ ->add(
+ 'OrderStatuses',
+ CollectionType::class,
+ [
+ 'entry_type' => OrderStatusSettingType::class,
+ 'data' => $OrderStatuses,
+ ]
+ );
+ $form = $builder->getForm();
+ $form->handleRequest($request);
+
+ if ($form->isSubmitted() && $form->isValid()) {
+ foreach ($form['OrderStatuses'] as $child) {
+ $OrderStatus = $child->getData();
+ $this->entityManager->persist($OrderStatus);
+
+ $CustomerOrderStatus = $this->customerOrderStatusRepository->find($OrderStatus->getId());
+ if (null !== $CustomerOrderStatus) {
+ $CustomerOrderStatus->setName($child['customer_order_status_name']->getData());
+ $this->entityManager->persist($CustomerOrderStatus);
+ }
+
+ $OrderStatusColor = $this->orderStatusColorRepository->find($OrderStatus->getId());
+ if (null !== $OrderStatusColor) {
+ $OrderStatusColor->setName($child['color']->getData());
+ $this->entityManager->persist($OrderStatusColor);
+ }
+ }
+ $this->entityManager->flush();
+
+ $this->addSuccess('admin.common.save_complete', 'admin');
+
+ return $this->redirectToRoute('admin_setting_shop_order_status');
+ }
+
+ return [
+ 'form' => $form->createView(),
+ ];
+ }
+}
diff --git a/src/Eccube/Controller/Admin/Setting/System/LogController.php b/src/Eccube/Controller/Admin/Setting/System/LogController.php
index 885f25f80b8..b20c5c6d923 100644
--- a/src/Eccube/Controller/Admin/Setting/System/LogController.php
+++ b/src/Eccube/Controller/Admin/Setting/System/LogController.php
@@ -20,6 +20,7 @@
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\StreamedResponse;
class LogController extends AbstractController
{
@@ -27,7 +28,7 @@ class LogController extends AbstractController
* @Route("/%eccube_admin_route%/setting/system/log", name="admin_setting_system_log")
* @Template("@admin/Setting/System/log.twig")
*
- * @return array
+ * @return array|Symfony\Component\HttpFoundation\StreamedResponse
*/
public function index(Request $request)
{
@@ -67,10 +68,27 @@ public function index(Request $request)
$logDir = $this->getParameter('kernel.logs_dir').DIRECTORY_SEPARATOR.$this->getParameter('kernel.environment');
$logFile = $logDir.'/'.$formData['files'];
- return [
- 'form' => $form->createView(),
- 'log' => $this->parseLogFile($logFile, $formData),
- ];
+ if ($form->getClickedButton() && $form->getClickedButton()->getName() === 'download') {
+ $bufferSize = 1024 * 50;
+ $response = new StreamedResponse();
+ $response->headers->set('Content-Length',filesize($logFile));
+ $response->headers->set('Content-Disposition','attachment; filename=' . basename($logFile));
+ $response->headers->set('Content-Type','application/octet-stream');
+ $response->setCallback(function() use($logFile,$bufferSize) {
+ if ($fh = fopen($logFile,'r')) {
+ while (!feof($fh)) {
+ echo fread($fh,$bufferSize);
+ }
+ }
+ });
+ $response->send();
+ return $response;
+ } else {
+ return [
+ 'form' => $form->createView(),
+ 'log' => $this->parseLogFile($logFile, $formData),
+ ];
+ }
}
/**
diff --git a/src/Eccube/Controller/ContactController.php b/src/Eccube/Controller/ContactController.php
index 065e41b107a..48ea762ae2c 100644
--- a/src/Eccube/Controller/ContactController.php
+++ b/src/Eccube/Controller/ContactController.php
@@ -17,6 +17,7 @@
use Eccube\Event\EccubeEvents;
use Eccube\Event\EventArgs;
use Eccube\Form\Type\Front\ContactType;
+use Eccube\Repository\PageRepository;
use Eccube\Service\MailService;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;
@@ -29,21 +30,30 @@ class ContactController extends AbstractController
*/
protected $mailService;
+ /**
+ * @var PageRepository
+ */
+ private $pageRepository;
+
/**
* ContactController constructor.
*
* @param MailService $mailService
+ * @param PageRepository $pageRepository
*/
public function __construct(
- MailService $mailService)
+ MailService $mailService,
+ PageRepository $pageRepository)
{
$this->mailService = $mailService;
+ $this->pageRepository = $pageRepository;
}
/**
* お問い合わせ画面.
*
* @Route("/contact", name="contact")
+ * @Route("/contact", name="contact_confirm")
* @Template("Contact/index.twig")
*/
public function index(Request $request)
@@ -84,11 +94,9 @@ public function index(Request $request)
if ($form->isSubmitted() && $form->isValid()) {
switch ($request->get('mode')) {
case 'confirm':
- $form = $builder->getForm();
- $form->handleRequest($request);
-
return $this->render('Contact/confirm.twig', [
'form' => $form->createView(),
+ 'Page' => $this->pageRepository->getPageByRoute('contact_confirm')
]);
case 'complete':
diff --git a/src/Eccube/Controller/EntryController.php b/src/Eccube/Controller/EntryController.php
index cc068746b2c..4cc7b80ae4c 100644
--- a/src/Eccube/Controller/EntryController.php
+++ b/src/Eccube/Controller/EntryController.php
@@ -21,6 +21,7 @@
use Eccube\Repository\BaseInfoRepository;
use Eccube\Repository\CustomerRepository;
use Eccube\Repository\Master\CustomerStatusRepository;
+use Eccube\Repository\PageRepository;
use Eccube\Service\MailService;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;
@@ -76,6 +77,11 @@ class EntryController extends AbstractController
*/
protected $cartService;
+ /**
+ * @var PageRepository
+ */
+ protected $pageRepository;
+
/**
* EntryController constructor.
*
@@ -96,7 +102,8 @@ public function __construct(
CustomerRepository $customerRepository,
EncoderFactoryInterface $encoderFactory,
ValidatorInterface $validatorInterface,
- TokenStorageInterface $tokenStorage
+ TokenStorageInterface $tokenStorage,
+ PageRepository $pageRepository
) {
$this->customerStatusRepository = $customerStatusRepository;
$this->mailService = $mailService;
@@ -106,12 +113,14 @@ public function __construct(
$this->recursiveValidator = $validatorInterface;
$this->tokenStorage = $tokenStorage;
$this->cartService = $cartService;
+ $this->pageRepository = $pageRepository;
}
/**
* 会員登録画面.
*
* @Route("/entry", name="entry")
+ * @Route("/entry", name="entry_confirm")
* @Template("Entry/index.twig")
*/
public function index(Request $request)
@@ -152,6 +161,7 @@ public function index(Request $request)
'Entry/confirm.twig',
[
'form' => $form->createView(),
+ 'Page' => $this->pageRepository->getPageByRoute('entry_confirm')
]
);
diff --git a/src/Eccube/Controller/Mypage/DeliveryController.php b/src/Eccube/Controller/Mypage/DeliveryController.php
index f3ecbc1ed05..af8dd653a6f 100644
--- a/src/Eccube/Controller/Mypage/DeliveryController.php
+++ b/src/Eccube/Controller/Mypage/DeliveryController.php
@@ -141,8 +141,6 @@ public function edit(Request $request, $id = null)
);
$this->eventDispatcher->dispatch(EccubeEvents::FRONT_MYPAGE_DELIVERY_EDIT_COMPLETE, $event);
- $this->addSuccess('mypage.delivery.add.complete');
-
return $this->redirect($this->generateUrl('mypage_delivery'));
}
@@ -180,8 +178,6 @@ public function delete(Request $request, CustomerAddress $CustomerAddress)
);
$this->eventDispatcher->dispatch(EccubeEvents::FRONT_MYPAGE_DELIVERY_DELETE_COMPLETE, $event);
- $this->addSuccess('mypage.address.delete.complete');
-
log_info('お届け先削除完了', [$CustomerAddress->getId()]);
return $this->redirect($this->generateUrl('mypage_delivery'));
diff --git a/src/Eccube/Controller/Mypage/WithdrawController.php b/src/Eccube/Controller/Mypage/WithdrawController.php
index 796a0b943e9..8afca2a8d41 100644
--- a/src/Eccube/Controller/Mypage/WithdrawController.php
+++ b/src/Eccube/Controller/Mypage/WithdrawController.php
@@ -18,6 +18,7 @@
use Eccube\Event\EccubeEvents;
use Eccube\Event\EventArgs;
use Eccube\Repository\Master\CustomerStatusRepository;
+use Eccube\Repository\PageRepository;
use Eccube\Service\CartService;
use Eccube\Service\MailService;
use Eccube\Service\OrderHelper;
@@ -55,6 +56,11 @@ class WithdrawController extends AbstractController
*/
private $orderHelper;
+ /**
+ * @var PageRepository
+ */
+ private $pageRepository;
+
/**
* WithdrawController constructor.
*
@@ -63,25 +69,29 @@ class WithdrawController extends AbstractController
* @param TokenStorageInterface $tokenStorage
* @param CartService $cartService
* @param OrderHelper $orderHelper
+ * @param PageRepository $pageRepository
*/
public function __construct(
MailService $mailService,
CustomerStatusRepository $customerStatusRepository,
TokenStorageInterface $tokenStorage,
CartService $cartService,
- OrderHelper $orderHelper
+ OrderHelper $orderHelper,
+ PageRepository $pageRepository
) {
$this->mailService = $mailService;
$this->customerStatusRepository = $customerStatusRepository;
$this->tokenStorage = $tokenStorage;
$this->cartService = $cartService;
$this->orderHelper = $orderHelper;
+ $this->pageRepository = $pageRepository;
}
/**
* 退会画面.
*
* @Route("/mypage/withdraw", name="mypage_withdraw")
+ * @Route("/mypage/withdraw", name="mypage_withdraw_confirm")
* @Template("Mypage/withdraw.twig")
*/
public function index(Request $request)
@@ -109,6 +119,7 @@ public function index(Request $request)
'Mypage/withdraw_confirm.twig',
[
'form' => $form->createView(),
+ 'Page' => $this->pageRepository->getPageByRoute('mypage_withdraw_confirm')
]
);
diff --git a/src/Eccube/Controller/ShippingMultipleController.php b/src/Eccube/Controller/ShippingMultipleController.php
index d0a2c63ebd2..696c88a307b 100644
--- a/src/Eccube/Controller/ShippingMultipleController.php
+++ b/src/Eccube/Controller/ShippingMultipleController.php
@@ -343,8 +343,11 @@ public function index(Request $request)
}
}
- $this->cartPurchaseFlow->validate($Cart, new PurchaseContext());
- $this->cartService->save();
+ $this->cartPurchaseFlow->validate($Cart, new PurchaseContext($Cart, $this->getUser()));
+
+ // 注文フローで取得されるカートの入れ替わりを防止する
+ // @see https://github.com/EC-CUBE/ec-cube/issues/4293
+ $this->cartService->setPrimary($Cart->getCartKey());
}
return $this->redirectToRoute('shopping');
diff --git a/src/Eccube/Controller/ShoppingController.php b/src/Eccube/Controller/ShoppingController.php
index 2f841a003e4..743b60284f3 100644
--- a/src/Eccube/Controller/ShoppingController.php
+++ b/src/Eccube/Controller/ShoppingController.php
@@ -124,8 +124,11 @@ public function index(PurchaseFlow $cartPurchaseFlow)
log_info('[注文手続] Warningが発生しました.', [$flowResult->getWarning()]);
// 受注明細と同期をとるため, CartPurchaseFlowを実行する
- $cartPurchaseFlow->validate($Cart, new PurchaseContext());
- $this->cartService->save();
+ $cartPurchaseFlow->validate($Cart, new PurchaseContext($Cart, $this->getUser()));
+
+ // 注文フローで取得されるカートの入れ替わりを防止する
+ // @see https://github.com/EC-CUBE/ec-cube/issues/4293
+ $this->cartService->setPrimary($Cart->getCartKey());
}
// マイページで会員情報が更新されていれば, Orderの注文者情報も更新する.
@@ -685,7 +688,7 @@ public function error(Request $request, PurchaseFlow $cartPurchaseFlow)
// 受注とカートのずれを合わせるため, カートのPurchaseFlowをコールする.
$Cart = $this->cartService->getCart();
if (null !== $Cart) {
- $cartPurchaseFlow->validate($Cart, new PurchaseContext());
+ $cartPurchaseFlow->validate($Cart, new PurchaseContext($Cart, $this->getUser()));
$this->cartService->setPreOrderId(null);
$this->cartService->save();
}
diff --git a/src/Eccube/DataCollector/EccubeDataCollector.php b/src/Eccube/DataCollector/EccubeDataCollector.php
index 515a25beff5..e838fdd6b8e 100644
--- a/src/Eccube/DataCollector/EccubeDataCollector.php
+++ b/src/Eccube/DataCollector/EccubeDataCollector.php
@@ -113,7 +113,7 @@ public function collect(Request $request, Response $response, \Exception $except
try {
$this->data['locale_code'] = $this->container->getParameter('locale');
- } catch (LocaleNotFoundException $exception) {
+ } catch (\Exception $exception) {
}
try {
diff --git a/src/Eccube/Doctrine/ORM/Mapping/Driver/NopAnnotationDriver.php b/src/Eccube/Doctrine/ORM/Mapping/Driver/NopAnnotationDriver.php
new file mode 100644
index 00000000000..d9bf5256c21
--- /dev/null
+++ b/src/Eccube/Doctrine/ORM/Mapping/Driver/NopAnnotationDriver.php
@@ -0,0 +1,22 @@
+ $y]);
- }
+ if (is_array($y)) {
+ return new WhereClause($expr, $y);
+ } else {
+ return new WhereClause($expr, [$x => $y]);
}
-
- return new WhereClause($expr);
}
/**
diff --git a/src/Eccube/Entity/Master/AbstractMasterEntity.php b/src/Eccube/Entity/Master/AbstractMasterEntity.php
index 98fda82635f..303a543a5b7 100644
--- a/src/Eccube/Entity/Master/AbstractMasterEntity.php
+++ b/src/Eccube/Entity/Master/AbstractMasterEntity.php
@@ -146,8 +146,7 @@ protected static function getConstantValue($name)
throw new \InvalidArgumentException();
}
// see also. http://qiita.com/Hiraku/items/71e385b56dcaa37629fe
- $class = get_class(new static());
- $ref = new \ReflectionClass($class);
+ $ref = new \ReflectionClass(static::class);
// クラス定数が存在していれば, クラス定数から値を取得する
$constants = $ref->getConstants();
if (array_key_exists($name, $constants)) {
@@ -157,6 +156,6 @@ protected static function getConstantValue($name)
$refProperty = $ref->getProperty($name);
$refProperty->setAccessible(true);
- return $refProperty->getValue(new $class());
+ return $refProperty->getValue($ref->newInstance());
}
}
diff --git a/src/Eccube/Entity/Master/Authority.php b/src/Eccube/Entity/Master/Authority.php
index 5d797886130..93f9b08b04b 100644
--- a/src/Eccube/Entity/Master/Authority.php
+++ b/src/Eccube/Entity/Master/Authority.php
@@ -15,25 +15,27 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * Authority
- *
- * @ORM\Table(name="mtb_authority")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\AuthorityRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class Authority extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(Authority::class, false)) {
/**
- * システム管理者
+ * Authority
+ *
+ * @ORM\Table(name="mtb_authority")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\AuthorityRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
*/
- const ADMIN = 0;
+ class Authority extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ /**
+ * システム管理者
+ */
+ const ADMIN = 0;
- /**
- * 店舗オーナー
- */
- const OWNER = 1;
-}
+ /**
+ * 店舗オーナー
+ */
+ const OWNER = 1;
+ }
+}
\ No newline at end of file
diff --git a/src/Eccube/Entity/Master/Country.php b/src/Eccube/Entity/Master/Country.php
index 07586e9194f..a27a7046ebd 100644
--- a/src/Eccube/Entity/Master/Country.php
+++ b/src/Eccube/Entity/Master/Country.php
@@ -15,16 +15,18 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * Country
- *
- * @ORM\Table(name="mtb_country")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CountryRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class Country extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(Country::class, false)) {
+ /**
+ * Country
+ *
+ * @ORM\Table(name="mtb_country")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CountryRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
+ */
+ class Country extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ }
}
diff --git a/src/Eccube/Entity/Master/CsvType.php b/src/Eccube/Entity/Master/CsvType.php
index 63f0d71c389..07123a77f79 100644
--- a/src/Eccube/Entity/Master/CsvType.php
+++ b/src/Eccube/Entity/Master/CsvType.php
@@ -15,40 +15,42 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * CsvType
- *
- * @ORM\Table(name="mtb_csv_type")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CsvTypeRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class CsvType extends \Eccube\Entity\Master\AbstractMasterEntity
-{
- /**
- * @var integer
- */
- const CSV_TYPE_PRODUCT = 1;
-
- /**
- * @var integer
- */
- const CSV_TYPE_CUSTOMER = 2;
-
- /**
- * @var integer
- */
- const CSV_TYPE_ORDER = 3;
-
- /**
- * @var integer
- */
- const CSV_TYPE_SHIPPING = 4;
-
+if (!class_exists(CsvType::class, false)) {
/**
- * @var integer
+ * CsvType
+ *
+ * @ORM\Table(name="mtb_csv_type")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CsvTypeRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
*/
- const CSV_TYPE_CATEGORY = 5;
+ class CsvType extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ /**
+ * @var integer
+ */
+ const CSV_TYPE_PRODUCT = 1;
+
+ /**
+ * @var integer
+ */
+ const CSV_TYPE_CUSTOMER = 2;
+
+ /**
+ * @var integer
+ */
+ const CSV_TYPE_ORDER = 3;
+
+ /**
+ * @var integer
+ */
+ const CSV_TYPE_SHIPPING = 4;
+
+ /**
+ * @var integer
+ */
+ const CSV_TYPE_CATEGORY = 5;
+ }
}
diff --git a/src/Eccube/Entity/Master/CustomerOrderStatus.php b/src/Eccube/Entity/Master/CustomerOrderStatus.php
index b3a0403138a..1772aa8883f 100644
--- a/src/Eccube/Entity/Master/CustomerOrderStatus.php
+++ b/src/Eccube/Entity/Master/CustomerOrderStatus.php
@@ -15,16 +15,18 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * CustomerOrderStatus
- *
- * @ORM\Table(name="mtb_customer_order_status")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CustomerOrderStatusRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class CustomerOrderStatus extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(CustomerOrderStatus::class, false)) {
+ /**
+ * CustomerOrderStatus
+ *
+ * @ORM\Table(name="mtb_customer_order_status")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CustomerOrderStatusRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
+ */
+ class CustomerOrderStatus extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ }
}
diff --git a/src/Eccube/Entity/Master/CustomerStatus.php b/src/Eccube/Entity/Master/CustomerStatus.php
index ca32ee51d2e..4455381b6d4 100644
--- a/src/Eccube/Entity/Master/CustomerStatus.php
+++ b/src/Eccube/Entity/Master/CustomerStatus.php
@@ -15,44 +15,46 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * CustomerStatus
- *
- * @ORM\Table(name="mtb_customer_status")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CustomerStatusRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class CustomerStatus extends \Eccube\Entity\Master\AbstractMasterEntity
-{
- /**
- * 仮会員.
- *
- * @deprecated
- */
- const NONACTIVE = 1;
-
+if (!class_exists(CustomerStatus::class, false)) {
/**
- * 本会員.
+ * CustomerStatus
*
- * @deprecated
- */
- const ACTIVE = 2;
-
- /**
- * 仮会員.
- */
- const PROVISIONAL = 1;
-
- /**
- * 本会員
- */
- const REGULAR = 2;
-
- /**
- * 退会
+ * @ORM\Table(name="mtb_customer_status")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CustomerStatusRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
*/
- const WITHDRAWING = 3;
-}
+ class CustomerStatus extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ /**
+ * 仮会員.
+ *
+ * @deprecated
+ */
+ const NONACTIVE = 1;
+
+ /**
+ * 本会員.
+ *
+ * @deprecated
+ */
+ const ACTIVE = 2;
+
+ /**
+ * 仮会員.
+ */
+ const PROVISIONAL = 1;
+
+ /**
+ * 本会員
+ */
+ const REGULAR = 2;
+
+ /**
+ * 退会
+ */
+ const WITHDRAWING = 3;
+ }
+}
\ No newline at end of file
diff --git a/src/Eccube/Entity/Master/DeviceType.php b/src/Eccube/Entity/Master/DeviceType.php
index 8a4f2c38127..f4b7d8b4d91 100644
--- a/src/Eccube/Entity/Master/DeviceType.php
+++ b/src/Eccube/Entity/Master/DeviceType.php
@@ -15,19 +15,21 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * DeviceType
- *
- * @ORM\Table(name="mtb_device_type")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\DeviceTypeRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class DeviceType extends \Eccube\Entity\Master\AbstractMasterEntity
-{
- const DEVICE_TYPE_MB = 2;
- // const DEVICE_TYPE_TABLET = 3;
- const DEVICE_TYPE_PC = 10;
+if (!class_exists(DeviceType::class, false)) {
+ /**
+ * DeviceType
+ *
+ * @ORM\Table(name="mtb_device_type")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\DeviceTypeRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
+ */
+ class DeviceType extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ const DEVICE_TYPE_MB = 2;
+ // const DEVICE_TYPE_TABLET = 3;
+ const DEVICE_TYPE_PC = 10;
+ }
}
diff --git a/src/Eccube/Entity/Master/Job.php b/src/Eccube/Entity/Master/Job.php
index f537f5018fd..b786ff1422f 100644
--- a/src/Eccube/Entity/Master/Job.php
+++ b/src/Eccube/Entity/Master/Job.php
@@ -15,16 +15,18 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * Job
- *
- * @ORM\Table(name="mtb_job")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\JobRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class Job extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(Job::class, false)) {
+ /**
+ * Job
+ *
+ * @ORM\Table(name="mtb_job")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\JobRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
+ */
+ class Job extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ }
}
diff --git a/src/Eccube/Entity/Master/OrderItemType.php b/src/Eccube/Entity/Master/OrderItemType.php
index d8b6e3ed5e6..1857bc6adae 100644
--- a/src/Eccube/Entity/Master/OrderItemType.php
+++ b/src/Eccube/Entity/Master/OrderItemType.php
@@ -15,73 +15,75 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * OrderItemType
- *
- * 受注明細種別
- *
- * @ORM\Table(name="mtb_order_item_type")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\OrderItemTypeRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class OrderItemType extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(OrderItemType::class, false)) {
/**
- * 商品.
+ * OrderItemType
*
- * @var integer
- */
- const PRODUCT = 1;
-
- /**
- * 送料.
+ * 受注明細種別
*
- * @var integer
+ * @ORM\Table(name="mtb_order_item_type")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\OrderItemTypeRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
*/
- const DELIVERY_FEE = 2;
+ class OrderItemType extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ /**
+ * 商品.
+ *
+ * @var integer
+ */
+ const PRODUCT = 1;
- /**
- * 手数料.
- *
- * @var integer
- */
- const CHARGE = 3;
+ /**
+ * 送料.
+ *
+ * @var integer
+ */
+ const DELIVERY_FEE = 2;
- /**
- * 値引き.
- *
- * @var integer
- */
- const DISCOUNT = 4;
+ /**
+ * 手数料.
+ *
+ * @var integer
+ */
+ const CHARGE = 3;
- /**
- * 税.
- *
- * @var integer
- */
- const TAX = 5;
+ /**
+ * 値引き.
+ *
+ * @var integer
+ */
+ const DISCOUNT = 4;
- /**
- * ポイント.
- *
- * @var integer
- */
- const POINT = 6;
+ /**
+ * 税.
+ *
+ * @var integer
+ */
+ const TAX = 5;
- /**
- * 商品かどうか
- *
- * @return bool
- */
- public function isProduct()
- {
- if ($this->id == self::PRODUCT) {
- return true;
- }
+ /**
+ * ポイント.
+ *
+ * @var integer
+ */
+ const POINT = 6;
+
+ /**
+ * 商品かどうか
+ *
+ * @return bool
+ */
+ public function isProduct()
+ {
+ if ($this->id == self::PRODUCT) {
+ return true;
+ }
- return false;
+ return false;
+ }
}
}
diff --git a/src/Eccube/Entity/Master/OrderStatus.php b/src/Eccube/Entity/Master/OrderStatus.php
index 93b7cdeace2..51a58382c3e 100644
--- a/src/Eccube/Entity/Master/OrderStatus.php
+++ b/src/Eccube/Entity/Master/OrderStatus.php
@@ -15,57 +15,59 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * OrderStatus
- *
- * @ORM\Table(name="mtb_order_status")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\OrderStatusRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class OrderStatus extends \Eccube\Entity\Master\AbstractMasterEntity
-{
- /** 新規受付. */
- const NEW = 1;
- /** 注文取消し. */
- const CANCEL = 3;
- /** 対応中. */
- const IN_PROGRESS = 4;
- /** 発送済み. */
- const DELIVERED = 5;
- /** 入金済み. */
- const PAID = 6;
- /** 決済処理中. */
- const PENDING = 7;
- /** 購入処理中. */
- const PROCESSING = 8;
- /** 返品 */
- const RETURNED = 9;
-
+if (!class_exists(OrderStatus::class, false)) {
/**
- * 受注一覧画面で, ステータスごとの受注件数を表示するかどうか
- *
- * @var bool
+ * OrderStatus
*
- * @ORM\Column(name="display_order_count", type="boolean", options={"default":false})
- */
- private $display_order_count = false;
-
- /**
- * @return bool
+ * @ORM\Table(name="mtb_order_status")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\OrderStatusRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
*/
- public function isDisplayOrderCount()
+ class OrderStatus extends \Eccube\Entity\Master\AbstractMasterEntity
{
- return $this->display_order_count;
- }
+ /** 新規受付. */
+ const NEW = 1;
+ /** 注文取消し. */
+ const CANCEL = 3;
+ /** 対応中. */
+ const IN_PROGRESS = 4;
+ /** 発送済み. */
+ const DELIVERED = 5;
+ /** 入金済み. */
+ const PAID = 6;
+ /** 決済処理中. */
+ const PENDING = 7;
+ /** 購入処理中. */
+ const PROCESSING = 8;
+ /** 返品 */
+ const RETURNED = 9;
- /**
- * @param bool $display_order_count
- */
- public function setDisplayOrderCount($display_order_count = false)
- {
- $this->display_order_count = $display_order_count;
+ /**
+ * 受注一覧画面で, ステータスごとの受注件数を表示するかどうか
+ *
+ * @var bool
+ *
+ * @ORM\Column(name="display_order_count", type="boolean", options={"default":false})
+ */
+ private $display_order_count = false;
+
+ /**
+ * @return bool
+ */
+ public function isDisplayOrderCount()
+ {
+ return $this->display_order_count;
+ }
+
+ /**
+ * @param bool $display_order_count
+ */
+ public function setDisplayOrderCount($display_order_count = false)
+ {
+ $this->display_order_count = $display_order_count;
+ }
}
}
diff --git a/src/Eccube/Entity/Master/OrderStatusColor.php b/src/Eccube/Entity/Master/OrderStatusColor.php
index a37c30afe2a..a6a97b64506 100644
--- a/src/Eccube/Entity/Master/OrderStatusColor.php
+++ b/src/Eccube/Entity/Master/OrderStatusColor.php
@@ -15,16 +15,18 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * OrderStatusColor
- *
- * @ORM\Table(name="mtb_order_status_color")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\OrderStatusColorRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class OrderStatusColor extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(OrderStatusColor::class, false)) {
+ /**
+ * OrderStatusColor
+ *
+ * @ORM\Table(name="mtb_order_status_color")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\OrderStatusColorRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
+ */
+ class OrderStatusColor extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ }
}
diff --git a/src/Eccube/Entity/Master/PageMax.php b/src/Eccube/Entity/Master/PageMax.php
index 428ad3b085e..c937dce8f99 100644
--- a/src/Eccube/Entity/Master/PageMax.php
+++ b/src/Eccube/Entity/Master/PageMax.php
@@ -15,16 +15,18 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * PageMax
- *
- * @ORM\Table(name="mtb_page_max")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\PageMaxRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class PageMax extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(PageMax::class, false)) {
+ /**
+ * PageMax
+ *
+ * @ORM\Table(name="mtb_page_max")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\PageMaxRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
+ */
+ class PageMax extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ }
}
diff --git a/src/Eccube/Entity/Master/Pref.php b/src/Eccube/Entity/Master/Pref.php
index 00969ca4164..7d4f879cb60 100644
--- a/src/Eccube/Entity/Master/Pref.php
+++ b/src/Eccube/Entity/Master/Pref.php
@@ -15,16 +15,18 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * Pref
- *
- * @ORM\Table(name="mtb_pref")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\PrefRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class Pref extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(Pref::class, false)) {
+ /**
+ * Pref
+ *
+ * @ORM\Table(name="mtb_pref")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\PrefRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
+ */
+ class Pref extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ }
}
diff --git a/src/Eccube/Entity/Master/ProductListMax.php b/src/Eccube/Entity/Master/ProductListMax.php
index be6525ca419..9144415aef1 100644
--- a/src/Eccube/Entity/Master/ProductListMax.php
+++ b/src/Eccube/Entity/Master/ProductListMax.php
@@ -15,16 +15,18 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * ProductListMax
- *
- * @ORM\Table(name="mtb_product_list_max")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\ProductListMaxRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class ProductListMax extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(ProductListMax::class, false)) {
+ /**
+ * ProductListMax
+ *
+ * @ORM\Table(name="mtb_product_list_max")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\ProductListMaxRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
+ */
+ class ProductListMax extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ }
}
diff --git a/src/Eccube/Entity/Master/ProductListOrderBy.php b/src/Eccube/Entity/Master/ProductListOrderBy.php
index 6b91d7f5eec..fa8b58db382 100644
--- a/src/Eccube/Entity/Master/ProductListOrderBy.php
+++ b/src/Eccube/Entity/Master/ProductListOrderBy.php
@@ -15,16 +15,18 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * ProductListOrderBy
- *
- * @ORM\Table(name="mtb_product_list_order_by")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\ProductListOrderByRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class ProductListOrderBy extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(ProductListOrderBy::class, false)) {
+ /**
+ * ProductListOrderBy
+ *
+ * @ORM\Table(name="mtb_product_list_order_by")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\ProductListOrderByRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
+ */
+ class ProductListOrderBy extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ }
}
diff --git a/src/Eccube/Entity/Master/ProductStatus.php b/src/Eccube/Entity/Master/ProductStatus.php
index cacd8b50c93..a61eb2c2fd2 100644
--- a/src/Eccube/Entity/Master/ProductStatus.php
+++ b/src/Eccube/Entity/Master/ProductStatus.php
@@ -15,49 +15,51 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * ProductStatus
- *
- * 商品の公開ステータス
- *
- * @ORM\Table(name="mtb_product_status")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\ProductStatusRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class ProductStatus extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(ProductStatus::class, false)) {
/**
- * 公開
+ * ProductStatus
*
- * フロント画面: 表示されます。
- * 管理画面商品一覧: デフォルトで検索対象となります。
+ * 商品の公開ステータス
*
- * @var integer
+ * @ORM\Table(name="mtb_product_status")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\ProductStatusRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
*/
- const DISPLAY_SHOW = 1;
+ class ProductStatus extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ /**
+ * 公開
+ *
+ * フロント画面: 表示されます。
+ * 管理画面商品一覧: デフォルトで検索対象となります。
+ *
+ * @var integer
+ */
+ const DISPLAY_SHOW = 1;
- /**
- * 非公開
- *
- * フロント画面: 表示されません。
- * 管理画面商品一覧: デフォルトで検索対象となります。
- *
- * @var integer
- */
- const DISPLAY_HIDE = 2;
+ /**
+ * 非公開
+ *
+ * フロント画面: 表示されません。
+ * 管理画面商品一覧: デフォルトで検索対象となります。
+ *
+ * @var integer
+ */
+ const DISPLAY_HIDE = 2;
- /**
- * 廃止
- *
- * 通常、商品情報は受注情報などに紐づいているため、商品情報を物理削除することはできません。
- * 廃止のステータスは2系や3系での論理削除に近い役割となります。
- * フロント画面: 表示されません。
- * 管理画面商品一覧: デフォルトで検索対象外となり、廃止の公開ステータスを指定して検索可能です。
- *
- * @var integer
- */
- const DISPLAY_ABOLISHED = 3;
+ /**
+ * 廃止
+ *
+ * 通常、商品情報は受注情報などに紐づいているため、商品情報を物理削除することはできません。
+ * 廃止のステータスは2系や3系での論理削除に近い役割となります。
+ * フロント画面: 表示されません。
+ * 管理画面商品一覧: デフォルトで検索対象外となり、廃止の公開ステータスを指定して検索可能です。
+ *
+ * @var integer
+ */
+ const DISPLAY_ABOLISHED = 3;
+ }
}
diff --git a/src/Eccube/Entity/Master/RoundingType.php b/src/Eccube/Entity/Master/RoundingType.php
index 4b9acfe295c..a02f1b2663a 100644
--- a/src/Eccube/Entity/Master/RoundingType.php
+++ b/src/Eccube/Entity/Master/RoundingType.php
@@ -15,34 +15,36 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * RoundingType
- *
- * @ORM\Table(name="mtb_rounding_type")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\RoundingTypeRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class RoundingType extends \Eccube\Entity\Master\AbstractMasterEntity
-{
- /**
- * 四捨五入.
- *
- * @var integer
- */
- const ROUND = 1;
- /**
- * 切り捨て.
- *
- * @var integer
- */
- const FLOOR = 2;
+if (!class_exists(RoundingType::class, false)) {
/**
- * 切り上げ.
+ * RoundingType
*
- * @var integer
+ * @ORM\Table(name="mtb_rounding_type")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\RoundingTypeRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
*/
- const CEIL = 3;
+ class RoundingType extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ /**
+ * 四捨五入.
+ *
+ * @var integer
+ */
+ const ROUND = 1;
+ /**
+ * 切り捨て.
+ *
+ * @var integer
+ */
+ const FLOOR = 2;
+ /**
+ * 切り上げ.
+ *
+ * @var integer
+ */
+ const CEIL = 3;
+ }
}
diff --git a/src/Eccube/Entity/Master/SaleType.php b/src/Eccube/Entity/Master/SaleType.php
index 8104fce9196..a88a6a0e0ef 100644
--- a/src/Eccube/Entity/Master/SaleType.php
+++ b/src/Eccube/Entity/Master/SaleType.php
@@ -15,20 +15,22 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * SaleType
- *
- * @ORM\Table(name="mtb_sale_type")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\SaleTypeRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class SaleType extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(SaleType::class, false)) {
/**
- * @var integer
+ * SaleType
+ *
+ * @ORM\Table(name="mtb_sale_type")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\SaleTypeRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
*/
- const SALE_TYPE_NORMAL = 1;
+ class SaleType extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ /**
+ * @var integer
+ */
+ const SALE_TYPE_NORMAL = 1;
+ }
}
diff --git a/src/Eccube/Entity/Master/Sex.php b/src/Eccube/Entity/Master/Sex.php
index 255f9739cea..f10fa286ca8 100644
--- a/src/Eccube/Entity/Master/Sex.php
+++ b/src/Eccube/Entity/Master/Sex.php
@@ -15,16 +15,18 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * Sex
- *
- * @ORM\Table(name="mtb_sex")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\SexRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class Sex extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(Sex::class, false)) {
+ /**
+ * Sex
+ *
+ * @ORM\Table(name="mtb_sex")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\SexRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
+ */
+ class Sex extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ }
}
diff --git a/src/Eccube/Entity/Master/TaxDisplayType.php b/src/Eccube/Entity/Master/TaxDisplayType.php
index 4a8acc98402..04b9260a794 100644
--- a/src/Eccube/Entity/Master/TaxDisplayType.php
+++ b/src/Eccube/Entity/Master/TaxDisplayType.php
@@ -15,31 +15,33 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * TaxDisplayType
- *
- * 税抜表示 / 税込表示
- *
- * @ORM\Table(name="mtb_tax_display_type")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\TaxDisplayTypeRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class TaxDisplayType extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(TaxDisplayType::class, false)) {
/**
- * 税抜.
+ * TaxDisplayType
*
- * @var integer
- */
- const EXCLUDED = 1;
-
- /**
- * 税込.
+ * 税抜表示 / 税込表示
*
- * @var integer
+ * @ORM\Table(name="mtb_tax_display_type")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\TaxDisplayTypeRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
*/
- const INCLUDED = 2;
+ class TaxDisplayType extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ /**
+ * 税抜.
+ *
+ * @var integer
+ */
+ const EXCLUDED = 1;
+
+ /**
+ * 税込.
+ *
+ * @var integer
+ */
+ const INCLUDED = 2;
+ }
}
diff --git a/src/Eccube/Entity/Master/TaxType.php b/src/Eccube/Entity/Master/TaxType.php
index 65643c613a8..d481f74da28 100644
--- a/src/Eccube/Entity/Master/TaxType.php
+++ b/src/Eccube/Entity/Master/TaxType.php
@@ -15,50 +15,52 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * TaxType
- *
- * 消費税の課税区分
- *
- * @ORM\Table(name="mtb_tax_type")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\TaxTypeRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- *
- * @see https://www.nta.go.jp/taxanswer/shohi/6209.htm
- */
-class TaxType extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(TaxType::class, false)) {
/**
- * 課税.
+ * TaxType
*
- * 消費税は、国内において事業者が事業として対価を得て行う取引を課税の対象としています。
+ * 消費税の課税区分
*
- * @var integer
- */
- const TAXATION = 1;
-
- /**
- * 不課税.
+ * @ORM\Table(name="mtb_tax_type")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\TaxTypeRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
*
- * 消費税の課税の対象は、国内において事業者が事業として対価を得て行う資産の譲渡等と輸入取引です。
- * これに当たらない取引には消費税はかかりません。
- * 例えば、国外取引、対価を得て行うことに当たらない寄附や単なる贈与、出資に対する配当などがこれに当たります。
- *
- * @var integer
+ * @see https://www.nta.go.jp/taxanswer/shohi/6209.htm
*/
- const NON_TAXABLE = 2;
+ class TaxType extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ /**
+ * 課税.
+ *
+ * 消費税は、国内において事業者が事業として対価を得て行う取引を課税の対象としています。
+ *
+ * @var integer
+ */
+ const TAXATION = 1;
- /**
- * 非課税.
- *
- * 国内において事業者が事業として対価を得て行う資産の譲渡等であっても、課税対象になじまないものや社会政策的配慮から消費税を課税しない取引があります。
- * これを非課税取引といいます。
- * 例えば、土地、有価証券、商品券などの譲渡、預貯金の利子や社会保険医療などがこれに当たります。
- *
- * @var integer
- */
- const TAX_EXEMPT = 3;
+ /**
+ * 不課税.
+ *
+ * 消費税の課税の対象は、国内において事業者が事業として対価を得て行う資産の譲渡等と輸入取引です。
+ * これに当たらない取引には消費税はかかりません。
+ * 例えば、国外取引、対価を得て行うことに当たらない寄附や単なる贈与、出資に対する配当などがこれに当たります。
+ *
+ * @var integer
+ */
+ const NON_TAXABLE = 2;
+
+ /**
+ * 非課税.
+ *
+ * 国内において事業者が事業として対価を得て行う資産の譲渡等であっても、課税対象になじまないものや社会政策的配慮から消費税を課税しない取引があります。
+ * これを非課税取引といいます。
+ * 例えば、土地、有価証券、商品券などの譲渡、預貯金の利子や社会保険医療などがこれに当たります。
+ *
+ * @var integer
+ */
+ const TAX_EXEMPT = 3;
+ }
}
diff --git a/src/Eccube/Entity/Master/Work.php b/src/Eccube/Entity/Master/Work.php
index 48feed81271..a69724257ae 100644
--- a/src/Eccube/Entity/Master/Work.php
+++ b/src/Eccube/Entity/Master/Work.php
@@ -15,25 +15,27 @@
use Doctrine\ORM\Mapping as ORM;
-/**
- * Work
- *
- * @ORM\Table(name="mtb_work")
- * @ORM\InheritanceType("SINGLE_TABLE")
- * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
- * @ORM\HasLifecycleCallbacks()
- * @ORM\Entity(repositoryClass="Eccube\Repository\Master\WorkRepository")
- * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
- */
-class Work extends \Eccube\Entity\Master\AbstractMasterEntity
-{
+if (!class_exists(Work::class, false)) {
/**
- * 非稼働
+ * Work
+ *
+ * @ORM\Table(name="mtb_work")
+ * @ORM\InheritanceType("SINGLE_TABLE")
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
+ * @ORM\HasLifecycleCallbacks()
+ * @ORM\Entity(repositoryClass="Eccube\Repository\Master\WorkRepository")
+ * @ORM\Cache(usage="NONSTRICT_READ_WRITE")
*/
- const NON_ACTIVE = 0;
+ class Work extends \Eccube\Entity\Master\AbstractMasterEntity
+ {
+ /**
+ * 非稼働
+ */
+ const NON_ACTIVE = 0;
- /**
- * 稼働
- */
- const ACTIVE = 1;
+ /**
+ * 稼働
+ */
+ const ACTIVE = 1;
+ }
}
diff --git a/src/Eccube/Entity/Page.php b/src/Eccube/Entity/Page.php
index 44dc489d700..8df1344f2eb 100644
--- a/src/Eccube/Entity/Page.php
+++ b/src/Eccube/Entity/Page.php
@@ -31,6 +31,7 @@ class Page extends \Eccube\Entity\AbstractEntity
const EDIT_TYPE_USER = 0;
const EDIT_TYPE_PREVIEW = 1;
const EDIT_TYPE_DEFAULT = 2;
+ const EDIT_TYPE_DEFAULT_CONFIRM = 3;
// 特定商取引法ページID
const TRADELAW_PAGE_ID = 21;
diff --git a/src/Eccube/Entity/Product.php b/src/Eccube/Entity/Product.php
index 75c38a680d1..c39e0e0095b 100644
--- a/src/Eccube/Entity/Product.php
+++ b/src/Eccube/Entity/Product.php
@@ -198,7 +198,9 @@ public function getStockFind()
{
$this->_calc();
- return max($this->stockFinds);
+ return count($this->stockFinds)
+ ? max($this->stockFinds)
+ : null;
}
/**
@@ -210,7 +212,9 @@ public function getStockMin()
{
$this->_calc();
- return min($this->stocks);
+ return count($this->stocks)
+ ? min($this->stocks)
+ : null;
}
/**
@@ -222,7 +226,9 @@ public function getStockMax()
{
$this->_calc();
- return max($this->stocks);
+ return count($this->stocks)
+ ? max($this->stocks)
+ : null;
}
/**
@@ -234,7 +240,9 @@ public function getStockUnlimitedMin()
{
$this->_calc();
- return min($this->stockUnlimiteds);
+ return count($this->stockUnlimiteds)
+ ? min($this->stockUnlimiteds)
+ : null;
}
/**
@@ -246,7 +254,9 @@ public function getStockUnlimitedMax()
{
$this->_calc();
- return max($this->stockUnlimiteds);
+ return count($this->stockUnlimiteds)
+ ? max($this->stockUnlimiteds)
+ : null;
}
/**
@@ -290,7 +300,9 @@ public function getPrice02Min()
{
$this->_calc();
- return min($this->price02);
+ return count($this->price02)
+ ? min($this->price02)
+ : null;
}
/**
@@ -302,7 +314,9 @@ public function getPrice02Max()
{
$this->_calc();
- return max($this->price02);
+ return count($this->price02)
+ ? max($this->price02)
+ : null;
}
/**
@@ -314,7 +328,9 @@ public function getPrice01IncTaxMin()
{
$this->_calc();
- return min($this->price01IncTaxs);
+ return count($this->price01IncTaxs)
+ ? min($this->price01IncTaxs)
+ : null;
}
/**
@@ -326,7 +342,9 @@ public function getPrice01IncTaxMax()
{
$this->_calc();
- return max($this->price01IncTaxs);
+ return count($this->price01IncTaxs)
+ ? max($this->price01IncTaxs)
+ : null;
}
/**
@@ -338,7 +356,9 @@ public function getPrice02IncTaxMin()
{
$this->_calc();
- return min($this->price02IncTaxs);
+ return count($this->price02IncTaxs)
+ ? min($this->price02IncTaxs)
+ : null;
}
/**
@@ -350,7 +370,9 @@ public function getPrice02IncTaxMax()
{
$this->_calc();
- return max($this->price02IncTaxs);
+ return count($this->price02IncTaxs)
+ ? max($this->price02IncTaxs)
+ : null;
}
/**
diff --git a/src/Eccube/EventListener/TransactionListener.php b/src/Eccube/EventListener/TransactionListener.php
index a85f5062efe..ed6fc0414d3 100644
--- a/src/Eccube/EventListener/TransactionListener.php
+++ b/src/Eccube/EventListener/TransactionListener.php
@@ -13,7 +13,7 @@
namespace Eccube\EventListener;
-use Doctrine\Dbal\Connection;
+use Doctrine\DBAL\Connection;
use Doctrine\DBAL\TransactionIsolationLevel;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityManagerInterface;
diff --git a/src/Eccube/Form/Type/Admin/CsvImportType.php b/src/Eccube/Form/Type/Admin/CsvImportType.php
index f0cf98307a4..290a1deca14 100644
--- a/src/Eccube/Form/Type/Admin/CsvImportType.php
+++ b/src/Eccube/Form/Type/Admin/CsvImportType.php
@@ -15,7 +15,9 @@
use Eccube\Common\EccubeConfig;
use Symfony\Component\Form\AbstractType;
+use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
+use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints as Assert;
@@ -52,6 +54,16 @@ public function buildForm(FormBuilderInterface $builder, array $options)
'maxSize' => $this->csvMaxSize.'M',
]),
],
+ ])
+ ->add('is_split_csv', CheckboxType::class, [
+ 'label' => false,
+ 'mapped' => false,
+ 'required' => false,
+ ])
+ ->add('csv_file_no', IntegerType::class, [
+ 'label' => false,
+ 'mapped' => false,
+ 'required' => false,
]);
}
diff --git a/src/Eccube/Form/Type/Admin/LogType.php b/src/Eccube/Form/Type/Admin/LogType.php
index 6d0dbde7dba..d3a77907c54 100644
--- a/src/Eccube/Form/Type/Admin/LogType.php
+++ b/src/Eccube/Form/Type/Admin/LogType.php
@@ -18,6 +18,7 @@
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
+use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\HttpKernel\KernelInterface;
use Symfony\Component\Validator\Constraints as Assert;
@@ -82,6 +83,9 @@ public function buildForm(FormBuilderInterface $builder, array $options)
new Assert\NotBlank(),
new Assert\Range(['min' => 1, 'max' => 50000]),
],
+ ])
+ ->add('download', SubmitType::class, [
+ 'label' => 'admin.common.download'
]);
}
diff --git a/src/Eccube/Form/Type/Admin/LoginType.php b/src/Eccube/Form/Type/Admin/LoginType.php
index df8c18d95eb..5f7152619f1 100644
--- a/src/Eccube/Form/Type/Admin/LoginType.php
+++ b/src/Eccube/Form/Type/Admin/LoginType.php
@@ -40,7 +40,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('login_id', TextType::class, [
'attr' => [
- 'max_length' => 50,
+ 'maxlength' => 50,
],
'constraints' => [
new Assert\NotBlank(),
@@ -49,7 +49,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
]);
$builder->add('password', PasswordType::class, [
'attr' => [
- 'max_length' => 50,
+ 'maxlength' => 50,
],
'constraints' => [
new Assert\NotBlank(),
diff --git a/src/Eccube/Form/Type/Admin/MainEditType.php b/src/Eccube/Form/Type/Admin/MainEditType.php
index ac08f687788..9a41ef7bfea 100644
--- a/src/Eccube/Form/Type/Admin/MainEditType.php
+++ b/src/Eccube/Form/Type/Admin/MainEditType.php
@@ -221,6 +221,13 @@ public function buildForm(FormBuilderInterface $builder, array $options)
->setParameter('page_id', $Page->getId());
}
+ //確認ページの編集ページ存在している場合
+ if ($Page->getEditType() == Page::EDIT_TYPE_DEFAULT_CONFIRM && $Page->getMasterPage()) {
+ $qb
+ ->andWhere('p.id <> :master_page_id')
+ ->setParameter('master_page_id', $Page->getMasterPage()->getId());
+ }
+
$count = $qb->getQuery()->getSingleScalarResult();
if ($count > 0) {
$form['url']->addError(new FormError(trans('admin.content.page_url_exists')));
@@ -253,7 +260,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
$qb->select('count(p)')
->from('Eccube\\Entity\\Page', 'p')
->where('p.file_name = :file_name')
- ->andWhere('p.edit_type = :edit_type')
+ ->andWhere('p.edit_type >= :edit_type')
->setParameter('file_name', $Page->getFileName())
->setParameter('edit_type', Page::EDIT_TYPE_DEFAULT);
diff --git a/src/Eccube/Form/Type/Admin/MasterdataType.php b/src/Eccube/Form/Type/Admin/MasterdataType.php
index 80e64966b72..87293ebbc8a 100644
--- a/src/Eccube/Form/Type/Admin/MasterdataType.php
+++ b/src/Eccube/Form/Type/Admin/MasterdataType.php
@@ -17,6 +17,9 @@
use Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Mapping\ClassMetadata;
+use Eccube\Entity\Master\CustomerOrderStatus;
+use Eccube\Entity\Master\OrderStatus;
+use Eccube\Entity\Master\OrderStatusColor;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormBuilderInterface;
@@ -60,6 +63,13 @@ public function buildForm(FormBuilderInterface $builder, array $options)
foreach ($classNames as $className) {
/** @var ClassMetadata $meta */
$meta = $this->entityManager->getMetadataFactory()->getMetadataFor($className);
+
+ // OrderStatus/OrderStatusColorは対象外
+ // @see https://github.com/EC-CUBE/ec-cube/pull/4844
+ if (in_array($meta->getName(), [OrderStatus::class, OrderStatusColor::class, CustomerOrderStatus::class,])) {
+ continue;
+ }
+
if (strpos($meta->rootEntityName, 'Master') !== false
&& $meta->hasField('id')
&& $meta->hasField('name')
diff --git a/src/Eccube/Form/Type/Admin/OrderStatusSettingType.php b/src/Eccube/Form/Type/Admin/OrderStatusSettingType.php
new file mode 100644
index 00000000000..152b46adeef
--- /dev/null
+++ b/src/Eccube/Form/Type/Admin/OrderStatusSettingType.php
@@ -0,0 +1,117 @@
+eccubeConfig = $eccubeConfig;
+ $this->orderStatusColorRepository = $orderStatusColorRepository;
+ $this->customerOrderStatusRepository = $customerOrderStatusRepository;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function buildForm(FormBuilderInterface $builder, array $options)
+ {
+ $builder
+ ->add('name', TextType::class, [
+ 'constraints' => [
+ new Assert\NotBlank(),
+ new Assert\Length(['max' => $this->eccubeConfig['eccube_stext_len']]),
+ ],
+ ])
+ ->add('customer_order_status_name', TextType::class, [
+ 'mapped' => false,
+ 'constraints' => [
+ new Assert\NotBlank(),
+ new Assert\Length(['max' => $this->eccubeConfig['eccube_stext_len']]),
+ ],
+ ])
+ ->add('color', TextType::class, [
+ 'mapped' => false,
+ 'constraints' => [
+ new Assert\NotBlank(),
+ new Assert\Length(['max' => $this->eccubeConfig['eccube_stext_len']]),
+ ],
+ ])
+ ->add('display_order_count', ToggleSwitchType::class, [
+ 'required' => false,
+ 'label_on' => '',
+ 'label_off' => '',
+ ])
+ ;
+
+ $builder->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event) {
+ $data = $event->getData();
+ $form = $event->getForm();
+
+ if (null === $data) {
+ return;
+ }
+
+ $OrderStatusColor = $this->orderStatusColorRepository->find($data->getId());
+ if (null !== $OrderStatusColor) {
+ $form->get('color')->setData($OrderStatusColor->getName());
+ }
+ $CustomerOrderStatus = $this->customerOrderStatusRepository->find($data->getId());
+ if (null !== $CustomerOrderStatus) {
+ $form->get('customer_order_status_name')->setData($CustomerOrderStatus->getName());
+ }
+ });
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function configureOptions(OptionsResolver $resolver)
+ {
+ $resolver->setDefaults([
+ 'data_class' => OrderStatus::class,
+ ]);
+ }
+}
diff --git a/src/Eccube/Form/Type/Admin/OrderType.php b/src/Eccube/Form/Type/Admin/OrderType.php
index 53cab0e3641..b84e01da94f 100644
--- a/src/Eccube/Form/Type/Admin/OrderType.php
+++ b/src/Eccube/Form/Type/Admin/OrderType.php
@@ -419,7 +419,10 @@ public function validateOrderStatus(FormEvent $event)
if ($oldStatus->getId() != $newStatus->getId()) {
if (!$this->orderStateMachine->can($Order, $newStatus)) {
$form['OrderStatus']->addError(
- new FormError(trans('admin.order.failed_to_change_status__short', $oldStatus->getName(), $newStatus->getName())));
+ new FormError(trans('admin.order.failed_to_change_status__short', [
+ '%from%' => $oldStatus->getName(),
+ '%to%' => $newStatus->getName(),
+ ])));
}
}
}
diff --git a/src/Eccube/Form/Type/Admin/ShopMasterType.php b/src/Eccube/Form/Type/Admin/ShopMasterType.php
index 5417303c468..790892d2c8f 100644
--- a/src/Eccube/Form/Type/Admin/ShopMasterType.php
+++ b/src/Eccube/Form/Type/Admin/ShopMasterType.php
@@ -185,7 +185,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
'message' => 'form_error.numeric_only',
]),
new Assert\Range([
- 'min' => 1,
+ 'min' => 0,
'max' => 100,
]),
],
diff --git a/src/Eccube/Form/Type/Front/CustomerLoginType.php b/src/Eccube/Form/Type/Front/CustomerLoginType.php
index adbdc3f2a86..a60121c82aa 100644
--- a/src/Eccube/Form/Type/Front/CustomerLoginType.php
+++ b/src/Eccube/Form/Type/Front/CustomerLoginType.php
@@ -48,7 +48,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('login_email', EmailType::class, [
'attr' => [
- 'max_length' => $this->eccubeConfig['eccube_stext_len'],
+ 'maxlength' => $this->eccubeConfig['eccube_stext_len'],
],
'constraints' => [
new Assert\NotBlank(),
@@ -61,7 +61,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
]);
$builder->add('login_pass', PasswordType::class, [
'attr' => [
- 'max_length' => $this->eccubeConfig['eccube_stext_len'],
+ 'maxlength' => $this->eccubeConfig['eccube_stext_len'],
],
'constraints' => [
new Assert\NotBlank(),
diff --git a/src/Eccube/Form/Type/Front/ForgotType.php b/src/Eccube/Form/Type/Front/ForgotType.php
index b82f572b555..48a1423be4e 100644
--- a/src/Eccube/Form/Type/Front/ForgotType.php
+++ b/src/Eccube/Form/Type/Front/ForgotType.php
@@ -47,7 +47,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('login_email', EmailType::class, [
'attr' => [
- 'max_length' => $this->eccubeConfig['eccube_stext_len'],
+ 'maxlength' => $this->eccubeConfig['eccube_stext_len'],
],
'constraints' => [
new Assert\NotBlank(),
diff --git a/src/Eccube/Form/Type/Front/PasswordResetType.php b/src/Eccube/Form/Type/Front/PasswordResetType.php
index 30068fc405d..588a2c979e4 100644
--- a/src/Eccube/Form/Type/Front/PasswordResetType.php
+++ b/src/Eccube/Form/Type/Front/PasswordResetType.php
@@ -49,7 +49,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('login_email', EmailType::class, [
'attr' => [
- 'max_length' => $this->eccubeConfig['eccube_stext_len'],
+ 'maxlength' => $this->eccubeConfig['eccube_stext_len'],
],
'constraints' => [
new Assert\NotBlank(),
diff --git a/src/Eccube/Form/Type/PhoneNumberType.php b/src/Eccube/Form/Type/PhoneNumberType.php
index dc8e4a19510..a19ac0b0ce6 100644
--- a/src/Eccube/Form/Type/PhoneNumberType.php
+++ b/src/Eccube/Form/Type/PhoneNumberType.php
@@ -15,7 +15,7 @@
use Eccube\Common\EccubeConfig;
use Symfony\Component\Form\AbstractType;
-use Symfony\Component\Form\Extension\Core\Type\TextType;
+use Symfony\Component\Form\Extension\Core\Type\TelType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\Options;
use Symfony\Component\OptionsResolver\OptionsResolver;
@@ -57,7 +57,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
public function configureOptions(OptionsResolver $resolver)
{
$eccubeConfig = $this->eccubeConfig;
- $constraints = function (Options $options) use ($eccubeConfig) {
+ $constraints = function(Options $options) use ($eccubeConfig) {
$constraints = [];
// requiredがtrueに指定されている場合, NotBlankを追加
if (isset($options['required']) && true === $options['required']) {
@@ -91,7 +91,7 @@ public function configureOptions(OptionsResolver $resolver)
*/
public function getParent()
{
- return TextType::class;
+ return TelType::class;
}
/**
diff --git a/src/Eccube/Form/Type/PostalType.php b/src/Eccube/Form/Type/PostalType.php
index 1c7434e5b0a..765f8f18e9c 100644
--- a/src/Eccube/Form/Type/PostalType.php
+++ b/src/Eccube/Form/Type/PostalType.php
@@ -15,7 +15,7 @@
use Eccube\Common\EccubeConfig;
use Symfony\Component\Form\AbstractType;
-use Symfony\Component\Form\Extension\Core\Type\TextType;
+use Symfony\Component\Form\Extension\Core\Type\TelType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\Options;
use Symfony\Component\OptionsResolver\OptionsResolver;
@@ -56,7 +56,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
public function configureOptions(OptionsResolver $resolver)
{
$eccubeConfig = $this->eccubeConfig;
- $constraints = function (Options $options) use ($eccubeConfig) {
+ $constraints = function(Options $options) use ($eccubeConfig) {
$constraints = [];
// requiredがtrueに指定されている場合, NotBlankを追加
if (isset($options['required']) && true === $options['required']) {
@@ -91,7 +91,7 @@ public function configureOptions(OptionsResolver $resolver)
*/
public function getParent()
{
- return TextType::class;
+ return TelType::class;
}
/**
diff --git a/src/Eccube/Kernel.php b/src/Eccube/Kernel.php
index cea8e985f35..195314f1ab0 100644
--- a/src/Eccube/Kernel.php
+++ b/src/Eccube/Kernel.php
@@ -73,6 +73,28 @@ public function registerBundles()
yield new $class();
}
}
+
+ $pluginDir = $this->getProjectDir().'/app/Plugin';
+ $finder = (new Finder())
+ ->in($pluginDir)
+ ->sortByName()
+ ->depth(0)
+ ->directories();
+ $plugins = array_map(function ($dir) {
+ return $dir->getBaseName();
+ }, iterator_to_array($finder));
+
+ foreach ($plugins as $code) {
+ $pluginBundles = $pluginDir.'/'.$code.'/Resource/config/bundles.php';
+ if (file_exists($pluginBundles)) {
+ $contents = require $pluginBundles;
+ foreach ($contents as $class => $envs) {
+ if (isset($envs['all']) || isset($envs[$this->environment])) {
+ yield new $class();
+ }
+ }
+ }
+ }
}
/**
@@ -167,6 +189,10 @@ protected function configureRoutes(RouteCollectionBuilder $routes)
$builder = $routes->import($dir, '/', 'annotation');
$builder->setSchemes($scheme);
}
+ if (file_exists($pluginDir.'/'.$plugin.'/Resource/config')) {
+ $builder = $routes->import($pluginDir.'/'.$plugin.'/Resource/config/routes'.self::CONFIG_EXTS, '/', 'glob');
+ $builder->setSchemes($scheme);
+ }
}
}
@@ -187,7 +213,6 @@ protected function build(ContainerBuilder $container)
// DocumentRootをルーティディレクトリに設定する.
$container->addCompilerPass(new WebServerDocumentRootPass('%kernel.project_dir%/'));
-
// twigのurl,path関数を差し替え
$container->addCompilerPass(new TwigExtensionPass());
@@ -264,16 +289,24 @@ protected function addEntityExtensionPass(ContainerBuilder $container)
foreach ($plugins as $code) {
if (file_exists($pluginDir.'/'.$code.'/Entity')) {
- $container->addCompilerPass(DoctrineOrmMappingsPass::createAnnotationMappingDriver(
- ['Plugin\\'.$code.'\\Entity'],
- ['%kernel.project_dir%/app/Plugin/'.$code.'/Entity']
- ));
+ $paths = ['%kernel.project_dir%/app/Plugin/'.$code.'/Entity'];
+ $namespaces = ['Plugin\\'.$code.'\\Entity'];
+ $reader = new Reference('annotation_reader');
+ $driver = new Definition(AnnotationDriver::class, [$reader, $paths]);
+ $driver->addMethodCall('setTraitProxiesDirectory', [$projectDir.'/app/proxy/entity']);
+ $container->addCompilerPass(new DoctrineOrmMappingsPass($driver, $namespaces, []));
}
}
}
protected function loadEntityProxies()
{
+ // see https://github.com/EC-CUBE/ec-cube/issues/4727
+ // キャッシュクリアなど、コード内でコマンドを利用している場合に2回実行されてしまう
+ if (true === $this->booted) {
+ return;
+ }
+
$files = Finder::create()
->in(__DIR__.'/../../app/proxy/entity/')
->name('*.php')
diff --git a/src/Eccube/Repository/AbstractRepository.php b/src/Eccube/Repository/AbstractRepository.php
index e905e2527f8..285aa8ffb4c 100644
--- a/src/Eccube/Repository/AbstractRepository.php
+++ b/src/Eccube/Repository/AbstractRepository.php
@@ -13,6 +13,7 @@
namespace Eccube\Repository;
+use Doctrine\DBAL\DBALException;
use Eccube\Entity\AbstractEntity;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
@@ -36,7 +37,7 @@ public function delete($entity)
/**
* エンティティの登録/保存します。
*
- * @param $entity|AbstractEntity エンティティ
+ * @param AbstractEntity $entity
*/
public function save($entity)
{
@@ -51,4 +52,24 @@ protected function getCacheLifetime()
return 0;
}
+
+ /**
+ * PostgreSQL環境かどうかを判定します。
+ * @return bool
+ * @throws DBALException
+ */
+ protected function isPostgreSQL()
+ {
+ return 'postgresql' == $this->getEntityManager()->getConnection()->getDatabasePlatform()->getName();
+ }
+
+ /**
+ * MySQL環境かどうかを判定します。
+ * @return bool
+ * @throws DBALException
+ */
+ protected function isMySQL()
+ {
+ return 'mysql' == $this->getEntityManager()->getConnection()->getDatabasePlatform()->getName();
+ }
}
diff --git a/src/Eccube/Repository/CustomerRepository.php b/src/Eccube/Repository/CustomerRepository.php
index 434d9f95079..f9299c602c7 100644
--- a/src/Eccube/Repository/CustomerRepository.php
+++ b/src/Eccube/Repository/CustomerRepository.php
@@ -18,6 +18,7 @@
use Eccube\Doctrine\Query\Queries;
use Eccube\Entity\Customer;
use Eccube\Entity\Master\CustomerStatus;
+use Eccube\Entity\Master\OrderStatus;
use Eccube\Util\StringUtil;
use Symfony\Bridge\Doctrine\RegistryInterface;
use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface;
@@ -103,6 +104,9 @@ public function getQueryBuilderBySearchData($searchData)
//スペース除去
$clean_key_multi = preg_replace('/\s+|[ ]+/u', '', $searchData['multi']);
$id = preg_match('/^\d{0,10}$/', $clean_key_multi) ? $clean_key_multi : null;
+ if ($id && $id > '2147483647' && $this->isPostgreSQL()) {
+ $id = null;
+ }
$qb
->andWhere('c.id = :customer_id OR CONCAT(c.name01, c.name02) LIKE :name OR CONCAT(c.kana01, c.kana02) LIKE :kana OR c.email LIKE :email')
->setParameter('customer_id', $id)
@@ -270,7 +274,9 @@ public function getQueryBuilderBySearchData($searchData)
->leftJoin('c.Orders', 'o')
->leftJoin('o.OrderItems', 'oi')
->andWhere('oi.product_name LIKE :buy_product_name')
- ->setParameter('buy_product_name', '%'.$searchData['buy_product_name'].'%');
+ ->andWhere($qb->expr()->notIn('o.OrderStatus', ':order_status'))
+ ->setParameter('buy_product_name', '%'.$searchData['buy_product_name'].'%')
+ ->setParameter('order_status', [OrderStatus::PROCESSING, OrderStatus::PENDING]);
}
// Order By
diff --git a/src/Eccube/Repository/OrderRepository.php b/src/Eccube/Repository/OrderRepository.php
index 3871dcec569..3105015e9de 100644
--- a/src/Eccube/Repository/OrderRepository.php
+++ b/src/Eccube/Repository/OrderRepository.php
@@ -106,13 +106,19 @@ public function getQueryBuilderBySearchDataForAdmin($searchData)
}
// multi
if (isset($searchData['multi']) && StringUtil::isNotBlank($searchData['multi'])) {
- $multi = preg_match('/^\d{0,10}$/', $searchData['multi']) ? $searchData['multi'] : null;
+ //スペース除去
+ $clean_key_multi = preg_replace('/\s+|[ ]+/u', '', $searchData['multi']);
+ $multi = preg_match('/^\d{0,10}$/', $clean_key_multi) ? $clean_key_multi : null;
+ if ($multi && $multi > '2147483647' && $this->isPostgreSQL()) {
+ $multi = null;
+ }
$qb
- ->andWhere('o.id = :multi OR o.name01 LIKE :likemulti OR o.name02 LIKE :likemulti OR '.
- 'o.kana01 LIKE :likemulti OR o.kana02 LIKE :likemulti OR o.company_name LIKE :likemulti OR '.
+ ->andWhere('o.id = :multi OR CONCAT(o.name01, o.name02) LIKE :likemulti OR '.
+ 'CONCAT(o.kana01, o.kana02) LIKE :likemulti OR o.company_name LIKE :company_name OR '.
'o.order_no LIKE :likemulti OR o.email LIKE :likemulti OR o.phone_number LIKE :likemulti')
->setParameter('multi', $multi)
- ->setParameter('likemulti', '%'.$searchData['multi'].'%');
+ ->setParameter('likemulti', '%'.$clean_key_multi.'%')
+ ->setParameter('company_name', '%'.$searchData['multi'].'%'); // 会社名はスペースを除去せず検索
}
// order_id_end
@@ -146,16 +152,18 @@ public function getQueryBuilderBySearchDataForAdmin($searchData)
// name
if (isset($searchData['name']) && StringUtil::isNotBlank($searchData['name'])) {
+ $clean_name = preg_replace('/\s+|[ ]+/u', '', $searchData['name']);
$qb
->andWhere('CONCAT(o.name01, o.name02) LIKE :name')
- ->setParameter('name', '%'.$searchData['name'].'%');
+ ->setParameter('name', '%'.$clean_name.'%');
}
// kana
if (isset($searchData['kana']) && StringUtil::isNotBlank($searchData['kana'])) {
+ $clean_kana = preg_replace('/\s+|[ ]+/u', '', $searchData['kana']);
$qb
->andWhere('CONCAT(o.kana01, o.kana02) LIKE :kana')
- ->setParameter('kana', '%'.$searchData['kana'].'%');
+ ->setParameter('kana', '%'.$clean_kana.'%');
}
// email
diff --git a/src/Eccube/Repository/PageRepository.php b/src/Eccube/Repository/PageRepository.php
index 5f34d053bf9..c64169a1d34 100644
--- a/src/Eccube/Repository/PageRepository.php
+++ b/src/Eccube/Repository/PageRepository.php
@@ -138,8 +138,9 @@ public function getPageList($where = null, $parameters = [])
{
$qb = $this->createQueryBuilder('p')
->andWhere('p.id <> 0')
- ->andWhere('p.MasterPage is null')
- ->orderBy('p.id', 'ASC');
+ ->andWhere('(p.MasterPage is null OR p.edit_type = :edit_type)')
+ ->orderBy('p.id', 'ASC')
+ ->setParameter('edit_type', Page::EDIT_TYPE_DEFAULT_CONFIRM);
if (!is_null($where)) {
$qb->andWhere($where);
foreach ($parameters as $key => $val) {
diff --git a/src/Eccube/Repository/ProductRepository.php b/src/Eccube/Repository/ProductRepository.php
index 9f61b82a616..62667001d53 100644
--- a/src/Eccube/Repository/ProductRepository.php
+++ b/src/Eccube/Repository/ProductRepository.php
@@ -156,8 +156,8 @@ public function getQueryBuilderBySearchData($searchData)
foreach ($keywords as $index => $keyword) {
$key = sprintf('keyword%s', $index);
$qb
- ->andWhere(sprintf('NORMALIZE(p.name) LIKE NORMALIZE(:%s) OR
- NORMALIZE(p.search_word) LIKE NORMALIZE(:%s) OR
+ ->andWhere(sprintf('NORMALIZE(p.name) LIKE NORMALIZE(:%s) OR
+ NORMALIZE(p.search_word) LIKE NORMALIZE(:%s) OR
EXISTS (SELECT wpc%d FROM \Eccube\Entity\ProductClass wpc%d WHERE p = wpc%d.Product AND NORMALIZE(wpc%d.code) LIKE NORMALIZE(:%s))',
$key, $key, $index, $index, $index, $index, $key))
->setParameter($key, '%'.$keyword.'%');
@@ -226,7 +226,10 @@ public function getQueryBuilderBySearchDataForAdmin($searchData)
// id
if (isset($searchData['id']) && StringUtil::isNotBlank($searchData['id'])) {
- $id = preg_match('/^\d{0,10}$/', $searchData['id']) ? $searchData['id'] : null;
+ $id = preg_match('/^\d{0,10}$/', $searchData['id']) ? $searchData['id'] : null;
+ if ($id && $id > '2147483647' && $this->isPostgreSQL()) {
+ $id = null;
+ }
$qb
->andWhere('p.id = :id OR p.name LIKE :likeid OR pc.code LIKE :likeid')
->setParameter('id', $id)
diff --git a/src/Eccube/Resource/doctrine/import_csv/en/dtb_csv.csv b/src/Eccube/Resource/doctrine/import_csv/en/dtb_csv.csv
index c318f12e47b..ff4e67c4bf5 100644
--- a/src/Eccube/Resource/doctrine/import_csv/en/dtb_csv.csv
+++ b/src/Eccube/Resource/doctrine/import_csv/en/dtb_csv.csv
@@ -203,3 +203,4 @@ id,csv_type_id,creator_id,entity_name,field_name,reference_field_name,disp_name,
202,5,,Eccube\\Entity\\Category,Parent,id,Parent Category ID,4,1,2017-03-07 10:14:00,2017-03-07 10:14:00,csv
203,5,,Eccube\\Entity\\Category,level,,Level,5,1,2017-03-07 10:14:00,2017-03-07 10:14:00,csv
204,1,,Eccube\\Entity\\ProductClass,TaxRule,tax_rate,Tax Rate,"31","0","2017-03-07 10:14:00","2017-03-07 10:14:00","csv"
+205,2,,Eccube\\Entity\\Customer,point,,Point,32,1,2017-03-07 10:14:00,2017-03-07 10:14:00,csv
diff --git a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv
index b13f8486e28..6614b1f00c8 100644
--- a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv
+++ b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv
@@ -47,3 +47,6 @@ id,page_name,url,file_name,edit_type,author,description,keyword,create_date,upda
42,Shopping / Change Delivery Address,shopping_shipping_edit_change,Shopping/index,2,,,,2017-03-07 01:15:03,2017-03-07 01:15:03,noindex,,page,
44,My Account / Edit Delivery Address,mypage_delivery_edit,Mypage/delivery_edit,2,,,,2017-03-07 01:15:05,2017-03-07 01:15:05,noindex,8,page,
45,Shopping / Review,shopping_confirm,Shopping/confirm,2,,,,2017-03-07 01:15:03,2017-03-07 01:15:03,noindex,,page,
+46,Registration (Form) Review,entry_confirm,Entry/confirm,3,,,,2020-01-12 01:15:03,2020-01-12 01:15:03,noindex,18,page,
+47,My Account / Membership Cancellation (Form) Review,mypage_withdraw_confirm,Mypage/withdraw_confirm,3,,,,2020-01-12 10:14:52,2020-01-12 10:14:52,noindex,12,page,
+48,Inquiry (Form) Review,contact_confirm,Contact/confirm,3,,,,2020-01-12 10:14:52,2020-01-12 10:14:52,noindex,16,page,
diff --git a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page_layout.csv b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page_layout.csv
index fa133883048..2b6c4f57492 100644
--- a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page_layout.csv
+++ b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page_layout.csv
@@ -39,3 +39,6 @@ page_id,layout_id,sort_no,discriminator_type
"38","2","39","pagelayout"
"44","2","40","pagelayout"
"45","2","41","pagelayout"
+"46","2","42","pagelayout"
+"47","2","43","pagelayout"
+"48","2","44","pagelayout"
diff --git a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_csv.csv b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_csv.csv
index 5052c153023..63979368328 100644
--- a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_csv.csv
+++ b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_csv.csv
@@ -203,3 +203,4 @@
"202","5",,"Eccube\\Entity\\Category","Parent","id","親カテゴリID","4","1","2017-03-07 10:14:00","2017-03-07 10:14:00","csv"
"203","5",,"Eccube\\Entity\\Category","level",,"階層","5","1","2017-03-07 10:14:00","2017-03-07 10:14:00","csv"
"204","1",,"Eccube\\Entity\\ProductClass","TaxRule","tax_rate","税率","31","0","2017-03-07 10:14:00","2017-03-07 10:14:00","csv"
+"205","2",,"Eccube\\Entity\\Customer","point",,"ポイント","33","1","2017-03-07 10:14:00","2017-03-07 10:14:00","csv"
diff --git a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page.csv b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page.csv
index cf0294d41af..51fa4c5302d 100644
--- a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page.csv
+++ b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page.csv
@@ -47,3 +47,6 @@ id,page_name,url,file_name,edit_type,author,description,keyword,create_date,upda
"42","商品購入/遷移","shopping_redirect_to","Shopping/index","2",,,,"2017-03-07 01:15:03","2017-03-07 01:15:03","noindex",,"page",
"44","MYページ/お届け先編集","mypage_delivery_edit","Mypage/delivery_edit","2",,,,"2017-03-07 01:15:05","2017-03-07 01:15:05","noindex",8,"page",
"45","商品購入/ご注文確認","shopping_confirm","Shopping/confirm","2",,,,"2017-03-07 01:15:03","2017-03-07 01:15:03","noindex",,"page",
+"46","会員登録(確認ページ)","entry_confirm","Entry/confirm","3",,,,"2020-01-12 01:15:03","2020-01-12 01:15:03","noindex",18,"page",
+"47","MYページ/退会手続き(確認ページ)","mypage_withdraw_confirm","Mypage/withdraw_confirm","3",,,,"2020-01-12 10:14:52","2020-01-12 10:14:52","noindex",12,"page",
+"48","お問い合わせ(確認ページ)","contact_confirm","Contact/confirm","3",,,,"2020-01-12 10:14:52","2020-01-12 10:14:52","noindex",16,"page",
diff --git a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page_layout.csv b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page_layout.csv
index fa133883048..2b6c4f57492 100644
--- a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page_layout.csv
+++ b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page_layout.csv
@@ -39,3 +39,6 @@ page_id,layout_id,sort_no,discriminator_type
"38","2","39","pagelayout"
"44","2","40","pagelayout"
"45","2","41","pagelayout"
+"46","2","42","pagelayout"
+"47","2","43","pagelayout"
+"48","2","44","pagelayout"
diff --git a/src/Eccube/Resource/locale/messages.en.yaml b/src/Eccube/Resource/locale/messages.en.yaml
index caaba7fed34..11d7bb037f2 100644
--- a/src/Eccube/Resource/locale/messages.en.yaml
+++ b/src/Eccube/Resource/locale/messages.en.yaml
@@ -428,6 +428,8 @@ admin.common.next: Next
admin.common.first: Go to First
admin.common.last: Go to Last
admin.common.back: Go back
+admin.common.open_detail: 'Show details'
+admin.common.close_detail: 'Close details'
# Generic Labels, Messages
admin.common.show: Display
@@ -469,6 +471,9 @@ admin.common.csv_invalid_can_not: '%name% is invalid in the line %line%'
admin.common.csv_invalid_image: 'Your are not allowed to use "/" or "../" as suffix in %name% in the %line%'
admin.common.csv_invalid_foreign_key: 'You are unable to delete %name% in the line %line% because it has related data'
admin.common.csv_invalid_description_detail_upper_limit: '%name% should be less than %max% characters in the line %line%.'
+admin.common.csv_upload_in_progress: 'Uploading CSV file ...'
+admin.common.csv_upload_line_success: 'The %from% to %to% lines have been registered.'
+admin.common.csv_upload_line_error: 'An error has occurred. The registration process after the %from% line has been cancelled.'
admin.common.drag_and_drop_description: You can change the order of the items by drag & drop.
admin.common.drag_and_drop_image_description: Drag & drop the images or
admin.common.delete_modal__title: Delete
@@ -603,7 +608,7 @@ admin.product.permanently_delete__complete_message: Product has been deleted suc
admin.product.permanently_delete__complete: Completed
admin.product.permanently_delete__system_error: System error occurred
admin.product.copy__confirm_title: Duplicate a product
-admin.product.copy__confirm_message: Are you sure to delete this product?
+admin.product.copy__confirm_message: Are you sure you want to duplicate the product?
admin.product.name: Product Name
admin.product.image: Product Images
admin.product.image__short: Images
@@ -744,6 +749,10 @@ admin.product.category_csv.parent_category_id_description: ''
admin.product.category_csv.delete_flag_col: Category Deletion Flag
admin.product.category_csv.delete_flag_description: 'Specify 0: Upload or 1: Delete. If unspecified, it is set to 0.'
+# Product CSV
+admin.product.product_csv_upload__title: 'Upload product CSV'
+admin.product.product_csv_upload__message: 'Upload the product CSV file. Is it OK?'
+
#------------------------------------------------------------------------------------
# Orders
#------------------------------------------------------------------------------------
@@ -957,6 +966,7 @@ admin.content.file.updated: Update
admin.content.file.directory_tree: Directories
admin.content.file.upload_complete: %success% file upload completed. (%success%/%count%)
admin.content.file.upload_error: Failed to upload %file_name%. (%error%)
+admin.content.file.dir_exists: %file_name% is already exists.
admin.content.layout_delete: Delete Layouts
admin.content.layout_no_page: Page not registered
admin.content.layout__card_title: Layout Overview
@@ -992,6 +1002,7 @@ admin.content.layout_section__drawer: '#drawer'
admin.content.layout_section__close_body_before: 'Right before the tags'
admin.content.page_name: Page Name
admin.content.page__card_title: Page Settings
+admin.content.page_route_name: Route Name
admin.content.page_url: URL
admin.content.page_url_exists: The URL already exists.
admin.content.page_file_name: File Name
@@ -1062,6 +1073,7 @@ admin.setting.shop.delivery_setting: Delivery Settings
admin.setting.shop.tax_setting: Taxes
admin.setting.shop.mail_setting: Emails
admin.setting.shop.csv_setting: CSV Outputs
+admin.setting.shop.order_status_setting: Order Status
admin.setting.system: System Settings
admin.setting.system.member_management: Users
admin.setting.system.member_password_change: Passwords
@@ -1180,6 +1192,17 @@ admin.setting.shop.csv.how_to_use: |
The item orders can be changed with [Item Orders] menus.
To select multiple items, hold Ctrl (Windows) or Command (Mac) and select. Or hold Shift to select a range of items.
+#------------------------------------------------------------------------------------
+# Settings:Store Settings : Order Status
+#------------------------------------------------------------------------------------
+
+admin.setting.shop.order_status.order_status: Order Status
+admin.setting.shop.order_status.id: ID
+admin.setting.shop.order_status.admin_order_status_name: Name(Order management)
+admin.setting.shop.order_status.customer_order_status_name: Name(My page)
+admin.setting.shop.order_status.color: Color
+admin.setting.shop.order_status.display_order_count: Number display
+
#------------------------------------------------------------------------------------
# Settings : Customers : Change Password
#------------------------------------------------------------------------------------
@@ -1586,6 +1609,10 @@ tooltip.setting.shop.tax_setting: You can set the tax rates applicable to all pr
tooltip.setting.shop.mail.mail_template: Please select an existing email template. Contents are displayed in the text field below.
tooltip.setting.shop.csv.csv_columns: You can output various data in CSV format. You can specify the items for CSV output.
tooltip.setting.shop.csv.csv_type: Specify the CSV file type.
+tooltip.setting.shop.order_status.order_status: Set the order status used in order management and my page. You can set the name, color, and number display.
+tooltip.setting.shop.order_status.customer_order_status_name: You can set the name of the order status. The name set here will be displayed on My Page after logging in as a customer.
+tooltip.setting.shop.order_status.color: You can set the color of the order status used in order management.
+tooltip.setting.shop.order_status.display_order_count: You can set the display / non-display of the number of orders for each order status used in order management.
tooltip.setting.system.member.authority: You can select the authorization you have set under Authorization.
tooltip.setting.system.member.work: You can set customers to inactive temporarily. If they are no longer necessary, please delete from All Customers.
tooltip.setting.system.security.admin_url: Set the URL to sign in to the Admin Console. Please specify a URL which is hardly guessed.
diff --git a/src/Eccube/Resource/locale/messages.ja.yaml b/src/Eccube/Resource/locale/messages.ja.yaml
index ab13cbfc422..2bbcc3d300d 100644
--- a/src/Eccube/Resource/locale/messages.ja.yaml
+++ b/src/Eccube/Resource/locale/messages.ja.yaml
@@ -428,6 +428,8 @@ admin.common.next: 次へ
admin.common.first: 最初へ
admin.common.last: 最後へ
admin.common.back: 戻る
+admin.common.open_detail: '詳細を表示'
+admin.common.close_detail: '詳細を閉じる'
# 汎用ラベル, メッセージ
admin.common.show: 表示
@@ -469,6 +471,9 @@ admin.common.csv_invalid_can_not: '%line%行目の%name%は設定できません
admin.common.csv_invalid_image: '%line%行目の%name%には末尾に"/"や"../"を使用できません'
admin.common.csv_invalid_foreign_key: '%line%行目の%name%は関連するデータがあるため削除できません'
admin.common.csv_invalid_description_detail_upper_limit: '%line%行目の%name%は%max%文字以下の文字列を指定してください。'
+admin.common.csv_upload_in_progress: 'CSVファイルのアップロード中...'
+admin.common.csv_upload_line_success: '%from%行目〜%to%行目を登録しました'
+admin.common.csv_upload_line_error: 'エラーが発生しました。%from%行目以降の登録処理はキャンセルされました'
admin.common.drag_and_drop_description: 項目の順番はドラッグ&ドロップでも変更可能です。
admin.common.drag_and_drop_image_description: 画像をドラッグ&ドロップまたは
admin.common.delete_modal__title: 削除します
@@ -744,6 +749,10 @@ admin.product.category_csv.parent_category_id_description: ''
admin.product.category_csv.delete_flag_col: カテゴリ削除フラグ
admin.product.category_csv.delete_flag_description: 0:登録 1:削除を指定します。未指定の場合、0として扱います。
+# 商品CSV
+admin.product.product_csv_upload__title: '商品CSVをアップロードします'
+admin.product.product_csv_upload__message: '商品CSVファイルをアップロードします。よろしいですか?'
+
#------------------------------------------------------------------------------------
# 受注
#------------------------------------------------------------------------------------
@@ -957,6 +966,7 @@ admin.content.file.updated: 更新
admin.content.file.directory_tree: フォルダ構成
admin.content.file.upload_complete: %success%件のファイルをアップロードしました。(%success%/%count%)
admin.content.file.upload_error: %file_name% のアップロードに失敗しました。(%error%)
+admin.content.file.dir_exists: %file_name% は既に使用されています。別のフォルダ名を入力してください
admin.content.layout_delete: レイアウトを削除
admin.content.layout_no_page: ページが登録されていません
admin.content.layout__card_title: レイアウト概要
@@ -992,6 +1002,7 @@ admin.content.layout_section__drawer: '#drawer'
admin.content.layout_section__close_body_before: 'タグ直前'
admin.content.page_name: ページ名
admin.content.page__card_title: ページ設定
+admin.content.page_route_name: ルーティング名
admin.content.page_url: URL
admin.content.page_url_exists: 既にURLが存在しています。
admin.content.page_file_name: ファイル名
@@ -1062,6 +1073,7 @@ admin.setting.shop.delivery_setting: 配送方法設定
admin.setting.shop.tax_setting: 税率設定
admin.setting.shop.mail_setting: メール設定
admin.setting.shop.csv_setting: CSV出力項目設定
+admin.setting.shop.order_status_setting: 受注対応状況設定
admin.setting.system: システム設定
admin.setting.system.member_management: メンバー管理
admin.setting.system.member_password_change: パスワード変更
@@ -1180,6 +1192,17 @@ admin.setting.shop.csv.how_to_use: |
出力する項目の順序は[項目順序]ボタンで変更することができます。
複数の項目を選択する場合はctrlキー(Macの場合はcommandキー)を押しながら項目を押します。shiftキーを押しながら選択すると範囲選択ができます。
+#------------------------------------------------------------------------------------
+# 設定:店舗設定:受注対応状況設定
+#------------------------------------------------------------------------------------
+
+admin.setting.shop.order_status.order_status: 受注対応状況
+admin.setting.shop.order_status.id: ID
+admin.setting.shop.order_status.admin_order_status_name: 名称(受注管理)
+admin.setting.shop.order_status.customer_order_status_name: 名称(マイページ)
+admin.setting.shop.order_status.color: 色
+admin.setting.shop.order_status.display_order_count: 件数表示
+
#------------------------------------------------------------------------------------
# 設定:システム設定:メンバー管理 / パスワード変更
#------------------------------------------------------------------------------------
@@ -1586,6 +1609,10 @@ tooltip.setting.shop.tax_setting: 商品共通の税率を設定できます。
tooltip.setting.shop.mail.mail_template: 既存のメールテンプレートを選択してください。以下に内容が表示されます。
tooltip.setting.shop.csv.csv_columns: 各種のデータをCSVで出力できます。出力したい項目をこちらで設定することが可能です。
tooltip.setting.shop.csv.csv_type: 設定したいCSVの種類を指定してください。
+tooltip.setting.shop.order_status.order_status: 受注管理およびマイページで表示される対応状況の設定を行います。名称、色、件数表示の設定が可能です。
+tooltip.setting.shop.order_status.customer_order_status_name: 対応状況の名称を設定できます。ここで設定した名称は会員ログイン後のマイページで表示されます。
+tooltip.setting.shop.order_status.color: 受注管理の対応状況の色を設定できます。
+tooltip.setting.shop.order_status.display_order_count: 受注管理の対応状況ごとの受注件数の表示・非表示を設定できます。
tooltip.setting.system.member.authority: 権限管理で設定した権限を選択できます。
tooltip.setting.system.member.work: 一時的に非稼働にすることが可能です。必要ない場合はメンバー一覧より削除してください。
tooltip.setting.system.security.admin_url: 管理画面にログインするためのURLを指定します。推測されにくいURLを指定して下さい。
diff --git a/src/Eccube/Resource/template/admin/Content/block.twig b/src/Eccube/Resource/template/admin/Content/block.twig
index e94a0a5799c..76b5204185a 100644
--- a/src/Eccube/Resource/template/admin/Content/block.twig
+++ b/src/Eccube/Resource/template/admin/Content/block.twig
@@ -26,7 +26,7 @@ file that was distributed with this source code.
{% block javascript %}
@@ -57,14 +57,24 @@ file that was distributed with this source code.
diff --git a/src/Eccube/Resource/template/default/Mail/order.html.twig b/src/Eccube/Resource/template/default/Mail/order.html.twig
index dc959ef81cf..0733579fea0 100644
--- a/src/Eccube/Resource/template/default/Mail/order.html.twig
+++ b/src/Eccube/Resource/template/default/Mail/order.html.twig
@@ -25,7 +25,7 @@ file that was distributed with this source code.
- この度はご注文いただき誠にありがとうございます。
+ この度はご注文いただき誠にありがとうございます。
{{ Order.name01 }} {{ Order.name02 }} 様
diff --git a/src/Eccube/Resource/template/default/Mypage/index.twig b/src/Eccube/Resource/template/default/Mypage/index.twig
index 6e12ea8d476..dcc6e83e9fe 100755
--- a/src/Eccube/Resource/template/default/Mypage/index.twig
+++ b/src/Eccube/Resource/template/default/Mypage/index.twig
@@ -62,7 +62,7 @@ file that was distributed with this source code.
{% if OrderItem.class_category_name1 is not empty %}
{{ OrderItem.class_category_name1 }}
{% endif %}
- {% if OrderItem.class_category_name1 is not empty %}
+ {% if OrderItem.class_category_name2 is not empty %}
/ {{ OrderItem.class_category_name2 }}
{% endif %}
{{ OrderItem.price_inc_tax|price }}
diff --git a/src/Eccube/Resource/template/default/Product/detail.twig b/src/Eccube/Resource/template/default/Product/detail.twig
index 46e96b16911..72533ccb38f 100755
--- a/src/Eccube/Resource/template/default/Product/detail.twig
+++ b/src/Eccube/Resource/template/default/Product/detail.twig
@@ -187,7 +187,7 @@ file that was distributed with this source code.
$('#ec-modal-header').html(this);
});
- $('#ec-modal-checkbox').prop('checked', true);
+ $('.ec-modal').show()
// カートブロックを更新する
$.ajax({
@@ -205,6 +205,14 @@ file that was distributed with this source code.
});
});
});
+
+ $('.ec-modal-wrap').on('click', function(e) {
+ // モーダル内の処理は外側にバブリングさせない
+ e.stopPropagation();
+ });
+ $('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
+ $('.ec-modal').hide()
+ });
{% endblock %}
@@ -336,15 +344,13 @@ file that was distributed with this source code.
{{ form_rest(form) }}
-
-
-
+
diff --git a/src/Eccube/Resource/template/default/Product/list.twig b/src/Eccube/Resource/template/default/Product/list.twig
index a8d7f0e2fc8..ac0c2c533cf 100644
--- a/src/Eccube/Resource/template/default/Product/list.twig
+++ b/src/Eccube/Resource/template/default/Product/list.twig
@@ -68,7 +68,7 @@ file that was distributed with this source code.
$('#ec-modal-header').html(this);
});
- $('#ec-modal-checkbox').prop('checked', true);
+ $('.ec-modal').show()
// カートブロックを更新する
$.ajax({
@@ -86,6 +86,14 @@ file that was distributed with this source code.
});
});
});
+
+ $('.ec-modal-wrap').on('click', function(e) {
+ // モーダル内の処理は外側にバブリングさせない
+ e.stopPropagation();
+ });
+ $('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
+ $('.ec-modal').hide()
+ });
{% endblock %}
@@ -205,15 +213,13 @@ file that was distributed with this source code.
-
-
-
+
diff --git a/src/Eccube/Resource/template/toolbar/eccube.html.twig b/src/Eccube/Resource/template/toolbar/eccube.html.twig
index 1862578db70..b65baa619f0 100644
--- a/src/Eccube/Resource/template/toolbar/eccube.html.twig
+++ b/src/Eccube/Resource/template/toolbar/eccube.html.twig
@@ -81,7 +81,7 @@ file that was distributed with this source code.
{% endset %}
diff --git a/src/Eccube/Security/Core/User/CustomerProvider.php b/src/Eccube/Security/Core/User/CustomerProvider.php
index 1643488451f..8b50eee32ce 100644
--- a/src/Eccube/Security/Core/User/CustomerProvider.php
+++ b/src/Eccube/Security/Core/User/CustomerProvider.php
@@ -89,6 +89,6 @@ public function refreshUser(UserInterface $user)
*/
public function supportsClass($class)
{
- return Customer::class === $class;
+ return Customer::class === $class || is_subclass_of($class, Customer::class);
}
}
diff --git a/src/Eccube/Security/Core/User/MemberProvider.php b/src/Eccube/Security/Core/User/MemberProvider.php
index f045d12dc46..5b6a70da1f8 100644
--- a/src/Eccube/Security/Core/User/MemberProvider.php
+++ b/src/Eccube/Security/Core/User/MemberProvider.php
@@ -86,6 +86,6 @@ public function refreshUser(UserInterface $user)
*/
public function supportsClass($class)
{
- return Member::class === $class;
+ return Member::class === $class || is_subclass_of($class, Member::class);
}
}
diff --git a/src/Eccube/Service/CartService.php b/src/Eccube/Service/CartService.php
index 5e97449e9fc..1085f4e9cf1 100644
--- a/src/Eccube/Service/CartService.php
+++ b/src/Eccube/Service/CartService.php
@@ -91,14 +91,6 @@ class CartService
/**
* CartService constructor.
- *
- * @param SessionInterface $session
- * @param EntityManagerInterface $entityManager
- * @param ProductClassRepository $productClassRepository
- * @param CartItemComparator $cartItemComparator
- * @param CartItemAllocator $cartItemAllocator
- * @param TokenStorageInterface $tokenStorage
- * @param AuthorizationCheckerInterface $authorizationChecker
*/
public function __construct(
SessionInterface $session,
@@ -193,13 +185,21 @@ public function getSessionCarts()
*/
public function mergeFromPersistedCart()
{
+ $persistedCarts = $this->getPersistedCarts();
+ $sessionCarts = $this->getSessionCarts();
+
$CartItems = [];
- foreach ($this->getPersistedCarts() as $Cart) {
- $CartItems = $this->mergeCartItems($Cart->getCartItems(), $CartItems);
+
+ // 永続化されたカートとセッションのカートが同一の場合はマージしない #4574
+ $cartKeys = $this->session->get('cart_keys', []);
+ if ((count($persistedCarts) > 0) && !in_array($persistedCarts[0]->getCartKey(), $cartKeys, true)) {
+ foreach ($persistedCarts as $Cart) {
+ $CartItems = $this->mergeCartItems($Cart->getCartItems(), $CartItems);
+ }
}
// セッションにある非会員カートとDBから取得した会員カートをマージする.
- foreach ($this->getSessionCarts() as $Cart) {
+ foreach ($sessionCarts as $Cart) {
$CartItems = $this->mergeCartItems($Cart->getCartItems(), $CartItems);
}
@@ -424,7 +424,7 @@ public function setPreOrderId($pre_order_id)
}
/**
- * @return null|string
+ * @return string|null
*/
public function getPreOrderId()
{
diff --git a/src/Eccube/Service/Composer/ComposerApiService.php b/src/Eccube/Service/Composer/ComposerApiService.php
index c6dec916b9f..ae818a58757 100644
--- a/src/Eccube/Service/Composer/ComposerApiService.php
+++ b/src/Eccube/Service/Composer/ComposerApiService.php
@@ -18,6 +18,8 @@
use Eccube\Entity\BaseInfo;
use Eccube\Exception\PluginException;
use Eccube\Repository\BaseInfoRepository;
+use Eccube\Service\PluginContext;
+use Eccube\Service\SchemaService;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Output\BufferedOutput;
use Symfony\Component\Console\Output\OutputInterface;
@@ -43,10 +45,24 @@ class ComposerApiService implements ComposerServiceInterface
*/
private $baseInfoRepository;
- public function __construct(EccubeConfig $eccubeConfig, BaseInfoRepository $baseInfoRepository)
- {
+ /** @var SchemaService */
+ private $schemaService;
+
+ /**
+ * @var PluginContext
+ */
+ private $pluginContext;
+
+ public function __construct(
+ EccubeConfig $eccubeConfig,
+ BaseInfoRepository $baseInfoRepository,
+ SchemaService $schemaService,
+ PluginContext $pluginContext
+ ) {
$this->eccubeConfig = $eccubeConfig;
+ $this->schemaService = $schemaService;
$this->baseInfoRepository = $baseInfoRepository;
+ $this->pluginContext = $pluginContext;
}
/**
@@ -77,7 +93,7 @@ public function execInfo($pluginName, $version)
* Run execute command
*
* @param string $packageName format "foo/bar foo/bar:1.0.0"
- * @param null|OutputInterface $output
+ * @param OutputInterface|null $output
*
* @return string
*
@@ -95,7 +111,6 @@ public function execRequire($packageName, $output = null)
'--no-interaction' => true,
'--profile' => true,
'--prefer-dist' => true,
- '--ignore-platform-reqs' => true,
'--update-with-dependencies' => true,
'--no-scripts' => true,
], $output);
@@ -105,7 +120,7 @@ public function execRequire($packageName, $output = null)
* Run remove command
*
* @param string $packageName format "foo/bar foo/bar:1.0.0"
- * @param null|OutputInterface $output
+ * @param OutputInterface|null $output
*
* @return string
*
@@ -115,6 +130,8 @@ public function execRequire($packageName, $output = null)
*/
public function execRemove($packageName, $output = null)
{
+ $this->dropTableToExtra($packageName);
+
$packageName = explode(' ', trim($packageName));
return $this->runCommand([
@@ -131,7 +148,7 @@ public function execRemove($packageName, $output = null)
* Run update command
*
* @param boolean $dryRun
- * @param null|OutputInterface $output
+ * @param OutputInterface|null $output
*
* @throws PluginException
* @throws \Doctrine\ORM\NoResultException
@@ -152,7 +169,7 @@ public function execUpdate($dryRun, $output = null)
* Run install command
*
* @param boolean $dryRun
- * @param null|OutputInterface $output
+ * @param OutputInterface|null $output
*
* @throws PluginException
* @throws \Doctrine\ORM\NoResultException
@@ -263,7 +280,7 @@ public function setWorkingDir($workingDir)
* Run composer command
*
* @param array $commands
- * @param null|OutputInterface $output
+ * @param OutputInterface|null $output
* @param bool $init
*
* @return string
@@ -343,6 +360,7 @@ private function init($BaseInfo = null)
],
],
]);
+ $this->execConfig('platform.php', [PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION.'.'.PHP_RELEASE_VERSION]);
$this->execConfig('repositories.eccube', [$json]);
if (strpos($url, 'http://') === 0) {
$this->execConfig('secure-http', ['false']);
@@ -359,8 +377,6 @@ private function initConsole()
}
/**
- * @param BaseInfo $BaseInfo
- *
* @throws PluginException
* @throws \Doctrine\ORM\NoResultException
* @throws \Doctrine\ORM\NonUniqueResultException
@@ -369,4 +385,17 @@ public function configureRepository(BaseInfo $BaseInfo)
{
$this->init($BaseInfo);
}
+
+ private function dropTableToExtra($packageNames)
+ {
+ foreach (explode(' ', trim($packageNames)) as $packageName) {
+ $pluginCode = basename($packageName);
+ $this->pluginContext->setCode($pluginCode);
+ $this->pluginContext->setUninstall();
+
+ foreach ($this->pluginContext->getExtraEntityNamespaces() as $namespace) {
+ $this->schemaService->dropTable($namespace);
+ }
+ }
+ }
}
diff --git a/src/Eccube/Service/CsvExportService.php b/src/Eccube/Service/CsvExportService.php
index a83688011af..9e3ba6b3647 100644
--- a/src/Eccube/Service/CsvExportService.php
+++ b/src/Eccube/Service/CsvExportService.php
@@ -28,8 +28,8 @@
use Eccube\Repository\OrderRepository;
use Eccube\Repository\ProductRepository;
use Eccube\Repository\ShippingRepository;
-use Eccube\Util\EntityUtil;
use Eccube\Util\FormUtil;
+use Knp\Component\Pager\PaginatorInterface;
use Symfony\Component\Form\FormFactoryInterface;
use Symfony\Component\HttpFoundation\Request;
@@ -110,6 +110,9 @@ class CsvExportService
*/
protected $formFactory;
+ /** @var PaginatorInterface */
+ protected $paginator;
+
/**
* CsvExportService constructor.
*
@@ -117,8 +120,12 @@ class CsvExportService
* @param CsvRepository $csvRepository
* @param CsvTypeRepository $csvTypeRepository
* @param OrderRepository $orderRepository
+ * @param ShippingRepository $shippingRepository
* @param CustomerRepository $customerRepository
+ * @param ProductRepository $productRepository
* @param EccubeConfig $eccubeConfig
+ * @param FormFactoryInterface $formFactory
+ * @param PaginatorInterface $paginator
*/
public function __construct(
EntityManagerInterface $entityManager,
@@ -129,7 +136,8 @@ public function __construct(
CustomerRepository $customerRepository,
ProductRepository $productRepository,
EccubeConfig $eccubeConfig,
- FormFactoryInterface $formFactory
+ FormFactoryInterface $formFactory,
+ PaginatorInterface $paginator
) {
$this->entityManager = $entityManager;
$this->csvRepository = $csvRepository;
@@ -140,6 +148,7 @@ public function __construct(
$this->eccubeConfig = $eccubeConfig;
$this->productRepository = $productRepository;
$this->formFactory = $formFactory;
+ $this->paginator = $paginator;
}
/**
@@ -279,12 +288,20 @@ public function exportData(\Closure $closure)
$this->fopen();
- $query = $this->qb->getQuery();
- foreach ($query->getResult() as $iterableResult) {
- $closure($iterableResult, $this);
- $this->entityManager->detach($iterableResult);
- $query->free();
- flush();
+ $page = 1;
+ $limit = 100;
+ while ($results = $this->paginator->paginate($this->qb, $page, $limit)) {
+ if (!$results->valid()) {
+ break;
+ }
+
+ foreach ($results as $result) {
+ $closure($result, $this);
+ flush();
+ }
+
+ $this->entityManager->clear();
+ $page++;
}
$this->fclose();
@@ -317,16 +334,12 @@ public function getData(Csv $Csv, $entity)
// one to one の場合は, dtb_csv.reference_field_name, 合致する結果を取得する.
if ($data instanceof \Eccube\Entity\AbstractEntity) {
- if (EntityUtil::isNotEmpty($data)) {
- return $data->offsetGet($Csv->getReferenceFieldName());
- }
+ return $data->offsetGet($Csv->getReferenceFieldName());
} elseif ($data instanceof \Doctrine\Common\Collections\Collection) {
// one to manyの場合は, カンマ区切りに変換する.
$array = [];
foreach ($data as $elem) {
- if (EntityUtil::isNotEmpty($elem)) {
- $array[] = $elem->offsetGet($Csv->getReferenceFieldName());
- }
+ $array[] = $elem->offsetGet($Csv->getReferenceFieldName());
}
return implode($this->eccubeConfig['eccube_csv_export_multidata_separator'], $array);
@@ -337,8 +350,6 @@ public function getData(Csv $Csv, $entity)
// スカラ値の場合はそのまま.
return $data;
}
-
- return null;
}
/**
diff --git a/src/Eccube/Service/EntityProxyService.php b/src/Eccube/Service/EntityProxyService.php
index 90deea8e8ba..2db80a3bf1b 100644
--- a/src/Eccube/Service/EntityProxyService.php
+++ b/src/Eccube/Service/EntityProxyService.php
@@ -75,8 +75,7 @@ public function generate($includesDirs, $excludeDirs, $outputDir, OutputInterfac
// プロキシファイルの生成
foreach ($targetEntities as $targetEntity) {
$traits = isset($addTraits[$targetEntity]) ? $addTraits[$targetEntity] : [];
- $rc = new ClassReflection($targetEntity);
- $fileName = str_replace('\\', '/', $rc->getFileName());
+ $fileName = $this->originalEntityPath($targetEntity);
$baseName = basename($fileName);
$entityTokens = Tokens::fromCode(file_get_contents($fileName));
@@ -115,6 +114,30 @@ public function generate($includesDirs, $excludeDirs, $outputDir, OutputInterfac
return $generatedFiles;
}
+ private function originalEntityPath(string $entityClassName): string
+ {
+ $projectDir = rtrim(str_replace('\\', '/', $this->container->getParameter('kernel.project_dir')), '/');
+ $originalPath = null;
+
+ if (preg_match('/\AEccube\\\\Entity\\\\(.+)\z/', $entityClassName, $matches)) {
+ $pathToEntity = str_replace('\\', '/', $matches[1]);
+ $originalPath = sprintf('%s/src/Eccube/Entity/%s.php', $projectDir, $pathToEntity);
+ } elseif (preg_match('/\ACustomize\\\\Entity\\\\(.+)\z/', $entityClassName, $matches)) {
+ $pathToEntity = str_replace('\\', '/', $matches[1]);
+ $originalPath = sprintf('%s/app/Customize/Entity/%s.php', $projectDir, $pathToEntity);
+ } elseif (preg_match('/\APlugin\\\\([^\\\\]+)\\\\Entity\\\\(.+)\z/', $entityClassName, $matches)) {
+ $pathToEntity = str_replace('\\', '/', $matches[2]);
+ $originalPath = sprintf('%s/app/Plugin/%s/Entity/%s.php', $projectDir, $matches[1], $pathToEntity);
+ }
+
+ if ($originalPath !== null && file_exists($originalPath)) {
+ return $originalPath;
+ }
+
+ $rc = new ClassReflection($entityClassName);
+ return str_replace('\\', '/', $rc->getFileName());
+ }
+
/**
* 複数のディレクトリセットをスキャンしてディレクトリセットごとのEntityとTraitのマッピングを返します.
*
diff --git a/src/Eccube/Service/MailService.php b/src/Eccube/Service/MailService.php
index 705f61f5fc2..fe5aa852b18 100644
--- a/src/Eccube/Service/MailService.php
+++ b/src/Eccube/Service/MailService.php
@@ -44,7 +44,7 @@ class MailService
/**
* @var MailHistoryRepository
*/
- private $mailHistoryRepository;
+ protected $mailHistoryRepository;
/**
* @var EventDispatcher
diff --git a/src/Eccube/Service/OrderHelper.php b/src/Eccube/Service/OrderHelper.php
index c7a252e6bf2..fbd3e3a960e 100644
--- a/src/Eccube/Service/OrderHelper.php
+++ b/src/Eccube/Service/OrderHelper.php
@@ -91,6 +91,36 @@ class OrderHelper
*/
protected $orderItemTypeRepository;
+ /**
+ * @var OrderStatusRepository
+ */
+ protected $orderStatusRepository;
+
+ /**
+ * @var DeliveryRepository
+ */
+ protected $deliveryRepository;
+
+ /**
+ * @var PaymentRepository
+ */
+ protected $paymentRepository;
+
+ /**
+ * @var DeviceTypeRepository
+ */
+ protected $deviceTypeRepository;
+
+ /**
+ * @var MobileDetector
+ */
+ protected $mobileDetector;
+
+ /**
+ * @var EntityManagerInterface
+ */
+ protected $entityManager;
+
public function __construct(
ContainerInterface $container,
EntityManagerInterface $entityManager,
diff --git a/src/Eccube/Service/OrderPdfService.php b/src/Eccube/Service/OrderPdfService.php
index c746b068150..c0031fd1fb3 100644
--- a/src/Eccube/Service/OrderPdfService.php
+++ b/src/Eccube/Service/OrderPdfService.php
@@ -287,6 +287,7 @@ protected function addPdfPage()
// テンプレートに使うテンプレートファイルのページ番号を指定
$this->useTemplate($tplIdx, null, null, null, null, true);
+ $this->setPageMark();
}
/**
@@ -413,8 +414,17 @@ protected function renderOrderData(Shipping $Shipping)
$this->lfText(27, 51, $Shipping->getAddr02(), 10); //購入者住所2
// 購入者氏名
- $text = $Shipping->getName01().' '.$Shipping->getName02().' 様';
- $this->lfText(27, 59, $text, 11);
+ if (null !== $Shipping->getCompanyName()) {
+ // 会社名
+ $text = $Shipping->getCompanyName();
+ $this->lfText(27, 57, $text, 11);
+ // 氏名
+ $text = $Shipping->getName01().' '.$Shipping->getName02().' 様';
+ $this->lfText(27, 63, $text, 11);
+ } else {
+ $text = $Shipping->getName01().' '.$Shipping->getName02().' 様';
+ $this->lfText(27, 59, $text, 11);
+ }
// =========================================
// お買い上げ明細部
@@ -461,8 +471,12 @@ protected function renderOrderDetailData(Shipping $Shipping)
// =========================================
$i = 0;
$isShowReducedTaxMess = false;
+ $Order = $Shipping->getOrder();
/* @var OrderItem $OrderItem */
foreach ($Shipping->getOrderItems() as $OrderItem) {
+ if (!$Order->isMultiple() && !$OrderItem->isProduct()) {
+ continue;
+ }
// class categoryの生成
$classCategory = '';
/** @var OrderItem $OrderItem */
@@ -498,8 +512,6 @@ protected function renderOrderDetailData(Shipping $Shipping)
++$i;
}
- $Order = $Shipping->getOrder();
-
if (!$Order->isMultiple()) {
// =========================================
// 小計
diff --git a/src/Eccube/Service/PluginContext.php b/src/Eccube/Service/PluginContext.php
new file mode 100644
index 00000000000..3c7b5bd8299
--- /dev/null
+++ b/src/Eccube/Service/PluginContext.php
@@ -0,0 +1,95 @@
+eccubeConfig = $eccubeConfig;
+ }
+
+ public function isInstall()
+ {
+ return $this->mode === self::MODE_INSTALL;
+ }
+
+ public function isUninstall()
+ {
+ return $this->mode === self::MODE_UNINSTALL;
+ }
+
+ public function setInstall()
+ {
+ return $this->mode = self::MODE_INSTALL;
+ }
+
+ public function setUninstall()
+ {
+ return $this->mode = self::MODE_UNINSTALL;
+ }
+
+ public function setCode(string $code)
+ {
+ $this->code = $code;
+ }
+
+ public function getComposerJson(): array
+ {
+ if ($this->composerJson) {
+ return $this->composerJson;
+ }
+
+ $projectRoot = $this->eccubeConfig->get('kernel.project_dir');
+ $composerJsonPath = $projectRoot.'/app/Plugin/'.$this->code.'/composer.json';
+ if (file_exists($composerJsonPath) === false) {
+ throw new PluginException("${composerJsonPath} not found.");
+ }
+ $this->composerJson = json_decode(file_get_contents($composerJsonPath), true);
+ if ($this->composerJson === null) {
+ throw new PluginException("Invalid json format. [${composerJsonPath}]");
+ }
+
+ return $this->composerJson;
+ }
+
+ public function getExtraEntityNamespaces(): array
+ {
+ $json = $this->getComposerJson();
+ if (isset($json['extra'])) {
+ if (array_key_exists('entity-namespaces', $json['extra'])) {
+ return $json['extra']['entity-namespaces'];
+ }
+ }
+
+ return [];
+ }
+}
diff --git a/src/Eccube/Service/PluginService.php b/src/Eccube/Service/PluginService.php
index 9330e6548dc..e5778200ab2 100644
--- a/src/Eccube/Service/PluginService.php
+++ b/src/Eccube/Service/PluginService.php
@@ -100,6 +100,11 @@ class PluginService
*/
private $systemService;
+ /**
+ * @var PluginContext
+ */
+ private $pluginContext;
+
/**
* PluginService constructor.
*
@@ -112,6 +117,8 @@ class PluginService
* @param CacheUtil $cacheUtil
* @param ComposerServiceInterface $composerService
* @param PluginApiService $pluginApiService
+ * @param SystemService $systemService
+ * @param PluginContext $pluginContext
*/
public function __construct(
EntityManagerInterface $entityManager,
@@ -123,7 +130,8 @@ public function __construct(
CacheUtil $cacheUtil,
ComposerServiceInterface $composerService,
PluginApiService $pluginApiService,
- SystemService $systemService
+ SystemService $systemService,
+ PluginContext $pluginContext
) {
$this->entityManager = $entityManager;
$this->pluginRepository = $pluginRepository;
@@ -137,6 +145,7 @@ public function __construct(
$this->composerService = $composerService;
$this->pluginApiService = $pluginApiService;
$this->systemService = $systemService;
+ $this->pluginContext = $pluginContext;
}
/**
@@ -200,6 +209,9 @@ public function install($path, $source = 0)
*/
public function installWithCode($code)
{
+ $this->pluginContext->setCode($code);
+ $this->pluginContext->setInstall();
+
$pluginDir = $this->calcPluginDir($code);
$this->checkPluginArchiveContent($pluginDir);
$config = $this->readConfig($pluginDir);
diff --git a/src/Eccube/Service/PurchaseFlow/Processor/OrderNoProcessor.php b/src/Eccube/Service/PurchaseFlow/Processor/OrderNoProcessor.php
index d25c02bcec3..30c167efba6 100644
--- a/src/Eccube/Service/PurchaseFlow/Processor/OrderNoProcessor.php
+++ b/src/Eccube/Service/PurchaseFlow/Processor/OrderNoProcessor.php
@@ -69,15 +69,16 @@ public function process(ItemHolderInterface $itemHolder, PurchaseContext $contex
do {
$orderNo = preg_replace_callback('/\{(.*)}/U', function ($matches) use ($Order) {
if (count($matches) === 2) {
+ $dateTime = new \DateTime('now', new \DateTimeZone($this->eccubeConfig->get('timezone')));
switch ($matches[1]) {
case 'yyyy':
- return date('Y');
+ return $dateTime->format('Y');
case 'yy':
- return date('y');
+ return $dateTime->format('y');
case 'mm':
- return date('m');
+ return $dateTime->format('m');
case 'dd':
- return date('d');
+ return $dateTime->format('d');
default:
$res = explode(',', str_replace(' ', '', $matches[1]));
if (count($res) === 2 && is_numeric($res[1])) {
diff --git a/src/Eccube/Service/PurchaseFlow/PurchaseContext.php b/src/Eccube/Service/PurchaseFlow/PurchaseContext.php
index 68ba672db07..6b4544ede48 100644
--- a/src/Eccube/Service/PurchaseFlow/PurchaseContext.php
+++ b/src/Eccube/Service/PurchaseFlow/PurchaseContext.php
@@ -33,7 +33,7 @@ class PurchaseContext extends \SplObjectStorage
const CART_FLOW = 'cart';
- public function __construct(ItemHolderInterface $originHolder = null, Customer $user = null)
+ public function __construct(ItemHolderInterface $originHolder = null, ?Customer $user = null)
{
$this->originHolder = $originHolder;
$this->user = $user;
diff --git a/src/Eccube/Service/SchemaService.php b/src/Eccube/Service/SchemaService.php
index 113aeb80fac..b25d14bcd4e 100644
--- a/src/Eccube/Service/SchemaService.php
+++ b/src/Eccube/Service/SchemaService.php
@@ -16,6 +16,7 @@
use Doctrine\Common\Annotations\AnnotationReader;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Tools\SchemaTool;
+use Eccube\Doctrine\ORM\Mapping\Driver\NopAnnotationDriver;
use Eccube\Doctrine\ORM\Mapping\Driver\ReloadSafeAnnotationDriver;
use Eccube\Util\StringUtil;
use Symfony\Component\Finder\Finder;
@@ -27,15 +28,21 @@ class SchemaService
* @var EntityManagerInterface
*/
protected $entityManager;
+ /**
+ * @var PluginContext
+ */
+ private $pluginContext;
/**
* SchemaService constructor.
*
* @param EntityManagerInterface $entityManager
+ * @param PluginContext $pluginContext
*/
- public function __construct(EntityManagerInterface $entityManager)
+ public function __construct(EntityManagerInterface $entityManager, PluginContext $pluginContext)
{
$this->entityManager = $entityManager;
+ $this->pluginContext = $pluginContext;
}
/**
@@ -76,6 +83,14 @@ public function executeCallback(callable $callback, $generatedFiles, $proxiesDir
$newDriver->setOutputDir($outputDir);
$chain->addDriver($newDriver, $namespace);
}
+
+ if ($this->pluginContext->isUninstall()) {
+ foreach ($this->pluginContext->getExtraEntityNamespaces() as $extraEntityNamespace) {
+ if ($extraEntityNamespace === $namespace) {
+ $chain->addDriver(new NopAnnotationDriver(new AnnotationReader()), $namespace);
+ }
+ }
+ }
}
$tool = new SchemaTool($this->entityManager);
diff --git a/src/Eccube/Twig/Extension/EccubeExtension.php b/src/Eccube/Twig/Extension/EccubeExtension.php
index cb55f5becd4..85e7f415109 100644
--- a/src/Eccube/Twig/Extension/EccubeExtension.php
+++ b/src/Eccube/Twig/Extension/EccubeExtension.php
@@ -280,6 +280,10 @@ public function getClassCategoriesAsJson(Product $Product)
'price02' => number_format($ProductClass->getPrice02()),
'price01_inc_tax' => $ProductClass->getPrice01() === null ? '' : number_format($ProductClass->getPrice01IncTax()),
'price02_inc_tax' => number_format($ProductClass->getPrice02IncTax()),
+ 'price01_with_currency' => $ProductClass->getPrice01() === null ? '' : $this->getPriceFilter($ProductClass->getPrice01()),
+ 'price02_with_currency' => $this->getPriceFilter($ProductClass->getPrice02()),
+ 'price01_inc_tax_with_currency' => $ProductClass->getPrice01() === null ? '' : $this->getPriceFilter($ProductClass->getPrice01IncTax()),
+ 'price02_inc_tax_with_currency' => $this->getPriceFilter($ProductClass->getPrice02IncTax()),
'product_class_id' => (string) $ProductClass->getId(),
'product_code' => $ProductClass->getCode() === null ? '' : $ProductClass->getCode(),
'sale_type' => (string) $ProductClass->getSaleType()->getId(),
diff --git a/symfony.lock b/symfony.lock
index a5fe3b35589..7d74c13d637 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -221,6 +221,9 @@
"phpspec/prophecy": {
"version": "1.7.5"
},
+ "phpstan/phpstan": {
+ "version": "0.12.70"
+ },
"phpunit/php-code-coverage": {
"version": "5.3.2"
},
@@ -335,6 +338,9 @@
"setasign/fpdi-tcpdf": {
"version": "v2.0.0"
},
+ "skorp/detect-incompatible-samesite-useragents": {
+ "version": "1.0.0"
+ },
"suncat/mobile-detect-bundle": {
"version": "1.0",
"recipe": {
@@ -482,9 +488,15 @@
"symfony/polyfill-ctype": {
"version": "v1.8.0"
},
+ "symfony/polyfill-iconv": {
+ "version": "v1.17.1"
+ },
"symfony/polyfill-intl-icu": {
"version": "v1.6.0"
},
+ "symfony/polyfill-intl-idn": {
+ "version": "v1.17.1"
+ },
"symfony/polyfill-mbstring": {
"version": "v1.6.0"
},
diff --git a/tests/Eccube/Tests/Doctrine/Query/WhereClauseTest.php b/tests/Eccube/Tests/Doctrine/Query/WhereClauseTest.php
index 2dcc26fd539..eec61e0c956 100644
--- a/tests/Eccube/Tests/Doctrine/Query/WhereClauseTest.php
+++ b/tests/Eccube/Tests/Doctrine/Query/WhereClauseTest.php
@@ -167,6 +167,20 @@ public function testLteWithMap()
self::assertEquals([new Parameter('Price', 1000)], $this->getParams($actual));
}
+ public function testParameterNull()
+ {
+ $actual = WhereClause::eq('name', ':Name', null);
+ self::assertEquals('name = :Name', $this->asString($actual));
+ self::assertEquals([new Parameter('Name', null)], $this->getParams($actual));
+ }
+
+ public function testParameterFalseEquivalent()
+ {
+ $actual = WhereClause::eq('name', ':Name', '0');
+ self::assertEquals('name = :Name', $this->asString($actual));
+ self::assertEquals([new Parameter('Name', '0')], $this->getParams($actual));
+ }
+
/*
* Helper methods.
*/
diff --git a/tests/Eccube/Tests/Entity/ProductTest.php b/tests/Eccube/Tests/Entity/ProductTest.php
new file mode 100644
index 00000000000..dfad3a67731
--- /dev/null
+++ b/tests/Eccube/Tests/Entity/ProductTest.php
@@ -0,0 +1,38 @@
+createProduct(null, 0);
+ $Product->getProductClasses()->clear();
+ $this->assertNull($Product->getStockFind());
+ $this->assertNull($Product->getStockMin());
+ $this->assertNull($Product->getStockMax());
+ $this->assertNull($Product->getStockUnlimitedMin());
+ $this->assertNull($Product->getStockUnlimitedMax());
+ $this->assertNull($Product->getPrice01Min());
+ $this->assertNull($Product->getPrice01Max());
+ $this->assertNull($Product->getPrice02Min());
+ $this->assertNull($Product->getPrice02Max());
+ $this->assertNull($Product->getPrice01IncTaxMin());
+ $this->assertNull($Product->getPrice01IncTaxMax());
+ $this->assertNull($Product->getPrice02IncTaxMin());
+ $this->assertNull($Product->getPrice02IncTaxMax());
+ }
+}
diff --git a/tests/Eccube/Tests/Form/Type/Admin/ShopMasterTypeTest.php b/tests/Eccube/Tests/Form/Type/Admin/ShopMasterTypeTest.php
index 63bc304ecbb..2704d103ebf 100644
--- a/tests/Eccube/Tests/Form/Type/Admin/ShopMasterTypeTest.php
+++ b/tests/Eccube/Tests/Form/Type/Admin/ShopMasterTypeTest.php
@@ -128,4 +128,32 @@ public function testInValidDeliveryFreeQuantity_HasMinus()
$this->form->submit($this->formData);
$this->assertFalse($this->form->isValid());
}
+
+ public function testValidBasicPointRateRange_Min()
+ {
+ $this->formData['basic_point_rate'] = '0';
+ $this->form->submit($this->formData);
+ $this->assertTrue($this->form->isValid());
+ }
+
+ public function testValidBasicPointRateRange_Max()
+ {
+ $this->formData['basic_point_rate'] = '100';
+ $this->form->submit($this->formData);
+ $this->assertTrue($this->form->isValid());
+ }
+
+ public function testInValidBasicPointRateRange_Min()
+ {
+ $this->formData['basic_point_rate'] = '-1';
+ $this->form->submit($this->formData);
+ $this->assertFalse($this->form->isValid());
+ }
+
+ public function testInValidBasicPointRateRange_Max()
+ {
+ $this->formData['basic_point_rate'] = '101';
+ $this->form->submit($this->formData);
+ $this->assertFalse($this->form->isValid());
+ }
}
diff --git a/tests/Eccube/Tests/Repository/CustomerRepositoryTest.php b/tests/Eccube/Tests/Repository/CustomerRepositoryTest.php
index 17fd6d78bc9..c6f35c2c9f9 100644
--- a/tests/Eccube/Tests/Repository/CustomerRepositoryTest.php
+++ b/tests/Eccube/Tests/Repository/CustomerRepositoryTest.php
@@ -126,6 +126,16 @@ public function testGetRegularCustomerByResetKeyWithException()
$Customer = $this->customerRepo->getRegularCustomerByResetKey($reset_key);
$this->assertNull($Customer);
}
+
+ public function testGetQueryBuilderBySearchDataByMulti2147483648()
+ {
+ $Customer = $this->createCustomer('2147483648@example.com');
+ $actual = $this->customerRepo->getQueryBuilderBySearchData(['multi' => '2147483648'])
+ ->getQuery()
+ ->getResult();
+
+ self::assertEquals($Customer, $actual[0]);
+ }
}
class DummyCustomer implements UserInterface
diff --git a/tests/Eccube/Tests/Repository/OrderRepositoryTest.php b/tests/Eccube/Tests/Repository/OrderRepositoryTest.php
index bd3820fba4e..1537878094d 100644
--- a/tests/Eccube/Tests/Repository/OrderRepositoryTest.php
+++ b/tests/Eccube/Tests/Repository/OrderRepositoryTest.php
@@ -14,8 +14,8 @@
namespace Eccube\Tests\Repository;
use Eccube\Entity\Customer;
-use Eccube\Entity\Order;
use Eccube\Entity\Master\OrderStatus;
+use Eccube\Entity\Order;
use Eccube\Repository\OrderRepository;
use Eccube\Tests\EccubeTestCase;
@@ -119,4 +119,87 @@ public function testUpdateOrderSummary()
self::assertEquals(2, $Customer->getBuyTimes());
self::assertEquals($Order1->getTotal() + $Order2->getTotal(), $Customer->getBuyTotal());
}
+
+ public function testGetQueryBuilderBySearchDataForAdmin_multi_2147483648()
+ {
+ $Order = $this->createOrder($this->createCustomer('2147483648@example.com'));
+ $Order->setOrderStatus($this->entityManager->find(OrderStatus::class, OrderStatus::NEW));
+ $this->orderRepository->save($Order);
+ $this->entityManager->flush();
+
+ $actual = $this->orderRepository->getQueryBuilderBySearchDataForAdmin(['multi' => '2147483648'])
+ ->getQuery()
+ ->getResult();
+
+ self::assertEquals($Order, $actual[0]);
+ }
+
+ /**
+ * @dataProvider dataGetQueryBuilderBySearchDataForAdmin_nameProvider
+ */
+ public function testGetQueryBuilderBySearchDataForAdmin_name(string $formName, string $searchWord, int $expected)
+ {
+ $this->Order
+ ->setOrderStatus($this->entityManager->find(OrderStatus::class, OrderStatus::NEW))
+ ->setName01('姓')
+ ->setName02('名')
+ ->setKana01('セイ')
+ ->setKana02('メイ')
+ ->setCompanyName('株式会社 会社名'); // 全角スペース
+ $this->orderRepository->save($this->Order);
+ $this->entityManager->flush();
+
+ $actual = $this->orderRepository->getQueryBuilderBySearchDataForAdmin([$formName => $searchWord])
+ ->getQuery()
+ ->getResult();
+
+ self::assertCount($expected, $actual);
+ }
+
+ public function dataGetQueryBuilderBySearchDataForAdmin_nameProvider()
+ {
+ return [
+ ['multi', '姓', 1],
+ ['multi', '名', 1],
+ ['multi', '姓名', 1],
+ ['multi', '姓 名', 1],
+ ['multi', '姓 名', 1],
+ ['multi', 'セイ', 1],
+ ['multi', 'メイ', 1],
+ ['multi', 'セイメイ', 1],
+ ['multi', 'セイ メイ', 1],
+ ['multi', 'セイ メイ', 1],
+ ['multi', '株式会社', 1],
+ ['multi', '会社名', 1],
+ ['multi', '株式会社会社名', 0],
+ ['multi', '株式会社 会社名', 0], // 半角スペース
+ ['multi', '株式会社 会社名', 1], // 全角スペース
+ ['multi', '石', 0],
+ ['multi', 'キューブ', 0],
+ ['multi', '姓 球部', 0],
+ ['multi', 'セイ 名', 0],
+ ['multi', '姓 メイ', 0],
+ ['name', '姓', 1],
+ ['name', '名', 1],
+ ['name', '姓名', 1],
+ ['name', '姓 名', 1],
+ ['name', '姓 名', 1],
+ ['name', 'セイ', 0],
+ ['name', '株式会社 会社名', 0],
+ ['kana', 'セイ', 1],
+ ['kana', 'メイ', 1],
+ ['kana', 'セイメイ', 1],
+ ['kana', 'セイ メイ', 1],
+ ['kana', 'セイ メイ', 1],
+ ['kana', '姓', 0],
+ ['kana', '株式会社 会社名', 0],
+ ['company_name', '株式会社', 1],
+ ['company_name', '会社名', 1],
+ ['company_name', '株式会社会社名', 0],
+ ['company_name', '株式会社 会社名', 0], // 半角スペース
+ ['company_name', '株式会社 会社名', 1], // 全角スペース
+ ['company_name', '姓', 0],
+ ['company_name', 'セイ', 0],
+ ];
+ }
}
diff --git a/tests/Eccube/Tests/Repository/ProductRepositoryTest.php b/tests/Eccube/Tests/Repository/ProductRepositoryTest.php
index 596f4e88d2e..dd405dc3fce 100644
--- a/tests/Eccube/Tests/Repository/ProductRepositoryTest.php
+++ b/tests/Eccube/Tests/Repository/ProductRepositoryTest.php
@@ -30,4 +30,18 @@ public function testFindWithSortedClassCategories()
// visible = trueのみ取得する, 合計3件.
self::assertCount(3, $Result->getProductClasses());
}
+
+ public function testGetQueryBuilderBySearchDataForAdmin_id_2147483648()
+ {
+ $Product = $this->createProduct(null, 1);
+ $Product->setName('2147483648');
+
+ $this->productRepository->save($Product);
+ $this->entityManager->flush();
+
+ $qb = $this->productRepository->getQueryBuilderBySearchDataForAdmin(['id' => '2147483648']);
+ $result = $qb->getQuery()->getResult();
+
+ self::assertEquals($Product, $result[0]);
+ }
}
diff --git a/tests/Eccube/Tests/Service/EntityProxyServiceTest.php b/tests/Eccube/Tests/Service/EntityProxyServiceTest.php
index 7ec4952c7ea..1779d353197 100644
--- a/tests/Eccube/Tests/Service/EntityProxyServiceTest.php
+++ b/tests/Eccube/Tests/Service/EntityProxyServiceTest.php
@@ -16,6 +16,7 @@
use Eccube\Annotation\EntityExtension;
use Eccube\Service\EntityProxyService;
use PhpCsFixer\Tokenizer\CT;
+use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use Eccube\Tests\EccubeTestCase;
use Symfony\Component\Finder\Finder;
@@ -84,6 +85,54 @@ public function testGenerate()
self::assertNotNull($sequence);
}
+ public function testGenerateFromOriginalFile()
+ {
+ $this->markTestSkipped();
+
+ $findSequence = static function (Tokens $tokens) {
+ return $tokens->findSequence([
+ [T_PRIVATE, 'private'],
+ [T_VARIABLE, '$hoge'],
+ ]);
+ };
+
+ $this->entityProxyService->generate([__DIR__], [], $this->tempOutputDir);
+
+ $generatedFile = $this->tempOutputDir.'/src/Eccube/Entity/Product.php';
+ self::assertTrue(file_exists($generatedFile));
+
+ $tokens = Tokens::fromCode(file_get_contents($generatedFile));
+ // private $hoge;がないことを確認
+ self::assertNull($findSequence($tokens));
+
+ // private $hoge;を挿入
+ $additionalVariableTokens = [
+ new Token([T_WHITESPACE, PHP_EOL . ' ']),
+ new Token([T_PRIVATE, 'private']),
+ new Token([T_WHITESPACE, ' ']),
+ new Token([T_VARIABLE, '$hoge']),
+ new Token(';'),
+ new Token([T_WHITESPACE, PHP_EOL])
+ ];
+
+ $classTokens = $tokens->findSequence([[T_CLASS], [T_STRING]]);
+ $classTokenEnd = $tokens->getNextTokenOfKind(array_keys($classTokens)[0], ['{']);
+ $tokens->insertAt($classTokenEnd + 1, $additionalVariableTokens);
+ $newCode = $tokens->generateCode();
+ $newTokens = Tokens::fromCode($newCode);
+
+ // private $hoge;が存在することを確認
+ self::assertNotNull($findSequence($newTokens));
+
+ // 再生成する
+ file_put_contents($generatedFile, $newCode);
+ $this->entityProxyService->generate([__DIR__], [], $this->tempOutputDir);
+ $regeneratedTokens = Tokens::fromCode(file_get_contents($generatedFile));
+
+ // private $hoge;が存在しないことを確認
+ self::assertNull($findSequence($regeneratedTokens));
+ }
+
public function testGenerateExcluded()
{
$this->entityProxyService->generate([__DIR__], [], $this->tempOutputDir);
diff --git a/tests/Eccube/Tests/Service/PurchaseFlow/Processor/OrderNoProcessorTest.php b/tests/Eccube/Tests/Service/PurchaseFlow/Processor/OrderNoProcessorTest.php
index aa651d70ae1..1c96328e500 100644
--- a/tests/Eccube/Tests/Service/PurchaseFlow/Processor/OrderNoProcessorTest.php
+++ b/tests/Eccube/Tests/Service/PurchaseFlow/Processor/OrderNoProcessorTest.php
@@ -42,6 +42,7 @@ public function testProcess($orderNoFormat, $expected)
$config = $this->createMock(EccubeConfig::class);
$config->method('offsetGet')->willReturn($orderNoFormat);
+ $config->method('get')->willReturn('Asia/Tokyo');
$processor = new OrderNoProcessor($config, $this->container->get(OrderRepository::class));
$processor->process($Order, new PurchaseContext());
@@ -53,10 +54,10 @@ public function processDataProvider()
{
return [
['', '/^123$/'],
- ['{yyyy}', '/^'.(new \DateTime())->format('Y').'$/'],
- ['{yy}', '/^'.(new \DateTime())->format('y').'$/'],
- ['{mm}', '/^'.(new \DateTime())->format('m').'$/'],
- ['{dd}', '/^'.(new \DateTime())->format('d').'$/'],
+ ['{yyyy}', '/^'.(new \DateTime('now', new \DateTimeZone('Asia/Tokyo')))->format('Y').'$/'],
+ ['{yy}', '/^'.(new \DateTime('now', new \DateTimeZone('Asia/Tokyo')))->format('y').'$/'],
+ ['{mm}', '/^'.(new \DateTime('now', new \DateTimeZone('Asia/Tokyo')))->format('m').'$/'],
+ ['{dd}', '/^'.(new \DateTime('now', new \DateTimeZone('Asia/Tokyo')))->format('d').'$/'],
['{id}', '/^123$/'],
['{id,0}', '/^123$/'],
['{id,1}', '/^123$/'],
@@ -74,9 +75,9 @@ public function processDataProvider()
['ORDER_{yy}_{mm}_{dd}_{id,5}_{random,5}_{random_alnum,10}',
'/^'.
'ORDER_'.
- (new \DateTime())->format('y').'_'.
- (new \DateTime())->format('m').'_'.
- (new \DateTime())->format('d').'_'.
+ (new \DateTime('now', new \DateTimeZone('Asia/Tokyo')))->format('y').'_'.
+ (new \DateTime('now', new \DateTimeZone('Asia/Tokyo')))->format('m').'_'.
+ (new \DateTime('now', new \DateTimeZone('Asia/Tokyo')))->format('d').'_'.
'00123_'.
'\d{5}_'.
'[[:alnum:]]{10}'.
diff --git a/tests/Eccube/Tests/Twig/Extension/EccubeExtensionTest.php b/tests/Eccube/Tests/Twig/Extension/EccubeExtensionTest.php
index bb7e7585884..36f10e518c1 100644
--- a/tests/Eccube/Tests/Twig/Extension/EccubeExtensionTest.php
+++ b/tests/Eccube/Tests/Twig/Extension/EccubeExtensionTest.php
@@ -67,9 +67,13 @@ function ($ProductClass) use ($actual) {
if ($ProductClass->getPrice01IncTax()) {
$this->assertEquals(number_format($ProductClass->getPrice01()), $actual['price01']);
$this->assertEquals(number_format($ProductClass->getPrice01IncTax()), $actual['price01_inc_tax']);
+ $this->assertEquals($this->Extension->getPriceFilter($ProductClass->getPrice01()), $actual['price01_with_currency']);
+ $this->assertEquals($this->Extension->getPriceFilter($ProductClass->getPrice01IncTax()), $actual['price01_inc_tax_with_currency']);
}
$this->assertEquals(number_format($ProductClass->getPrice02()), $actual['price02']);
$this->assertEquals(number_format($ProductClass->getPrice02IncTax()), $actual['price02_inc_tax']);
+ $this->assertEquals($this->Extension->getPriceFilter($ProductClass->getPrice02()), $actual['price02_with_currency']);
+ $this->assertEquals($this->Extension->getPriceFilter($ProductClass->getPrice02IncTax()), $actual['price02_inc_tax_with_currency']);
$this->assertEquals($ProductClass->getCode(), $actual['product_code']);
$this->assertEquals($ProductClass->getSaleType()->getId(), $actual['sale_type']);
$this->assertEquals($ProductClass->getStockFind(), $actual['stock_find']);
diff --git a/tests/Eccube/Tests/Web/Admin/Content/FileControllerTest.php b/tests/Eccube/Tests/Web/Admin/Content/FileControllerTest.php
index c9aefabb4aa..85f840c0158 100644
--- a/tests/Eccube/Tests/Web/Admin/Content/FileControllerTest.php
+++ b/tests/Eccube/Tests/Web/Admin/Content/FileControllerTest.php
@@ -92,6 +92,45 @@ public function testIndexWithCreate()
$this->assertTrue(is_dir($this->getUserDataDir().'/'.$folder));
}
+ /**
+ * 名前の重複するディレクトリを作る
+ */
+ public function testIndexWithCreateDuplicateDir()
+ {
+ $folder = 'create_folder';
+ $this->client->request(
+ 'POST',
+ $this->generateUrl('admin_content_file'),
+ [
+ 'form' => [
+ '_token' => 'dummy',
+ 'create_file' => $folder,
+ 'file' => '',
+ ],
+ 'mode' => 'create',
+ 'now_dir' => $this->getUserDataDir(),
+ ]
+ );
+ $this->assertTrue($this->client->getResponse()->isSuccessful());
+ $this->assertTrue(is_dir($this->getUserDataDir().'/'.$folder));
+ $crawler = $this->client->request(
+ 'POST',
+ $this->generateUrl('admin_content_file'),
+ [
+ 'form' => [
+ '_token' => 'dummy',
+ 'create_file' => $folder,
+ 'file' => '',
+ ],
+ 'mode' => 'create',
+ 'now_dir' => $this->getUserDataDir(),
+ ]
+ );
+ $this->assertTrue($this->client->getResponse()->isSuccessful());
+ $this->assertTrue(is_dir($this->getUserDataDir().'/'.$folder));
+ $this->assertCount(1, $crawler->filter('p.errormsg'));
+ }
+
public function testIndexWithUpload()
{
$filepath1 = $this->getUserDataDir().'/../aaa.html';
diff --git a/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php b/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php
index 335ebd2ef79..0b30a3ca7f9 100644
--- a/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php
+++ b/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php
@@ -14,8 +14,10 @@
namespace Eccube\Tests\Web\Admin\Customer;
use Eccube\Entity\Master\CsvType;
+use Eccube\Entity\Master\OrderStatus;
use Eccube\Repository\BaseInfoRepository;
use Eccube\Repository\CustomerRepository;
+use Eccube\Repository\Master\OrderStatusRepository;
use Eccube\Tests\Web\Admin\AbstractAdminWebTestCase;
/**
@@ -148,11 +150,19 @@ public function testIndexWithPostSearchById()
/**
* testIndexWithPostSearchByProductName
+ *
+ * @dataProvider indexWithPostSearchByProductNameProvider
*/
- public function testIndexWithPostSearchByProductName()
+ public function testIndexWithPostSearchByProductName(int $orderStatusId, string $expected)
{
$Customer = $this->container->get(CustomerRepository::class)->findOneBy([], ['id' => 'DESC']);
$Order = $this->createOrder($Customer);
+
+ /** @var OrderStatus $OrderStatus */
+ $OrderStatus = $this->container->get(OrderStatusRepository::class)->find($orderStatusId);
+ $Order->setOrderStatus($OrderStatus);
+ $this->entityManager->flush();
+
$ProductName = $Order->getOrderItems()->filter(function ($OrderItems) {
return $OrderItems->isProduct();
})->first()->getProductName();
@@ -163,11 +173,28 @@ public function testIndexWithPostSearchByProductName()
);
$this->assertTrue($this->client->getResponse()->isSuccessful());
- $this->expected = '検索結果:1件が該当しました';
+ $this->expected = $expected;
$this->actual = $crawler->filter('div.c-outsideBlock__contents.mb-5 > span')->text();
$this->verify();
}
+ /**
+ * @return array[]
+ */
+ public function indexWithPostSearchByProductNameProvider()
+ {
+ return [
+ [OrderStatus::NEW, '検索結果:1件が該当しました'], // 新規受付
+ [OrderStatus::CANCEL, '検索結果:1件が該当しました'], // 注文取消し
+ [OrderStatus::IN_PROGRESS, '検索結果:1件が該当しました'], // 対応中
+ [OrderStatus::DELIVERED, '検索結果:1件が該当しました'], // 発送済み
+ [OrderStatus::PAID, '検索結果:1件が該当しました'], // 入金済み
+ [OrderStatus::PENDING, '検索結果:0件が該当しました'], // 決済処理中
+ [OrderStatus::PROCESSING, '検索結果:0件が該当しました'], // 購入処理中
+ [OrderStatus::RETURNED, '検索結果:1件が該当しました'], // 返品
+ ];
+ }
+
/**
* testResend
*/
diff --git a/tests/Eccube/Tests/Web/Admin/IndexControllerTest.php b/tests/Eccube/Tests/Web/Admin/IndexControllerTest.php
index 0a1459bd648..e199496275f 100644
--- a/tests/Eccube/Tests/Web/Admin/IndexControllerTest.php
+++ b/tests/Eccube/Tests/Web/Admin/IndexControllerTest.php
@@ -13,6 +13,7 @@
namespace Eccube\Tests\Web\Admin;
+use DateTime;
use Eccube\Entity\Master\OrderStatus;
use Eccube\Entity\Member;
use Eccube\Repository\Master\OrderStatusRepository;
@@ -51,12 +52,17 @@ public function testRoutingAdminChangePassword()
/**
* @see https://github.com/EC-CUBE/ec-cube/issues/1143
+ *
+ * @param int $hour
+ *
+ * @dataProvider indexWithSalesProvider
*/
- public function testIndexWithSales()
+ public function testIndexWithSales($hour)
{
$Customer = $this->createCustomer();
- $Today = new \DateTime();
- $Yesterday = new \DateTime('-1 days');
+ $Today = new DateTime();
+ $Today->setTime($hour, 0);
+ $Yesterday = new DateTime('-1 days');
$OrderNew = $this->orderStatusRepository->find(OrderStatus::NEW);
$OrderPending = $this->orderStatusRepository->find(OrderStatus::PENDING);
@@ -90,15 +96,14 @@ public function testIndexWithSales()
}
}
- $this->client->request(
+ $crawler = $this->client->request(
'GET',
$this->generateUrl('admin_homepage')
);
$this->assertTrue($this->client->getResponse()->isSuccessful());
- // TODO: Need to improve functionality sale today and this month, etc
- /* preg_match('/^¥([0-9,]+) \/ ([0-9]+)/u', trim($crawler->filter('.today_sale')->text()), $match);
+ preg_match('/^¥([0-9,]+) \/ ([0-9]+)/u', trim($crawler->filter('#chart-statistics > div.card-body > div.row:nth-child(1) > div:nth-child(2) > div')->text()), $match);
$this->expected = $todaysSales;
$this->actual = str_replace(',', '', $match[1]);
$this->verify('本日の売上');
@@ -107,57 +112,31 @@ public function testIndexWithSales()
$this->actual = str_replace(',', '', $match[2]);
$this->verify('本日の売上件数');
- preg_match('/^¥([0-9,]+) \/ ([0-9]+)/u', trim($crawler->filter('.yesterday_sale')->text()), $match);
+ preg_match('/^¥([0-9,]+) \/ ([0-9]+)/u', trim($crawler->filter('#chart-statistics > div.card-body > div.row:nth-child(1) > div:nth-child(3) > div')->text()), $match);
$this->expected = $yesterdaysSales;
$this->actual = str_replace(',', '', $match[1]);
$this->verify('昨日の売上');
$this->expected = 3;
$this->actual = str_replace(',', '', $match[2]);
- $this->verify('昨日の売上件数');*/
-
- /*
- // 当月の受注を取得する
- $firstDate = clone $Today;
- $firstDate->setDate($Today->format('Y'), $Today->format('m'), 1);
- $firstDate->setTime(0, 0 ,0);
- $endDate = clone $firstDate;
- $endDate->setDate($Today->format('Y'), $Today->format('m'), $Today->format('t'));
- $endDate->setTime(23, 59, 59);
-
- $qb = $this->orderRepository->createQueryBuilder('o');
- $qb->andWhere($qb->expr()->notIn('o.OrderStatus',
- array(
- $OrderPending->getId(),
- $OrderProcessing->getId(),
- $OrderCancel->getId()
- )))
- ->andWhere('o.order_date BETWEEN :firstDate AND :endDate')
- ->setParameters(
- array(
- 'firstDate' => $firstDate,
- 'endDate' => $endDate
- )
- );
- $MonthlyOrders = $qb->getQuery()->getResult();
-
- preg_match('/^¥([0-9,]+) \/ ([0-9]+)/u', trim($crawler->filter('.monthly_sale')->text()), $match);
- $this->expected = array_reduce( // MonthlyOrders の payment_total をすべて足す
- array_map(
- function ($Order) {
- return $Order->getPaymentTotal();
- }, $MonthlyOrders
- ),
- function ($carry, $item) {
- return $carry += $item;
- }
- );
- $this->actual = str_replace(',', '', $match[1]);
- $this->verify('今月の売上');
-
- $this->expected = count($MonthlyOrders);
- $this->actual = str_replace(',', '', $match[2]);
- $this->verify('今月の売上件数');*/
+ $this->verify('昨日の売上件数');
+
+ preg_match('/^¥([0-9,]+) \/ ([0-9]+)/u', trim($crawler->filter('#chart-statistics > div.card-body > div.row:nth-child(1) > div:nth-child(1) > div')->text()), $match);
+ $this->expected = (new DateTime('today'))->format('m') === (new DateTime('yesterday'))->format('m') ? $todaysSales + $yesterdaysSales : $todaysSales;
+ $this->actual = str_replace(',', '', $match[1]);
+ $this->verify('今月の売上');
+
+ $this->expected = (new DateTime('today'))->format('m') === (new DateTime('yesterday'))->format('m') ? 6 : 3;
+ $this->actual = str_replace(',', '', $match[2]);
+ $this->verify('今月の売上件数');
+ }
+
+ public function indexWithSalesProvider()
+ {
+ return [
+ [8],
+ [10],
+ ];
}
public function testChangePasswordWithPost()
diff --git a/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php b/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php
index db0e65faf05..e551e4ee5d4 100644
--- a/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php
+++ b/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php
@@ -16,10 +16,13 @@
use Eccube\Entity\BaseInfo;
use Eccube\Entity\Product;
use Eccube\Entity\ProductClass;
+use Eccube\Entity\ProductImage;
use Eccube\Repository\CategoryRepository;
use Eccube\Repository\ProductRepository;
use Eccube\Tests\Web\Admin\AbstractAdminWebTestCase;
use Faker\Generator;
+use Symfony\Component\Filesystem\Filesystem;
+use Symfony\Component\Finder\Finder;
use Symfony\Component\HttpFoundation\File\UploadedFile;
class CsvImportControllerTest extends AbstractAdminWebTestCase
@@ -43,6 +46,10 @@ public function setUp()
$this->categoryRepo = $this->container->get(CategoryRepository::class);
$this->filepath = __DIR__.'/products.csv';
copy(__DIR__.'/../../../../../Fixtures/products.csv', $this->filepath); // 削除されてしまうのでコピーしておく
+
+ $fs = new Filesystem();
+ $fs->mkdir($this->eccubeConfig['eccube_csv_temp_realdir']);
+ $fs->remove($this->getCsvTempFiles());
}
public function tearDown()
@@ -50,6 +57,10 @@ public function tearDown()
if (file_exists($this->filepath)) {
unlink($this->filepath);
}
+
+ $fs = new Filesystem();
+ $fs->remove($this->getCsvTempFiles());
+
parent::tearDown();
}
@@ -797,7 +808,7 @@ public function dataStatusProvider()
*
* @return \Symfony\Component\DomCrawler\Crawler
*/
- protected function scenario($bind = 'admin_product_csv_import', $original_name = 'products.csv')
+ protected function scenario($bind = 'admin_product_csv_import', $original_name = 'products.csv', $isXmlHttpRequest = false)
{
$file = new UploadedFile(
$this->filepath, // file path
@@ -817,7 +828,8 @@ protected function scenario($bind = 'admin_product_csv_import', $original_name =
'import_file' => $file,
],
],
- ['import_file' => $file]
+ ['import_file' => $file],
+ $isXmlHttpRequest ? ['HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest'] : []
);
return $crawler;
@@ -928,4 +940,163 @@ public function dataTaxRuleProvider()
[false, '', null],
];
}
+
+ /**
+ * 商品を削除する際に、他の商品画像が参照しているファイルは削除せず、それ以外は削除することをテスト
+ */
+ public function testDeleteImage()
+ {
+ /** @var \Eccube\Tests\Fixture\Generator $generator */
+ $generator = $this->container->get(\Eccube\Tests\Fixture\Generator::class);
+ $Product1 = $generator->createProduct(null, 0, 'abstract');
+ $Product2 = $generator->createProduct(null, 0, 'abstract');
+
+ $DuplicatedImage = $Product1->getProductImage()->first();
+ assert($DuplicatedImage instanceof ProductImage);
+
+ $NotDuplicatedImage = $Product1->getProductImage()->last();
+ assert($NotDuplicatedImage instanceof ProductImage);
+
+ $NewProduct2Image = new ProductImage();
+ $NewProduct2Image
+ ->setProduct($Product2)
+ ->setFileName($DuplicatedImage->getFileName())
+ ->setSortNo(999);
+ $Product2->addProductImage($NewProduct2Image);
+ $this->entityManager->persist($NewProduct2Image);
+ $this->entityManager->flush();
+
+ $csv[] = ['商品ID', '公開ステータス(ID)', '商品名', '商品削除フラグ', '販売種別(ID)', '販売価格'];
+ $csv[] = [$Product1->getId(), '1', 'hoge', '1', '1', '1000'];
+ $this->filepath = $this->createCsvFromArray($csv);
+ $this->scenario();
+
+ $dir = __DIR__ . '/../../../../../../html/upload/save_image/';
+ $this->assertTrue(file_exists($dir . $DuplicatedImage->getFileName()));
+ $this->assertFalse(file_exists($dir . $NotDuplicatedImage->getFileName()));
+ }
+
+ /**
+ * @see https://github.com/EC-CUBE/ec-cube/issues/4781
+ */
+ public function testSjisWinCsvTest()
+ {
+ // CSV生成
+ $csv = $this->createCsvAsArray();
+ $csv[1][2] = 'テスト①'; // 商品名:機種依存文字で設定
+ $csv[1][3] = 'sjis-win-test';
+ $this->filepath = $this->createCsvFromArray($csv);
+
+ // sjis-winに変換
+ $content = file_get_contents($this->filepath);
+ $content = mb_convert_encoding($content, 'sjis-win', 'UTF-8');
+ file_put_contents($this->filepath, $content);
+
+ $this->scenario();
+
+ $Product = $this->productRepo->findOneBy(['note' => 'sjis-win-test']);
+
+ // 文字化けしないことを確認
+ $this->expected = 'テスト①';
+ $this->actual = $Product->getName();
+ $this->verify();
+ }
+
+ /**
+ * @dataProvider splitCsvDataProvider
+ */
+ public function testSplitCsv($lineNo, $expecedFileNo)
+ {
+ list($header, $row) = $this->createCsvAsArray();
+ $csv = [$header];
+ for ($i = 0; $i < $lineNo; $i++) {
+ $csv[] = $row;
+ }
+ $this->filepath = $this->createCsvFromArray($csv);
+
+ $this->scenario('admin_product_csv_split', 'products.csv', true);
+
+ $response = $this->client->getResponse();
+ $this->assertTrue($response->isSuccessful());
+
+ $json = \json_decode($response->getContent(), true);
+ $this->assertTrue($json['success']);
+ $this->assertNotEmpty($json['file_name']);
+ $this->assertEquals($expecedFileNo, $json['max_file_no']);
+
+ $files = $this->getCsvTempFiles();
+ $this->assertEquals($expecedFileNo, count($files), $expecedFileNo.'ファイル生成されているはず');
+ }
+
+ public function splitCsvDataProvider()
+ {
+ return [
+ [0, 1],
+ [1, 1],
+ [99, 1],
+ [100, 1],
+ [101, 2],
+ [199, 2],
+ [200, 2],
+ [201, 3],
+ ];
+ }
+
+ public function testImportCsv()
+ {
+ $fileName = 'product.csv';
+ $fileNo = 1;
+
+ $this->filepath = $this->createCsvFromArray($this->createCsvAsArray());
+ copy($this->filepath, $this->eccubeConfig['eccube_csv_temp_realdir'].'/'.$fileName);
+
+ $this->client->request(
+ 'POST',
+ $this->generateUrl('admin_product_csv_split_import'),
+ [
+ 'file_name' => $fileName,
+ 'file_no' => $fileNo
+ ],
+ [],
+ ['HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest']
+ );
+
+ $response = $this->client->getResponse();
+ $this->assertTrue($response->isSuccessful());
+
+ $json = \json_decode($response->getContent(), true);
+ $this->assertTrue($json['success']);
+ $this->assertEquals('2行目〜2行目を登録しました', $json['success_message']);
+ }
+
+ public function testCleanupCsv()
+ {
+ $fileName = 'product.csv';
+ touch($this->eccubeConfig['eccube_csv_temp_realdir'].'/'.$fileName);
+
+ $this->client->request(
+ 'POST',
+ $this->generateUrl('admin_product_csv_split_cleanup'),
+ [
+ 'files' => [$fileName],
+ ],
+ [],
+ ['HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest']
+ );
+
+ $response = $this->client->getResponse();
+ $this->assertTrue($response->isSuccessful());
+
+ $json = \json_decode($response->getContent(), true);
+ $this->assertTrue($json['success']);
+ $this->assertFalse(file_exists($this->eccubeConfig['eccube_csv_temp_realdir'].'/'.$fileName));
+ }
+
+ private function getCsvTempFiles()
+ {
+ return Finder::create()
+ ->in($this->eccubeConfig['eccube_csv_temp_realdir'])
+ ->name('*.csv')
+ ->files();
+ }
}
diff --git a/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php b/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php
index bb9c19361e6..47f9db18e88 100644
--- a/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php
+++ b/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php
@@ -17,9 +17,11 @@
use Eccube\Entity\Master\ProductStatus;
use Eccube\Entity\Master\RoundingType;
use Eccube\Entity\ProductClass;
+use Eccube\Entity\ProductImage;
use Eccube\Entity\ProductTag;
use Eccube\Entity\Tag;
use Eccube\Entity\TaxRule;
+use Eccube\Tests\Fixture\Generator;
use Eccube\Tests\Web\Admin\AbstractAdminWebTestCase;
use Eccube\Util\StringUtil;
use Symfony\Component\DomCrawler\Crawler;
@@ -1049,4 +1051,85 @@ private function createSearchForm()
return $post;
}
+
+ /**
+ * 商品画像を削除する際に、他の商品画像が参照しているファイルは削除せず、それ以外は削除することをテスト
+ */
+ public function testDeleteImage()
+ {
+ /** @var Generator $generator */
+ $generator = $this->container->get(Generator::class);
+ $Product1 = $generator->createProduct(null, 0, 'abstract');
+ $Product2 = $generator->createProduct(null, 0, 'abstract');
+
+ $DuplicatedImage = $Product1->getProductImage()->first();
+ assert($DuplicatedImage instanceof ProductImage);
+
+ $NotDuplicatedImage = $Product1->getProductImage()->last();
+ assert($NotDuplicatedImage instanceof ProductImage);
+
+ $NewProduct2Image = new ProductImage();
+ $NewProduct2Image
+ ->setProduct($Product2)
+ ->setFileName($DuplicatedImage->getFileName())
+ ->setSortNo(999)
+ ;
+ $Product2->addProductImage($NewProduct2Image);
+ $this->entityManager->persist($NewProduct2Image);
+ $this->entityManager->flush();
+
+ $data = $this->createFormData();
+ $data['delete_images'] = $Product1->getProductImage()->map(static function (ProductImage $ProductImage) {
+ return $ProductImage->getFileName();
+ })->toArray();
+ $this->client->request(
+ 'POST',
+ $this->generateUrl('admin_product_product_edit', ['id' => $Product1->getId()]),
+ ['admin_product' => $data]
+ );
+ $this->assertTrue($this->client->getResponse()->isRedirect());
+
+ $dir = __DIR__.'/../../../../../../html/upload/save_image/';
+ $this->assertTrue(file_exists($dir . $DuplicatedImage->getFileName()));
+ $this->assertFalse(file_exists($dir . $NotDuplicatedImage->getFileName()));
+ }
+
+ public function testDeleteAndDeleteProductImage()
+ {
+ /** @var Generator $generator */
+ $generator = $this->container->get(Generator::class);
+ $Product1 = $generator->createProduct(null, 0, 'abstract');
+ $Product2 = $generator->createProduct(null, 0, 'abstract');
+
+ $DuplicatedImage = $Product1->getProductImage()->first();
+ assert($DuplicatedImage instanceof ProductImage);
+
+ $NotDuplicatedImage = $Product1->getProductImage()->last();
+ assert($NotDuplicatedImage instanceof ProductImage);
+
+ $NewProduct2Image = new ProductImage();
+ $NewProduct2Image
+ ->setProduct($Product2)
+ ->setFileName($DuplicatedImage->getFileName())
+ ->setSortNo(999)
+ ;
+ $Product2->addProductImage($NewProduct2Image);
+ $this->entityManager->persist($NewProduct2Image);
+ $this->entityManager->flush();
+
+ $params = [
+ 'id' => $Product1->getId(),
+ Constant::TOKEN_NAME => 'dummy',
+ ];
+
+ $this->client->request('DELETE', $this->generateUrl('admin_product_product_delete', $params));
+
+ $rUrl = $this->generateUrl('admin_product_page', ['page_no' => 1]).'?resume=1';
+
+ $this->assertTrue($this->client->getResponse()->isRedirect($rUrl));
+
+ $dir = __DIR__.'/../../../../../../html/upload/save_image/';
+ $this->assertTrue(file_exists($dir . $DuplicatedImage->getFileName()));
+ $this->assertFalse(file_exists($dir . $NotDuplicatedImage->getFileName()));
+ }
}
diff --git a/tests/Eccube/Tests/Web/Admin/Setting/Shop/OrderStatusControllerTest.php b/tests/Eccube/Tests/Web/Admin/Setting/Shop/OrderStatusControllerTest.php
new file mode 100644
index 00000000000..da5c8d8852e
--- /dev/null
+++ b/tests/Eccube/Tests/Web/Admin/Setting/Shop/OrderStatusControllerTest.php
@@ -0,0 +1,122 @@
+orderStatusRepository = $this->entityManager->getRepository(OrderStatus::class);
+ $this->orderStatusColorRepository = $this->entityManager->getRepository(OrderStatusColor::class);
+ $this->customerOrderStatusRepository = $this->entityManager->getRepository(CustomerOrderStatus::class);
+ }
+
+ public function testRouting()
+ {
+ $this->client->request('GET', $this->generateUrl('admin_setting_shop_order_status'));
+ $this->assertTrue($this->client->getResponse()->isSuccessful());
+ }
+
+ public function testSubmit()
+ {
+ $formData = $this->createFormData();
+ $formData['OrderStatuses'][0]['name'] = 'テスト名称(受注管理)';
+ $formData['OrderStatuses'][0]['customer_order_status_name'] = 'テスト名称(マイページ)';
+ $formData['OrderStatuses'][0]['color'] = 'テスト色';
+
+ $this->client->request('GET', $this->generateUrl('admin_setting_shop_order_status'));
+ $this->client->request(
+ 'POST',
+ $this->generateUrl('admin_setting_shop_order_status'),
+ ['form' => $formData]
+ );
+
+ $this->assertTrue($this->client->getResponse()->isRedirection());
+
+ $OrderStatus = $this->orderStatusRepository->findOneBy([], ['sort_no' => 'ASC']);
+ $CustomerOrderStatus = $this->customerOrderStatusRepository->findOneBy([], ['sort_no' => 'ASC']);
+ $OrderStatusColor = $this->orderStatusColorRepository->findOneBy([], ['sort_no' => 'ASC']);
+
+ $this->assertSame('テスト名称(受注管理)', $OrderStatus->getName());
+ $this->assertSame('テスト名称(マイページ)', $CustomerOrderStatus->getName());
+ $this->assertSame('テスト色', $OrderStatusColor->getName());
+ }
+
+ public function testSubmitWithError()
+ {
+ $formData = $this->createFormData();
+ $formData['OrderStatuses'][0]['name'] = '';
+ $formData['OrderStatuses'][0]['customer_order_status_name'] = '';
+ $formData['OrderStatuses'][0]['color'] = '';
+
+ $this->client->request('GET', $this->generateUrl('admin_setting_shop_order_status'));
+ $crawler = $this->client->request(
+ 'POST',
+ $this->generateUrl('admin_setting_shop_order_status'),
+ ['form' => $formData]
+ );
+
+ $this->assertFalse($this->client->getResponse()->isRedirection());
+ $this->assertContains('入力されていません。', $crawler->text());
+ }
+
+ private function createFormData()
+ {
+ $form = [
+ '_token' => 'dummy',
+ 'OrderStatuses' => [],
+ ];
+
+ $OrderStatuses = $this->orderStatusRepository->findBy([], ['sort_no' => 'ASC']);
+
+ foreach ($OrderStatuses as $OrderStatus) {
+ $form['OrderStatuses'][] = [
+ 'name' => $OrderStatus->getName(),
+ 'customer_order_status_name' => $this->customerOrderStatusRepository
+ ->find($OrderStatus->getId())
+ ->getName(),
+ 'color' => $this->orderStatusColorRepository
+ ->find($OrderStatus->getId())
+ ->getName(),
+ 'display_order_count' => $OrderStatus->isDisplayOrderCount() ? '1' : '',
+ ];
+ }
+
+ return $form;
+ }
+}
diff --git a/tests/Eccube/Tests/Web/Mypage/DeliveryControllerTest.php b/tests/Eccube/Tests/Web/Mypage/DeliveryControllerTest.php
index 5e383bc80ae..896937fc52c 100644
--- a/tests/Eccube/Tests/Web/Mypage/DeliveryControllerTest.php
+++ b/tests/Eccube/Tests/Web/Mypage/DeliveryControllerTest.php
@@ -157,10 +157,6 @@ public function testDelete()
$CustomerAddress = $this->container->get(CustomerAddressRepository::class)->find($id);
$this->assertNull($CustomerAddress);
-
- $this->expected = ['mypage.address.delete.complete'];
- $this->actual = $this->container->get('session')->getFlashBag()->get('eccube.front.success');
- $this->verify();
}
public function testDeleteWithFailure()
diff --git a/web.config b/web.config
index 65a30403cd4..7fe88c1d9db 100644
--- a/web.config
+++ b/web.config
@@ -56,6 +56,7 @@
+
diff --git a/zap/.gitignore b/zap/.gitignore
new file mode 100644
index 00000000000..30430fa4e05
--- /dev/null
+++ b/zap/.gitignore
@@ -0,0 +1,2 @@
+/owasp_zap_root_ca.cer
+/sessions
diff --git a/zap/.htaccess b/zap/.htaccess
new file mode 100644
index 00000000000..281d5c33db3
--- /dev/null
+++ b/zap/.htaccess
@@ -0,0 +1,2 @@
+order allow,deny
+deny from all
diff --git a/zap/Dockerfile b/zap/Dockerfile
new file mode 100644
index 00000000000..10833bc889e
--- /dev/null
+++ b/zap/Dockerfile
@@ -0,0 +1,8 @@
+FROM owasp/zap2docker-stable
+
+USER root
+RUN apt-get update \
+ && apt-get install --no-install-recommends -y \
+ fonts-noto-cjk
+
+USER zap
diff --git a/zap/README.md b/zap/README.md
new file mode 100644
index 00000000000..1841a51fe9c
--- /dev/null
+++ b/zap/README.md
@@ -0,0 +1,6 @@
+# EC-CUBE Penetration Testing with OWASP ZAP
+
+このツールは、サイトを実際に攻撃し、脆弱性が無いかを確認するツールです。
+必ずローカル環境の Docker でのみ使用し、稼動中のサイトには決して使用しないでください。
+意図せずデータが更新されたり、削除される場合があります。
+テストは自己責任で実施し、株式会社イーシーキューブ及び、関連する開発コミュニティは一切の責任を負いかねますのであらかじめご了承ください。
diff --git a/zap/admin.context b/zap/admin.context
new file mode 100644
index 00000000000..d13e9471f0d
--- /dev/null
+++ b/zap/admin.context
@@ -0,0 +1,82 @@
+
+
+
+ admin
+
+ true
+ \Qhttps://ec-cube/admin\E.*
+ \Qhttps://ec-cube/_wdt\E.*
+ \Qhttps://ec-cube/_profile\E.*
+ \Qhttps://ec-cube/html\E.*
+
+ Db.MySQL
+ Db.PostgreSQL
+ Db.SQLite
+ Language.JavaScript
+ Language.PHP
+ OS.Linux
+ OS.MacOS
+ SCM.Git
+ WS.Apache
+ Db
+ Db.CouchDB
+ Db.Firebird
+ Db.HypersonicSQL
+ Db.IBM DB2
+ Db.Microsoft Access
+ Db.Microsoft SQL Server
+ Db.MongoDB
+ Db.Oracle
+ Db.SAP MaxDB
+ Db.Sybase
+ Language
+ Language.ASP
+ Language.C
+ Language.JSP/Servlet
+ Language.Java
+ Language.Python
+ Language.Ruby
+ Language.XML
+ OS
+ OS.Windows
+ SCM
+ SCM.SVN
+ WS
+ WS.IIS
+ WS.Tomcat
+
+
+ org.zaproxy.zap.model.StandardParameterParser
+ {"kvps":"&","kvs":"=","struct":[]}
+
+
+ org.zaproxy.zap.model.StandardParameterParser
+ {"kvps":"&","kvs":"=","struct":[]}
+
+
+ 2
+ \Q<button type="submit" class="btn btn-primary btn-lg btn-block">ログイン</button>\E
+
+
+
+ 55;true;YWRtaW4=;2;YWRtaW4=~cGFzc3dvcmQ=~
+
+ 55
+
+ 0
+
+
+ 0
+
+
+
+ AND
+ -1
+
+
+
+
diff --git a/zap/containing_urls.txt b/zap/containing_urls.txt
new file mode 100644
index 00000000000..2b2fe4ba362
--- /dev/null
+++ b/zap/containing_urls.txt
@@ -0,0 +1,298 @@
+https://ec-cube/
+https://ec-cube/admin
+https://ec-cube/admin/
+https://ec-cube/admin/change_password
+https://ec-cube/admin/content
+https://ec-cube/admin/content/block
+https://ec-cube/admin/content/block/1
+https://ec-cube/admin/content/block/1/delete
+https://ec-cube/admin/content/block/1/edit
+https://ec-cube/admin/content/block/new
+https://ec-cube/admin/content/cache
+https://ec-cube/admin/content/css
+https://ec-cube/admin/content/file_delete
+https://ec-cube/admin/content/file_delete?select_file=/assets
+https://ec-cube/admin/content/file_download
+https://ec-cube/admin/content/file_download?select_file=%2Fbbb.html
+https://ec-cube/admin/content/file_manager
+https://ec-cube/admin/content/file_view
+https://ec-cube/admin/content/file_view?file=%2Fbbb.html
+https://ec-cube/admin/content/js
+https://ec-cube/admin/content/layout
+https://ec-cube/admin/content/layout/1
+https://ec-cube/admin/content/layout/1/delete
+https://ec-cube/admin/content/layout/1/edit
+https://ec-cube/admin/content/layout/1/preview
+https://ec-cube/admin/content/layout/new
+https://ec-cube/admin/content/layout/view_block
+https://ec-cube/admin/content/maintenance
+https://ec-cube/admin/content/news
+https://ec-cube/admin/content/news/1
+https://ec-cube/admin/content/news/1/delete
+https://ec-cube/admin/content/news/1/edit
+https://ec-cube/admin/content/news/new
+https://ec-cube/admin/content/news/page/1
+https://ec-cube/admin/content/page
+https://ec-cube/admin/content/page/1
+https://ec-cube/admin/content/page/1/delete
+https://ec-cube/admin/content/page/1/edit
+https://ec-cube/admin/content/page/new
+https://ec-cube/admin/customer
+https://ec-cube/admin/customer/1
+https://ec-cube/admin/customer/1/delete
+https://ec-cube/admin/customer/1/delivery
+https://ec-cube/admin/customer/1/delivery/1/delete
+https://ec-cube/admin/customer/1/delivery/1/edit
+https://ec-cube/admin/customer/1/delivery/2
+https://ec-cube/admin/customer/1/delivery/2/delete
+https://ec-cube/admin/customer/1/delivery/2/edit
+https://ec-cube/admin/customer/1/delivery/new
+https://ec-cube/admin/customer/1/edit
+https://ec-cube/admin/customer/1/resend
+https://ec-cube/admin/customer/export
+https://ec-cube/admin/customer/new
+https://ec-cube/admin/customer/page
+https://ec-cube/admin/customer/page/1
+https://ec-cube/admin/customer/page/1?resume=1
+https://ec-cube/admin/login
+https://ec-cube/admin/logout
+https://ec-cube/admin/order
+https://ec-cube/admin/order/1
+https://ec-cube/admin/order/1/edit
+https://ec-cube/admin/order/1/mail
+https://ec-cube/admin/order/bulk_delete
+https://ec-cube/admin/order/csv_template
+https://ec-cube/admin/order/export
+https://ec-cube/admin/order/export/order
+https://ec-cube/admin/order/export/pdf
+https://ec-cube/admin/order/export/pdf/download
+https://ec-cube/admin/order/export/pdf?ids%5B%5D=3
+https://ec-cube/admin/order/export/shipping
+https://ec-cube/admin/order/mail/view
+https://ec-cube/admin/order/new
+https://ec-cube/admin/order/page/1
+https://ec-cube/admin/order/search/customer/html
+https://ec-cube/admin/order/search/customer/html/page/1
+https://ec-cube/admin/order/search/customer/id
+https://ec-cube/admin/order/search/order_item_type
+https://ec-cube/admin/order/search/product
+https://ec-cube/admin/order/search/product/page/1
+https://ec-cube/admin/order/shipping_csv_upload
+https://ec-cube/admin/order?order_status_id=1
+https://ec-cube/admin/order?order_status_id=4
+https://ec-cube/admin/order?resume=1
+https://ec-cube/admin/product
+https://ec-cube/admin/product/bulk/product-status/1
+https://ec-cube/admin/product/category
+https://ec-cube/admin/product/category/1
+https://ec-cube/admin/product/category/1/delete
+https://ec-cube/admin/product/category/1/edit
+https://ec-cube/admin/product/category/export
+https://ec-cube/admin/product/category/sort_no/move
+https://ec-cube/admin/product/category_csv_upload
+https://ec-cube/admin/product/class_category
+https://ec-cube/admin/product/class_category/1
+https://ec-cube/admin/product/class_category/1/1
+https://ec-cube/admin/product/class_category/1/1/delete
+https://ec-cube/admin/product/class_category/1/1/edit
+https://ec-cube/admin/product/class_category/1/1/visibility
+https://ec-cube/admin/product/class_category/1/2
+https://ec-cube/admin/product/class_category/1/2/edit
+https://ec-cube/admin/product/class_category/1/2/visibility
+https://ec-cube/admin/product/class_category/1/3
+https://ec-cube/admin/product/class_category/1/3/edit
+https://ec-cube/admin/product/class_category/1/3/visibility
+https://ec-cube/admin/product/class_category/sort_no/move
+https://ec-cube/admin/product/class_name
+https://ec-cube/admin/product/class_name/1/delete
+https://ec-cube/admin/product/class_name/1/edit
+https://ec-cube/admin/product/class_name/sort_no/move
+https://ec-cube/admin/product/classes/1/load
+https://ec-cube/admin/product/csv_template
+https://ec-cube/admin/product/csv_template/1
+https://ec-cube/admin/product/csv_template/category
+https://ec-cube/admin/product/csv_template/product
+https://ec-cube/admin/product/export
+https://ec-cube/admin/product/page
+https://ec-cube/admin/product/page/1
+https://ec-cube/admin/product/product
+https://ec-cube/admin/product/product/1
+https://ec-cube/admin/product/product/1/copy
+https://ec-cube/admin/product/product/1/delete
+https://ec-cube/admin/product/product/1/display
+https://ec-cube/admin/product/product/1/edit
+https://ec-cube/admin/product/product/class
+https://ec-cube/admin/product/product/class/1
+https://ec-cube/admin/product/product/class/1/clear
+https://ec-cube/admin/product/product/class/1/clear?return_product_list=0
+https://ec-cube/admin/product/product/class/1?return_product_list=0
+https://ec-cube/admin/product/product/class/2
+https://ec-cube/admin/product/product/class/2?return_product_list=0
+https://ec-cube/admin/product/product/image/add
+https://ec-cube/admin/product/product/new
+https://ec-cube/admin/product/product_csv_upload
+https://ec-cube/admin/product/tag
+https://ec-cube/admin/product/tag/1/delete
+https://ec-cube/admin/product/tag/sort_no/move
+https://ec-cube/admin/sale_chart
+https://ec-cube/admin/search_customer
+https://ec-cube/admin/search_nonstock
+https://ec-cube/admin/setting
+https://ec-cube/admin/setting/shop
+https://ec-cube/admin/setting/shop/csv
+https://ec-cube/admin/setting/shop/csv/1
+https://ec-cube/admin/setting/shop/csv/2
+https://ec-cube/admin/setting/shop/csv/4
+https://ec-cube/admin/setting/shop/csv/5
+https://ec-cube/admin/setting/shop/delivery
+https://ec-cube/admin/setting/shop/delivery/1
+https://ec-cube/admin/setting/shop/delivery/1/delete
+https://ec-cube/admin/setting/shop/delivery/1/edit
+https://ec-cube/admin/setting/shop/delivery/1/visibility
+https://ec-cube/admin/setting/shop/delivery/2
+https://ec-cube/admin/setting/shop/delivery/new
+https://ec-cube/admin/setting/shop/delivery/sort_no/move
+https://ec-cube/admin/setting/shop/mail
+https://ec-cube/admin/setting/shop/mail/1
+https://ec-cube/admin/setting/shop/mail/preview
+https://ec-cube/admin/setting/shop/payment
+https://ec-cube/admin/setting/shop/payment/1
+https://ec-cube/admin/setting/shop/payment/1/delete
+https://ec-cube/admin/setting/shop/payment/1/edit
+https://ec-cube/admin/setting/shop/payment/1/visible
+https://ec-cube/admin/setting/shop/payment/image/add
+https://ec-cube/admin/setting/shop/payment/new
+https://ec-cube/admin/setting/shop/payment/sort_no/move
+https://ec-cube/admin/setting/shop/tax
+https://ec-cube/admin/setting/shop/tax/1/delete
+https://ec-cube/admin/setting/shop/tax/new
+https://ec-cube/admin/setting/system
+https://ec-cube/admin/setting/system/authority
+https://ec-cube/admin/setting/system/log
+https://ec-cube/admin/setting/system/masterdata
+https://ec-cube/admin/setting/system/masterdata/Eccube-Entity-Master-Work
+https://ec-cube/admin/setting/system/masterdata/Eccube-Entity-Master-Work/edit
+https://ec-cube/admin/setting/system/member
+https://ec-cube/admin/setting/system/member/1
+https://ec-cube/admin/setting/system/member/1/delete
+https://ec-cube/admin/setting/system/member/1/down
+https://ec-cube/admin/setting/system/member/1/edit
+https://ec-cube/admin/setting/system/member/1/up
+https://ec-cube/admin/setting/system/member/new
+https://ec-cube/admin/setting/system/security
+https://ec-cube/admin/setting/system/system
+https://ec-cube/admin/setting/system/system/phpinfo
+https://ec-cube/admin/shipping
+https://ec-cube/admin/shipping/1
+https://ec-cube/admin/shipping/1/edit
+https://ec-cube/admin/shipping/1/order_status
+https://ec-cube/admin/shipping/1/tracking_number
+https://ec-cube/admin/shipping/2
+https://ec-cube/admin/shipping/2/edit
+https://ec-cube/admin/shipping/notify_mail/1
+https://ec-cube/admin/shipping/preview_notify_mail/1
+https://ec-cube/admin/store
+https://ec-cube/admin/store/plugin
+https://ec-cube/admin/store/plugin/1/disable
+https://ec-cube/admin/store/plugin/1/enable
+https://ec-cube/admin/store/plugin/1/uninstall
+https://ec-cube/admin/store/plugin/1/update
+https://ec-cube/admin/store/plugin/api
+https://ec-cube/admin/store/plugin/api/delete/1/uninstall
+https://ec-cube/admin/store/plugin/api/install
+https://ec-cube/admin/store/plugin/api/install/1/confirm
+https://ec-cube/admin/store/plugin/api/schema_update
+https://ec-cube/admin/store/plugin/api/search
+https://ec-cube/admin/store/plugin/api/search/page
+https://ec-cube/admin/store/plugin/api/search/page/1
+https://ec-cube/admin/store/plugin/api/update
+https://ec-cube/admin/store/plugin/api/upgrade
+https://ec-cube/admin/store/plugin/api/upgrade/1/confirm
+https://ec-cube/admin/store/plugin/authentication_setting
+https://ec-cube/admin/store/plugin/install
+https://ec-cube/admin/store/template
+https://ec-cube/admin/store/template/1
+https://ec-cube/admin/store/template/1/delete
+https://ec-cube/admin/store/template/1/download
+https://ec-cube/admin/store/template/install
+https://ec-cube/block
+https://ec-cube/block/cart
+https://ec-cube/block/cart_sp
+https://ec-cube/block/search_product
+https://ec-cube/block/search_product_sp
+https://ec-cube/cart
+https://ec-cube/cart/buystep
+https://ec-cube/cart/buystep/1_1
+https://ec-cube/cart/down
+https://ec-cube/cart/down/1
+https://ec-cube/cart/down/11
+https://ec-cube/cart/remove
+https://ec-cube/cart/remove/11
+https://ec-cube/cart/up
+https://ec-cube/cart/up/1
+https://ec-cube/cart/up/11
+https://ec-cube/contact
+https://ec-cube/contact/complete
+https://ec-cube/entry
+https://ec-cube/entry/activate/xxx/1
+https://ec-cube/entry/complete
+https://ec-cube/forgot
+https://ec-cube/forgot/complete
+https://ec-cube/forgot/reset/xxx
+https://ec-cube/guide
+https://ec-cube/help
+https://ec-cube/help/about
+https://ec-cube/help/agreement
+https://ec-cube/help/privacy
+https://ec-cube/help/tradelaw
+https://ec-cube/logout
+https://ec-cube/mypage
+https://ec-cube/mypage/
+https://ec-cube/mypage/change
+https://ec-cube/mypage/change_complete
+https://ec-cube/mypage/delivery
+https://ec-cube/mypage/delivery/1
+https://ec-cube/mypage/delivery/1/delete
+https://ec-cube/mypage/delivery/1/edit
+https://ec-cube/mypage/delivery/new
+https://ec-cube/mypage/favorite
+https://ec-cube/mypage/favorite/1/delete
+https://ec-cube/mypage/history
+https://ec-cube/mypage/history/1
+https://ec-cube/mypage/history/2
+https://ec-cube/mypage/login
+https://ec-cube/mypage/order/1
+https://ec-cube/mypage/withdraw
+https://ec-cube/mypage/withdraw_complete
+https://ec-cube/products
+https://ec-cube/products/add_cart
+https://ec-cube/products/add_cart/1
+https://ec-cube/products/add_cart/2
+https://ec-cube/products/add_favorite
+https://ec-cube/products/add_favorite/1
+https://ec-cube/products/add_favorite/2
+https://ec-cube/products/detail
+https://ec-cube/products/detail/1
+https://ec-cube/products/list
+https://ec-cube/products/list?category_id&disp_number=0&mode&name&orderby=0&pageno
+https://ec-cube/products/list?category_id=6
+https://ec-cube/products/list?category_id=6&name
+https://ec-cube/robots.txt
+https://ec-cube/shopping
+https://ec-cube/shopping/checkout
+https://ec-cube/shopping/complete
+https://ec-cube/shopping/confirm
+https://ec-cube/shopping/customer
+https://ec-cube/shopping/error
+https://ec-cube/shopping/login
+https://ec-cube/shopping/nonmember
+https://ec-cube/shopping/redirect_to
+https://ec-cube/shopping/shipping
+https://ec-cube/shopping/shipping/1
+https://ec-cube/shopping/shipping/4
+https://ec-cube/shopping/shipping_edit
+https://ec-cube/shopping/shipping_edit/1
+https://ec-cube/shopping/shipping_edit/4
+https://ec-cube/shopping/shipping_multiple
+https://ec-cube/shopping/shipping_multiple_edit
+https://ec-cube/user_data/xxx
diff --git a/zap/front_guest.context b/zap/front_guest.context
new file mode 100644
index 00000000000..82b01c5fe11
--- /dev/null
+++ b/zap/front_guest.context
@@ -0,0 +1,74 @@
+
+
+
+ front_guest
+
+ true
+ \Qhttps://ec-cube\E.*
+ \Qhttps://ec-cube/_wdt\E.*
+ \Qhttps://ec-cube/_profile\E.*
+ \Qhttps://ec-cube/admin\E.*
+ \Qhttps://ec-cube/html\E.*
+
+ Db.MySQL
+ Db.PostgreSQL
+ Db.SQLite
+ Language.JavaScript
+ Language.PHP
+ OS.Linux
+ OS.MacOS
+ SCM.Git
+ WS.Apache
+ Db
+ Db.CouchDB
+ Db.Firebird
+ Db.HypersonicSQL
+ Db.IBM DB2
+ Db.Microsoft Access
+ Db.Microsoft SQL Server
+ Db.MongoDB
+ Db.Oracle
+ Db.SAP MaxDB
+ Db.Sybase
+ Language
+ Language.ASP
+ Language.C
+ Language.JSP/Servlet
+ Language.Java
+ Language.Python
+ Language.Ruby
+ Language.XML
+ OS
+ OS.Windows
+ SCM
+ SCM.SVN
+ WS
+ WS.IIS
+ WS.Tomcat
+
+
+ org.zaproxy.zap.model.StandardParameterParser
+ {"kvps":"&","kvs":"=","struct":[]}
+
+
+ org.zaproxy.zap.model.StandardParameterParser
+ {"kvps":"&","kvs":"=","struct":[]}
+
+
+ 0
+
+ -1
+
+ 0
+
+
+ 0
+
+
+
+ AND
+ -1
+
+
+
+
diff --git a/zap/front_login.context b/zap/front_login.context
new file mode 100644
index 00000000000..5d9c7496bfd
--- /dev/null
+++ b/zap/front_login.context
@@ -0,0 +1,83 @@
+
+
+
+ front_login
+
+ true
+ \Qhttps://ec-cube\E.*
+ \Qhttps://ec-cube/_wdt\E.*
+ \Qhttps://ec-cube/_profile\E.*
+ \Qhttps://ec-cube/admin\E.*
+ \Qhttps://ec-cube/html\E.*
+
+ Db.MySQL
+ Db.PostgreSQL
+ Db.SQLite
+ Language.JavaScript
+ Language.PHP
+ OS.Linux
+ OS.MacOS
+ SCM.Git
+ WS.Apache
+ Db
+ Db.CouchDB
+ Db.Firebird
+ Db.HypersonicSQL
+ Db.IBM DB2
+ Db.Microsoft Access
+ Db.Microsoft SQL Server
+ Db.MongoDB
+ Db.Oracle
+ Db.SAP MaxDB
+ Db.Sybase
+ Language
+ Language.ASP
+ Language.C
+ Language.JSP/Servlet
+ Language.Java
+ Language.Python
+ Language.Ruby
+ Language.XML
+ OS
+ OS.Windows
+ SCM
+ SCM.SVN
+ WS
+ WS.IIS
+ WS.Tomcat
+
+
+ org.zaproxy.zap.model.StandardParameterParser
+ {"kvps":"&","kvs":"=","struct":[]}
+
+
+ org.zaproxy.zap.model.StandardParameterParser
+ {"kvps":"&","kvs":"=","struct":[]}
+
+
+ 2
+ \Q<span class="ec-headerNav__itemLink">ログイン</span>\E
+
+
+
+ 110;true;emFwX3VzZXI=;2;emFwX3VzZXJAZXhhbXBsZS5jb20=~cGFzc3dvcmQ=~
+
+ 110
+
+ 0
+
+
+ 0
+
+
+
+ AND
+ -1
+
+
+
+
diff --git a/zap/options.properties b/zap/options.properties
new file mode 100644
index 00000000000..fa8445ac469
--- /dev/null
+++ b/zap/options.properties
@@ -0,0 +1,45 @@
+view.locale=ja_JP
+api.disablekey=true
+fuzz.defaultCategoryName=dirbuster
+anticsrf.tokens.token\(0\).name=_csrf_token
+anticsrf.tokens.token\(0\).enabled=true
+anticsrf.tokens.token\(1\).name=_csrf
+anticsrf.tokens.token\(1\).enabled=true
+anticsrf.tokens.token\(2\).name=_token
+anticsrf.tokens.token\(2\).enabled=true
+anticsrf.tokens.token\(3\).name=_shopping_order[_token]
+anticsrf.tokens.token\(3\).enabled=true
+anticsrf.tokens.token\(4\).name=form[_token]
+anticsrf.tokens.token\(4\).enabled=true
+anticsrf.tokens.token\(5\).name=shopping_shipping[_token]
+anticsrf.tokens.token\(5\).enabled=true
+httpsessions.tokens.token\(0\).name=eccube
+httpsessions.tokens.token\(0\).enabled=true
+httpsessions.tokens.token\(1\).name=ecsessid
+httpsessions.tokens.token\(1\).enabled=true
+httpsessions.tokens.token\(2\).name=phpsessid
+httpsessions.tokens.token\(2\).enabled=true
+## Filtering out false positives in PATH Traversal
+globalalertfilter.filters.filter\(0\).ruleid=6
+globalalertfilter.filters.filter\(0\).newrisk=-1
+globalalertfilter.filters.filter\(0\).url=https://ec-cube/products/add_cart/[0-9]+
+globalalertfilter.filters.filter\(0\).urlregex=true
+globalalertfilter.filters.filter\(0\).param=
+globalalertfilter.filters.filter\(0\).paramregex=false
+globalalertfilter.filters.filter\(0\).attack=
+globalalertfilter.filters.filter\(0\).attackregex=false
+globalalertfilter.filters.filter\(0\).evidence=
+globalalertfilter.filters.filter\(0\).evidenceregex=false
+globalalertfilter.filters.filter\(0\).enabled=true
+## Filtering out false positives in SQL Injection
+globalalertfilter.filters.filter\(1\).ruleid=40018
+globalalertfilter.filters.filter\(1\).newrisk=-1
+globalalertfilter.filters.filter\(1\).url=https://ec-cube/entry
+globalalertfilter.filters.filter\(1\).urlregex=false
+globalalertfilter.filters.filter\(1\).param=mode
+globalalertfilter.filters.filter\(1\).paramregex=false
+globalalertfilter.filters.filter\(1\).attack=confirm OR 1=1 --
+globalalertfilter.filters.filter\(1\).attackregex=false
+globalalertfilter.filters.filter\(1\).evidence=
+globalalertfilter.filters.filter\(1\).evidenceregex=false
+globalalertfilter.filters.filter\(1\).enabled=true
diff --git a/zap/selenium/ide/Manual_Inspection.side b/zap/selenium/ide/Manual_Inspection.side
new file mode 100644
index 00000000000..785e4984435
--- /dev/null
+++ b/zap/selenium/ide/Manual_Inspection.side
@@ -0,0 +1,4668 @@
+{
+ "id": "b61df7db-8ea0-4d70-84f9-0ba1ae62176c",
+ "version": "2.0",
+ "name": "[WIP]Manual_Inspection",
+ "url": "https://ec-cube",
+ "tests": [{
+ "id": "6f6ae007-51ec-4832-98cd-d625753b58c8",
+ "name": "お問い合わせ(ゲスト)",
+ "commands": [{
+ "id": "86629d3f-566b-4d16-a518-fa92cc8914aa",
+ "comment": "",
+ "command": "open",
+ "target": "/",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "799abeb3-d165-4f45-a7b3-56945a634702",
+ "comment": "",
+ "command": "setWindowSize",
+ "target": "550x691",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "3609f12a-99fa-4cbe-8e03-584800f723b7",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=お問い合わせ",
+ "targets": [
+ ["linkText=お問い合わせ", "linkText"],
+ ["css=.ec-footerNavi__link:nth-child(4) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'お問い合わせ')]", "xpath:link"],
+ ["xpath=//body[@id='page_homepage']/div/div[3]/div/div/ul/li[4]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/contact')]", "xpath:href"],
+ ["xpath=//li[4]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'お問い合わせ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "b8bf8918-df16-4274-911e-e565a9a4d7ae",
+ "comment": "",
+ "command": "click",
+ "target": "id=contact_name_name01",
+ "targets": [
+ ["id=contact_name_name01", "id"],
+ ["name=contact[name][name01]", "name"],
+ ["css=#contact_name_name01", "css:finder"],
+ ["xpath=//input[@id='contact_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "3e668f89-5fe7-4312-a73d-184e835a048a",
+ "comment": "",
+ "command": "type",
+ "target": "id=contact_name_name01",
+ "targets": [
+ ["id=contact_name_name01", "id"],
+ ["name=contact[name][name01]", "name"],
+ ["css=#contact_name_name01", "css:finder"],
+ ["xpath=//input[@id='contact_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": "石"
+ }, {
+ "id": "32f32ca8-e327-4520-91f9-e1b1ea7c59d1",
+ "comment": "",
+ "command": "type",
+ "target": "id=contact_name_name02",
+ "targets": [
+ ["id=contact_name_name02", "id"],
+ ["name=contact[name][name02]", "name"],
+ ["css=#contact_name_name02", "css:finder"],
+ ["xpath=//input[@id='contact_name_name02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//input[2]", "xpath:position"]
+ ],
+ "value": "九部"
+ }, {
+ "id": "1198c988-8f33-413e-a9c3-dedef0ef5ce6",
+ "comment": "",
+ "command": "type",
+ "target": "id=contact_kana_kana01",
+ "targets": [
+ ["id=contact_kana_kana01", "id"],
+ ["name=contact[kana][kana01]", "name"],
+ ["css=#contact_kana_kana01", "css:finder"],
+ ["xpath=//input[@id='contact_kana_kana01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input", "xpath:position"]
+ ],
+ "value": "イシ"
+ }, {
+ "id": "33f49c39-4740-4b76-903e-0f4854f46b9e",
+ "comment": "",
+ "command": "type",
+ "target": "id=contact_kana_kana02",
+ "targets": [
+ ["id=contact_kana_kana02", "id"],
+ ["name=contact[kana][kana02]", "name"],
+ ["css=#contact_kana_kana02", "css:finder"],
+ ["xpath=//input[@id='contact_kana_kana02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"]
+ ],
+ "value": "キューブ"
+ }, {
+ "id": "11b592f1-d1e9-4dd4-8325-239d83e21ed9",
+ "comment": "",
+ "command": "type",
+ "target": "id=contact_postal_code",
+ "targets": [
+ ["id=contact_postal_code", "id"],
+ ["name=contact[postal_code]", "name"],
+ ["css=#contact_postal_code", "css:finder"],
+ ["xpath=//input[@id='contact_postal_code']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[3]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[3]/dd/div/input", "xpath:position"]
+ ],
+ "value": "5300001"
+ }, {
+ "id": "19125959-ef21-47de-a785-ff1279c04462",
+ "comment": "",
+ "command": "click",
+ "target": "id=contact_address_addr02",
+ "targets": [
+ ["id=contact_address_addr02", "id"],
+ ["name=contact[address][addr02]", "name"],
+ ["css=#contact_address_addr02", "css:finder"],
+ ["xpath=//input[@id='contact_address_addr02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[3]/dd/div[5]/input", "xpath:idRelative"],
+ ["xpath=//div[5]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d18ada44-d811-4f21-9793-64912b7e1270",
+ "comment": "",
+ "command": "type",
+ "target": "id=contact_address_addr02",
+ "targets": [
+ ["id=contact_address_addr02", "id"],
+ ["name=contact[address][addr02]", "name"],
+ ["css=#contact_address_addr02", "css:finder"],
+ ["xpath=//input[@id='contact_address_addr02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[3]/dd/div[5]/input", "xpath:idRelative"],
+ ["xpath=//div[5]/input", "xpath:position"]
+ ],
+ "value": "2"
+ }, {
+ "id": "a82efb35-ce33-4c1f-a6cd-0cb8e2ee9295",
+ "comment": "",
+ "command": "type",
+ "target": "id=contact_phone_number",
+ "targets": [
+ ["id=contact_phone_number", "id"],
+ ["name=contact[phone_number]", "name"],
+ ["css=#contact_phone_number", "css:finder"],
+ ["xpath=//input[@id='contact_phone_number']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[4]/dd/div/input", "xpath:position"]
+ ],
+ "value": "999999999"
+ }, {
+ "id": "8c3f7f60-8ad2-4545-bacb-aac96db1c16b",
+ "comment": "",
+ "command": "type",
+ "target": "id=contact_email",
+ "targets": [
+ ["id=contact_email", "id"],
+ ["name=contact[email]", "name"],
+ ["css=#contact_email", "css:finder"],
+ ["xpath=//input[@id='contact_email']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[5]/dd/div/input", "xpath:position"]
+ ],
+ "value": "ec-cube@example.com"
+ }, {
+ "id": "025a6b1f-6045-42e8-9383-547c5687af15",
+ "comment": "",
+ "command": "type",
+ "target": "id=contact_contents",
+ "targets": [
+ ["id=contact_contents", "id"],
+ ["name=contact[contents]", "name"],
+ ["css=#contact_contents", "css:finder"],
+ ["xpath=//textarea[@id='contact_contents']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[6]/dd/div/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": "お問い合わせのテスト"
+ }, {
+ "id": "5dd75e4b-b1fb-440a-ae66-88c38e4210f3",
+ "comment": "",
+ "command": "click",
+ "target": "name=mode",
+ "targets": [
+ ["name=mode", "name"],
+ ["css=.ec-blockBtn--action", "css:finder"],
+ ["xpath=//button[@name='mode']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'確認ページへ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "9da4d740-a0ba-46fa-8e04-d9202b857a33",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,321.73333740234375)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "400b2277-307d-49ee-b2e2-01ddf5011dbc",
+ "comment": "",
+ "command": "click",
+ "target": "name=mode",
+ "targets": [
+ ["name=mode", "name"],
+ ["css=.ec-blockBtn--action", "css:finder"],
+ ["xpath=//button[@name='mode']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'送信する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "477f1fcc-32b5-4de3-9f87-1282ba6f7138",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=トップページへ",
+ "targets": [
+ ["linkText=トップページへ", "linkText"],
+ ["css=.ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"],
+ ["xpath=//body[@id='page_contact_complete']/div/div[2]/div/div[2]/div/div/div[3]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"],
+ ["xpath=//div[3]/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }]
+ }, {
+ "id": "66cf94f2-7d92-4ff6-92dc-fb7800f0fff0",
+ "name": "会員登録",
+ "commands": [{
+ "id": "23595b69-8bfa-43f1-8dd0-c6089ce1cbc0",
+ "comment": "",
+ "command": "open",
+ "target": "/",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "181fe481-c484-433d-8db1-40c725416e09",
+ "comment": "",
+ "command": "setWindowSize",
+ "target": "550x691",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "92948061-39a4-46ea-ac2b-01b85fe7b704",
+ "comment": "",
+ "command": "click",
+ "target": "css=a > .fa-user",
+ "targets": [
+ ["css=a > .fa-user", "css:finder"],
+ ["xpath=//body[@id='page_homepage']/div/div/div/div[2]/div/div/div/a/i", "xpath:idRelative"],
+ ["xpath=//a/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "4831eaaf-551f-4b03-a501-9947044b191a",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_name_name01",
+ "targets": [
+ ["id=entry_name_name01", "id"],
+ ["name=entry[name][name01]", "name"],
+ ["css=#entry_name_name01", "css:finder"],
+ ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "318739af-014c-492a-9b3f-ccab5f05a5ca",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_name_name01",
+ "targets": [
+ ["id=entry_name_name01", "id"],
+ ["name=entry[name][name01]", "name"],
+ ["css=#entry_name_name01", "css:finder"],
+ ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": "石"
+ }, {
+ "id": "8ee4754e-a218-46bf-90c3-4e1c866dab76",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_name_name02",
+ "targets": [
+ ["id=entry_name_name02", "id"],
+ ["name=entry[name][name02]", "name"],
+ ["css=#entry_name_name02", "css:finder"],
+ ["xpath=//input[@id='entry_name_name02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//input[2]", "xpath:position"]
+ ],
+ "value": "九部"
+ }, {
+ "id": "07a2537b-9fa8-4adc-bcd3-7bc59c36ff62",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_kana_kana01",
+ "targets": [
+ ["id=entry_kana_kana01", "id"],
+ ["name=entry[kana][kana01]", "name"],
+ ["css=#entry_kana_kana01", "css:finder"],
+ ["xpath=//input[@id='entry_kana_kana01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input", "xpath:position"]
+ ],
+ "value": "イーシー"
+ }, {
+ "id": "f0e21e5a-ffa1-4dba-8f9a-7695d0ac355b",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_kana_kana02",
+ "targets": [
+ ["id=entry_kana_kana02", "id"],
+ ["name=entry[kana][kana02]", "name"],
+ ["css=#entry_kana_kana02", "css:finder"],
+ ["xpath=//input[@id='entry_kana_kana02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"]
+ ],
+ "value": "キューブ"
+ }, {
+ "id": "d9ece77a-6717-43a2-8972-0f2b7d595882",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_company_name",
+ "targets": [
+ ["id=entry_company_name", "id"],
+ ["name=entry[company_name]", "name"],
+ ["css=#entry_company_name", "css:finder"],
+ ["xpath=//input[@id='entry_company_name']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[3]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[3]/dd/div/input", "xpath:position"]
+ ],
+ "value": "イーシーキューブ株式会社"
+ }, {
+ "id": "d7d41110-146e-49e4-835f-0618cc4f7947",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_postal_code",
+ "targets": [
+ ["id=entry_postal_code", "id"],
+ ["name=entry[postal_code]", "name"],
+ ["css=#entry_postal_code", "css:finder"],
+ ["xpath=//input[@id='entry_postal_code']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[4]/dd/div/input", "xpath:position"]
+ ],
+ "value": "5300001"
+ }, {
+ "id": "23682210-277e-4d3a-919f-cbb65682f97e",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_address_addr02",
+ "targets": [
+ ["id=entry_address_addr02", "id"],
+ ["name=entry[address][addr02]", "name"],
+ ["css=#entry_address_addr02", "css:finder"],
+ ["xpath=//input[@id='entry_address_addr02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "95501c92-e9aa-4947-b429-29ef1f08793a",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_address_addr02",
+ "targets": [
+ ["id=entry_address_addr02", "id"],
+ ["name=entry[address][addr02]", "name"],
+ ["css=#entry_address_addr02", "css:finder"],
+ ["xpath=//input[@id='entry_address_addr02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/input", "xpath:position"]
+ ],
+ "value": "1"
+ }, {
+ "id": "ece5b2e9-d52d-4dd4-8af7-5d020413b2fc",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_phone_number",
+ "targets": [
+ ["id=entry_phone_number", "id"],
+ ["name=entry[phone_number]", "name"],
+ ["css=#entry_phone_number", "css:finder"],
+ ["xpath=//input[@id='entry_phone_number']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[5]/dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "db5b482b-ce0a-4959-8e70-374195fd7b3d",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_phone_number",
+ "targets": [
+ ["id=entry_phone_number", "id"],
+ ["name=entry[phone_number]", "name"],
+ ["css=#entry_phone_number", "css:finder"],
+ ["xpath=//input[@id='entry_phone_number']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[5]/dd/div/input", "xpath:position"]
+ ],
+ "value": "111222333"
+ }, {
+ "id": "d658ebdb-9156-4ff5-98e2-346886a88ef1",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_email_first",
+ "targets": [
+ ["id=entry_email_first", "id"],
+ ["name=entry[email][first]", "name"],
+ ["css=#entry_email_first", "css:finder"],
+ ["xpath=//input[@id='entry_email_first']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[6]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[6]/dd/div/input", "xpath:position"]
+ ],
+ "value": "zap_user_guest@example.com"
+ }, {
+ "id": "f114f89e-9650-4eca-8411-c4fb95a97667",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_email_second",
+ "targets": [
+ ["id=entry_email_second", "id"],
+ ["name=entry[email][second]", "name"],
+ ["css=#entry_email_second", "css:finder"],
+ ["xpath=//input[@id='entry_email_second']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[6]/dd/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[2]/input", "xpath:position"]
+ ],
+ "value": "zap_user_guest@example.com"
+ }, {
+ "id": "dc48d3fe-ab2e-45a1-a507-4091fe298b88",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_password_first",
+ "targets": [
+ ["id=entry_password_first", "id"],
+ ["name=entry[password][first]", "name"],
+ ["css=#entry_password_first", "css:finder"],
+ ["xpath=//input[@id='entry_password_first']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[7]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[7]/dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "dc6782b2-a6fe-445e-a689-b6bf84c1df7a",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_password_first",
+ "targets": [
+ ["id=entry_password_first", "id"],
+ ["name=entry[password][first]", "name"],
+ ["css=#entry_password_first", "css:finder"],
+ ["xpath=//input[@id='entry_password_first']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[7]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[7]/dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "b7f41a3b-4aa7-4e86-85a2-238dfa82fbbe",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=entry_password_first",
+ "targets": [
+ ["id=entry_password_first", "id"],
+ ["name=entry[password][first]", "name"],
+ ["css=#entry_password_first", "css:finder"],
+ ["xpath=//input[@id='entry_password_first']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[7]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[7]/dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "bae078eb-d27a-43b6-9e20-0f9af2a11eab",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_password_first",
+ "targets": [
+ ["id=entry_password_first", "id"],
+ ["name=entry[password][first]", "name"],
+ ["css=#entry_password_first", "css:finder"],
+ ["xpath=//input[@id='entry_password_first']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[7]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[7]/dd/div/input", "xpath:position"]
+ ],
+ "value": "password"
+ }, {
+ "id": "4cfc914e-9ead-4605-acf5-6f8c4c897d3d",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_password_second",
+ "targets": [
+ ["id=entry_password_second", "id"],
+ ["name=entry[password][second]", "name"],
+ ["css=#entry_password_second", "css:finder"],
+ ["xpath=//input[@id='entry_password_second']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[7]/dd/div[2]/input", "xpath:idRelative"],
+ ["xpath=//dl[7]/dd/div[2]/input", "xpath:position"]
+ ],
+ "value": "password"
+ }, {
+ "id": "d7f75b96-9762-4a25-abbd-00257559b5a4",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_birth_year",
+ "targets": [
+ ["id=entry_birth_year", "id"],
+ ["name=entry[birth][year]", "name"],
+ ["css=#entry_birth_year", "css:finder"],
+ ["xpath=//select[@id='entry_birth_year']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[8]/dd/div/select", "xpath:idRelative"],
+ ["xpath=//dl[8]/dd/div/select", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "74966ade-1768-4767-8899-b776b5e5e502",
+ "comment": "",
+ "command": "select",
+ "target": "id=entry_birth_year",
+ "targets": [],
+ "value": "label=2006"
+ }, {
+ "id": "d2d2927c-baec-4cdf-9858-74baeaf46f8d",
+ "comment": "",
+ "command": "click",
+ "target": "css=#entry_birth_year > option:nth-child(16)",
+ "targets": [
+ ["css=#entry_birth_year > option:nth-child(16)", "css:finder"],
+ ["xpath=//option[@value='2006']", "xpath:attributes"],
+ ["xpath=//select[@id='entry_birth_year']/option[16]", "xpath:idRelative"],
+ ["xpath=//dl[8]/dd/div/select/option[16]", "xpath:position"],
+ ["xpath=//option[contains(.,'2006')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "9bcbf068-0477-417c-a861-cc9a50fa06e6",
+ "comment": "",
+ "command": "select",
+ "target": "id=entry_birth_month",
+ "targets": [],
+ "value": "label=09"
+ }, {
+ "id": "bf710817-929c-45bd-98d8-18526892cb1f",
+ "comment": "",
+ "command": "click",
+ "target": "css=#entry_birth_month > option:nth-child(10)",
+ "targets": [
+ ["css=#entry_birth_month > option:nth-child(10)", "css:finder"],
+ ["xpath=(//option[@value='9'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='entry_birth_month']/option[10]", "xpath:idRelative"],
+ ["xpath=//select[2]/option[10]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "14e3301b-fdd1-4adc-9ff0-0c83065376b6",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_birth_day",
+ "targets": [
+ ["id=entry_birth_day", "id"],
+ ["name=entry[birth][day]", "name"],
+ ["css=#entry_birth_day", "css:finder"],
+ ["xpath=//select[@id='entry_birth_day']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[8]/dd/div/select[3]", "xpath:idRelative"],
+ ["xpath=//select[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "cd8bac99-386a-425f-9ed8-87fbce2bc672",
+ "comment": "",
+ "command": "select",
+ "target": "id=entry_birth_day",
+ "targets": [],
+ "value": "label=01"
+ }, {
+ "id": "458e630a-8e56-4e7e-b752-e9647cf7dd9d",
+ "comment": "",
+ "command": "click",
+ "target": "css=#entry_birth_day > option:nth-child(3)",
+ "targets": [
+ ["css=#entry_birth_day > option:nth-child(3)", "css:finder"],
+ ["xpath=(//option[@value='2'])[4]", "xpath:attributes"],
+ ["xpath=//select[@id='entry_birth_day']/option[3]", "xpath:idRelative"],
+ ["xpath=//select[3]/option[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "95f8a601-1824-422d-b074-99b8dfe47c42",
+ "comment": "",
+ "command": "click",
+ "target": "css=dl:nth-child(9) > dt",
+ "targets": [
+ ["css=dl:nth-child(9) > dt", "css:finder"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[9]/dt", "xpath:idRelative"],
+ ["xpath=//dl[9]/dt", "xpath:position"],
+ ["xpath=//dt[contains(.,'性別')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "4f8b90a2-ebd7-4777-a4a8-f84dfd37ee28",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "css=dl:nth-child(9) > dt",
+ "targets": [
+ ["css=dl:nth-child(9) > dt", "css:finder"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[9]/dt", "xpath:idRelative"],
+ ["xpath=//dl[9]/dt", "xpath:position"],
+ ["xpath=//dt[contains(.,'性別')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "3676bfcd-fd2c-4912-b8c2-faf298e7eed2",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_birth_day",
+ "targets": [
+ ["id=entry_birth_day", "id"],
+ ["name=entry[birth][day]", "name"],
+ ["css=#entry_birth_day", "css:finder"],
+ ["xpath=//select[@id='entry_birth_day']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[8]/dd/div/select[3]", "xpath:idRelative"],
+ ["xpath=//select[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "b536c971-0179-41fe-915f-90b9502710e2",
+ "comment": "",
+ "command": "click",
+ "target": "css=#entry_birth_day > option:nth-child(2)",
+ "targets": [
+ ["css=#entry_birth_day > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[4]", "xpath:attributes"],
+ ["xpath=//select[@id='entry_birth_day']/option[2]", "xpath:idRelative"],
+ ["xpath=//select[3]/option[2]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "764d9ae5-5dbf-4b65-9e2a-dac7eabeb031",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_sex_1",
+ "targets": [
+ ["id=entry_sex_1", "id"],
+ ["name=entry[sex]", "name"],
+ ["css=#entry_sex_1", "css:finder"],
+ ["xpath=//input[@id='entry_sex_1']", "xpath:attributes"],
+ ["xpath=//div[@id='entry_sex']/input", "xpath:idRelative"],
+ ["xpath=//dd/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d0fbae16-ed4d-42af-91f0-6a4e995d1552",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_job",
+ "targets": [
+ ["id=entry_job", "id"],
+ ["name=entry[job]", "name"],
+ ["css=#entry_job", "css:finder"],
+ ["xpath=//select[@id='entry_job']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[10]/dd/div/select", "xpath:idRelative"],
+ ["xpath=//dl[10]/dd/div/select", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "287d3856-8c51-4919-9a43-1e82e424918f",
+ "comment": "",
+ "command": "select",
+ "target": "id=entry_job",
+ "targets": [],
+ "value": "label=コンピューター関連技術職"
+ }, {
+ "id": "1ffbf02e-d0e8-40a6-a5fc-907de557d3cc",
+ "comment": "",
+ "command": "click",
+ "target": "css=#entry_job > option:nth-child(4)",
+ "targets": [
+ ["css=#entry_job > option:nth-child(4)", "css:finder"],
+ ["xpath=(//option[@value='3'])[5]", "xpath:attributes"],
+ ["xpath=//select[@id='entry_job']/option[4]", "xpath:idRelative"],
+ ["xpath=//dl[10]/dd/div/select/option[4]", "xpath:position"],
+ ["xpath=//option[contains(.,'コンピューター関連技術職')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "43b4a397-a20b-4bd2-8bda-777dc3018bac",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_user_policy_check",
+ "targets": [
+ ["id=entry_user_policy_check", "id"],
+ ["name=entry[user_policy_check]", "name"],
+ ["css=#entry_user_policy_check", "css:finder"],
+ ["xpath=//input[@id='entry_user_policy_check']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/div/label/input", "xpath:idRelative"],
+ ["xpath=//label/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "5edafe12-8150-4ada-8bb7-b94a734cda28",
+ "comment": "",
+ "command": "click",
+ "target": "name=mode",
+ "targets": [
+ ["name=mode", "name"],
+ ["css=.ec-blockBtn--action", "css:finder"],
+ ["xpath=//button[@name='mode']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'同意する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "0f1cf0e2-00c1-43a3-b0c7-d32f2bab912b",
+ "comment": "",
+ "command": "click",
+ "target": "name=mode",
+ "targets": [
+ ["name=mode", "name"],
+ ["css=.ec-blockBtn--action", "css:finder"],
+ ["xpath=//button[@name='mode']", "xpath:attributes"],
+ ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'会員登録をする')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "02e550bf-3ac1-49b4-aaf2-2cfaa0f37fb9",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=トップページへ",
+ "targets": [
+ ["linkText=トップページへ", "linkText"],
+ ["css=.ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"],
+ ["xpath=//body[@id='page_entry_complete']/div/div[2]/div/div[2]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"],
+ ["xpath=//div[2]/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }]
+ }, {
+ "id": "fd31340c-5aec-4d58-805a-73208678455d",
+ "name": "商品購入(複数配送先)(ゲスト)",
+ "commands": [{
+ "id": "540d5907-b46b-40b6-bf0e-f38f1b3eff0e",
+ "comment": "",
+ "command": "open",
+ "target": "/",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "b8081b77-b274-4760-a667-b4622a1a8a75",
+ "comment": "",
+ "command": "setWindowSize",
+ "target": "1025x692",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "a7d0c8f1-5b48-421a-aefd-8a3e56be57eb",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新入荷",
+ "targets": [
+ ["linkText=新入荷", "linkText"],
+ ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"],
+ ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"],
+ ["xpath=//li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "1b8b6ff7-60d6-4cd8-8949-18b9c79d6f7b",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/div/button", "xpath:idRelative"],
+ ["xpath=//li/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "2068611f-d9a1-401b-8594-f9311fa956e1",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-inlineBtn--cancel",
+ "targets": [
+ ["css=.ec-inlineBtn--cancel", "css:finder"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/label", "xpath:idRelative"],
+ ["xpath=//div[2]/div/label", "xpath:position"],
+ ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e7b4767c-3ad1-4a8f-8e3c-c8d7e535e41a",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id11",
+ "targets": [],
+ "value": "label=チョコ"
+ }, {
+ "id": "d083c0e9-8aae-404a-8087-8938981aba6c",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id11 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id11 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[4]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id11']/option[2]", "xpath:idRelative"],
+ ["xpath=//li[2]/form/div/div/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "08771f2e-818c-42e8-81be-7451161349b8",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id21",
+ "targets": [],
+ "value": "label=16mm × 16mm"
+ }, {
+ "id": "2d18f3a0-ef2f-4bf8-bdd6-25359e6ff5f1",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id21 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id21 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='4'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id21']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'16mm × 16mm')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "da4c6cac-c4b9-4fad-8d9b-aa2484ad2936",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[3]", "xpath:attributes"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/div/button", "xpath:idRelative"],
+ ["xpath=//li[2]/div/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "e497e2c1-aa63-42f6-8d1a-735bd7d9d900",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=カートへ進む",
+ "targets": [
+ ["linkText=カートへ進む", "linkText"],
+ ["css=.ec-inlineBtn--action", "css:finder"],
+ ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"],
+ ["xpath=//div[3]/div/div/div[2]/div/a", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "cc2b585e-7823-488d-9a1e-d590312bb7ef",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=お買い物を続ける",
+ "targets": [
+ ["linkText=お買い物を続ける", "linkText"],
+ ["css=.ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'お買い物を続ける')]", "xpath:link"],
+ ["xpath=//form[@id='form_cart']/div[3]/a[2]", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, '/')])[21]", "xpath:href"],
+ ["xpath=//form/div[3]/a[2]", "xpath:position"],
+ ["xpath=//a[contains(.,'お買い物を続ける')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "058cede7-fc6e-445e-8675-960ea14b8117",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新入荷",
+ "targets": [
+ ["linkText=新入荷", "linkText"],
+ ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"],
+ ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"],
+ ["xpath=//li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "de2f220c-0698-45fe-8268-3b2ca2b84f96",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(1) img",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(1) img", "css:finder"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/a/p/img", "xpath:idRelative"],
+ ["xpath=//p/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "4559e33d-641f-4d56-839c-6fe14782328e",
+ "comment": "",
+ "command": "click",
+ "target": "css=.add-cart",
+ "targets": [
+ ["css=.add-cart", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "f384c38f-4a62-408f-83c1-9cfffb595508",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-inlineBtn--cancel",
+ "targets": [
+ ["css=.ec-inlineBtn--cancel", "css:finder"],
+ ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[5]/div/div/div[2]/div/label", "xpath:idRelative"],
+ ["xpath=//div[2]/div/label", "xpath:position"],
+ ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "6753a4a0-908a-489c-9c1b-a09eae6553e7",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新入荷",
+ "targets": [
+ ["linkText=新入荷", "linkText"],
+ ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"],
+ ["xpath=//body[@id='page_product_detail']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"],
+ ["xpath=//li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "df050400-12fd-42f5-99b7-8d57e4f495f6",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(2) img",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(2) img", "css:finder"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/a/p/img", "xpath:idRelative"],
+ ["xpath=//li[2]/a/p/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "79e7757a-d4dd-4b18-a63a-8c72e9cb5171",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-productRole__actions",
+ "targets": [
+ ["css=.ec-productRole__actions", "css:finder"],
+ ["xpath=//form[@id='form1']/div", "xpath:idRelative"],
+ ["xpath=//div[2]/div/form/div", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "9bd4b2b3-bb3d-4139-b014-b07dad666406",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id1",
+ "targets": [],
+ "value": "label=チョコ"
+ }, {
+ "id": "5ebf0d35-4b14-4cb8-8bfd-d52558f933f5",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id1 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id1 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id1']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/div/form/div/div/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "936cf3f8-978b-48f0-840e-8047d782ede2",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id2",
+ "targets": [],
+ "value": "label=64cm × 64cm"
+ }, {
+ "id": "1d317c1c-3b21-4ca7-b4ab-3a768f23db87",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id2 > option:nth-child(4)",
+ "targets": [
+ ["css=#classcategory_id2 > option:nth-child(4)", "css:finder"],
+ ["xpath=(//option[@value='6'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id2']/option[4]", "xpath:idRelative"],
+ ["xpath=//div[2]/select/option[4]", "xpath:position"],
+ ["xpath=//option[contains(.,'64cm × 64cm')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "a7e45c5e-19bc-4685-9d82-7e6f5c285687",
+ "comment": "",
+ "command": "click",
+ "target": "css=.add-cart",
+ "targets": [
+ ["css=.add-cart", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "5f7e0221-e585-42fa-bd16-3cb9df23487a",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=カートへ進む",
+ "targets": [
+ ["linkText=カートへ進む", "linkText"],
+ ["css=.ec-inlineBtn--action", "css:finder"],
+ ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"],
+ ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[6]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"],
+ ["xpath=//div[6]/div/div/div[2]/div/a", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "43e3d9fd-6b7f-402e-a991-a3886b47776f",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=レジに進む",
+ "targets": [
+ ["linkText=レジに進む", "linkText"],
+ ["css=.ec-blockBtn--action:nth-child(2)", "css:finder"],
+ ["xpath=//a[contains(text(),'レジに進む')]", "xpath:link"],
+ ["xpath=//form[@id='form_cart']/div[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '/cart/buystep/mC5FAu4iD1fimOf2y1YjmWqaarUDbIPB_1')]", "xpath:href"],
+ ["xpath=//form/div[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'レジに進む')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "6e935de1-f68c-4e7f-87d8-9019f3eb083f",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=ゲスト購入",
+ "targets": [
+ ["linkText=ゲスト購入", "linkText"],
+ ["css=.ec-guest__actions > .ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'ゲスト購入')]", "xpath:link"],
+ ["xpath=//body[@id='page_shopping_login']/div/div[2]/div/div[2]/div/div[2]/div/div/div/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/shopping/nonmember')]", "xpath:href"],
+ ["xpath=//div[2]/div/div[2]/div/div/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'ゲスト購入')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "b39cddd1-9070-45af-834a-11ac241159cd",
+ "comment": "",
+ "command": "click",
+ "target": "id=nonmember_name_name01",
+ "targets": [
+ ["id=nonmember_name_name01", "id"],
+ ["name=nonmember[name][name01]", "name"],
+ ["css=#nonmember_name_name01", "css:finder"],
+ ["xpath=//input[@id='nonmember_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "9ac270d6-0bb4-4509-84cf-2ee206bd2e84",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_name_name01",
+ "targets": [
+ ["id=nonmember_name_name01", "id"],
+ ["name=nonmember[name][name01]", "name"],
+ ["css=#nonmember_name_name01", "css:finder"],
+ ["xpath=//input[@id='nonmember_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": "石"
+ }, {
+ "id": "547fbb97-487e-4a02-9a12-176dc853baec",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_name_name02",
+ "targets": [
+ ["id=nonmember_name_name02", "id"],
+ ["name=nonmember[name][name02]", "name"],
+ ["css=#nonmember_name_name02", "css:finder"],
+ ["xpath=//input[@id='nonmember_name_name02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//input[2]", "xpath:position"]
+ ],
+ "value": "九部"
+ }, {
+ "id": "bf1fb79e-7d05-41cb-b08c-a123f7258f60",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_kana_kana01",
+ "targets": [
+ ["id=nonmember_kana_kana01", "id"],
+ ["name=nonmember[kana][kana01]", "name"],
+ ["css=#nonmember_kana_kana01", "css:finder"],
+ ["xpath=//input[@id='nonmember_kana_kana01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input", "xpath:position"]
+ ],
+ "value": "イシ"
+ }, {
+ "id": "bc8391da-ff81-4fa1-baa3-e551b7db6a3c",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_kana_kana02",
+ "targets": [
+ ["id=nonmember_kana_kana02", "id"],
+ ["name=nonmember[kana][kana02]", "name"],
+ ["css=#nonmember_kana_kana02", "css:finder"],
+ ["xpath=//input[@id='nonmember_kana_kana02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"]
+ ],
+ "value": "キューブ"
+ }, {
+ "id": "1e075c31-2a34-4978-8572-f182c26cab0b",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_company_name",
+ "targets": [
+ ["id=nonmember_company_name", "id"],
+ ["name=nonmember[company_name]", "name"],
+ ["css=#nonmember_company_name", "css:finder"],
+ ["xpath=//input[@id='nonmember_company_name']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[3]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[3]/dd/div/input", "xpath:position"]
+ ],
+ "value": "イーシーキューブ株式会社"
+ }, {
+ "id": "549e10dd-f72d-4772-a010-b92ce1623081",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,307.79998779296875)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "52eb11b7-3cbc-40a8-a46c-69f1c4af576c",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_postal_code",
+ "targets": [
+ ["id=nonmember_postal_code", "id"],
+ ["name=nonmember[postal_code]", "name"],
+ ["css=#nonmember_postal_code", "css:finder"],
+ ["xpath=//input[@id='nonmember_postal_code']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[4]/dd/div/input", "xpath:position"]
+ ],
+ "value": "5300001"
+ }, {
+ "id": "bd11f3fc-e7dd-4825-8ace-2cd791f537cc",
+ "comment": "",
+ "command": "click",
+ "target": "id=nonmember_address_addr02",
+ "targets": [
+ ["id=nonmember_address_addr02", "id"],
+ ["name=nonmember[address][addr02]", "name"],
+ ["css=#nonmember_address_addr02", "css:finder"],
+ ["xpath=//input[@id='nonmember_address_addr02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "666eaff3-5420-4b68-8a9a-27debb5043d1",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_address_addr02",
+ "targets": [
+ ["id=nonmember_address_addr02", "id"],
+ ["name=nonmember[address][addr02]", "name"],
+ ["css=#nonmember_address_addr02", "css:finder"],
+ ["xpath=//input[@id='nonmember_address_addr02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/input", "xpath:position"]
+ ],
+ "value": "1"
+ }, {
+ "id": "b193faf5-82a9-4c07-8e48-e16c9ab5ea71",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_phone_number",
+ "targets": [
+ ["id=nonmember_phone_number", "id"],
+ ["name=nonmember[phone_number]", "name"],
+ ["css=#nonmember_phone_number", "css:finder"],
+ ["xpath=//input[@id='nonmember_phone_number']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[5]/dd/div/input", "xpath:position"]
+ ],
+ "value": "999000999"
+ }, {
+ "id": "22030840-f78e-4b6b-b1e3-32b30322dc3c",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_email_first",
+ "targets": [
+ ["id=nonmember_email_first", "id"],
+ ["name=nonmember[email][first]", "name"],
+ ["css=#nonmember_email_first", "css:finder"],
+ ["xpath=//input[@id='nonmember_email_first']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[6]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[6]/dd/div/input", "xpath:position"]
+ ],
+ "value": "ec-cube@example.com"
+ }, {
+ "id": "f43cc971-2a42-45c6-905f-e7e682419aee",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_email_second",
+ "targets": [
+ ["id=nonmember_email_second", "id"],
+ ["name=nonmember[email][second]", "name"],
+ ["css=#nonmember_email_second", "css:finder"],
+ ["xpath=//input[@id='nonmember_email_second']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[6]/dd/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[2]/input", "xpath:position"]
+ ],
+ "value": "ec-cube@example.com"
+ }, {
+ "id": "66314fa9-ecc4-44d0-be72-883ea5838387",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-off4Grid__cell > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-off4Grid__cell > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'次へ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "1e0b709c-41c5-44dc-a547-01b7440da09f",
+ "comment": "",
+ "command": "click",
+ "target": "id=customer",
+ "targets": [
+ ["id=customer", "id"],
+ ["css=#customer", "css:finder"],
+ ["xpath=//button[@id='customer']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'変更')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "4c779894-bb75-4472-b498-8cd6d95d6d05",
+ "comment": "",
+ "command": "click",
+ "target": "id=edit8",
+ "targets": [
+ ["id=edit8", "id"],
+ ["css=#edit8", "css:finder"],
+ ["xpath=//input[@id='edit8']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div/div[4]/dl[4]/dd/div[4]/span/input", "xpath:idRelative"],
+ ["xpath=//div[4]/span/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "981cde73-3b38-4905-a60e-a8e00bf6bd1a",
+ "comment": "",
+ "command": "click",
+ "target": "id=edit8",
+ "targets": [
+ ["id=edit8", "id"],
+ ["css=#edit8", "css:finder"],
+ ["xpath=//input[@id='edit8']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div/div[4]/dl[4]/dd/div[4]/span/input", "xpath:idRelative"],
+ ["xpath=//div[4]/span/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "8e2bdc66-fdbb-40cb-b446-10a525ec45a8",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=edit8",
+ "targets": [
+ ["id=edit8", "id"],
+ ["css=#edit8", "css:finder"],
+ ["xpath=//input[@id='edit8']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div/div[4]/dl[4]/dd/div[4]/span/input", "xpath:idRelative"],
+ ["xpath=//div[4]/span/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "9514f969-2867-4b35-bc8f-d91d8e87b437",
+ "comment": "",
+ "command": "type",
+ "target": "id=edit8",
+ "targets": [
+ ["id=edit8", "id"],
+ ["css=#edit8", "css:finder"],
+ ["xpath=//input[@id='edit8']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div/div[4]/dl[4]/dd/div[4]/span/input", "xpath:idRelative"],
+ ["xpath=//div[4]/span/input", "xpath:position"]
+ ],
+ "value": "2"
+ }, {
+ "id": "e587fd22-de96-42e8-ad8d-e87edca73562",
+ "comment": "",
+ "command": "click",
+ "target": "css=#customer-ok > .ec-inlineBtn",
+ "targets": [
+ ["css=#customer-ok > .ec-inlineBtn", "css:finder"],
+ ["xpath=(//button[@type='button'])[2]", "xpath:attributes"],
+ ["xpath=//span[@id='customer-ok']/button", "xpath:idRelative"],
+ ["xpath=//span/button", "xpath:position"],
+ ["xpath=//button[contains(.,'OK')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "d35eebb9-534a-442e-b2c6-2cc40c9ae4c3",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-orderDelivery__edit > .ec-inlineBtn",
+ "targets": [
+ ["css=.ec-orderDelivery__edit > .ec-inlineBtn", "css:finder"],
+ ["xpath=(//button[@type='button'])[4]", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[2]/div[6]/button", "xpath:idRelative"],
+ ["xpath=//div[6]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'お届け先を追加する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "2bcabdc4-868a-47bd-83ec-8a90990ce48d",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新規お届け先を追加する",
+ "targets": [
+ ["linkText=新規お届け先を追加する", "linkText"],
+ ["css=.btn:nth-child(1)", "css:finder"],
+ ["xpath=//a[contains(text(),'新規お届け先を追加する')]", "xpath:link"],
+ ["xpath=//form[@id='shipping-multiple-form']/div[2]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/shopping/shipping_multiple_edit')]", "xpath:href"],
+ ["xpath=//form/div[2]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新規お届け先を追加する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e74b948d-687a-401a-a82b-b3f9f103d213",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_shipping_name_name01",
+ "targets": [
+ ["id=shopping_shipping_name_name01", "id"],
+ ["name=shopping_shipping[name][name01]", "name"],
+ ["css=#shopping_shipping_name_name01", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "66bd6a03-080e-4374-b441-e0af20d9870f",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_name_name01",
+ "targets": [
+ ["id=shopping_shipping_name_name01", "id"],
+ ["name=shopping_shipping[name][name01]", "name"],
+ ["css=#shopping_shipping_name_name01", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": "石井"
+ }, {
+ "id": "89e1e885-6c12-4aaa-b915-fa5a7708d2ef",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_name_name02",
+ "targets": [
+ ["id=shopping_shipping_name_name02", "id"],
+ ["name=shopping_shipping[name][name02]", "name"],
+ ["css=#shopping_shipping_name_name02", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_name_name02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//input[2]", "xpath:position"]
+ ],
+ "value": "球部"
+ }, {
+ "id": "3af6d3a3-2b6a-4af2-81b5-61c4fe48da3f",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_kana_kana01",
+ "targets": [
+ ["id=shopping_shipping_kana_kana01", "id"],
+ ["name=shopping_shipping[kana][kana01]", "name"],
+ ["css=#shopping_shipping_kana_kana01", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_kana_kana01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input", "xpath:position"]
+ ],
+ "value": "イシイ"
+ }, {
+ "id": "8c4f4f06-1e3f-41a9-8720-4e0519a483b2",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_kana_kana02",
+ "targets": [
+ ["id=shopping_shipping_kana_kana02", "id"],
+ ["name=shopping_shipping[kana][kana02]", "name"],
+ ["css=#shopping_shipping_kana_kana02", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_kana_kana02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"]
+ ],
+ "value": "キュウブ"
+ }, {
+ "id": "43c4009f-5d30-460e-b137-e75ea993a7e3",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_company_name",
+ "targets": [
+ ["id=shopping_shipping_company_name", "id"],
+ ["name=shopping_shipping[company_name]", "name"],
+ ["css=#shopping_shipping_company_name", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_company_name']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[3]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[3]/dd/div/input", "xpath:position"]
+ ],
+ "value": "イーシーキューブ"
+ }, {
+ "id": "7e8e8c1e-da4a-43c2-851e-6a8f16892a0a",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_postal_code",
+ "targets": [
+ ["id=shopping_shipping_postal_code", "id"],
+ ["name=shopping_shipping[postal_code]", "name"],
+ ["css=#shopping_shipping_postal_code", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_postal_code']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[4]/dd/div/input", "xpath:position"]
+ ],
+ "value": "5430001"
+ }, {
+ "id": "b49c6802-f3ea-4df2-9ec1-b5e6f11ee2f3",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,301.4666748046875)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "8fbe895b-7d8e-4394-8e3a-9b899bfa2bf0",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_address_addr02",
+ "targets": [
+ ["id=shopping_shipping_address_addr02", "id"],
+ ["name=shopping_shipping[address][addr02]", "name"],
+ ["css=#shopping_shipping_address_addr02", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_address_addr02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/input", "xpath:position"]
+ ],
+ "value": "1"
+ }, {
+ "id": "cdef8fb1-bb60-49f4-8fca-f2b1c24ab350",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_phone_number",
+ "targets": [
+ ["id=shopping_shipping_phone_number", "id"],
+ ["name=shopping_shipping[phone_number]", "name"],
+ ["css=#shopping_shipping_phone_number", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_phone_number']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[5]/dd/div/input", "xpath:position"]
+ ],
+ "value": "333333333"
+ }, {
+ "id": "11771814-8bb3-44ae-9837-c816e956d2b5",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-off4Grid__cell > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-off4Grid__cell > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "f07d254f-6f03-4682-bc42-60b36e4da49a",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.ec-off4Grid__cell > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-off4Grid__cell > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "4c8b4f91-1ee7-4cb9-bf6c-df055d2aa788",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "css=.ec-off4Grid__cell > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-off4Grid__cell > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "64d91569-47c8-431d-b65a-f8f464a66154",
+ "comment": "",
+ "command": "click",
+ "target": "id=button__add0",
+ "targets": [
+ ["id=button__add0", "id"],
+ ["css=#button__add0", "css:finder"],
+ ["xpath=//button[@id='button__add0']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__add_button0']/button", "xpath:idRelative"],
+ ["xpath=//div[3]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'お届け先追加')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "95ae615e-ae89-4a5c-987b-79ea2b81154f",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "id=button__add0",
+ "targets": [
+ ["id=button__add0", "id"],
+ ["css=#button__add0", "css:finder"],
+ ["xpath=//button[@id='button__add0']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__add_button0']/button", "xpath:idRelative"],
+ ["xpath=//div[3]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'お届け先追加')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "2e3c839f-2fb5-498d-8a8a-64efda8006ae",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "id=button__add0",
+ "targets": [
+ ["id=button__add0", "id"],
+ ["css=#button__add0", "css:finder"],
+ ["xpath=//button[@id='button__add0']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__add_button0']/button", "xpath:idRelative"],
+ ["xpath=//div[3]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'お届け先追加')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "0c08e1b4-fbff-42ed-abf9-d244caf462a3",
+ "comment": "",
+ "command": "select",
+ "target": "id=form_shipping_multiple_0_shipping_1_customer_address",
+ "targets": [],
+ "value": "label=石井 大阪府 大阪市天王寺区上本町 1"
+ }, {
+ "id": "8cdd101b-9a2a-49b6-a9b7-e112288919a9",
+ "comment": "",
+ "command": "click",
+ "target": "css=#form_shipping_multiple_0_shipping_1_customer_address > option:nth-child(2)",
+ "targets": [
+ ["css=#form_shipping_multiple_0_shipping_1_customer_address > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[3]", "xpath:attributes"],
+ ["xpath=//select[@id='form_shipping_multiple_0_shipping_1_customer_address']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/select/option[2]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d55f7ac6-0ac3-48c3-9a3d-cad2c960fecc",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shipping_multiple_0_shipping_0_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_0_shipping_0_quantity", "id"],
+ ["name=form[shipping_multiple][0][shipping][0][quantity]", "name"],
+ ["css=#form_shipping_multiple_0_shipping_0_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_0_shipping_0_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--0_0']/div/input", "xpath:idRelative"],
+ ["xpath=//div/div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "52e1e064-a825-495c-958a-0575ce9f472c",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shipping_multiple_0_shipping_0_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_0_shipping_0_quantity", "id"],
+ ["name=form[shipping_multiple][0][shipping][0][quantity]", "name"],
+ ["css=#form_shipping_multiple_0_shipping_0_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_0_shipping_0_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--0_0']/div/input", "xpath:idRelative"],
+ ["xpath=//div/div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "3728c2b8-6780-4266-bb74-a96ff2ccd084",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=form_shipping_multiple_0_shipping_0_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_0_shipping_0_quantity", "id"],
+ ["name=form[shipping_multiple][0][shipping][0][quantity]", "name"],
+ ["css=#form_shipping_multiple_0_shipping_0_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_0_shipping_0_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--0_0']/div/input", "xpath:idRelative"],
+ ["xpath=//div/div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "07d2480b-3171-4900-8b13-c0933da9fd16",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shipping_multiple_0_shipping_0_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_0_shipping_0_quantity", "id"],
+ ["name=form[shipping_multiple][0][shipping][0][quantity]", "name"],
+ ["css=#form_shipping_multiple_0_shipping_0_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_0_shipping_0_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--0_0']/div/input", "xpath:idRelative"],
+ ["xpath=//div/div[2]/div/input", "xpath:position"]
+ ],
+ "value": "1"
+ }, {
+ "id": "a45fbbad-72b2-446f-b51a-eccfb02de5dc",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shipping_multiple_0_shipping_1_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_0_shipping_1_quantity", "id"],
+ ["name=form[shipping_multiple][0][shipping][1][quantity]", "name"],
+ ["css=#form_shipping_multiple_0_shipping_1_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_0_shipping_1_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--0_1']/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "020b74d7-05dd-4aac-b1f6-8d3d75d12070",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shipping_multiple_0_shipping_1_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_0_shipping_1_quantity", "id"],
+ ["name=form[shipping_multiple][0][shipping][1][quantity]", "name"],
+ ["css=#form_shipping_multiple_0_shipping_1_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_0_shipping_1_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--0_1']/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "6f02e61f-3fb1-4ad8-8e16-b63fbec5539d",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=form_shipping_multiple_0_shipping_1_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_0_shipping_1_quantity", "id"],
+ ["name=form[shipping_multiple][0][shipping][1][quantity]", "name"],
+ ["css=#form_shipping_multiple_0_shipping_1_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_0_shipping_1_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--0_1']/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "2baa344c-b882-4b0c-8d46-64110ebf8868",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shipping_multiple_0_shipping_1_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_0_shipping_1_quantity", "id"],
+ ["name=form[shipping_multiple][0][shipping][1][quantity]", "name"],
+ ["css=#form_shipping_multiple_0_shipping_1_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_0_shipping_1_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--0_1']/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/input", "xpath:position"]
+ ],
+ "value": "1"
+ }, {
+ "id": "40c962e7-1382-4ad1-aef0-af2c0329ff4d",
+ "comment": "",
+ "command": "click",
+ "target": "id=multiple_list__add_button0",
+ "targets": [
+ ["id=multiple_list__add_button0", "id"],
+ ["css=#multiple_list__add_button0", "css:finder"],
+ ["xpath=//div[@id='multiple_list__add_button0']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__item_box--0']/div[3]", "xpath:idRelative"],
+ ["xpath=//div[3]/div[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "3e85f362-daf4-4eca-b476-be320e98033f",
+ "comment": "",
+ "command": "click",
+ "target": "id=button__confirm",
+ "targets": [
+ ["id=button__confirm", "id"],
+ ["css=#button__confirm", "css:finder"],
+ ["xpath=//button[@id='button__confirm']", "xpath:attributes"],
+ ["xpath=//form[@id='shipping-multiple-form']/div[6]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[6]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'選択したお届け先に送る')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "aa42fcc6-4c92-48c4-a272-31d3c5bf9d86",
+ "comment": "",
+ "command": "click",
+ "target": "css=div:nth-child(3) > label > span",
+ "targets": [
+ ["css=div:nth-child(3) > label > span", "css:finder"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[3]/div[2]/div[3]/label/span", "xpath:idRelative"],
+ ["xpath=//div[3]/label/span", "xpath:position"],
+ ["xpath=//span[contains(.,'銀行振込')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "94c9b1aa-8717-4e46-ab78-8fd5e501c2b0",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_order_message",
+ "targets": [
+ ["id=shopping_order_message", "id"],
+ ["name=_shopping_order[message]", "name"],
+ ["css=#shopping_order_message", "css:finder"],
+ ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "79a8ca7b-8ac0-4344-a07f-2ec5ba79f74c",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_order_message",
+ "targets": [
+ ["id=shopping_order_message", "id"],
+ ["name=_shopping_order[message]", "name"],
+ ["css=#shopping_order_message", "css:finder"],
+ ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": "複数配送のテスト"
+ }, {
+ "id": "4bba4cfe-d220-46b1-b99e-c4786428b8f7",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-totalBox__btn > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[3]/button", "xpath:idRelative"],
+ ["xpath=//div[3]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'確認する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "64e51550-5f7d-4fda-91cd-ef9abd4bb580",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-totalBox__btn > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[3]/button", "xpath:idRelative"],
+ ["xpath=//div[3]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'注文する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "510b04db-272d-405c-b0f4-0618e4d5e39e",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=トップページへ",
+ "targets": [
+ ["linkText=トップページへ", "linkText"],
+ ["css=.ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"],
+ ["xpath=//body[@id='page_shopping_complete']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"],
+ ["xpath=//div[2]/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }]
+ }, {
+ "id": "6e49bc53-4dbc-4e3a-802b-dfc0473463a4",
+ "name": "商品購入(ゲスト)",
+ "commands": [{
+ "id": "76813b94-ab73-4d68-869f-5354f06f771c",
+ "comment": "",
+ "command": "open",
+ "target": "/",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "4a947343-8c18-4603-8413-48d08b9e7226",
+ "comment": "",
+ "command": "setWindowSize",
+ "target": "1160x692",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "c411ae09-71ec-414c-8c20-d0c4ea224bc2",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新入荷",
+ "targets": [
+ ["linkText=新入荷", "linkText"],
+ ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"],
+ ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"],
+ ["xpath=//li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "ec3a1799-4e4e-463a-855a-857b0f2b90fe",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/div/button", "xpath:idRelative"],
+ ["xpath=//li/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "dc085baa-7941-4953-9c71-ffb5a7a0352e",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=カートへ進む",
+ "targets": [
+ ["linkText=カートへ進む", "linkText"],
+ ["css=.ec-inlineBtn--action", "css:finder"],
+ ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"],
+ ["xpath=//div[3]/div/div/div[2]/div/a", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "a03f5ffa-3b91-40ce-9b92-d605e8b42e25",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=お買い物を続ける",
+ "targets": [
+ ["linkText=お買い物を続ける", "linkText"],
+ ["css=.ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'お買い物を続ける')]", "xpath:link"],
+ ["xpath=//form[@id='form_cart']/div[3]/a[2]", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, '/')])[17]", "xpath:href"],
+ ["xpath=//div[3]/a[2]", "xpath:position"],
+ ["xpath=//a[contains(.,'お買い物を続ける')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "7f323ab2-0564-411e-8e67-7ecad0536aeb",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新入荷",
+ "targets": [
+ ["linkText=新入荷", "linkText"],
+ ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"],
+ ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"],
+ ["xpath=//li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "1835e757-7e24-497d-bc94-f06440510c27",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,316.6666564941406)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "c281340c-0f34-40e6-8812-33627a658b23",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id11",
+ "targets": [],
+ "value": "label=チョコ"
+ }, {
+ "id": "fd2373ca-e970-416f-bdd5-3c8f426b1bf0",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id11 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id11 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[4]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id11']/option[2]", "xpath:idRelative"],
+ ["xpath=//li[2]/form/div/div/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "398fe89f-efbe-4861-a0de-0d6ec105cce2",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id21",
+ "targets": [],
+ "value": "label=16mm × 16mm"
+ }, {
+ "id": "8b426bf1-8252-4657-ad2e-cde76f3afe9c",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id21 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id21 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='4'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id21']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'16mm × 16mm')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "f0c73e3f-7934-4556-906f-7cffe278c78c",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[3]", "xpath:attributes"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/div/button", "xpath:idRelative"],
+ ["xpath=//li[2]/div/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "b1a30a61-2ced-41ed-992e-471036e28756",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=カートへ進む",
+ "targets": [
+ ["linkText=カートへ進む", "linkText"],
+ ["css=.ec-inlineBtn--action", "css:finder"],
+ ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"],
+ ["xpath=//div[3]/div/div/div[2]/div/a", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "179b6934-11cc-44be-b84b-4f19ee756ea0",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=お買い物を続ける",
+ "targets": [
+ ["linkText=お買い物を続ける", "linkText"],
+ ["css=.ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'お買い物を続ける')]", "xpath:link"],
+ ["xpath=//form[@id='form_cart']/div[3]/a[2]", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, '/')])[21]", "xpath:href"],
+ ["xpath=//form/div[3]/a[2]", "xpath:position"],
+ ["xpath=//a[contains(.,'お買い物を続ける')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "d9b3fdca-c706-40b1-bc2e-844a18dbb347",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新入荷",
+ "targets": [
+ ["linkText=新入荷", "linkText"],
+ ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"],
+ ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"],
+ ["xpath=//li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "2f74d531-6cca-4d3a-938c-3fd3d9061e07",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,300.20001220703125)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "99423da2-5c78-40f1-b54a-7d1d0b7d0785",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(1) img",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(1) img", "css:finder"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/a/p/img", "xpath:idRelative"],
+ ["xpath=//p/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "71da5e0a-c8ae-42e0-ba80-11ed6a19c6ca",
+ "comment": "",
+ "command": "click",
+ "target": "css=.add-cart",
+ "targets": [
+ ["css=.add-cart", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "261a5918-a916-4f9a-a488-bf3c13d542d6",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-inlineBtn--cancel",
+ "targets": [
+ ["css=.ec-inlineBtn--cancel", "css:finder"],
+ ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[5]/div/div/div[2]/div/label", "xpath:idRelative"],
+ ["xpath=//div[2]/div/label", "xpath:position"],
+ ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "47a05c92-af74-4c25-9fd5-eaff2ad1d10c",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新入荷",
+ "targets": [
+ ["linkText=新入荷", "linkText"],
+ ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"],
+ ["xpath=//body[@id='page_product_detail']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"],
+ ["xpath=//li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "945c0ff8-3710-4321-8d21-eb1dea96bd32",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(2) img",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(2) img", "css:finder"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/a/p/img", "xpath:idRelative"],
+ ["xpath=//li[2]/a/p/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "c84e7074-9572-433d-acf4-234894670909",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,312.8666687011719)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "2967c6f4-2d72-4f7b-af3c-d855d4459231",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id1",
+ "targets": [],
+ "value": "label=バニラ"
+ }, {
+ "id": "bce8d9b1-1015-4e40-a2b9-6a4d476bcb34",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id1 > option:nth-child(4)",
+ "targets": [
+ ["css=#classcategory_id1 > option:nth-child(4)", "css:finder"],
+ ["xpath=(//option[@value='3'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id1']/option[4]", "xpath:idRelative"],
+ ["xpath=//div[2]/div/form/div/div/select/option[4]", "xpath:position"],
+ ["xpath=//option[contains(.,'バニラ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "2e49db80-2d2a-472d-9e53-06a7847d4ba0",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id2",
+ "targets": [],
+ "value": "label=64cm × 64cm"
+ }, {
+ "id": "a84c30c8-7e7f-470a-8cc3-961f356b12ef",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id2 > option:nth-child(4)",
+ "targets": [
+ ["css=#classcategory_id2 > option:nth-child(4)", "css:finder"],
+ ["xpath=(//option[@value='6'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id2']/option[4]", "xpath:idRelative"],
+ ["xpath=//div[2]/select/option[4]", "xpath:position"],
+ ["xpath=//option[contains(.,'64cm × 64cm')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "0776f560-74de-4c79-9427-a114079f2d3e",
+ "comment": "",
+ "command": "click",
+ "target": "css=.add-cart",
+ "targets": [
+ ["css=.add-cart", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "b7f60f11-b8b9-4782-8c7d-93ae56370775",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=カートへ進む",
+ "targets": [
+ ["linkText=カートへ進む", "linkText"],
+ ["css=.ec-inlineBtn--action", "css:finder"],
+ ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"],
+ ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[6]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"],
+ ["xpath=//div[6]/div/div/div[2]/div/a", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "21c887e1-10af-4b3b-947e-f5c024f911c0",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img",
+ "targets": [
+ ["css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img", "css:finder"],
+ ["xpath=(//img[@alt='increase'])[2]", "xpath:img"],
+ ["xpath=//form[@id='form_cart']/div/div/ul[2]/li[3]/div[3]/a/span/img", "xpath:idRelative"],
+ ["xpath=//ul[2]/li[3]/div[3]/a/span/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "1a077328-7d24-43da-8cfc-4c63725336f7",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-cartRow:nth-child(3) .ec-cartRow__amountDownButton img",
+ "targets": [
+ ["css=.ec-cartRow:nth-child(3) .ec-cartRow__amountDownButton img", "css:finder"],
+ ["xpath=(//img[@alt='reduce'])[2]", "xpath:img"],
+ ["xpath=//form[@id='form_cart']/div/div/ul[2]/li[3]/div[3]/a/span/img", "xpath:idRelative"],
+ ["xpath=//ul[2]/li[3]/div[3]/a/span/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "c818362c-d737-4e3a-9e76-c01a08815425",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=レジに進む",
+ "targets": [
+ ["linkText=レジに進む", "linkText"],
+ ["css=.ec-blockBtn--action:nth-child(2)", "css:finder"],
+ ["xpath=//a[contains(text(),'レジに進む')]", "xpath:link"],
+ ["xpath=//form[@id='form_cart']/div[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '/cart/buystep/kR3Ty6253q4UR3zb7Ut4PgtUjhKHe80A_1')]", "xpath:href"],
+ ["xpath=//form/div[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'レジに進む')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "9d13ea23-89d8-4a32-a732-ccb5d0a9df84",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=ゲスト購入",
+ "targets": [
+ ["linkText=ゲスト購入", "linkText"],
+ ["css=.ec-guest__actions > .ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'ゲスト購入')]", "xpath:link"],
+ ["xpath=//body[@id='page_shopping_login']/div/div[2]/div/div[2]/div/div[2]/div/div/div/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/shopping/nonmember')]", "xpath:href"],
+ ["xpath=//div[2]/div/div[2]/div/div/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'ゲスト購入')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "aaa1a397-227b-4946-b0b9-51f8eaf978aa",
+ "comment": "",
+ "command": "click",
+ "target": "id=nonmember_name_name01",
+ "targets": [
+ ["id=nonmember_name_name01", "id"],
+ ["name=nonmember[name][name01]", "name"],
+ ["css=#nonmember_name_name01", "css:finder"],
+ ["xpath=//input[@id='nonmember_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d7c876ea-88a8-4480-812d-a08bb398ec5c",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_name_name01",
+ "targets": [
+ ["id=nonmember_name_name01", "id"],
+ ["name=nonmember[name][name01]", "name"],
+ ["css=#nonmember_name_name01", "css:finder"],
+ ["xpath=//input[@id='nonmember_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": "石"
+ }, {
+ "id": "2aeb2d44-6063-4a71-a49d-6581154d4c7f",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_name_name02",
+ "targets": [
+ ["id=nonmember_name_name02", "id"],
+ ["name=nonmember[name][name02]", "name"],
+ ["css=#nonmember_name_name02", "css:finder"],
+ ["xpath=//input[@id='nonmember_name_name02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//input[2]", "xpath:position"]
+ ],
+ "value": "九部"
+ }, {
+ "id": "347e87c0-b06f-4867-963a-9abea690f1ec",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_kana_kana01",
+ "targets": [
+ ["id=nonmember_kana_kana01", "id"],
+ ["name=nonmember[kana][kana01]", "name"],
+ ["css=#nonmember_kana_kana01", "css:finder"],
+ ["xpath=//input[@id='nonmember_kana_kana01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input", "xpath:position"]
+ ],
+ "value": "イシ"
+ }, {
+ "id": "a46ddd68-cb83-4634-b7ec-b561e781b0ac",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_kana_kana02",
+ "targets": [
+ ["id=nonmember_kana_kana02", "id"],
+ ["name=nonmember[kana][kana02]", "name"],
+ ["css=#nonmember_kana_kana02", "css:finder"],
+ ["xpath=//input[@id='nonmember_kana_kana02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"]
+ ],
+ "value": "キューブ"
+ }, {
+ "id": "222002ae-26c0-42db-85e4-ba9b773e1116",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_company_name",
+ "targets": [
+ ["id=nonmember_company_name", "id"],
+ ["name=nonmember[company_name]", "name"],
+ ["css=#nonmember_company_name", "css:finder"],
+ ["xpath=//input[@id='nonmember_company_name']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[3]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[3]/dd/div/input", "xpath:position"]
+ ],
+ "value": "イーシーキューブ株式会社"
+ }, {
+ "id": "8f311a9c-362f-47f6-aea6-477458d28745",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,331.8666687011719)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "a163b3f6-b17e-4197-993f-bd910f07570c",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_postal_code",
+ "targets": [
+ ["id=nonmember_postal_code", "id"],
+ ["name=nonmember[postal_code]", "name"],
+ ["css=#nonmember_postal_code", "css:finder"],
+ ["xpath=//input[@id='nonmember_postal_code']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[4]/dd/div/input", "xpath:position"]
+ ],
+ "value": "5300001"
+ }, {
+ "id": "f14f7d34-4931-4e44-8708-ded025ef29eb",
+ "comment": "",
+ "command": "click",
+ "target": "css=dl:nth-child(4) > dd",
+ "targets": [
+ ["css=dl:nth-child(4) > dd", "css:finder"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd", "xpath:idRelative"],
+ ["xpath=//dl[4]/dd", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "3e2ae78b-4567-448b-adc1-16eda580e20f",
+ "comment": "",
+ "command": "click",
+ "target": "id=nonmember_address_addr02",
+ "targets": [
+ ["id=nonmember_address_addr02", "id"],
+ ["name=nonmember[address][addr02]", "name"],
+ ["css=#nonmember_address_addr02", "css:finder"],
+ ["xpath=//input[@id='nonmember_address_addr02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "77d4700b-73fa-4680-9c6d-7812c30619d4",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_address_addr02",
+ "targets": [
+ ["id=nonmember_address_addr02", "id"],
+ ["name=nonmember[address][addr02]", "name"],
+ ["css=#nonmember_address_addr02", "css:finder"],
+ ["xpath=//input[@id='nonmember_address_addr02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/input", "xpath:position"]
+ ],
+ "value": "1"
+ }, {
+ "id": "eff693af-ee3c-4c40-b0ec-cde64d173307",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-telInput",
+ "targets": [
+ ["css=.ec-telInput", "css:finder"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[5]/dd/div", "xpath:idRelative"],
+ ["xpath=//dl[5]/dd/div", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "acc45c0b-f706-4cee-ac34-2930671ceed6",
+ "comment": "",
+ "command": "click",
+ "target": "id=nonmember_phone_number",
+ "targets": [
+ ["id=nonmember_phone_number", "id"],
+ ["name=nonmember[phone_number]", "name"],
+ ["css=#nonmember_phone_number", "css:finder"],
+ ["xpath=//input[@id='nonmember_phone_number']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[5]/dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "1baadf51-024b-49f9-ae16-a4a5d973331c",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_phone_number",
+ "targets": [
+ ["id=nonmember_phone_number", "id"],
+ ["name=nonmember[phone_number]", "name"],
+ ["css=#nonmember_phone_number", "css:finder"],
+ ["xpath=//input[@id='nonmember_phone_number']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[5]/dd/div/input", "xpath:position"]
+ ],
+ "value": "333333333"
+ }, {
+ "id": "3cd29b40-347c-4379-9dbb-333ab5116d28",
+ "comment": "",
+ "command": "click",
+ "target": "id=nonmember_email_first",
+ "targets": [
+ ["id=nonmember_email_first", "id"],
+ ["name=nonmember[email][first]", "name"],
+ ["css=#nonmember_email_first", "css:finder"],
+ ["xpath=//input[@id='nonmember_email_first']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[6]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[6]/dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "514b790f-05ee-4811-93a9-53f07492b28c",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_email_first",
+ "targets": [
+ ["id=nonmember_email_first", "id"],
+ ["name=nonmember[email][first]", "name"],
+ ["css=#nonmember_email_first", "css:finder"],
+ ["xpath=//input[@id='nonmember_email_first']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[6]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[6]/dd/div/input", "xpath:position"]
+ ],
+ "value": "ec-cube@example.com"
+ }, {
+ "id": "f700349e-fcf8-46b0-8e0a-cd7987b1ff13",
+ "comment": "",
+ "command": "click",
+ "target": "id=nonmember_email_second",
+ "targets": [
+ ["id=nonmember_email_second", "id"],
+ ["name=nonmember[email][second]", "name"],
+ ["css=#nonmember_email_second", "css:finder"],
+ ["xpath=//input[@id='nonmember_email_second']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[6]/dd/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "25ba77e4-467a-4e4d-bb5c-f4413dc609f9",
+ "comment": "",
+ "command": "type",
+ "target": "id=nonmember_email_second",
+ "targets": [
+ ["id=nonmember_email_second", "id"],
+ ["name=nonmember[email][second]", "name"],
+ ["css=#nonmember_email_second", "css:finder"],
+ ["xpath=//input[@id='nonmember_email_second']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[6]/dd/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[2]/input", "xpath:position"]
+ ],
+ "value": "ec-cube@example.com"
+ }, {
+ "id": "f2f10548-1d67-44bf-9482-3ee49e98e0a4",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-off4Grid__cell > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-off4Grid__cell > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'次へ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "94af36da-b820-4d8e-a114-7f442c7d3c30",
+ "comment": "",
+ "command": "click",
+ "target": "css=#shopping_order_Shippings_0_shipping_delivery_date > option",
+ "targets": [
+ ["css=#shopping_order_Shippings_0_shipping_delivery_date > option", "css:finder"],
+ ["xpath=(//option[@value=''])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='shopping_order_Shippings_0_shipping_delivery_date']/option", "xpath:idRelative"],
+ ["xpath=//div[2]/select/option", "xpath:position"],
+ ["xpath=//option[contains(.,'指定なし')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "a441aee7-fe7a-4be9-a2d7-dce6aaee49e4",
+ "comment": "",
+ "command": "select",
+ "target": "id=shopping_order_Shippings_0_DeliveryTime",
+ "targets": [],
+ "value": "label=午前"
+ }, {
+ "id": "c07da011-b76a-490c-a015-54d0cf650f03",
+ "comment": "",
+ "command": "click",
+ "target": "css=#shopping_order_Shippings_0_DeliveryTime > option:nth-child(2)",
+ "targets": [
+ ["css=#shopping_order_Shippings_0_DeliveryTime > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[3]", "xpath:attributes"],
+ ["xpath=//select[@id='shopping_order_Shippings_0_DeliveryTime']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[3]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'午前')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "1f10174a-56ea-45a7-b6d2-5e43b0229b95",
+ "comment": "",
+ "command": "click",
+ "target": "css=div:nth-child(4) > label > span",
+ "targets": [
+ ["css=div:nth-child(4) > label > span", "css:finder"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[3]/div[2]/div[4]/label/span", "xpath:idRelative"],
+ ["xpath=//div[4]/label/span", "xpath:position"],
+ ["xpath=//span[contains(.,'代金引換')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "a23fabca-72fc-4bb2-a235-c68c5c54ef4a",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-totalBox__btn > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[3]/button", "xpath:idRelative"],
+ ["xpath=//div[3]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'確認する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "20c52c65-0028-4aff-a4b8-71ec4edb81e4",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.ec-totalBox__btn > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[3]/button", "xpath:idRelative"],
+ ["xpath=//div[3]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'確認する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "42d684e0-d71d-40e9-bcbd-c22031f59f9a",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "css=.ec-totalBox__btn > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[3]/button", "xpath:idRelative"],
+ ["xpath=//div[3]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'確認する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "eabd2cee-2e64-4d86-98c2-8a45c12239ef",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-totalBox__btn > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[3]/button", "xpath:idRelative"],
+ ["xpath=//div[3]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'注文する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "93620f0c-a764-4250-a4d6-8c51c6a248ca",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=トップページへ",
+ "targets": [
+ ["linkText=トップページへ", "linkText"],
+ ["css=.ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"],
+ ["xpath=//body[@id='page_shopping_complete']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"],
+ ["xpath=//div[2]/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "a5413ff3-6cd3-4629-ac6c-39f4f36c63c7",
+ "comment": "",
+ "command": "chooseOkOnNextConfirmation",
+ "target": "",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "555f059d-70cd-4510-871f-0eeaeb024067",
+ "comment": "",
+ "command": "close",
+ "target": "",
+ "targets": [],
+ "value": ""
+ }]
+ }, {
+ "id": "30749fcc-d7dc-4ac7-b2d8-bb46a9a968bf",
+ "name": "お問い合わせ(ログイン)",
+ "commands": [{
+ "id": "d8ea74c4-3409-4041-ab67-bea0cc54bf93",
+ "comment": "",
+ "command": "open",
+ "target": "/",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "5866df66-1e67-4cfe-a1ff-81d302bc4003",
+ "comment": "",
+ "command": "setWindowSize",
+ "target": "1160x693",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "5adf0377-1682-4e98-975c-57b09f8432e6",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,321.73333740234375)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "42c8b2b0-aec9-4ef0-911d-d9488d1c9977",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=お問い合わせ",
+ "targets": [
+ ["linkText=お問い合わせ", "linkText"],
+ ["css=.ec-footerNavi__link:nth-child(4) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'お問い合わせ')]", "xpath:link"],
+ ["xpath=//body[@id='page_homepage']/div/div[3]/div/div/ul/li[4]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/contact')]", "xpath:href"],
+ ["xpath=//li[4]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'お問い合わせ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "38ea2e95-e1d1-4db9-b7d6-7ba2f1d1ba26",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,307.79998779296875)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "02b8b2b0-7cae-4f9d-be53-b813397d63eb",
+ "comment": "",
+ "command": "click",
+ "target": "id=contact_contents",
+ "targets": [
+ ["id=contact_contents", "id"],
+ ["name=contact[contents]", "name"],
+ ["css=#contact_contents", "css:finder"],
+ ["xpath=//textarea[@id='contact_contents']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[6]/dd/div/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "25a4dda9-8dcb-45e5-9a80-c0e1552c7648",
+ "comment": "",
+ "command": "type",
+ "target": "id=contact_contents",
+ "targets": [
+ ["id=contact_contents", "id"],
+ ["name=contact[contents]", "name"],
+ ["css=#contact_contents", "css:finder"],
+ ["xpath=//textarea[@id='contact_contents']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[6]/dd/div/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": "お問い合わせのテスト"
+ }, {
+ "id": "52399b20-861e-4de0-990f-ca78ccec5798",
+ "comment": "",
+ "command": "click",
+ "target": "name=mode",
+ "targets": [
+ ["name=mode", "name"],
+ ["css=.ec-blockBtn--action", "css:finder"],
+ ["xpath=//button[@name='mode']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'確認ページへ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "23bc91a6-7ed4-4ede-8a4f-583ccc609ee6",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "name=mode",
+ "targets": [
+ ["name=mode", "name"],
+ ["css=.ec-blockBtn--action", "css:finder"],
+ ["xpath=//button[@name='mode']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'確認ページへ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "b30f7b98-8286-4e2d-9d56-a1ffe7abfb5e",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "name=mode",
+ "targets": [
+ ["name=mode", "name"],
+ ["css=.ec-blockBtn--action", "css:finder"],
+ ["xpath=//button[@name='mode']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'確認ページへ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "5389872b-14f8-443d-847e-29bad889a531",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,363.5333251953125)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "59ba9aed-b652-434e-b8ff-a0141273001b",
+ "comment": "",
+ "command": "click",
+ "target": "name=mode",
+ "targets": [
+ ["name=mode", "name"],
+ ["css=.ec-blockBtn--action", "css:finder"],
+ ["xpath=//button[@name='mode']", "xpath:attributes"],
+ ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'送信する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "30e07db1-a1b6-416d-8804-37f16f8c99fb",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=トップページへ",
+ "targets": [
+ ["linkText=トップページへ", "linkText"],
+ ["css=.ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"],
+ ["xpath=//body[@id='page_contact_complete']/div/div[2]/div/div[2]/div/div/div[3]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"],
+ ["xpath=//div[3]/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }]
+ }, {
+ "id": "45f29c3b-c4e9-48bc-a433-770b13f3c2bd",
+ "name": "パスワード再発行",
+ "commands": [{
+ "id": "2186e0e3-5ef6-43d5-8937-80f67666dff6",
+ "comment": "",
+ "command": "open",
+ "target": "/",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "eea18b28-43a1-4d4d-b10a-d0f338734fb3",
+ "comment": "",
+ "command": "setWindowSize",
+ "target": "1160x693",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "94152a2a-acac-4ebf-abf1-713e7ba9fe89",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-headerNav__item:nth-child(3) .ec-headerNav__itemLink",
+ "targets": [
+ ["css=.ec-headerNav__item:nth-child(3) .ec-headerNav__itemLink", "css:finder"],
+ ["xpath=//body[@id='page_homepage']/div/div/div/div[2]/div/div/div[3]/a/span", "xpath:idRelative"],
+ ["xpath=//div[3]/a/span", "xpath:position"],
+ ["xpath=//span[contains(.,'ログイン')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "a8e507ec-4b94-4062-b7e2-ac39390b8801",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=ログイン情報をお忘れですか?",
+ "targets": [
+ ["linkText=ログイン情報をお忘れですか?", "linkText"],
+ ["css=.ec-login__link:nth-child(1) > .ec-link", "css:finder"],
+ ["xpath=//a[contains(text(),'ログイン情報をお忘れですか?')]", "xpath:link"],
+ ["xpath=//form[@id='login_mypage']/div/div[3]/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/forgot')]", "xpath:href"],
+ ["xpath=//div[2]/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'ログイン情報をお忘れですか?')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "505a6289-f925-4933-96a5-e9f181be5c2a",
+ "comment": "",
+ "command": "click",
+ "target": "id=login_email",
+ "targets": [
+ ["id=login_email", "id"],
+ ["name=login_email", "name"],
+ ["css=#login_email", "css:finder"],
+ ["xpath=//input[@id='login_email']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div/div/div/div[2]/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "59f7b8d9-a6bb-4d01-b5e2-ee33df2cff3c",
+ "comment": "",
+ "command": "type",
+ "target": "id=login_email",
+ "targets": [
+ ["id=login_email", "id"],
+ ["name=login_email", "name"],
+ ["css=#login_email", "css:finder"],
+ ["xpath=//input[@id='login_email']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div/div/div/div[2]/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": "zap_user_guest@example.com"
+ }, {
+ "id": "7b1878ff-03d4-41e9-b51c-1bec90259cc6",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[2]/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/form/div[2]/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'次へ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }]
+ }, {
+ "id": "35d9fe92-2e6f-4c22-be4f-ce68a5a53756",
+ "name": "商品購入(ログイン)",
+ "commands": [{
+ "id": "12d9a8f1-3dfa-4fc6-88d3-377df5598602",
+ "comment": "",
+ "command": "open",
+ "target": "/",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "7bcd2e4a-2e0e-4dd9-8376-c6849716e32e",
+ "comment": "",
+ "command": "setWindowSize",
+ "target": "1160x693",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "20207428-d03b-409b-b422-cd4f5f3cd87b",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新入荷",
+ "targets": [
+ ["linkText=新入荷", "linkText"],
+ ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"],
+ ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"],
+ ["xpath=//li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "07a9c97e-6a42-4809-88e2-db79eb7cc0e6",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/div/button", "xpath:idRelative"],
+ ["xpath=//li/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "1fe3bf77-d475-42db-8813-82ba7d46f9d9",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=カートへ進む",
+ "targets": [
+ ["linkText=カートへ進む", "linkText"],
+ ["css=.ec-inlineBtn--action", "css:finder"],
+ ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"],
+ ["xpath=//div[3]/div/div/div[2]/div/a", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "c93a10d2-f0c0-41d7-b47c-3bab0174b6b3",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=お買い物を続ける",
+ "targets": [
+ ["linkText=お買い物を続ける", "linkText"],
+ ["css=.ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'お買い物を続ける')]", "xpath:link"],
+ ["xpath=//form[@id='form_cart']/div[3]/a[2]", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, '/')])[17]", "xpath:href"],
+ ["xpath=//div[3]/a[2]", "xpath:position"],
+ ["xpath=//a[contains(.,'お買い物を続ける')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "f9726a1f-c8bc-4eb4-8c8e-d9e61b59e8dd",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新入荷",
+ "targets": [
+ ["linkText=新入荷", "linkText"],
+ ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"],
+ ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"],
+ ["xpath=//li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "32435465-d677-49d7-97df-867e1e7194a4",
+ "comment": "",
+ "command": "click",
+ "target": "id=classcategory_id11",
+ "targets": [
+ ["id=classcategory_id11", "id"],
+ ["name=classcategory_id1", "name"],
+ ["css=#classcategory_id11", "css:finder"],
+ ["xpath=//select[@id='classcategory_id11']", "xpath:attributes"],
+ ["xpath=//form[@id='productForm1']/div/div/select", "xpath:idRelative"],
+ ["xpath=//li[2]/form/div/div/select", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "5e7b4d40-414f-426d-878c-afe139358ff6",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id11",
+ "targets": [],
+ "value": "label=チョコ"
+ }, {
+ "id": "40ff6ebc-05e2-4197-aaea-17a1eac9445c",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id11 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id11 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[4]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id11']/option[2]", "xpath:idRelative"],
+ ["xpath=//li[2]/form/div/div/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "ebd06755-82a7-45f5-879c-830b61aca9df",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id21",
+ "targets": [],
+ "value": "label=16mm × 16mm"
+ }, {
+ "id": "f4e062c8-90ea-4bce-978e-d0c7b8d03b17",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id21 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id21 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='4'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id21']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'16mm × 16mm')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "3816cd3e-da65-4ea2-803d-8d8599f9d8d8",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[3]", "xpath:attributes"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/div/button", "xpath:idRelative"],
+ ["xpath=//li[2]/div/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "9c188f89-9000-4a34-90e0-9f2217ac1924",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-inlineBtn--cancel",
+ "targets": [
+ ["css=.ec-inlineBtn--cancel", "css:finder"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/label", "xpath:idRelative"],
+ ["xpath=//div[2]/div/label", "xpath:position"],
+ ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "235affcb-5e86-48e5-afae-d12a51f67e83",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(1) img",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(1) img", "css:finder"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/a/p/img", "xpath:idRelative"],
+ ["xpath=//p/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "bfb18543-786c-4755-9d84-c0a55de7ec5c",
+ "comment": "",
+ "command": "click",
+ "target": "css=.add-cart",
+ "targets": [
+ ["css=.add-cart", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "a144a0e6-bf9a-469f-8e26-c6d342c3c6a1",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=カートへ進む",
+ "targets": [
+ ["linkText=カートへ進む", "linkText"],
+ ["css=.ec-inlineBtn--action", "css:finder"],
+ ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"],
+ ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[5]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"],
+ ["xpath=//div[5]/div/div/div[2]/div/a", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "8ed07c86-1e1e-4093-a72c-0c09aab60536",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新入荷",
+ "targets": [
+ ["linkText=新入荷", "linkText"],
+ ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"],
+ ["xpath=//body[@id='page_cart']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"],
+ ["xpath=//li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "b52bb6a6-61a0-4e2a-9fde-3b44c6cee9b7",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(2) img",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(2) img", "css:finder"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/a/p/img", "xpath:idRelative"],
+ ["xpath=//li[2]/a/p/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "939d101b-f705-4fc5-a933-f384aa13ea3d",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id1",
+ "targets": [],
+ "value": "label=チョコ"
+ }, {
+ "id": "f348c7bb-d7fc-423a-b87a-52b4f11b0ada",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id1 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id1 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id1']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/div/form/div/div/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "abad7282-3c89-41dc-a5ee-db05bdb80fb3",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id2",
+ "targets": [],
+ "value": "label=16mm × 16mm"
+ }, {
+ "id": "a7971844-1815-4a4e-9619-a7bc45d87aa7",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id2 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id2 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='4'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id2']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'16mm × 16mm')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "64de0afe-38f4-4b8a-89cb-61dc88ee885c",
+ "comment": "",
+ "command": "click",
+ "target": "css=.add-cart",
+ "targets": [
+ ["css=.add-cart", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "8f49dde8-33ab-4d8e-8d0d-aa4e1f7232f4",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=カートへ進む",
+ "targets": [
+ ["linkText=カートへ進む", "linkText"],
+ ["css=.ec-inlineBtn--action", "css:finder"],
+ ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"],
+ ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[6]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"],
+ ["xpath=//div[6]/div/div/div[2]/div/a", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "6db11f82-aeeb-4eb6-86ea-2e1a1859f61c",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=レジに進む",
+ "targets": [
+ ["linkText=レジに進む", "linkText"],
+ ["css=.ec-blockBtn--action:nth-child(2)", "css:finder"],
+ ["xpath=//a[contains(text(),'レジに進む')]", "xpath:link"],
+ ["xpath=//form[@id='form_cart']/div[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '/cart/buystep/1_1')]", "xpath:href"],
+ ["xpath=//form/div[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'レジに進む')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "db01a59c-3db1-48ea-ba14-09dc9aea6131",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,305.26666259765625)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "93377227-cb1a-481f-aeb1-78623c78b0c9",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_order_Shippings_0_Delivery",
+ "targets": [
+ ["id=shopping_order_Shippings_0_Delivery", "id"],
+ ["name=_shopping_order[Shippings][0][Delivery]", "name"],
+ ["css=#shopping_order_Shippings_0_Delivery", "css:finder"],
+ ["xpath=//select[@id='shopping_order_Shippings_0_Delivery']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[2]/div[5]/div/div/select", "xpath:idRelative"],
+ ["xpath=//div[5]/div/div/select", "xpath:position"],
+ ["xpath=//select[contains(.,'サンプル業者')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e94b0c9c-d7d3-4d56-82a5-d403af99cd08",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_order_Shippings_0_DeliveryTime",
+ "targets": [
+ ["id=shopping_order_Shippings_0_DeliveryTime", "id"],
+ ["name=_shopping_order[Shippings][0][DeliveryTime]", "name"],
+ ["css=#shopping_order_Shippings_0_DeliveryTime", "css:finder"],
+ ["xpath=//select[@id='shopping_order_Shippings_0_DeliveryTime']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[2]/div[5]/div/div[3]/select", "xpath:idRelative"],
+ ["xpath=//div[3]/select", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "066895ad-7495-4d3f-8d14-356c4dfaf46d",
+ "comment": "",
+ "command": "select",
+ "target": "id=shopping_order_Shippings_0_DeliveryTime",
+ "targets": [],
+ "value": "label=午後"
+ }, {
+ "id": "77f4ec3c-2f18-4c85-8554-332486744fb5",
+ "comment": "",
+ "command": "click",
+ "target": "css=#shopping_order_Shippings_0_DeliveryTime > option:nth-child(3)",
+ "targets": [
+ ["css=#shopping_order_Shippings_0_DeliveryTime > option:nth-child(3)", "css:finder"],
+ ["xpath=(//option[@value='2'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='shopping_order_Shippings_0_DeliveryTime']/option[3]", "xpath:idRelative"],
+ ["xpath=//div[3]/select/option[3]", "xpath:position"],
+ ["xpath=//option[contains(.,'午後')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "b75a5213-478d-4723-b0b5-3eab4190b286",
+ "comment": "",
+ "command": "click",
+ "target": "css=div:nth-child(4) > label",
+ "targets": [
+ ["css=div:nth-child(4) > label", "css:finder"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[3]/div[2]/div[4]/label", "xpath:idRelative"],
+ ["xpath=//div[4]/label", "xpath:position"],
+ ["xpath=//label[contains(.,'代金引換')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "efcc6310-a83f-46a9-8c35-085b594e98b6",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,343.26666259765625)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "4703e864-9b4b-4760-b6db-844523bd2922",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_order_use_point",
+ "targets": [
+ ["id=shopping_order_use_point", "id"],
+ ["name=_shopping_order[use_point]", "name"],
+ ["css=#shopping_order_use_point", "css:finder"],
+ ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "c21afda7-cfb6-4d47-8931-a4ea3afaa1e1",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_order_use_point",
+ "targets": [
+ ["id=shopping_order_use_point", "id"],
+ ["name=_shopping_order[use_point]", "name"],
+ ["css=#shopping_order_use_point", "css:finder"],
+ ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "b9e45263-297a-47b2-be6c-a80e70bcbab2",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=shopping_order_use_point",
+ "targets": [
+ ["id=shopping_order_use_point", "id"],
+ ["name=_shopping_order[use_point]", "name"],
+ ["css=#shopping_order_use_point", "css:finder"],
+ ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "8f080440-d3f8-412a-86cf-49fc959fed93",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_order_use_point",
+ "targets": [
+ ["id=shopping_order_use_point", "id"],
+ ["name=_shopping_order[use_point]", "name"],
+ ["css=#shopping_order_use_point", "css:finder"],
+ ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/input", "xpath:position"]
+ ],
+ "value": "1"
+ }, {
+ "id": "ab9ed110-4d4a-4743-bb7d-569356c0c4fa",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_order_message",
+ "targets": [
+ ["id=shopping_order_message", "id"],
+ ["name=_shopping_order[message]", "name"],
+ ["css=#shopping_order_message", "css:finder"],
+ ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[5]/div[2]/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "75b5c0e4-f0cb-4aac-9d3a-b30f2c8b1b27",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_order_message",
+ "targets": [
+ ["id=shopping_order_message", "id"],
+ ["name=_shopping_order[message]", "name"],
+ ["css=#shopping_order_message", "css:finder"],
+ ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[5]/div[2]/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": "商品購入のテスト"
+ }, {
+ "id": "880755e3-c565-45bc-895f-6104b2d4f24a",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-totalBox__btn > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[5]/button", "xpath:idRelative"],
+ ["xpath=//div[5]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'確認する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "92408a52-7373-4bec-868a-a4c6599893fc",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,349.6000061035156)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "6439b7b5-8c04-44a7-888f-ed3dc08735b3",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-totalBox__btn > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[5]/button", "xpath:idRelative"],
+ ["xpath=//div[5]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'注文する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "cc4e937c-3b14-415e-aae3-f8101e5c1011",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=トップページへ",
+ "targets": [
+ ["linkText=トップページへ", "linkText"],
+ ["css=.ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"],
+ ["xpath=//body[@id='page_shopping_complete']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"],
+ ["xpath=//div[2]/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }]
+ }, {
+ "id": "9d966310-b239-4084-95c9-3c4aec4ec77f",
+ "name": "商品購入(複数配送先)(ログイン)",
+ "commands": [{
+ "id": "0e5dd79e-0dce-41dd-a004-4cca5ea59ca4",
+ "comment": "",
+ "command": "open",
+ "target": "/",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "47fa5173-b26e-4232-8ed9-643337449ea3",
+ "comment": "",
+ "command": "setWindowSize",
+ "target": "1160x694",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "febbba39-0f48-45d7-92f4-6d8ae4c190b8",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新入荷",
+ "targets": [
+ ["linkText=新入荷", "linkText"],
+ ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"],
+ ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"],
+ ["xpath=//li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "0a745a06-8394-451f-aaa0-97b8dd677fa0",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/div/button", "xpath:idRelative"],
+ ["xpath=//li/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "0eaa154d-25a2-488c-8b2a-4a501f8c97e5",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-inlineBtn--cancel",
+ "targets": [
+ ["css=.ec-inlineBtn--cancel", "css:finder"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/label", "xpath:idRelative"],
+ ["xpath=//div[2]/div/label", "xpath:position"],
+ ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "d83c4dc2-cd7d-43cd-bd11-fb5ac58de2b6",
+ "comment": "",
+ "command": "click",
+ "target": "id=classcategory_id11",
+ "targets": [
+ ["id=classcategory_id11", "id"],
+ ["name=classcategory_id1", "name"],
+ ["css=#classcategory_id11", "css:finder"],
+ ["xpath=//select[@id='classcategory_id11']", "xpath:attributes"],
+ ["xpath=//form[@id='productForm1']/div/div/select", "xpath:idRelative"],
+ ["xpath=//li[2]/form/div/div/select", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "7fec15cc-bb2f-410c-ac1f-1620d9b1160f",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id11",
+ "targets": [],
+ "value": "label=チョコ"
+ }, {
+ "id": "c45ca11b-52a2-4450-9e9f-4a982be3de41",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id11 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id11 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[4]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id11']/option[2]", "xpath:idRelative"],
+ ["xpath=//li[2]/form/div/div/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "7479d8e7-9748-4474-91b9-b08af145ca2e",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-select:nth-child(2)",
+ "targets": [
+ ["css=.ec-select:nth-child(2)", "css:finder"],
+ ["xpath=//form[@id='productForm1']/div/div[2]", "xpath:idRelative"],
+ ["xpath=//form/div/div[2]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "6093cc07-e555-4b3f-9267-07b30b0240d1",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id21",
+ "targets": [],
+ "value": "label=16mm × 16mm"
+ }, {
+ "id": "b5489b9c-76d2-483f-b902-2da3373b461f",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id21 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id21 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='4'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id21']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'16mm × 16mm')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "7057eee2-c92e-4f88-8ef9-d5bfe34326aa",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[3]", "xpath:attributes"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/div/button", "xpath:idRelative"],
+ ["xpath=//li[2]/div/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "ce1d01ec-7842-4e20-82ba-7339186c1014",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-inlineBtn--cancel",
+ "targets": [
+ ["css=.ec-inlineBtn--cancel", "css:finder"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/label", "xpath:idRelative"],
+ ["xpath=//div[2]/div/label", "xpath:position"],
+ ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "0c8bffde-6fe0-4785-b531-81cbf3d5f5f8",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(1) img",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(1) img", "css:finder"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/a/p/img", "xpath:idRelative"],
+ ["xpath=//p/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "981e31a4-9864-4f11-bcf3-2f9c32e59f1e",
+ "comment": "",
+ "command": "click",
+ "target": "css=.add-cart",
+ "targets": [
+ ["css=.add-cart", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "fee5204b-ecca-4edd-b198-4b3a190526b8",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-inlineBtn--cancel",
+ "targets": [
+ ["css=.ec-inlineBtn--cancel", "css:finder"],
+ ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[5]/div/div/div[2]/div/label", "xpath:idRelative"],
+ ["xpath=//div[2]/div/label", "xpath:position"],
+ ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "8b35e510-74fc-4892-9435-3b1e49995a7e",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新入荷",
+ "targets": [
+ ["linkText=新入荷", "linkText"],
+ ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"],
+ ["xpath=//body[@id='page_product_detail']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"],
+ ["xpath=//li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "52cf4076-4f5a-4c8e-b48d-aedbe4e49f84",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(2) img",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(2) img", "css:finder"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/a/p/img", "xpath:idRelative"],
+ ["xpath=//li[2]/a/p/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "5b5cc76e-7867-47e7-93d8-819b4cca9821",
+ "comment": "",
+ "command": "click",
+ "target": "id=classcategory_id1",
+ "targets": [
+ ["id=classcategory_id1", "id"],
+ ["name=classcategory_id1", "name"],
+ ["css=#classcategory_id1", "css:finder"],
+ ["xpath=//select[@id='classcategory_id1']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div/div/select", "xpath:idRelative"],
+ ["xpath=//div[2]/div/form/div/div/select", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "1f97b4ed-c947-4a92-a4bb-bfd600e91c2f",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id1",
+ "targets": [],
+ "value": "label=チョコ"
+ }, {
+ "id": "fc8a0737-57e0-4512-ae21-6bcf2d0ce75d",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id1 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id1 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id1']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/div/form/div/div/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "27a8036c-14e0-4ad5-9eef-da88ef52b875",
+ "comment": "",
+ "command": "click",
+ "target": "id=classcategory_id2",
+ "targets": [
+ ["id=classcategory_id2", "id"],
+ ["name=classcategory_id2", "name"],
+ ["css=#classcategory_id2", "css:finder"],
+ ["xpath=//select[@id='classcategory_id2']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div/div[2]/select", "xpath:idRelative"],
+ ["xpath=//div[2]/select", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "ad48981c-5f06-4f0f-92b9-4a47c1098732",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id2",
+ "targets": [],
+ "value": "label=64cm × 64cm"
+ }, {
+ "id": "2f47f8f9-b61d-478e-b07b-040a0528d938",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id2 > option:nth-child(4)",
+ "targets": [
+ ["css=#classcategory_id2 > option:nth-child(4)", "css:finder"],
+ ["xpath=(//option[@value='6'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id2']/option[4]", "xpath:idRelative"],
+ ["xpath=//div[2]/select/option[4]", "xpath:position"],
+ ["xpath=//option[contains(.,'64cm × 64cm')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "f784ab3c-598b-4940-9259-e3b8ea9a32c5",
+ "comment": "",
+ "command": "click",
+ "target": "css=.add-cart",
+ "targets": [
+ ["css=.add-cart", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e69a27c5-86be-40e6-ae2e-81cb21fbb2fa",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=カートへ進む",
+ "targets": [
+ ["linkText=カートへ進む", "linkText"],
+ ["css=.ec-inlineBtn--action", "css:finder"],
+ ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"],
+ ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[6]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"],
+ ["xpath=//div[6]/div/div/div[2]/div/a", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "3b8c937f-a47c-458e-9229-7ee3d1219e62",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,302.73333740234375)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "c7bd40dc-07b5-4250-b9d1-c2cba3b3b2ec",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img",
+ "targets": [
+ ["css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img", "css:finder"],
+ ["xpath=(//img[@alt='increase'])[2]", "xpath:img"],
+ ["xpath=//form[@id='form_cart']/div/div/ul[2]/li[3]/div[3]/a/span/img", "xpath:idRelative"],
+ ["xpath=//ul[2]/li[3]/div[3]/a/span/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "2061a2cb-3d21-41f9-88a4-1f72ee5b0d28",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img",
+ "targets": [
+ ["css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img", "css:finder"],
+ ["xpath=(//img[@alt='increase'])[2]", "xpath:img"],
+ ["xpath=//form[@id='form_cart']/div/div/ul[2]/li[3]/div[3]/a/span/img", "xpath:idRelative"],
+ ["xpath=//ul[2]/li[3]/div[3]/a/span/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "97744677-c19a-4d1d-a030-ce1cd443b48b",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img",
+ "targets": [
+ ["css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img", "css:finder"],
+ ["xpath=(//img[@alt='increase'])[2]", "xpath:img"],
+ ["xpath=//form[@id='form_cart']/div/div/ul[2]/li[3]/div[3]/a/span/img", "xpath:idRelative"],
+ ["xpath=//ul[2]/li[3]/div[3]/a/span/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "124b7fac-f90b-4246-891b-0c036eefac32",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,310.3333435058594)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "d37477e4-39f3-46a1-837b-b574a3a96e7b",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-cartRow:nth-child(3) .ec-cartRow__amountDownButton",
+ "targets": [
+ ["css=.ec-cartRow:nth-child(3) .ec-cartRow__amountDownButton", "css:finder"],
+ ["xpath=//form[@id='form_cart']/div/div/ul[2]/li[3]/div[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/cart/down/10')]", "xpath:href"],
+ ["xpath=//ul[2]/li[3]/div[3]/a", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "bfa9d44c-3143-4abd-94a6-2936aa091f6a",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=レジに進む",
+ "targets": [
+ ["linkText=レジに進む", "linkText"],
+ ["css=.ec-blockBtn--action:nth-child(2)", "css:finder"],
+ ["xpath=//a[contains(text(),'レジに進む')]", "xpath:link"],
+ ["xpath=//form[@id='form_cart']/div[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '/cart/buystep/1_1')]", "xpath:href"],
+ ["xpath=//form/div[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'レジに進む')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "d73c72f7-f3ef-4c0f-ad32-d538f19f9808",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,302.73333740234375)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "f34031e8-8f77-4846-a523-f86e65f6e5ef",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-orderDelivery__edit > .ec-inlineBtn",
+ "targets": [
+ ["css=.ec-orderDelivery__edit > .ec-inlineBtn", "css:finder"],
+ ["xpath=//button[@type='button']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[2]/div[6]/button", "xpath:idRelative"],
+ ["xpath=//div[6]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'お届け先を追加する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "9cd7bff0-955f-4da8-a4d9-4405a9cf81e5",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新規お届け先を追加する",
+ "targets": [
+ ["linkText=新規お届け先を追加する", "linkText"],
+ ["css=.btn:nth-child(1)", "css:finder"],
+ ["xpath=//a[contains(text(),'新規お届け先を追加する')]", "xpath:link"],
+ ["xpath=//form[@id='shipping-multiple-form']/div[2]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/shopping/shipping_multiple_edit')]", "xpath:href"],
+ ["xpath=//form/div[2]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新規お届け先を追加する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "d57339e2-e98b-4271-9979-5ac73bf011d6",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_shipping_name_name01",
+ "targets": [
+ ["id=shopping_shipping_name_name01", "id"],
+ ["name=shopping_shipping[name][name01]", "name"],
+ ["css=#shopping_shipping_name_name01", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d9ce43db-9723-4ff1-aa7f-0bdb7e3939a7",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_name_name01",
+ "targets": [
+ ["id=shopping_shipping_name_name01", "id"],
+ ["name=shopping_shipping[name][name01]", "name"],
+ ["css=#shopping_shipping_name_name01", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": "石井"
+ }, {
+ "id": "c1d6928c-5e9c-4a61-b5c0-c8ce50f34544",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_name_name02",
+ "targets": [
+ ["id=shopping_shipping_name_name02", "id"],
+ ["name=shopping_shipping[name][name02]", "name"],
+ ["css=#shopping_shipping_name_name02", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_name_name02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//input[2]", "xpath:position"]
+ ],
+ "value": "給部"
+ }, {
+ "id": "f96a4b04-668e-4067-ae5f-0bbd7f086834",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_kana_kana01",
+ "targets": [
+ ["id=shopping_shipping_kana_kana01", "id"],
+ ["name=shopping_shipping[kana][kana01]", "name"],
+ ["css=#shopping_shipping_kana_kana01", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_kana_kana01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input", "xpath:position"]
+ ],
+ "value": "イシイ"
+ }, {
+ "id": "19b4f791-8bee-48dc-836e-c1e0a9920c24",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_kana_kana02",
+ "targets": [
+ ["id=shopping_shipping_kana_kana02", "id"],
+ ["name=shopping_shipping[kana][kana02]", "name"],
+ ["css=#shopping_shipping_kana_kana02", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_kana_kana02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"]
+ ],
+ "value": "キュウブ"
+ }, {
+ "id": "aee2840b-14a9-4c2d-bd57-71d022ec905f",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_company_name",
+ "targets": [
+ ["id=shopping_shipping_company_name", "id"],
+ ["name=shopping_shipping[company_name]", "name"],
+ ["css=#shopping_shipping_company_name", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_company_name']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[3]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[3]/dd/div/input", "xpath:position"]
+ ],
+ "value": "イーシーキューブ"
+ }, {
+ "id": "2b45716a-49b1-4fcb-8b0a-8b18368d1973",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_postal_code",
+ "targets": [
+ ["id=shopping_shipping_postal_code", "id"],
+ ["name=shopping_shipping[postal_code]", "name"],
+ ["css=#shopping_shipping_postal_code", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_postal_code']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[4]/dd/div/input", "xpath:position"]
+ ],
+ "value": "5300002"
+ }, {
+ "id": "769fec35-db58-4bc4-baf2-9dc939b2b033",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_shipping_address_addr02",
+ "targets": [
+ ["id=shopping_shipping_address_addr02", "id"],
+ ["name=shopping_shipping[address][addr02]", "name"],
+ ["css=#shopping_shipping_address_addr02", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_address_addr02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d8dc71f6-ef14-476c-af5c-57f595882212",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_address_addr02",
+ "targets": [
+ ["id=shopping_shipping_address_addr02", "id"],
+ ["name=shopping_shipping[address][addr02]", "name"],
+ ["css=#shopping_shipping_address_addr02", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_address_addr02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/input", "xpath:position"]
+ ],
+ "value": "2"
+ }, {
+ "id": "ae89e65d-abc1-4961-ba41-b6ad713ec3aa",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_shipping_phone_number",
+ "targets": [
+ ["id=shopping_shipping_phone_number", "id"],
+ ["name=shopping_shipping[phone_number]", "name"],
+ ["css=#shopping_shipping_phone_number", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_phone_number']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[5]/dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "ce5982ae-b767-4d02-8df6-c698d09e6129",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_shipping_phone_number",
+ "targets": [
+ ["id=shopping_shipping_phone_number", "id"],
+ ["name=shopping_shipping[phone_number]", "name"],
+ ["css=#shopping_shipping_phone_number", "css:finder"],
+ ["xpath=//input[@id='shopping_shipping_phone_number']", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[5]/dd/div/input", "xpath:position"]
+ ],
+ "value": "333333333"
+ }, {
+ "id": "3a7e2938-6cfb-499f-8177-a3ac1b405aa5",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-off4Grid__cell > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-off4Grid__cell > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "589b1327-6d06-4a3b-adbc-7d82abf6a3ee",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,304)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "519a3272-974a-4163-b568-d43d432038fd",
+ "comment": "",
+ "command": "click",
+ "target": "css=#form_shipping_multiple_1_shipping_0_customer_address > option:nth-child(1)",
+ "targets": [
+ ["css=#form_shipping_multiple_1_shipping_0_customer_address > option:nth-child(1)", "css:finder"],
+ ["xpath=(//option[@value='0'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='form_shipping_multiple_1_shipping_0_customer_address']/option", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/div/div/div/select/option", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "4745a003-0784-4919-a960-15e57db8f354",
+ "comment": "",
+ "command": "select",
+ "target": "id=form_shipping_multiple_2_shipping_0_customer_address",
+ "targets": [],
+ "value": "label=石井 大阪府 大阪市北区曽根崎新地 2"
+ }, {
+ "id": "9da1bb12-15f4-4641-ba89-acebe37012b3",
+ "comment": "",
+ "command": "click",
+ "target": "css=#form_shipping_multiple_2_shipping_0_customer_address > option:nth-child(2)",
+ "targets": [
+ ["css=#form_shipping_multiple_2_shipping_0_customer_address > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[4]", "xpath:attributes"],
+ ["xpath=//select[@id='form_shipping_multiple_2_shipping_0_customer_address']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[5]/div[2]/div/div/div/select/option[2]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "4154f85e-5e69-4380-811d-f6014041b1aa",
+ "comment": "",
+ "command": "click",
+ "target": "id=button__add2",
+ "targets": [
+ ["id=button__add2", "id"],
+ ["css=#button__add2", "css:finder"],
+ ["xpath=//button[@id='button__add2']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__add_button2']/button", "xpath:idRelative"],
+ ["xpath=//div[5]/div[3]/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "27081f10-637b-4145-9948-68f2415ae3cb",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "id=button__add2",
+ "targets": [
+ ["id=button__add2", "id"],
+ ["css=#button__add2", "css:finder"],
+ ["xpath=//button[@id='button__add2']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__add_button2']/button", "xpath:idRelative"],
+ ["xpath=//div[5]/div[3]/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "af8afa3c-8fc8-438e-9d56-19bfca6e3272",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "id=button__add2",
+ "targets": [
+ ["id=button__add2", "id"],
+ ["css=#button__add2", "css:finder"],
+ ["xpath=//button[@id='button__add2']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__add_button2']/button", "xpath:idRelative"],
+ ["xpath=//div[5]/div[3]/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "b35ae1f3-a4e0-48fa-9b2b-5ce8d2d6c1ed",
+ "comment": "",
+ "command": "click",
+ "target": "css=#form_shipping_multiple_2_shipping_1_customer_address > option:nth-child(1)",
+ "targets": [
+ ["css=#form_shipping_multiple_2_shipping_1_customer_address > option:nth-child(1)", "css:finder"],
+ ["xpath=(//option[@value='0'])[4]", "xpath:attributes"],
+ ["xpath=//select[@id='form_shipping_multiple_2_shipping_1_customer_address']/option", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/select/option", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d610467a-b123-4196-97f9-a68672b0be6a",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shipping_multiple_2_shipping_1_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_2_shipping_1_quantity", "id"],
+ ["name=form[shipping_multiple][2][shipping][1][quantity]", "name"],
+ ["css=#form_shipping_multiple_2_shipping_1_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_2_shipping_1_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--2_1']/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "e520b42d-7ad8-4b0f-9451-f6655e3a02d5",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shipping_multiple_2_shipping_1_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_2_shipping_1_quantity", "id"],
+ ["name=form[shipping_multiple][2][shipping][1][quantity]", "name"],
+ ["css=#form_shipping_multiple_2_shipping_1_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_2_shipping_1_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--2_1']/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "8d298cb9-c58a-4393-ad1c-0f558f78d1a4",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=form_shipping_multiple_2_shipping_1_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_2_shipping_1_quantity", "id"],
+ ["name=form[shipping_multiple][2][shipping][1][quantity]", "name"],
+ ["css=#form_shipping_multiple_2_shipping_1_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_2_shipping_1_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--2_1']/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "065f2843-2313-47d5-8115-219c9ac59811",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shipping_multiple_2_shipping_1_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_2_shipping_1_quantity", "id"],
+ ["name=form[shipping_multiple][2][shipping][1][quantity]", "name"],
+ ["css=#form_shipping_multiple_2_shipping_1_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_2_shipping_1_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--2_1']/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/input", "xpath:position"]
+ ],
+ "value": "1"
+ }, {
+ "id": "aac79b98-d88b-463e-9213-dae8348408b9",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shipping_multiple_2_shipping_0_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_2_shipping_0_quantity", "id"],
+ ["name=form[shipping_multiple][2][shipping][0][quantity]", "name"],
+ ["css=#form_shipping_multiple_2_shipping_0_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_2_shipping_0_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--2_0']/div/input", "xpath:idRelative"],
+ ["xpath=//div[5]/div[2]/div/div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "ae75ca10-e7a9-4279-96c7-27e9a0937e31",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shipping_multiple_2_shipping_0_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_2_shipping_0_quantity", "id"],
+ ["name=form[shipping_multiple][2][shipping][0][quantity]", "name"],
+ ["css=#form_shipping_multiple_2_shipping_0_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_2_shipping_0_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--2_0']/div/input", "xpath:idRelative"],
+ ["xpath=//div[5]/div[2]/div/div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "dcf96c68-30f1-4411-9a3e-290a2f0d9813",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=form_shipping_multiple_2_shipping_0_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_2_shipping_0_quantity", "id"],
+ ["name=form[shipping_multiple][2][shipping][0][quantity]", "name"],
+ ["css=#form_shipping_multiple_2_shipping_0_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_2_shipping_0_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--2_0']/div/input", "xpath:idRelative"],
+ ["xpath=//div[5]/div[2]/div/div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "a8d5d09e-c5b7-4c3d-b2f0-c5ae698e941e",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shipping_multiple_2_shipping_0_quantity",
+ "targets": [
+ ["id=form_shipping_multiple_2_shipping_0_quantity", "id"],
+ ["name=form[shipping_multiple][2][shipping][0][quantity]", "name"],
+ ["css=#form_shipping_multiple_2_shipping_0_quantity", "css:finder"],
+ ["xpath=//input[@id='form_shipping_multiple_2_shipping_0_quantity']", "xpath:attributes"],
+ ["xpath=//div[@id='multiple_list__shipping_quantity--2_0']/div/input", "xpath:idRelative"],
+ ["xpath=//div[5]/div[2]/div/div[2]/div/input", "xpath:position"]
+ ],
+ "value": "1"
+ }, {
+ "id": "338895fc-871f-4a5d-bb95-413d02466caf",
+ "comment": "",
+ "command": "click",
+ "target": "id=button__confirm",
+ "targets": [
+ ["id=button__confirm", "id"],
+ ["css=#button__confirm", "css:finder"],
+ ["xpath=//button[@id='button__confirm']", "xpath:attributes"],
+ ["xpath=//form[@id='shipping-multiple-form']/div[6]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[6]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'選択したお届け先に送る')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "aee1e253-131e-44ac-a1d2-f6fc15ac2a84",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_order_Shippings_0_DeliveryTime",
+ "targets": [
+ ["id=shopping_order_Shippings_0_DeliveryTime", "id"],
+ ["name=_shopping_order[Shippings][0][DeliveryTime]", "name"],
+ ["css=#shopping_order_Shippings_0_DeliveryTime", "css:finder"],
+ ["xpath=//select[@id='shopping_order_Shippings_0_DeliveryTime']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[2]/div[5]/div/div[3]/select", "xpath:idRelative"],
+ ["xpath=//div[3]/select", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "29a4eaf6-ca1a-4147-8aca-f3241f3e23bb",
+ "comment": "",
+ "command": "select",
+ "target": "id=shopping_order_Shippings_0_DeliveryTime",
+ "targets": [],
+ "value": "label=午前"
+ }, {
+ "id": "1f72e7b7-0431-4f40-a446-2844c4126d08",
+ "comment": "",
+ "command": "click",
+ "target": "css=#shopping_order_Shippings_0_DeliveryTime > option:nth-child(2)",
+ "targets": [
+ ["css=#shopping_order_Shippings_0_DeliveryTime > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[3]", "xpath:attributes"],
+ ["xpath=//select[@id='shopping_order_Shippings_0_DeliveryTime']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[3]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'午前')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "1fa809a8-0305-4308-a0b3-7ec1469fde5c",
+ "comment": "",
+ "command": "click",
+ "target": "css=div:nth-child(4) > label > span",
+ "targets": [
+ ["css=div:nth-child(4) > label > span", "css:finder"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[3]/div[2]/div[4]/label/span", "xpath:idRelative"],
+ ["xpath=//div[4]/label/span", "xpath:position"],
+ ["xpath=//span[contains(.,'代金引換')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "d73a457e-196c-46c7-98cf-5e819183d95c",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_order_use_point",
+ "targets": [
+ ["id=shopping_order_use_point", "id"],
+ ["name=_shopping_order[use_point]", "name"],
+ ["css=#shopping_order_use_point", "css:finder"],
+ ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "60979130-1ddc-4c55-bbd2-3a21844d9e37",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_order_use_point",
+ "targets": [
+ ["id=shopping_order_use_point", "id"],
+ ["name=_shopping_order[use_point]", "name"],
+ ["css=#shopping_order_use_point", "css:finder"],
+ ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "282ea251-9c0c-490e-ac9b-5a3ec39e7c55",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=shopping_order_use_point",
+ "targets": [
+ ["id=shopping_order_use_point", "id"],
+ ["name=_shopping_order[use_point]", "name"],
+ ["css=#shopping_order_use_point", "css:finder"],
+ ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "562e13b7-3078-4fc0-9a98-d5e17cf14bcc",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_order_use_point",
+ "targets": [
+ ["id=shopping_order_use_point", "id"],
+ ["name=_shopping_order[use_point]", "name"],
+ ["css=#shopping_order_use_point", "css:finder"],
+ ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/input", "xpath:position"]
+ ],
+ "value": "1"
+ }, {
+ "id": "03600939-fc1b-4c9f-8105-5f8356438e00",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_order_message",
+ "targets": [
+ ["id=shopping_order_message", "id"],
+ ["name=_shopping_order[message]", "name"],
+ ["css=#shopping_order_message", "css:finder"],
+ ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[5]/div[2]/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "6a581153-8b38-46ce-abee-c1aac46b0d2f",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,317.9333190917969)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "15d2139e-fe2b-4453-bb48-4c04b24169e9",
+ "comment": "",
+ "command": "click",
+ "target": "id=shopping_order_message",
+ "targets": [
+ ["id=shopping_order_message", "id"],
+ ["name=_shopping_order[message]", "name"],
+ ["css=#shopping_order_message", "css:finder"],
+ ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[5]/div[2]/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "2be15243-3dd4-4574-a4c8-9443c73d3739",
+ "comment": "",
+ "command": "type",
+ "target": "id=shopping_order_message",
+ "targets": [
+ ["id=shopping_order_message", "id"],
+ ["name=_shopping_order[message]", "name"],
+ ["css=#shopping_order_message", "css:finder"],
+ ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div/div[5]/div[2]/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": "複数購入のテスト"
+ }, {
+ "id": "4ec20ebc-83d1-4c6e-a20d-e92dd522ca70",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-totalBox__btn > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[5]/button", "xpath:idRelative"],
+ ["xpath=//div[5]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'確認する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "ec6c30c3-291e-4f91-87b9-dd8d0e804fc6",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,335.6666564941406)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "95863077-c0fc-43ec-bc9d-609107e874f9",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-totalBox__btn > .ec-blockBtn--action",
+ "targets": [
+ ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[5]/button", "xpath:idRelative"],
+ ["xpath=//div[5]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'注文する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "344f2b60-0557-4614-9090-d10c253711dc",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=トップページへ",
+ "targets": [
+ ["linkText=トップページへ", "linkText"],
+ ["css=.ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"],
+ ["xpath=//body[@id='page_shopping_complete']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"],
+ ["xpath=//div[2]/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }]
+ }, {
+ "id": "44b105b2-6222-41da-a4ae-270a674dd05e",
+ "name": "お気に入り追加",
+ "commands": [{
+ "id": "1ea04cea-54db-483e-9823-569a9462bd0e",
+ "comment": "",
+ "command": "open",
+ "target": "/",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "47f34ae8-7a95-4ae2-a6d3-61a0a4bef86f",
+ "comment": "",
+ "command": "setWindowSize",
+ "target": "1160x694",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "671250e4-8355-4044-a9e3-036902f43ae6",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=新入荷",
+ "targets": [
+ ["linkText=新入荷", "linkText"],
+ ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"],
+ ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"],
+ ["xpath=//li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "a3971e62-bd0c-4ede-aacc-910d21ffcfef",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-shelfGrid__item:nth-child(1) img",
+ "targets": [
+ ["css=.ec-shelfGrid__item:nth-child(1) img", "css:finder"],
+ ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/a/p/img", "xpath:idRelative"],
+ ["xpath=//p/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "b4cf43cb-eb1f-412c-8c5b-ae62a6874013",
+ "comment": "",
+ "command": "click",
+ "target": "id=favorite",
+ "targets": [
+ ["id=favorite", "id"],
+ ["css=#favorite", "css:finder"],
+ ["xpath=//button[@id='favorite']", "xpath:attributes"],
+ ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/form[2]/div/button", "xpath:idRelative"],
+ ["xpath=//form[2]/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'お気に入りに追加')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "4761812f-359f-4760-a159-a05ecf93361d",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-headerNav__item:nth-child(2) .ec-headerNav__itemLink",
+ "targets": [
+ ["css=.ec-headerNav__item:nth-child(2) .ec-headerNav__itemLink", "css:finder"],
+ ["xpath=//body[@id='page_product_detail']/div/div/div/div[2]/div/div/div[2]/a/span", "xpath:idRelative"],
+ ["xpath=//div[2]/a/span", "xpath:position"],
+ ["xpath=//span[contains(.,'お気に入り')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "2ee8935f-b0a2-4f28-ab11-fce60e0196c9",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-favoriteRole__item-image > img",
+ "targets": [
+ ["css=.ec-favoriteRole__item-image > img", "css:finder"],
+ ["xpath=//body[@id='page_mypage_favorite']/div/div[2]/div/div/div[2]/div/div[2]/ul/li/a[2]/p/img", "xpath:idRelative"],
+ ["xpath=//p/img", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "689928ca-2f62-4e73-9976-571efd38ef81",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=EC-CUBE SHOP",
+ "targets": [
+ ["linkText=EC-CUBE SHOP", "linkText"],
+ ["css=h1 > a", "css:finder"],
+ ["xpath=//a[contains(text(),'EC-CUBE SHOP')]", "xpath:link"],
+ ["xpath=//body[@id='page_mypage_favorite']/div/div/div[2]/div/div/div/h1/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/')])[4]", "xpath:href"],
+ ["xpath=//h1/a", "xpath:position"],
+ ["xpath=//a[contains(.,'EC-CUBE SHOP')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }]
+ }, {
+ "id": "4fde7efc-2af4-4831-8e38-098dd5039721",
+ "name": "会員情報編集",
+ "commands": [{
+ "id": "3d6c9735-b2e4-4032-9def-83d54f1432e8",
+ "comment": "",
+ "command": "open",
+ "target": "/",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "c72091e5-bec7-428a-be90-c051829b1a3f",
+ "comment": "",
+ "command": "setWindowSize",
+ "target": "1160x694",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "ac021828-0e83-48b1-9617-ac74347678ca",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-headerNav__item:nth-child(1) .ec-headerNav__itemLink",
+ "targets": [
+ ["css=.ec-headerNav__item:nth-child(1) .ec-headerNav__itemLink", "css:finder"],
+ ["xpath=//body[@id='page_homepage']/div/div/div/div[2]/div/div/div/a/span", "xpath:idRelative"],
+ ["xpath=//span", "xpath:position"],
+ ["xpath=//span[contains(.,'マイページ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "58d39e65-617f-4880-a484-463fc04651ab",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=会員情報編集",
+ "targets": [
+ ["linkText=会員情報編集", "linkText"],
+ ["css=.ec-navlistRole__item:nth-child(3) > a", "css:finder"],
+ ["xpath=//a[contains(text(),'会員情報編集')]", "xpath:link"],
+ ["xpath=//body[@id='page_mypage']/div/div[2]/div/div/div/div[2]/ul/li[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/mypage/change')]", "xpath:href"],
+ ["xpath=//div[2]/ul/li[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'会員情報編集')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "b73d557b-f8ae-4265-8950-54870ec80ce4",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_name_name01",
+ "targets": [
+ ["id=entry_name_name01", "id"],
+ ["name=entry[name][name01]", "name"],
+ ["css=#entry_name_name01", "css:finder"],
+ ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d451bc62-d1f9-4f10-8f5e-93f248dfa361",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_name_name01",
+ "targets": [
+ ["id=entry_name_name01", "id"],
+ ["name=entry[name][name01]", "name"],
+ ["css=#entry_name_name01", "css:finder"],
+ ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "c341e87a-503b-4deb-8695-28b3d696480b",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=entry_name_name01",
+ "targets": [
+ ["id=entry_name_name01", "id"],
+ ["name=entry[name][name01]", "name"],
+ ["css=#entry_name_name01", "css:finder"],
+ ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "bcb004e2-ad9d-4046-accc-ac116a55360e",
+ "comment": "",
+ "command": "click",
+ "target": "id=entry_name_name01",
+ "targets": [
+ ["id=entry_name_name01", "id"],
+ ["name=entry[name][name01]", "name"],
+ ["css=#entry_name_name01", "css:finder"],
+ ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "2da6e8bc-871c-4b51-9dea-30e2e7b660c7",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_name_name01",
+ "targets": [
+ ["id=entry_name_name01", "id"],
+ ["name=entry[name][name01]", "name"],
+ ["css=#entry_name_name01", "css:finder"],
+ ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dd/div/input", "xpath:position"]
+ ],
+ "value": "石"
+ }, {
+ "id": "4f0deb5b-7f60-4027-bfc4-dbda4a53d59a",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_name_name02",
+ "targets": [
+ ["id=entry_name_name02", "id"],
+ ["name=entry[name][name02]", "name"],
+ ["css=#entry_name_name02", "css:finder"],
+ ["xpath=//input[@id='entry_name_name02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//input[2]", "xpath:position"]
+ ],
+ "value": "球部"
+ }, {
+ "id": "66530d66-cb49-4ec1-81b7-7a8180ba790a",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_kana_kana01",
+ "targets": [
+ ["id=entry_kana_kana01", "id"],
+ ["name=entry[kana][kana01]", "name"],
+ ["css=#entry_kana_kana01", "css:finder"],
+ ["xpath=//input[@id='entry_kana_kana01']", "xpath:attributes"],
+ ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input", "xpath:position"]
+ ],
+ "value": "イシ"
+ }, {
+ "id": "d940367b-a6bc-4cc9-8275-ce8d30797fa4",
+ "comment": "",
+ "command": "type",
+ "target": "id=entry_kana_kana02",
+ "targets": [
+ ["id=entry_kana_kana02", "id"],
+ ["name=entry[kana][kana02]", "name"],
+ ["css=#entry_kana_kana02", "css:finder"],
+ ["xpath=//input[@id='entry_kana_kana02']", "xpath:attributes"],
+ ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"],
+ ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"]
+ ],
+ "value": "キュウブ"
+ }, {
+ "id": "d3eb4dd6-9bbe-47c6-bb35-8aa453b62aec",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ec-blockBtn--cancel",
+ "targets": [
+ ["css=.ec-blockBtn--cancel", "css:finder"],
+ ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"],
+ ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録する')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "0c4677ba-9fb8-464b-b68d-b234fda42bf7",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=戻る",
+ "targets": [
+ ["linkText=戻る", "linkText"],
+ ["css=.ec-blockBtn--cancel", "css:finder"],
+ ["xpath=//a[contains(text(),'戻る')]", "xpath:link"],
+ ["xpath=//body[@id='page_mypage_change_complete']/div/div[2]/div/div/div[2]/div/div/div[2]/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, 'https://ec-cube/')])[16]", "xpath:href"],
+ ["xpath=//div[2]/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'戻る')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }]
+ }],
+ "suites": [{
+ "id": "c1384a80-cad4-4e78-8b42-25819b2333d0",
+ "name": "Guest",
+ "persistSession": false,
+ "parallel": false,
+ "timeout": 300,
+ "tests": ["6f6ae007-51ec-4832-98cd-d625753b58c8", "66cf94f2-7d92-4ff6-92dc-fb7800f0fff0", "6e49bc53-4dbc-4e3a-802b-dfc0473463a4", "fd31340c-5aec-4d58-805a-73208678455d", "45f29c3b-c4e9-48bc-a433-770b13f3c2bd"]
+ }, {
+ "id": "edba87bb-4124-48ed-a4db-d27a98a7b4dc",
+ "name": "Login",
+ "persistSession": false,
+ "parallel": false,
+ "timeout": 300,
+ "tests": ["35d9fe92-2e6f-4c22-be4f-ce68a5a53756", "30749fcc-d7dc-4ac7-b2d8-bb46a9a968bf", "44b105b2-6222-41da-a4ae-270a674dd05e", "4fde7efc-2af4-4831-8e38-098dd5039721", "9d966310-b239-4084-95c9-3c4aec4ec77f"]
+ }, {
+ "id": "444ec5d2-613c-4eb7-ae3d-59866db325b3",
+ "name": "Admin",
+ "persistSession": false,
+ "parallel": false,
+ "timeout": 300,
+ "tests": []
+ }],
+ "urls": ["https://ec-cube/"],
+ "plugins": []
+}
diff --git a/zap/selenium/ide/Manual_Inspection_Admin.side b/zap/selenium/ide/Manual_Inspection_Admin.side
new file mode 100644
index 00000000000..5aec5f65410
--- /dev/null
+++ b/zap/selenium/ide/Manual_Inspection_Admin.side
@@ -0,0 +1,4655 @@
+{
+ "id": "773de04e-e5ff-47e2-b7b4-f25612459238",
+ "version": "2.0",
+ "name": "[WIP]Manual_Inspection_Admin",
+ "url": "https://ec-cube/admin",
+ "tests": [{
+ "id": "af12755b-95df-4a47-ba6d-b9ea45cb4ea7",
+ "name": "商品管理",
+ "commands": [{
+ "id": "e54e183a-2cc3-43e1-adaf-fdb333d50358",
+ "comment": "",
+ "command": "open",
+ "target": "https://ec-cube/admin/",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "6b0f9261-bba0-4c11-969a-0a8c46b7f746",
+ "comment": "",
+ "command": "setWindowSize",
+ "target": "1160x821",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "4ec9526c-7e1e-497b-823d-23680444023a",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=商品管理",
+ "targets": [
+ ["linkText=商品管理", "linkText"],
+ ["css=.c-mainNavArea__navItem:nth-child(2) > .c-mainNavArea__navItemTitle", "css:finder"],
+ ["xpath=//body[@id='page_admin_homepage']/div/div/nav/ul/li[2]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '#nav-product')]", "xpath:href"],
+ ["xpath=//li[2]/a", "xpath:position"],
+ ["xpath=//a[contains(.,' 商品管理')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "c84d90a4-4cae-4fe3-a871-d6f5d500bbd0",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=商品登録",
+ "targets": [
+ ["linkText=商品登録", "linkText"],
+ ["css=#nav-product > li:nth-child(2) > a", "css:finder"],
+ ["xpath=//ul[@id='nav-product']/li[2]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/product/new')]", "xpath:href"],
+ ["xpath=//li[2]/ul/li[2]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'商品登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "46ffb765-fe51-4c4f-b271-c4756dba9ff1",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_product_name",
+ "targets": [
+ ["id=admin_product_name", "id"],
+ ["name=admin_product[name]", "name"],
+ ["css=#admin_product_name", "css:finder"],
+ ["xpath=//input[@id='admin_product_name']", "xpath:attributes"],
+ ["xpath=//div[@id='basicConfig']/div/div/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "51197b99-ec9f-410e-8556-9b79edbe2b14",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_product_name",
+ "targets": [
+ ["id=admin_product_name", "id"],
+ ["name=admin_product[name]", "name"],
+ ["css=#admin_product_name", "css:finder"],
+ ["xpath=//input[@id='admin_product_name']", "xpath:attributes"],
+ ["xpath=//div[@id='basicConfig']/div/div/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[2]/input", "xpath:position"]
+ ],
+ "value": "テスト商品"
+ }, {
+ "id": "11b21b4d-d90b-4472-bd4b-7550049335ae",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=ファイルを選択",
+ "targets": [
+ ["linkText=ファイルを選択", "linkText"],
+ ["css=.btn:nth-child(3)", "css:finder"],
+ ["xpath=//a[contains(text(),'ファイルを選択')]", "xpath:link"],
+ ["xpath=//a[@onclick=\"$('#admin_product_product_image').click()\"]", "xpath:attributes"],
+ ["xpath=//div[@id='upload-zone']/div/a", "xpath:idRelative"],
+ ["xpath=//div[3]/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'ファイルを選択')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "d3dcbdd7-272f-4670-abbd-191fbcf3ebe8",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_product_description_detail",
+ "targets": [
+ ["id=admin_product_description_detail", "id"],
+ ["name=admin_product[description_detail]", "name"],
+ ["css=#admin_product_description_detail", "css:finder"],
+ ["xpath=//textarea[@id='admin_product_description_detail']", "xpath:attributes"],
+ ["xpath=//div[@id='basicConfig']/div/div[4]/div[2]/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d7635d40-db43-4998-acb4-2186517c28f9",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_product_description_detail",
+ "targets": [
+ ["id=admin_product_description_detail", "id"],
+ ["name=admin_product[description_detail]", "name"],
+ ["css=#admin_product_description_detail", "css:finder"],
+ ["xpath=//textarea[@id='admin_product_description_detail']", "xpath:attributes"],
+ ["xpath=//div[@id='basicConfig']/div/div[4]/div[2]/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": "テスト商品の説明"
+ }, {
+ "id": "cc5edef6-e202-402c-8e29-884bf84cc876",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_product_class_price02",
+ "targets": [
+ ["id=admin_product_class_price02", "id"],
+ ["name=admin_product[class][price02]", "name"],
+ ["css=#admin_product_class_price02", "css:finder"],
+ ["xpath=//input[@id='admin_product_class_price02']", "xpath:attributes"],
+ ["xpath=//div[@id='basicConfig']/div/div[6]/div[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[6]/div[2]/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "a552fad9-7052-4b12-ab0c-590702efbc9a",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_product_class_price02",
+ "targets": [
+ ["id=admin_product_class_price02", "id"],
+ ["name=admin_product[class][price02]", "name"],
+ ["css=#admin_product_class_price02", "css:finder"],
+ ["xpath=//input[@id='admin_product_class_price02']", "xpath:attributes"],
+ ["xpath=//div[@id='basicConfig']/div/div[6]/div[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[6]/div[2]/div/div/input", "xpath:position"]
+ ],
+ "value": "1000"
+ }, {
+ "id": "04284054-f748-4c2c-a5d1-1aa90d92fc58",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_product_class_price01",
+ "targets": [
+ ["id=admin_product_class_price01", "id"],
+ ["name=admin_product[class][price01]", "name"],
+ ["css=#admin_product_class_price01", "css:finder"],
+ ["xpath=//input[@id='admin_product_class_price01']", "xpath:attributes"],
+ ["xpath=//div[@id='basicConfig']/div/div[7]/div[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[7]/div[2]/div/div/input", "xpath:position"]
+ ],
+ "value": "1000"
+ }, {
+ "id": "0fba28fe-84cb-4ff2-9bee-0bec18d5dd78",
+ "comment": "",
+ "command": "click",
+ "target": "css=.col .form-check-label",
+ "targets": [
+ ["css=.col .form-check-label", "css:finder"],
+ ["xpath=//div[@id='basicConfig']/div/div[8]/div[2]/div/div/label", "xpath:idRelative"],
+ ["xpath=//label", "xpath:position"],
+ ["xpath=//label[contains(.,'無制限')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "909153cc-b8a7-491b-b54e-c0988307d308",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_product_class_stock",
+ "targets": [
+ ["id=admin_product_class_stock", "id"],
+ ["name=admin_product[class][stock]", "name"],
+ ["css=#admin_product_class_stock", "css:finder"],
+ ["xpath=//input[@id='admin_product_class_stock']", "xpath:attributes"],
+ ["xpath=//div[@id='basicConfig']/div/div[8]/div[2]/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "7faf5a3f-b395-472d-a549-0a1a7b531c05",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_product_class_stock",
+ "targets": [
+ ["id=admin_product_class_stock", "id"],
+ ["name=admin_product[class][stock]", "name"],
+ ["css=#admin_product_class_stock", "css:finder"],
+ ["xpath=//input[@id='admin_product_class_stock']", "xpath:attributes"],
+ ["xpath=//div[@id='basicConfig']/div/div[8]/div[2]/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div/input", "xpath:position"]
+ ],
+ "value": "10000"
+ }, {
+ "id": "727dfa0e-7c31-4738-9004-f352786ab993",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_product_search_word",
+ "targets": [
+ ["id=admin_product_search_word", "id"],
+ ["name=admin_product[search_word]", "name"],
+ ["css=#admin_product_search_word", "css:finder"],
+ ["xpath=//input[@id='admin_product_search_word']", "xpath:attributes"],
+ ["xpath=//div[@id='basicConfig']/div/div[9]/div[2]/div/input", "xpath:idRelative"],
+ ["xpath=//div[9]/div[2]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "a3e7ee25-40b5-441e-8d49-049340dd4ac5",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_product_search_word",
+ "targets": [
+ ["id=admin_product_search_word", "id"],
+ ["name=admin_product[search_word]", "name"],
+ ["css=#admin_product_search_word", "css:finder"],
+ ["xpath=//input[@id='admin_product_search_word']", "xpath:attributes"],
+ ["xpath=//div[@id='basicConfig']/div/div[9]/div[2]/div/input", "xpath:idRelative"],
+ ["xpath=//div[9]/div[2]/div/input", "xpath:position"]
+ ],
+ "value": "テスト,商品"
+ }, {
+ "id": "22be237a-de15-46fc-a36d-1c9505739b8e",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_product_class_code",
+ "targets": [
+ ["id=admin_product_class_code", "id"],
+ ["name=admin_product[class][code]", "name"],
+ ["css=#admin_product_class_code", "css:finder"],
+ ["xpath=//input[@id='admin_product_class_code']", "xpath:attributes"],
+ ["xpath=//div[@id='basicConfig']/div/div[10]/div[2]/div/input", "xpath:idRelative"],
+ ["xpath=//div[10]/div[2]/div/input", "xpath:position"]
+ ],
+ "value": "testing-01"
+ }, {
+ "id": "acb7efd2-41a7-4805-8dc0-46ba8b4208a0",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_product_class_sale_limit",
+ "targets": [
+ ["id=admin_product_class_sale_limit", "id"],
+ ["name=admin_product[class][sale_limit]", "name"],
+ ["css=#admin_product_class_sale_limit", "css:finder"],
+ ["xpath=//input[@id='admin_product_class_sale_limit']", "xpath:attributes"],
+ ["xpath=//div[@id='basicConfig']/div/div[11]/div[2]/div/input", "xpath:idRelative"],
+ ["xpath=//div[11]/div[2]/div/input", "xpath:position"]
+ ],
+ "value": "100"
+ }, {
+ "id": "6b1084b3-7178-4b8a-85d7-e5fa06be2af3",
+ "comment": "",
+ "command": "select",
+ "target": "id=admin_product_class_delivery_duration",
+ "targets": [],
+ "value": "label=即日"
+ }, {
+ "id": "4260b61f-7d64-4414-92d4-106942b19739",
+ "comment": "",
+ "command": "click",
+ "target": "css=#admin_product_class_delivery_duration > option:nth-child(2)",
+ "targets": [
+ ["css=#admin_product_class_delivery_duration > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='admin_product_class_delivery_duration']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[12]/div[2]/div/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'即日')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e0e9f606-4a18-4a1e-b70a-63b888189ad4",
+ "comment": "",
+ "command": "click",
+ "target": "id=wysiwyg-area",
+ "targets": [
+ ["id=wysiwyg-area", "id"],
+ ["name=admin_product[free_area]", "name"],
+ ["css=#wysiwyg-area", "css:finder"],
+ ["xpath=//textarea[@id='wysiwyg-area']", "xpath:attributes"],
+ ["xpath=//div[@id='freeArea']/div/div/div[2]/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/div[2]/div/textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "4fb60435-8431-40f6-b559-5b96ad449574",
+ "comment": "",
+ "command": "type",
+ "target": "id=wysiwyg-area",
+ "targets": [
+ ["id=wysiwyg-area", "id"],
+ ["name=admin_product[free_area]", "name"],
+ ["css=#wysiwyg-area", "css:finder"],
+ ["xpath=//textarea[@id='wysiwyg-area']", "xpath:attributes"],
+ ["xpath=//div[@id='freeArea']/div/div/div[2]/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/div[2]/div/textarea", "xpath:position"]
+ ],
+ "value": "ec-cube"
+ }, {
+ "id": "7cbc21de-57a6-4b1a-b549-91663b5f9704",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_product_note",
+ "targets": [
+ ["id=admin_product_note", "id"],
+ ["name=admin_product[note]", "name"],
+ ["css=#admin_product_note", "css:finder"],
+ ["xpath=//textarea[@id='admin_product_note']", "xpath:attributes"],
+ ["xpath=//div[@id='shopMemo']/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/div/textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "e1011f1d-292f-43cf-b15c-1e900cef35f7",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_product_note",
+ "targets": [
+ ["id=admin_product_note", "id"],
+ ["name=admin_product[note]", "name"],
+ ["css=#admin_product_note", "css:finder"],
+ ["xpath=//textarea[@id='admin_product_note']", "xpath:attributes"],
+ ["xpath=//div[@id='shopMemo']/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/div/textarea", "xpath:position"]
+ ],
+ "value": "ショップ要メモ"
+ }, {
+ "id": "bdab2416-c24d-4013-bf78-1f12306743a6",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ladda-label",
+ "targets": [
+ ["css=.ladda-label", "css:finder"],
+ ["xpath=//div[@id='ex-conversion-action']/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//div[2]/button/span", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d37ef617-491b-45d0-9328-6acf78cabf27",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.ladda-label",
+ "targets": [
+ ["css=.ladda-label", "css:finder"],
+ ["xpath=//div[@id='ex-conversion-action']/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//div[2]/button/span", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "ef825608-913e-484f-91a1-32420bc147b3",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_product_category_2",
+ "targets": [
+ ["id=admin_product_category_2", "id"],
+ ["name=admin_product[Category][]", "name"],
+ ["css=#admin_product_category_2", "css:finder"],
+ ["xpath=//input[@id='admin_product_category_2']", "xpath:attributes"],
+ ["xpath=//div[@id='category']/div/div[2]/ul/li/input", "xpath:idRelative"],
+ ["xpath=//li/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "e9e04064-4de6-4572-94ac-a383e7d85d71",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_product_Status",
+ "targets": [
+ ["id=admin_product_Status", "id"],
+ ["name=admin_product[Status]", "name"],
+ ["css=#admin_product_Status", "css:finder"],
+ ["xpath=//select[@id='admin_product_Status']", "xpath:attributes"],
+ ["xpath=//div[@id='ex-conversion-action']/div/select", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/select", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "8177723a-cccc-4481-93c1-51542b6ccd7f",
+ "comment": "",
+ "command": "select",
+ "target": "id=admin_product_Status",
+ "targets": [],
+ "value": "label=公開"
+ }, {
+ "id": "9a036c46-7159-4246-88b5-c145793e305c",
+ "comment": "",
+ "command": "click",
+ "target": "css=#admin_product_Status > option:nth-child(1)",
+ "targets": [
+ ["css=#admin_product_Status > option:nth-child(1)", "css:finder"],
+ ["xpath=(//option[@value='1'])[3]", "xpath:attributes"],
+ ["xpath=//select[@id='admin_product_Status']/option", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/select/option", "xpath:position"],
+ ["xpath=//option[contains(.,'公開')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "80e8428b-401d-40d2-80e0-4e68f35f7c39",
+ "comment": "",
+ "command": "click",
+ "target": "css=.px-5",
+ "targets": [
+ ["css=.px-5", "css:finder"],
+ ["xpath=//button[@type='submit']", "xpath:attributes"],
+ ["xpath=//div[@id='ex-conversion-action']/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "a17fbdb5-c5ca-47ca-9aaa-fed16193ab94",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.px-5",
+ "targets": [
+ ["css=.px-5", "css:finder"],
+ ["xpath=//button[@type='submit']", "xpath:attributes"],
+ ["xpath=//div[@id='ex-conversion-action']/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e9bb07bc-d44d-4846-99d1-29bfb9987c88",
+ "comment": "",
+ "command": "click",
+ "target": "css=.d-block .font-weight-bold:nth-child(2)",
+ "targets": [
+ ["css=.d-block .font-weight-bold:nth-child(2)", "css:finder"],
+ ["xpath=//div[@id='tag']/div/div/a/span", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/a/span", "xpath:position"],
+ ["xpath=//span[contains(.,'タグ登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e7c81c3d-cd1e-4114-b83e-bf3c438b65f4",
+ "comment": "",
+ "command": "click",
+ "target": "css=.d-inline-block:nth-child(3) > .btn",
+ "targets": [
+ ["css=.d-inline-block:nth-child(3) > .btn", "css:finder"],
+ ["xpath=(//button[@type='button'])[4]", "xpath:attributes"],
+ ["xpath=//div[@id='allTags']/div[3]/button", "xpath:idRelative"],
+ ["xpath=//div[3]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'おすすめ商品')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "991c5212-00ec-433b-82da-8f544f7c41f9",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,488.9333190917969)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "a9c60312-7b91-4450-a47c-3e2d62f7161e",
+ "comment": "",
+ "command": "click",
+ "target": "css=.px-5",
+ "targets": [
+ ["css=.px-5", "css:finder"],
+ ["xpath=//button[@type='submit']", "xpath:attributes"],
+ ["xpath=//div[@id='ex-conversion-action']/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "6b499b85-63b6-44e2-bca1-1562136a1413",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=この商品の規格を確認",
+ "targets": [
+ ["linkText=この商品の規格を確認", "linkText"],
+ ["css=#standardConfig .btn", "css:finder"],
+ ["xpath=//a[contains(text(),'この商品の規格を確認')]", "xpath:link"],
+ ["xpath=//div[@id='standardConfig']/div/div/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '/admin/product/product/class/4')]", "xpath:href"],
+ ["xpath=//div[2]/div[2]/div/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'この商品の規格を確認')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "10502d07-82a1-4bf2-a304-eb891806d93c",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "linkText=この商品の規格を確認",
+ "targets": [
+ ["linkText=この商品の規格を確認", "linkText"],
+ ["css=#standardConfig .btn", "css:finder"],
+ ["xpath=//a[contains(text(),'この商品の規格を確認')]", "xpath:link"],
+ ["xpath=//div[@id='standardConfig']/div/div/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '/admin/product/product/class/4')]", "xpath:href"],
+ ["xpath=//div[2]/div[2]/div/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'この商品の規格を確認')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e68616ff-314c-495c-a0ca-5f4fbd360de8",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "linkText=この商品の規格を確認",
+ "targets": [
+ ["linkText=この商品の規格を確認", "linkText"],
+ ["css=#standardConfig .btn", "css:finder"],
+ ["xpath=//a[contains(text(),'この商品の規格を確認')]", "xpath:link"],
+ ["xpath=//div[@id='standardConfig']/div/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, '/admin/product/product/class/4')])[2]", "xpath:href"],
+ ["xpath=//div[2]/div[2]/div/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'この商品の規格を確認')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "50c9519a-fb37-43df-94af-5e58033f9667",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=保存せずに移動",
+ "targets": [
+ ["linkText=保存せずに移動", "linkText"],
+ ["css=.btn-ec-sub", "css:finder"],
+ ["xpath=//a[contains(text(),'保存せずに移動')]", "xpath:link"],
+ ["xpath=//div[@id='confirmFormChangeModal']/div/div/div[3]/a[2]", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '/admin/product/product/class/4')]", "xpath:href"],
+ ["xpath=//div[3]/a[2]", "xpath:position"],
+ ["xpath=//a[contains(.,'保存せずに移動')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "3c2461a1-06ef-4c64-8d57-8690531c86fc",
+ "comment": "",
+ "command": "select",
+ "target": "id=product_class_matrix_class_name1",
+ "targets": [],
+ "value": "label=サイズ (CUBE用サイズ)"
+ }, {
+ "id": "dcbd18f0-ee1f-4c05-9407-72ac896795e9",
+ "comment": "",
+ "command": "click",
+ "target": "css=#product_class_matrix_class_name1 > option:nth-child(2)",
+ "targets": [
+ ["css=#product_class_matrix_class_name1 > option:nth-child(2)", "css:finder"],
+ ["xpath=//option[@value='2']", "xpath:attributes"],
+ ["xpath=//select[@id='product_class_matrix_class_name1']/option[2]", "xpath:idRelative"],
+ ["xpath=//option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'サイズ (CUBE用サイズ)')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "b3e3973f-2229-4805-8fe0-4085af12f566",
+ "comment": "",
+ "command": "select",
+ "target": "id=product_class_matrix_class_name2",
+ "targets": [],
+ "value": "label=フレーバー (CUBE用味)"
+ }, {
+ "id": "cc5f149b-8633-45e7-a64e-f2bf1c46a369",
+ "comment": "",
+ "command": "click",
+ "target": "css=#product_class_matrix_class_name2 > option:nth-child(3)",
+ "targets": [
+ ["css=#product_class_matrix_class_name2 > option:nth-child(3)", "css:finder"],
+ ["xpath=(//option[@value='1'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='product_class_matrix_class_name2']/option[3]", "xpath:idRelative"],
+ ["xpath=//div[2]/select/option[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "0321b51f-9a53-42ce-b713-bedbd69038d7",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ladda-label",
+ "targets": [
+ ["css=.ladda-label", "css:finder"],
+ ["xpath=//body[@id='page_admin_product_product_class']/div/div[3]/div[2]/div/div/div/form/div/div/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'商品規格の設定')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "40553273-9dab-4d78-a62b-a04393b638bb",
+ "comment": "",
+ "command": "click",
+ "target": "id=check-all",
+ "targets": [
+ ["id=check-all", "id"],
+ ["css=#check-all", "css:finder"],
+ ["xpath=//input[@id='check-all']", "xpath:attributes"],
+ ["xpath=//div[@id='ex-product_class']/table/thead/tr/th/input", "xpath:idRelative"],
+ ["xpath=//th/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "eeb25565-f106-46cd-b170-169eda93361e",
+ "comment": "",
+ "command": "click",
+ "target": "id=product_class_matrix_product_classes_0_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_0_code", "id"],
+ ["name=product_class_matrix[product_classes][0][code]", "name"],
+ ["css=#product_class_matrix_product_classes_0_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_0_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-0']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//td[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "04936e6a-89f8-40ac-aed3-604c4fde90f4",
+ "comment": "",
+ "command": "click",
+ "target": "id=product_class_matrix_product_classes_0_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_0_code", "id"],
+ ["name=product_class_matrix[product_classes][0][code]", "name"],
+ ["css=#product_class_matrix_product_classes_0_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_0_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-0']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//td[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "8ce52cef-b2e1-49b7-bc10-ef7021f2e84c",
+ "comment": "",
+ "command": "click",
+ "target": "id=product_class_matrix_product_classes_0_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_0_code", "id"],
+ ["name=product_class_matrix[product_classes][0][code]", "name"],
+ ["css=#product_class_matrix_product_classes_0_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_0_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-0']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//td[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "50dc7ca5-a433-4a26-986b-efe49ae7d44b",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=product_class_matrix_product_classes_0_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_0_code", "id"],
+ ["name=product_class_matrix[product_classes][0][code]", "name"],
+ ["css=#product_class_matrix_product_classes_0_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_0_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-0']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//td[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "f052e74d-45eb-4e0f-8bf9-3dbd7f6d266d",
+ "comment": "",
+ "command": "click",
+ "target": "id=product_class_matrix_product_classes_0_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_0_code", "id"],
+ ["name=product_class_matrix[product_classes][0][code]", "name"],
+ ["css=#product_class_matrix_product_classes_0_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_0_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-0']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//td[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "741383da-adc1-4894-89f4-8f58c3608acd",
+ "comment": "",
+ "command": "type",
+ "target": "id=product_class_matrix_product_classes_0_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_0_code", "id"],
+ ["name=product_class_matrix[product_classes][0][code]", "name"],
+ ["css=#product_class_matrix_product_classes_0_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_0_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-0']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//td[4]/input", "xpath:position"]
+ ],
+ "value": "testing-01"
+ }, {
+ "id": "4a2f42ed-c3aa-453b-bcec-3ced3dec479d",
+ "comment": "",
+ "command": "click",
+ "target": "id=product_class_matrix_product_classes_0_stock",
+ "targets": [
+ ["id=product_class_matrix_product_classes_0_stock", "id"],
+ ["name=product_class_matrix[product_classes][0][stock]", "name"],
+ ["css=#product_class_matrix_product_classes_0_stock", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_0_stock']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-0']/td[5]/div/div/input", "xpath:idRelative"],
+ ["xpath=//div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "2c2c87fa-7ef1-415b-9b23-306420de9c96",
+ "comment": "",
+ "command": "type",
+ "target": "id=product_class_matrix_product_classes_0_stock",
+ "targets": [
+ ["id=product_class_matrix_product_classes_0_stock", "id"],
+ ["name=product_class_matrix[product_classes][0][stock]", "name"],
+ ["css=#product_class_matrix_product_classes_0_stock", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_0_stock']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-0']/td[5]/div/div/input", "xpath:idRelative"],
+ ["xpath=//div/div/input", "xpath:position"]
+ ],
+ "value": "1000"
+ }, {
+ "id": "6d8e06d1-eac1-44f3-b0f7-b44914e17ff7",
+ "comment": "",
+ "command": "type",
+ "target": "id=product_class_matrix_product_classes_0_sale_limit",
+ "targets": [
+ ["id=product_class_matrix_product_classes_0_sale_limit", "id"],
+ ["name=product_class_matrix[product_classes][0][sale_limit]", "name"],
+ ["css=#product_class_matrix_product_classes_0_sale_limit", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_0_sale_limit']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-0']/td[6]/div/div/input", "xpath:idRelative"],
+ ["xpath=//td[6]/div/div/input", "xpath:position"]
+ ],
+ "value": "100"
+ }, {
+ "id": "43d3f380-6d58-4458-8825-72d864812144",
+ "comment": "",
+ "command": "type",
+ "target": "id=product_class_matrix_product_classes_0_price01",
+ "targets": [
+ ["id=product_class_matrix_product_classes_0_price01", "id"],
+ ["name=product_class_matrix[product_classes][0][price01]", "name"],
+ ["css=#product_class_matrix_product_classes_0_price01", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_0_price01']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-0']/td[7]/div/input", "xpath:idRelative"],
+ ["xpath=//td[7]/div/input", "xpath:position"]
+ ],
+ "value": "1000"
+ }, {
+ "id": "ba7bc95f-b9b1-48aa-84e9-a46235df7752",
+ "comment": "",
+ "command": "type",
+ "target": "id=product_class_matrix_product_classes_0_price02",
+ "targets": [
+ ["id=product_class_matrix_product_classes_0_price02", "id"],
+ ["name=product_class_matrix[product_classes][0][price02]", "name"],
+ ["css=#product_class_matrix_product_classes_0_price02", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_0_price02']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-0']/td[8]/div/input", "xpath:idRelative"],
+ ["xpath=//td[8]/div/input", "xpath:position"]
+ ],
+ "value": "1000"
+ }, {
+ "id": "4e383450-abfe-4dd3-8caa-f3e58608994a",
+ "comment": "",
+ "command": "select",
+ "target": "id=product_class_matrix_product_classes_0_delivery_duration",
+ "targets": [],
+ "value": "label=即日"
+ }, {
+ "id": "39775784-30d9-4551-9454-37d2f7886fe7",
+ "comment": "",
+ "command": "click",
+ "target": "css=#product_class_matrix_product_classes_0_delivery_duration > option:nth-child(2)",
+ "targets": [
+ ["css=#product_class_matrix_product_classes_0_delivery_duration > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[3]", "xpath:attributes"],
+ ["xpath=//select[@id='product_class_matrix_product_classes_0_delivery_duration']/option[2]", "xpath:idRelative"],
+ ["xpath=//td[9]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'即日')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "76e866ac-38c6-4fbb-9eba-8e1650d2186d",
+ "comment": "",
+ "command": "click",
+ "target": "css=#ex-product_class-0 > .pr-3",
+ "targets": [
+ ["css=#ex-product_class-0 > .pr-3", "css:finder"],
+ ["xpath=//tr[@id='ex-product_class-0']/td[10]", "xpath:idRelative"],
+ ["xpath=//td[10]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "55c296aa-d393-4476-9747-98755586ac27",
+ "comment": "",
+ "command": "click",
+ "target": "css=#copy > span",
+ "targets": [
+ ["css=#copy > span", "css:finder"],
+ ["xpath=//button[@id='copy']/span", "xpath:idRelative"],
+ ["xpath=//div/div/div/div[2]/button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'1行目をすべての行に複製')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e526ee21-a380-45f8-a002-afe5edb52cb6",
+ "comment": "",
+ "command": "click",
+ "target": "id=product_class_matrix_product_classes_1_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_1_code", "id"],
+ ["name=product_class_matrix[product_classes][1][code]", "name"],
+ ["css=#product_class_matrix_product_classes_1_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_1_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-1']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//tr[2]/td[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "2c14b95c-dd80-480b-b92b-af0693c13ea6",
+ "comment": "",
+ "command": "type",
+ "target": "id=product_class_matrix_product_classes_1_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_1_code", "id"],
+ ["name=product_class_matrix[product_classes][1][code]", "name"],
+ ["css=#product_class_matrix_product_classes_1_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_1_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-1']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//tr[2]/td[4]/input", "xpath:position"]
+ ],
+ "value": "testing-02"
+ }, {
+ "id": "78cde8ef-63cb-4681-ac11-1ca208e8c869",
+ "comment": "",
+ "command": "click",
+ "target": "id=product_class_matrix_product_classes_2_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_2_code", "id"],
+ ["name=product_class_matrix[product_classes][2][code]", "name"],
+ ["css=#product_class_matrix_product_classes_2_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_2_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-2']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//tr[3]/td[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "7ae89485-7f66-4d5f-837b-cd865d2c4b5b",
+ "comment": "",
+ "command": "type",
+ "target": "id=product_class_matrix_product_classes_2_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_2_code", "id"],
+ ["name=product_class_matrix[product_classes][2][code]", "name"],
+ ["css=#product_class_matrix_product_classes_2_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_2_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-2']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//tr[3]/td[4]/input", "xpath:position"]
+ ],
+ "value": "testing-03"
+ }, {
+ "id": "6234b7f4-1554-431c-99f2-eef8278617d3",
+ "comment": "",
+ "command": "click",
+ "target": "id=product_class_matrix_product_classes_3_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_3_code", "id"],
+ ["name=product_class_matrix[product_classes][3][code]", "name"],
+ ["css=#product_class_matrix_product_classes_3_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_3_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-3']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//tr[4]/td[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "abca796c-9cdd-47db-ba35-fb5c7dc817a8",
+ "comment": "",
+ "command": "type",
+ "target": "id=product_class_matrix_product_classes_3_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_3_code", "id"],
+ ["name=product_class_matrix[product_classes][3][code]", "name"],
+ ["css=#product_class_matrix_product_classes_3_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_3_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-3']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//tr[4]/td[4]/input", "xpath:position"]
+ ],
+ "value": "testing-04"
+ }, {
+ "id": "9c4afc20-a073-445d-b3e5-2d673c4195cc",
+ "comment": "",
+ "command": "click",
+ "target": "id=product_class_matrix_product_classes_4_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_4_code", "id"],
+ ["name=product_class_matrix[product_classes][4][code]", "name"],
+ ["css=#product_class_matrix_product_classes_4_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_4_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-4']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//tr[5]/td[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d0ea3120-c4cc-4b96-a51a-f15bac9cb2b8",
+ "comment": "",
+ "command": "type",
+ "target": "id=product_class_matrix_product_classes_4_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_4_code", "id"],
+ ["name=product_class_matrix[product_classes][4][code]", "name"],
+ ["css=#product_class_matrix_product_classes_4_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_4_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-4']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//tr[5]/td[4]/input", "xpath:position"]
+ ],
+ "value": "testing-05"
+ }, {
+ "id": "774fc981-2faf-4bfa-83ec-4747a9c8f68d",
+ "comment": "",
+ "command": "click",
+ "target": "id=product_class_matrix_product_classes_5_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_5_code", "id"],
+ ["name=product_class_matrix[product_classes][5][code]", "name"],
+ ["css=#product_class_matrix_product_classes_5_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_5_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-5']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//tr[6]/td[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "99aa209c-ec95-4691-986c-604524b49b90",
+ "comment": "",
+ "command": "type",
+ "target": "id=product_class_matrix_product_classes_5_code",
+ "targets": [
+ ["id=product_class_matrix_product_classes_5_code", "id"],
+ ["name=product_class_matrix[product_classes][5][code]", "name"],
+ ["css=#product_class_matrix_product_classes_5_code", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_5_code']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-5']/td[4]/input", "xpath:idRelative"],
+ ["xpath=//tr[6]/td[4]/input", "xpath:position"]
+ ],
+ "value": "testing-06"
+ }, {
+ "id": "70af2b05-d081-4592-a8e3-c435ab064502",
+ "comment": "",
+ "command": "click",
+ "target": "id=product_class_matrix_product_classes_6_checked",
+ "targets": [
+ ["id=product_class_matrix_product_classes_6_checked", "id"],
+ ["name=product_class_matrix[product_classes][6][checked]", "name"],
+ ["css=#product_class_matrix_product_classes_6_checked", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_6_checked']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-6']/td/div/input", "xpath:idRelative"],
+ ["xpath=//tr[7]/td/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "3c23ceb8-722a-4940-9afb-f9cb75584525",
+ "comment": "",
+ "command": "click",
+ "target": "id=product_class_matrix_product_classes_7_checked",
+ "targets": [
+ ["id=product_class_matrix_product_classes_7_checked", "id"],
+ ["name=product_class_matrix[product_classes][7][checked]", "name"],
+ ["css=#product_class_matrix_product_classes_7_checked", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_7_checked']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-7']/td/div/input", "xpath:idRelative"],
+ ["xpath=//tr[8]/td/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "123313a9-622c-4b87-a4a6-20a645a72ed1",
+ "comment": "",
+ "command": "click",
+ "target": "css=#ex-product_class-8 > .pl-3",
+ "targets": [
+ ["css=#ex-product_class-8 > .pl-3", "css:finder"],
+ ["xpath=//tr[@id='ex-product_class-8']/td", "xpath:idRelative"],
+ ["xpath=//tr[9]/td", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "2c3788b9-4cc5-4e94-b46c-a07b2286f9d5",
+ "comment": "",
+ "command": "click",
+ "target": "css=#ex-product_class-8 > .pl-3",
+ "targets": [
+ ["css=#ex-product_class-8 > .pl-3", "css:finder"],
+ ["xpath=//tr[@id='ex-product_class-8']/td", "xpath:idRelative"],
+ ["xpath=//tr[9]/td", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "c2aed2a9-5903-42f3-bb89-7ad904d0ef17",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "css=#ex-product_class-8 > .pl-3",
+ "targets": [
+ ["css=#ex-product_class-8 > .pl-3", "css:finder"],
+ ["xpath=//tr[@id='ex-product_class-8']/td", "xpath:idRelative"],
+ ["xpath=//tr[9]/td", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "bcf527a1-410c-4494-b620-fd3820f26f8b",
+ "comment": "",
+ "command": "click",
+ "target": "id=product_class_matrix_product_classes_8_checked",
+ "targets": [
+ ["id=product_class_matrix_product_classes_8_checked", "id"],
+ ["name=product_class_matrix[product_classes][8][checked]", "name"],
+ ["css=#product_class_matrix_product_classes_8_checked", "css:finder"],
+ ["xpath=//input[@id='product_class_matrix_product_classes_8_checked']", "xpath:attributes"],
+ ["xpath=//tr[@id='ex-product_class-8']/td/div/input", "xpath:idRelative"],
+ ["xpath=//tr[9]/td/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "957b0c77-843d-4908-ba84-70835867fe72",
+ "comment": "",
+ "command": "click",
+ "target": "name=product_class_matrix[save]",
+ "targets": [
+ ["name=product_class_matrix[save]", "name"],
+ ["css=.px-5", "css:finder"],
+ ["xpath=//button[@name='product_class_matrix[save]']", "xpath:attributes"],
+ ["xpath=//div[@id='ex-conversion-action']/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "d9ced51a-2239-4f81-9700-e5014b9fb709",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=規格管理",
+ "targets": [
+ ["linkText=規格管理", "linkText"],
+ ["css=#nav-product > li:nth-child(3) > a", "css:finder"],
+ ["xpath=//ul[@id='nav-product']/li[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/class_name')]", "xpath:href"],
+ ["xpath=//li[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'規格管理')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "35aacfde-ce52-4666-96d1-aebc3ce79438",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_class_name_name",
+ "targets": [
+ ["id=admin_class_name_name", "id"],
+ ["name=admin_class_name[name]", "name"],
+ ["css=#admin_class_name_name", "css:finder"],
+ ["xpath=//input[@id='admin_class_name_name']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[2]/input[2]", "xpath:idRelative"],
+ ["xpath=//input[2]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "5140af68-f48c-48e1-ab17-48e0942d5f53",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_class_name_name",
+ "targets": [
+ ["id=admin_class_name_name", "id"],
+ ["name=admin_class_name[name]", "name"],
+ ["css=#admin_class_name_name", "css:finder"],
+ ["xpath=//input[@id='admin_class_name_name']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[2]/input[2]", "xpath:idRelative"],
+ ["xpath=//input[2]", "xpath:position"]
+ ],
+ "value": "色"
+ }, {
+ "id": "703ac5f9-1c4a-4c0c-9082-f6203ea08e25",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_class_name_backend_name",
+ "targets": [
+ ["id=admin_class_name_backend_name", "id"],
+ ["name=admin_class_name[backend_name]", "name"],
+ ["css=#admin_class_name_backend_name", "css:finder"],
+ ["xpath=//input[@id='admin_class_name_backend_name']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[4]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/input", "xpath:position"]
+ ],
+ "value": "色01"
+ }, {
+ "id": "497d7967-8d20-480b-adcb-fc9d9174fcd6",
+ "comment": "",
+ "command": "click",
+ "target": "css=.btn-ec-regular > .ladda-label",
+ "targets": [
+ ["css=.btn-ec-regular > .ladda-label", "css:finder"],
+ ["xpath=//form[@id='form1']/div[5]/button/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "f2a3fd47-82a8-4419-b1c2-ca4e9ae4f0c8",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.btn-ec-regular > .ladda-label",
+ "targets": [
+ ["css=.btn-ec-regular > .ladda-label", "css:finder"],
+ ["xpath=//form[@id='form1']/div[5]/button/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "69876e5a-47e1-4ed6-8d72-da7704950017",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "css=.btn-ec-regular > .ladda-label",
+ "targets": [
+ ["css=.btn-ec-regular > .ladda-label", "css:finder"],
+ ["xpath=//form[@id='form1']/div[5]/button/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "63080b33-ceb0-47cd-b062-04f55d38e5fe",
+ "comment": "",
+ "command": "mouseDownAt",
+ "target": "linkText=色[管理名:色01] (0)",
+ "targets": [
+ ["linkText=色[管理名:色01] (0)", "linkText"],
+ ["css=#ex-class_name-3 .col > a", "css:finder"],
+ ["xpath=//a[contains(text(),'色[管理名:色01] (0)')]", "xpath:link"],
+ ["xpath=//li[@id='ex-class_name-3']/div/div[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/class_category/3')]", "xpath:href"],
+ ["xpath=//div[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'色[管理名:色01] (0)')]", "xpath:innerText"]
+ ],
+ "value": "117.61666870117188,-78.63333129882812"
+ }, {
+ "id": "724f8c1f-ae9f-451b-88ae-d191e14e1e45",
+ "comment": "",
+ "command": "mouseMoveAt",
+ "target": "css=#ex-class_name-3 .col",
+ "targets": [
+ ["css=#ex-class_name-3 .col", "css:finder"],
+ ["xpath=//li[@id='ex-class_name-3']/div/div[3]", "xpath:idRelative"],
+ ["xpath=//li[3]/div/div[3]", "xpath:position"]
+ ],
+ "value": "126.61666870117188,24"
+ }, {
+ "id": "501c876d-b9c2-4a0d-b268-6228c8ed50f0",
+ "comment": "",
+ "command": "mouseUpAt",
+ "target": "css=#ex-class_name-3 .col",
+ "targets": [
+ ["css=#ex-class_name-3 .col", "css:finder"],
+ ["xpath=//li[@id='ex-class_name-3']/div/div[3]", "xpath:idRelative"],
+ ["xpath=//li[3]/div/div[3]", "xpath:position"]
+ ],
+ "value": "126.61666870117188,24"
+ }, {
+ "id": "6148b10f-c3bb-4912-8f22-48a1be649e6b",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=色[管理名:色01] (0)",
+ "targets": [
+ ["linkText=色[管理名:色01] (0)", "linkText"],
+ ["css=#ex-class_name-3 .col > a", "css:finder"],
+ ["xpath=//a[contains(text(),'色[管理名:色01] (0)')]", "xpath:link"],
+ ["xpath=//li[@id='ex-class_name-3']/div/div[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/class_category/3')]", "xpath:href"],
+ ["xpath=//li[5]/div/div[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'色[管理名:色01] (0)')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "3e101d11-939f-4a8d-99b7-8f3ebfc56f78",
+ "comment": "",
+ "command": "click",
+ "target": "id=class_name_3_backend_name",
+ "targets": [
+ ["id=class_name_3_backend_name", "id"],
+ ["name=class_name_3[backend_name]", "name"],
+ ["css=#class_name_3_backend_name", "css:finder"],
+ ["xpath=//input[@id='class_name_3_backend_name']", "xpath:attributes"],
+ ["xpath=//li[@id='ex-class_name-3']/form/div[4]/input", "xpath:idRelative"],
+ ["xpath=//li[5]/form/div[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "c2d39dc1-ad06-4f0e-aa17-0ca74ad7d3d1",
+ "comment": "",
+ "command": "type",
+ "target": "id=class_name_3_backend_name",
+ "targets": [
+ ["id=class_name_3_backend_name", "id"],
+ ["name=class_name_3[backend_name]", "name"],
+ ["css=#class_name_3_backend_name", "css:finder"],
+ ["xpath=//input[@id='class_name_3_backend_name']", "xpath:attributes"],
+ ["xpath=//li[@id='ex-class_name-3']/form/div[4]/input", "xpath:idRelative"],
+ ["xpath=//li[5]/form/div[4]/input", "xpath:position"]
+ ],
+ "value": "色02"
+ }, {
+ "id": "60606cfb-c3c1-45fe-8228-847011e98ab7",
+ "comment": "",
+ "command": "click",
+ "target": "css=#ex-class_name-3 .ladda-label",
+ "targets": [
+ ["css=#ex-class_name-3 .ladda-label", "css:finder"],
+ ["xpath=//li[@id='ex-class_name-3']/form/div[5]/button/span", "xpath:idRelative"],
+ ["xpath=//li[5]/form/div[5]/button/span", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "73524631-d498-41e6-934a-82c57287f866",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=カテゴリ管理",
+ "targets": [
+ ["linkText=カテゴリ管理", "linkText"],
+ ["css=#nav-product > li:nth-child(4) > a", "css:finder"],
+ ["xpath=//ul[@id='nav-product']/li[4]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category')]", "xpath:href"],
+ ["xpath=//li[4]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'カテゴリ管理')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "c896d056-b5e8-45bb-a81a-1177ac218dc5",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_category_name",
+ "targets": [
+ ["id=admin_category_name", "id"],
+ ["name=admin_category[name]", "name"],
+ ["css=#admin_category_name", "css:finder"],
+ ["xpath=//input[@id='admin_category_name']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div/div/input", "xpath:idRelative"],
+ ["xpath=//div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "b89af73a-aec9-4c40-8966-f89e30fb903e",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_category_name",
+ "targets": [
+ ["id=admin_category_name", "id"],
+ ["name=admin_category[name]", "name"],
+ ["css=#admin_category_name", "css:finder"],
+ ["xpath=//input[@id='admin_category_name']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div/div/input", "xpath:idRelative"],
+ ["xpath=//div/input", "xpath:position"]
+ ],
+ "value": "テスト"
+ }, {
+ "id": "1f0c27b5-ff9a-4acd-a3f2-4888be737890",
+ "comment": "",
+ "command": "click",
+ "target": "css=.btn-ec-regular > .ladda-label",
+ "targets": [
+ ["css=.btn-ec-regular > .ladda-label", "css:finder"],
+ ["xpath=//form[@id='form1']/div/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e98d386a-f311-4373-aaa6-835868e9e8a3",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.btn-ec-regular > .ladda-label",
+ "targets": [
+ ["css=.btn-ec-regular > .ladda-label", "css:finder"],
+ ["xpath=//form[@id='form1']/div/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "26300d8a-c1b6-401c-b72f-c6b113b47526",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=#ex-category-7 .action-edit",
+ "targets": [
+ ["css=#ex-category-7 .action-edit", "css:finder"],
+ ["xpath=//li[@id='ex-category-7']/div/div[4]/a[3]", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/7/edit')]", "xpath:href"],
+ ["xpath=//div[4]/a[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "3dc6465d-de2d-4c56-a689-08df61f7f407",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "css=#ex-category-7 .action-edit",
+ "targets": [
+ ["css=#ex-category-7 .action-edit", "css:finder"],
+ ["xpath=//li[@id='ex-category-7']/div/div[4]/a[3]", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/7/edit')]", "xpath:href"],
+ ["xpath=//div[4]/a[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "6e647eef-6e9c-42f6-a94d-652d1ee145d4",
+ "comment": "",
+ "command": "click",
+ "target": "css=#ex-category-7 .btn:nth-child(3) > .fa",
+ "targets": [
+ ["css=#ex-category-7 .btn:nth-child(3) > .fa", "css:finder"],
+ ["xpath=//li[@id='ex-category-7']/div/div[4]/a[3]/i", "xpath:idRelative"],
+ ["xpath=//div[4]/a[3]/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "fe0d1bc5-5ebc-4e71-b838-e0270b1d54f2",
+ "comment": "",
+ "command": "click",
+ "target": "id=category_7_name",
+ "targets": [
+ ["id=category_7_name", "id"],
+ ["name=category_7[name]", "name"],
+ ["css=#category_7_name", "css:finder"],
+ ["xpath=//input[@id='category_7_name']", "xpath:attributes"],
+ ["xpath=//li[@id='ex-category-7']/form/div/input", "xpath:idRelative"],
+ ["xpath=//form/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "7057b160-9867-444e-9dfa-67125b06ac08",
+ "comment": "",
+ "command": "type",
+ "target": "id=category_7_name",
+ "targets": [
+ ["id=category_7_name", "id"],
+ ["name=category_7[name]", "name"],
+ ["css=#category_7_name", "css:finder"],
+ ["xpath=//input[@id='category_7_name']", "xpath:attributes"],
+ ["xpath=//li[@id='ex-category-7']/form/div/input", "xpath:idRelative"],
+ ["xpath=//form/div/input", "xpath:position"]
+ ],
+ "value": "テスト01"
+ }, {
+ "id": "8436bb12-be28-457a-bcf5-0835d346c8fe",
+ "comment": "",
+ "command": "mouseDownAt",
+ "target": "css=#ex-category-7 .col",
+ "targets": [
+ ["css=#ex-category-7 .col", "css:finder"],
+ ["xpath=//li[@id='ex-category-7']/div/div[3]", "xpath:idRelative"],
+ ["xpath=//li[3]/div/div[3]", "xpath:position"]
+ ],
+ "value": "169.41668701171875,19.5"
+ }, {
+ "id": "2d40c91e-cbd6-41e6-884a-a28d18253c36",
+ "comment": "",
+ "command": "mouseMoveAt",
+ "target": "css=#ex-category-7 .col",
+ "targets": [
+ ["css=#ex-category-7 .col", "css:finder"],
+ ["xpath=//li[@id='ex-category-7']/div/div[3]", "xpath:idRelative"],
+ ["xpath=//li[3]/div/div[3]", "xpath:position"]
+ ],
+ "value": "169.41668701171875,19.5"
+ }, {
+ "id": "40cfd921-1303-497b-a020-637690c8a369",
+ "comment": "",
+ "command": "mouseUpAt",
+ "target": "css=#ex-category-7 .col",
+ "targets": [
+ ["css=#ex-category-7 .col", "css:finder"],
+ ["xpath=//li[@id='ex-category-7']/div/div[3]", "xpath:idRelative"],
+ ["xpath=//li[3]/div/div[3]", "xpath:position"]
+ ],
+ "value": "169.41668701171875,19.5"
+ }, {
+ "id": "3159f891-7196-41fd-9cd6-ada096b222b9",
+ "comment": "",
+ "command": "click",
+ "target": "css=#ex-category-7 .col",
+ "targets": [
+ ["css=#ex-category-7 .col", "css:finder"],
+ ["xpath=//li[@id='ex-category-7']/div/div[3]", "xpath:idRelative"],
+ ["xpath=//li[6]/div/div[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "c28b49f5-cb2e-4ecf-a99b-f0046cb872ad",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=テスト",
+ "targets": [
+ ["linkText=テスト", "linkText"],
+ ["css=#ex-category-7 .col > a", "css:finder"],
+ ["xpath=//a[contains(text(),'テスト')]", "xpath:link"],
+ ["xpath=//li[@id='ex-category-7']/div/div[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/7')]", "xpath:href"],
+ ["xpath=//li[6]/div/div[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'テスト')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "a50dd304-a4b6-4a3d-8edb-3798066b9480",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_category_name",
+ "targets": [
+ ["id=admin_category_name", "id"],
+ ["name=admin_category[name]", "name"],
+ ["css=#admin_category_name", "css:finder"],
+ ["xpath=//input[@id='admin_category_name']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div/div/input", "xpath:idRelative"],
+ ["xpath=//div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "5a5fa0b4-8c1c-46d0-8130-a717b0af1b57",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_category_name",
+ "targets": [
+ ["id=admin_category_name", "id"],
+ ["name=admin_category[name]", "name"],
+ ["css=#admin_category_name", "css:finder"],
+ ["xpath=//input[@id='admin_category_name']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div/div/input", "xpath:idRelative"],
+ ["xpath=//div/input", "xpath:position"]
+ ],
+ "value": "テスト02"
+ }, {
+ "id": "658909bf-1441-49f3-a106-3335af4358ec",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ladda-button",
+ "targets": [
+ ["css=.ladda-button", "css:finder"],
+ ["xpath=//button[@type='submit']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div/div[2]/button", "xpath:idRelative"],
+ ["xpath=//button", "xpath:position"],
+ ["xpath=//button[contains(.,'新規作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e4fbea57-6071-4572-bc57-b958cd54ea57",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.ladda-button",
+ "targets": [
+ ["css=.ladda-button", "css:finder"],
+ ["xpath=//button[@type='submit']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div/div[2]/button", "xpath:idRelative"],
+ ["xpath=//button", "xpath:position"],
+ ["xpath=//button[contains(.,'新規作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "6c1db7f5-3244-4230-99ad-76545b4d6db3",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.action-edit",
+ "targets": [
+ ["css=.action-edit", "css:finder"],
+ ["xpath=//li[@id='ex-category-8']/div/div[4]/a[3]", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/8/edit')]", "xpath:href"],
+ ["xpath=//div[4]/a[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "cf2b68bf-ed06-45d4-8a8c-14926f6810b3",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "css=.action-edit",
+ "targets": [
+ ["css=.action-edit", "css:finder"],
+ ["xpath=//li[@id='ex-category-8']/div/div[4]/a[3]", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/8/edit')]", "xpath:href"],
+ ["xpath=//div[4]/a[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "a0cb67ae-7314-4784-87f6-6ec28aec1605",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=テスト02",
+ "targets": [
+ ["linkText=テスト02", "linkText"],
+ ["css=.col > a", "css:finder"],
+ ["xpath=//a[contains(text(),'テスト02')]", "xpath:link"],
+ ["xpath=//li[@id='ex-category-8']/div/div[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/8')]", "xpath:href"],
+ ["xpath=//div[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'テスト02')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "3a596b99-a66e-42d9-b697-aae3efa46404",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_category_name",
+ "targets": [
+ ["id=admin_category_name", "id"],
+ ["name=admin_category[name]", "name"],
+ ["css=#admin_category_name", "css:finder"],
+ ["xpath=//input[@id='admin_category_name']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div/div/input", "xpath:idRelative"],
+ ["xpath=//div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "89b7f499-654c-4c81-9970-8f331e02421b",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_category_name",
+ "targets": [
+ ["id=admin_category_name", "id"],
+ ["name=admin_category[name]", "name"],
+ ["css=#admin_category_name", "css:finder"],
+ ["xpath=//input[@id='admin_category_name']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div/div/input", "xpath:idRelative"],
+ ["xpath=//div/input", "xpath:position"]
+ ],
+ "value": "テスト03"
+ }, {
+ "id": "38b15837-0493-4daf-bde9-f37da6bd9493",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ladda-label",
+ "targets": [
+ ["css=.ladda-label", "css:finder"],
+ ["xpath=//form[@id='form1']/div/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "fb852373-1e69-44db-bd0a-43f561ceb5cb",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.ladda-label",
+ "targets": [
+ ["css=.ladda-label", "css:finder"],
+ ["xpath=//form[@id='form1']/div/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "817ef252-57f5-49f2-9d62-d137d00a448b",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "css=.ladda-label",
+ "targets": [
+ ["css=.ladda-label", "css:finder"],
+ ["xpath=//form[@id='form1']/div/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "1ad6019d-9956-4edc-80f7-f75fcb8f6706",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.action-edit",
+ "targets": [
+ ["css=.action-edit", "css:finder"],
+ ["xpath=//li[@id='ex-category-9']/div/div[4]/a[3]", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/9/edit')]", "xpath:href"],
+ ["xpath=//div[4]/a[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "36fa7ff4-b4a8-4d4d-b5d9-887c9bdc4728",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "css=.action-edit",
+ "targets": [
+ ["css=.action-edit", "css:finder"],
+ ["xpath=//li[@id='ex-category-9']/div/div[4]/a[3]", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/9/edit')]", "xpath:href"],
+ ["xpath=//div[4]/a[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "ecce9bd1-6b6b-4026-a6ff-8f0a3f2520e0",
+ "comment": "",
+ "command": "click",
+ "target": "css=.fa-close",
+ "targets": [
+ ["css=.fa-close", "css:finder"],
+ ["xpath=//li[@id='ex-category-9']/div/div[4]/div/a/i", "xpath:idRelative"],
+ ["xpath=//div[4]/div/a/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "bb40c5a9-61ae-431c-ba24-691a32f4134d",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=削除",
+ "targets": [
+ ["linkText=削除", "linkText"],
+ ["css=.btn-ec-delete", "css:finder"],
+ ["xpath=//a[contains(text(),'削除')]", "xpath:link"],
+ ["xpath=//div[@id='DeleteModal']/div/div/div[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/9/delete')]", "xpath:href"],
+ ["xpath=//div/div/div[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'削除')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "835df1f6-2607-45db-8d02-c00a3ccdbdb5",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=タグ管理",
+ "targets": [
+ ["linkText=タグ管理", "linkText"],
+ ["css=#nav-product > li:nth-child(5) > a", "css:finder"],
+ ["xpath=//ul[@id='nav-product']/li[5]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/tag')]", "xpath:href"],
+ ["xpath=//li[5]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'タグ管理')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "539042e4-9bfe-467e-b3b6-efcb81ddf055",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_product_tag_name",
+ "targets": [
+ ["id=admin_product_tag_name", "id"],
+ ["name=admin_product_tag[name]", "name"],
+ ["css=#admin_product_tag_name", "css:finder"],
+ ["xpath=//input[@id='admin_product_tag_name']", "xpath:attributes"],
+ ["xpath=//body[@id='page_admin_product_tag']/div/div[3]/div[2]/div/div/div/div/div/ul/li/form/div/input", "xpath:idRelative"],
+ ["xpath=//div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "70bf8e16-be2e-47a2-abae-2c63d488f23d",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_product_tag_name",
+ "targets": [
+ ["id=admin_product_tag_name", "id"],
+ ["name=admin_product_tag[name]", "name"],
+ ["css=#admin_product_tag_name", "css:finder"],
+ ["xpath=//input[@id='admin_product_tag_name']", "xpath:attributes"],
+ ["xpath=//body[@id='page_admin_product_tag']/div/div[3]/div[2]/div/div/div/div/div/ul/li/form/div/input", "xpath:idRelative"],
+ ["xpath=//div/input", "xpath:position"]
+ ],
+ "value": "テストタグ"
+ }, {
+ "id": "0b31608f-73e5-49a8-84c5-7fd3d93cc19e",
+ "comment": "",
+ "command": "click",
+ "target": "css=.btn-ec-regular > .ladda-label",
+ "targets": [
+ ["css=.btn-ec-regular > .ladda-label", "css:finder"],
+ ["xpath=//body[@id='page_admin_product_tag']/div/div[3]/div[2]/div/div/div/div/div/ul/li/form/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "5c421b48-f031-48cd-b881-f4418e7dfd38",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.btn-ec-regular > .ladda-label",
+ "targets": [
+ ["css=.btn-ec-regular > .ladda-label", "css:finder"],
+ ["xpath=//body[@id='page_admin_product_tag']/div/div[3]/div[3]/div/div/div/div/div/ul/li/form/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//form/div[2]/button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "6cc1d8c5-dbe8-4455-bb3c-82b6d0f27e20",
+ "comment": "",
+ "command": "mouseDownAt",
+ "target": "css=#ex-tag-4 .col",
+ "targets": [
+ ["css=#ex-tag-4 .col", "css:finder"],
+ ["xpath=//li[@id='ex-tag-4']/div/div[3]", "xpath:idRelative"],
+ ["xpath=//li[3]/div/div[3]", "xpath:position"]
+ ],
+ "value": "128.38333129882812,18"
+ }, {
+ "id": "8d7a7de6-f320-49ef-8624-870f75273a78",
+ "comment": "",
+ "command": "mouseMoveAt",
+ "target": "css=#ex-tag-4 .col",
+ "targets": [
+ ["css=#ex-tag-4 .col", "css:finder"],
+ ["xpath=//li[@id='ex-tag-4']/div/div[3]", "xpath:idRelative"],
+ ["xpath=//li[3]/div/div[3]", "xpath:position"]
+ ],
+ "value": "128.38333129882812,18"
+ }, {
+ "id": "3b3e5115-9565-482c-a2aa-9d27e0ee2e25",
+ "comment": "",
+ "command": "mouseUpAt",
+ "target": "css=#ex-tag-4 .col",
+ "targets": [
+ ["css=#ex-tag-4 .col", "css:finder"],
+ ["xpath=//li[@id='ex-tag-4']/div/div[3]", "xpath:idRelative"],
+ ["xpath=//li[3]/div/div[3]", "xpath:position"]
+ ],
+ "value": "128.38333129882812,18"
+ }, {
+ "id": "05de52a7-cfab-49a5-8c39-6d2a71cbb7b8",
+ "comment": "",
+ "command": "click",
+ "target": "css=#ex-tag-4 .col",
+ "targets": [
+ ["css=#ex-tag-4 .col", "css:finder"],
+ ["xpath=//li[@id='ex-tag-4']/div/div[3]", "xpath:idRelative"],
+ ["xpath=//li[5]/div/div[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "7e205980-b3ab-4701-800a-73c2aef82432",
+ "comment": "",
+ "command": "click",
+ "target": "css=#ex-tag-4 .d-inline-block .fa",
+ "targets": [
+ ["css=#ex-tag-4 .d-inline-block .fa", "css:finder"],
+ ["xpath=//li[@id='ex-tag-4']/div/div[4]/div/a/i", "xpath:idRelative"],
+ ["xpath=//li[5]/div/div[4]/div/a/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d62f6466-0667-4a8b-acff-051384399b98",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=削除",
+ "targets": [
+ ["linkText=削除", "linkText"],
+ ["css=.btn-ec-delete", "css:finder"],
+ ["xpath=//a[contains(text(),'削除')]", "xpath:link"],
+ ["xpath=//div[@id='DeleteModal']/div/div/div[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/tag/4/delete')]", "xpath:href"],
+ ["xpath=//div/div/div[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'削除')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "2f3d5431-b99c-461c-901c-f829e39a6f55",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "linkText=削除",
+ "targets": [
+ ["linkText=削除", "linkText"],
+ ["css=.btn-ec-delete", "css:finder"],
+ ["xpath=//a[contains(text(),'削除')]", "xpath:link"],
+ ["xpath=//div[@id='DeleteModal']/div/div/div[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/tag/4/delete')]", "xpath:href"],
+ ["xpath=//div/div/div[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'削除')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "80f49145-53ca-4fe0-ab0b-b63db4b09017",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=#ex-tag-3 .action-down",
+ "targets": [
+ ["css=#ex-tag-3 .action-down", "css:finder"],
+ ["xpath=//li[@id='ex-tag-3']/div/div[4]/a[2]", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, '#')])[13]", "xpath:href"],
+ ["xpath=//div[4]/a[2]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "2bdb2423-01cf-4fcf-8edb-fbc1614520bf",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "css=#ex-tag-3 .action-down",
+ "targets": [
+ ["css=#ex-tag-3 .action-down", "css:finder"],
+ ["xpath=//li[@id='ex-tag-3']/div/div[4]/a[2]", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, '#')])[13]", "xpath:href"],
+ ["xpath=//div[4]/a[2]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "03a1c2ee-b888-4f75-a34f-85a55f46b9df",
+ "comment": "",
+ "command": "click",
+ "target": "css=#ex-tag-3 .action-edit",
+ "targets": [
+ ["css=#ex-tag-3 .action-edit", "css:finder"],
+ ["xpath=//li[@id='ex-tag-3']/div/div[4]/a[3]", "xpath:idRelative"],
+ ["xpath=//div[4]/a[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "db840b3e-1264-4b21-823c-546eb2aed359",
+ "comment": "",
+ "command": "click",
+ "target": "css=#ex-tag-3 .ladda-label",
+ "targets": [
+ ["css=#ex-tag-3 .ladda-label", "css:finder"],
+ ["xpath=//li[@id='ex-tag-3']/form/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//li[3]/form/div[2]/button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'決定')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "05d132d0-dbb4-4ef0-8482-e4eb7c6137e2",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=#ex-tag-3 .ladda-label",
+ "targets": [
+ ["css=#ex-tag-3 .ladda-label", "css:finder"],
+ ["xpath=//li[@id='ex-tag-3']/form/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//li[3]/form/div[2]/button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'決定')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }]
+ }, {
+ "id": "93cadc3b-359e-440c-97b4-a69a41f7c12d",
+ "name": "受注管理",
+ "commands": [{
+ "id": "2323aade-d77a-415d-8eb1-98988122a67b",
+ "comment": "",
+ "command": "open",
+ "target": "https://ec-cube/admin/",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "708266cf-87e2-42a9-b706-029508a5a7de",
+ "comment": "",
+ "command": "setWindowSize",
+ "target": "1160x821",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "77cf7e8f-3620-4c35-905b-0e369ea5ded0",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=受注管理",
+ "targets": [
+ ["linkText=受注管理", "linkText"],
+ ["css=.c-mainNavArea__navItem:nth-child(3) > .c-mainNavArea__navItemTitle", "css:finder"],
+ ["xpath=//body[@id='page_admin_homepage']/div/div/nav/ul/li[3]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '#nav-order')]", "xpath:href"],
+ ["xpath=//nav/ul/li[3]/a", "xpath:position"],
+ ["xpath=//a[contains(.,' 受注管理')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "11e67ad6-7853-4201-a6a3-9f55b9e1bb19",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=受注一覧",
+ "targets": [
+ ["linkText=受注一覧", "linkText"],
+ ["css=#nav-order > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//ul[@id='nav-order']/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/order')]", "xpath:href"],
+ ["xpath=//li[3]/ul/li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'受注一覧')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "8865a6f5-b806-44fb-8fb8-2856a5a6e291",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=受注登録",
+ "targets": [
+ ["linkText=受注登録", "linkText"],
+ ["css=.is-active", "css:finder"],
+ ["xpath=//ul[@id='nav-order']/li[2]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/order/new')]", "xpath:href"],
+ ["xpath=//li[3]/ul/li[2]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'受注登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "9c92cb52-4b77-4acc-8ba3-0d92a4256802",
+ "comment": "",
+ "command": "select",
+ "target": "id=order_Payment",
+ "targets": [],
+ "value": "label=郵便振替"
+ }, {
+ "id": "b75bb272-b344-4eb8-bb25-b472571dac33",
+ "comment": "",
+ "command": "click",
+ "target": "css=#order_Payment > option:nth-child(4)",
+ "targets": [
+ ["css=#order_Payment > option:nth-child(4)", "css:finder"],
+ ["xpath=//option[@value='1']", "xpath:attributes"],
+ ["xpath=//select[@id='order_Payment']/option[4]", "xpath:idRelative"],
+ ["xpath=//option[4]", "xpath:position"],
+ ["xpath=//option[contains(.,'郵便振替')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "020513f3-e368-4706-9948-aa6c451c4a4e",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_name_name01",
+ "targets": [
+ ["id=order_name_name01", "id"],
+ ["name=order[name][name01]", "name"],
+ ["css=#order_name_name01", "css:finder"],
+ ["xpath=//input[@id='order_name_name01']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[2]/div/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[3]/div/div[2]/div/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "504b9fe8-9c91-48df-8850-7f1e37eaa2f4",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_name_name01",
+ "targets": [
+ ["id=order_name_name01", "id"],
+ ["name=order[name][name01]", "name"],
+ ["css=#order_name_name01", "css:finder"],
+ ["xpath=//input[@id='order_name_name01']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[2]/div/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[3]/div/div[2]/div/div/div/input", "xpath:position"]
+ ],
+ "value": "石"
+ }, {
+ "id": "1f96f4fc-0b42-431c-82b0-8b91d0c69ba4",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_name_name02",
+ "targets": [
+ ["id=order_name_name02", "id"],
+ ["name=order[name][name02]", "name"],
+ ["css=#order_name_name02", "css:finder"],
+ ["xpath=//input[@id='order_name_name02']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[2]/div/div/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[3]/div/div[2]/div/div/div[2]/input", "xpath:position"]
+ ],
+ "value": "給部"
+ }, {
+ "id": "9000dcbd-8f34-4cbf-9ecf-b34c2a734e43",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_kana_kana01",
+ "targets": [
+ ["id=order_kana_kana01", "id"],
+ ["name=order[kana][kana01]", "name"],
+ ["css=#order_kana_kana01", "css:finder"],
+ ["xpath=//input[@id='order_kana_kana01']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[3]/div/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[3]/div/div[3]/div/div/div/input", "xpath:position"]
+ ],
+ "value": "イーシー"
+ }, {
+ "id": "0cafb072-8940-4cd6-9902-e58d22daa1f1",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_kana_kana02",
+ "targets": [
+ ["id=order_kana_kana02", "id"],
+ ["name=order[kana][kana02]", "name"],
+ ["css=#order_kana_kana02", "css:finder"],
+ ["xpath=//input[@id='order_kana_kana02']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[3]/div/div/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[3]/div/div/div[2]/input", "xpath:position"]
+ ],
+ "value": "キューブ"
+ }, {
+ "id": "7b56c03e-f515-496d-b93e-931d90526a4d",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_postal_code",
+ "targets": [
+ ["id=order_postal_code", "id"],
+ ["name=order[postal_code]", "name"],
+ ["css=#order_postal_code", "css:finder"],
+ ["xpath=//input[@id='order_postal_code']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[4]/div/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div/div/div/input", "xpath:position"]
+ ],
+ "value": "5300001"
+ }, {
+ "id": "0f235bb5-4b5a-46df-a8db-7c2e4684fb40",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_address_addr02",
+ "targets": [
+ ["id=order_address_addr02", "id"],
+ ["name=order[address][addr02]", "name"],
+ ["css=#order_address_addr02", "css:finder"],
+ ["xpath=//input[@id='order_address_addr02']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[4]/div/div[4]/div/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d69af810-7069-4c34-9543-d9fe1a6a30af",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_address_addr02",
+ "targets": [
+ ["id=order_address_addr02", "id"],
+ ["name=order[address][addr02]", "name"],
+ ["css=#order_address_addr02", "css:finder"],
+ ["xpath=//input[@id='order_address_addr02']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[4]/div/div[4]/div/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div/input", "xpath:position"]
+ ],
+ "value": "2"
+ }, {
+ "id": "43048b45-1bda-4746-b641-d2557ca08ded",
+ "comment": "",
+ "command": "click",
+ "target": "css=.card-body:nth-child(2)",
+ "targets": [
+ ["css=.card-body:nth-child(2)", "css:finder"],
+ ["xpath=//div[@id='ordererInfo']/div", "xpath:idRelative"],
+ ["xpath=//form/div/div/div/div[2]/div[2]/div", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "61ff5889-0ace-4944-b9b1-af99b91c17c6",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_email",
+ "targets": [
+ ["id=order_email", "id"],
+ ["name=order[email]", "name"],
+ ["css=#order_email", "css:finder"],
+ ["xpath=//input[@id='order_email']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "5dbc8c65-3845-44b5-8e57-37bc9acffb93",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_email",
+ "targets": [
+ ["id=order_email", "id"],
+ ["name=order[email]", "name"],
+ ["css=#order_email", "css:finder"],
+ ["xpath=//input[@id='order_email']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/input", "xpath:position"]
+ ],
+ "value": "ec-cube-guest@example.com"
+ }, {
+ "id": "ec027f10-fe40-43cc-9f1b-293c393c6421",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_phone_number",
+ "targets": [
+ ["id=order_phone_number", "id"],
+ ["name=order[phone_number]", "name"],
+ ["css=#order_phone_number", "css:finder"],
+ ["xpath=//input[@id='order_phone_number']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/div[2]/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div/input", "xpath:position"]
+ ],
+ "value": "333333333"
+ }, {
+ "id": "e33e8da6-9e22-45ae-b12e-c9a28652bef0",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_company_name",
+ "targets": [
+ ["id=order_company_name", "id"],
+ ["name=order[company_name]", "name"],
+ ["css=#order_company_name", "css:finder"],
+ ["xpath=//input[@id='order_company_name']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/div[3]/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[3]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "90ed8f2e-3106-4dbf-8661-9d7cfc10ef6c",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_company_name",
+ "targets": [
+ ["id=order_company_name", "id"],
+ ["name=order[company_name]", "name"],
+ ["css=#order_company_name", "css:finder"],
+ ["xpath=//input[@id='order_company_name']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/div[3]/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[3]/div/input", "xpath:position"]
+ ],
+ "value": "イーシーキューブ"
+ }, {
+ "id": "cf1f8a78-83dc-48b1-b8b1-8b43329c038b",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_message",
+ "targets": [
+ ["id=order_message", "id"],
+ ["name=order[message]", "name"],
+ ["css=#order_message", "css:finder"],
+ ["xpath=//textarea[@id='order_message']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/div[4]/div/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": "お問い合わせ内容"
+ }, {
+ "id": "8e48b5e8-bfe4-40b8-9798-efcac2d3a612",
+ "comment": "",
+ "command": "click",
+ "target": "css=.copy-customer",
+ "targets": [
+ ["css=.copy-customer", "css:finder"],
+ ["xpath=(//button[@type='button'])[4]", "xpath:attributes"],
+ ["xpath=//div[@id='shippingInfo']/div/div/div/button", "xpath:idRelative"],
+ ["xpath=//div/div/div[3]/div[2]/div/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'注文者情報をコピー')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "864be4c7-d5f0-4259-91f2-41ed7da4ecd8",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_Shipping_address_addr02",
+ "targets": [
+ ["id=order_Shipping_address_addr02", "id"],
+ ["name=order[Shipping][address][addr02]", "name"],
+ ["css=#order_Shipping_address_addr02", "css:finder"],
+ ["xpath=//input[@id='order_Shipping_address_addr02']", "xpath:attributes"],
+ ["xpath=//div[@id='shippingInfo']/div/div[2]/div/div[3]/div/div[4]/div/input", "xpath:idRelative"],
+ ["xpath=//div[3]/div/div[4]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "e3912008-a704-4e3a-8887-bb210c512843",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_Shipping_address_addr02",
+ "targets": [
+ ["id=order_Shipping_address_addr02", "id"],
+ ["name=order[Shipping][address][addr02]", "name"],
+ ["css=#order_Shipping_address_addr02", "css:finder"],
+ ["xpath=//input[@id='order_Shipping_address_addr02']", "xpath:attributes"],
+ ["xpath=//div[@id='shippingInfo']/div/div[2]/div/div[3]/div/div[4]/div/input", "xpath:idRelative"],
+ ["xpath=//div[3]/div/div[4]/div/input", "xpath:position"]
+ ],
+ "value": "2333"
+ }, {
+ "id": "33af45ed-2b53-40dc-9407-c06d3230157f",
+ "comment": "",
+ "command": "select",
+ "target": "id=order_Shipping_shipping_delivery_date_year",
+ "targets": [],
+ "value": "label=2015"
+ }, {
+ "id": "498ec859-1f9d-4ad3-b88b-d0092749c319",
+ "comment": "",
+ "command": "click",
+ "target": "css=#order_Shipping_shipping_delivery_date_year > option:nth-child(2)",
+ "targets": [
+ ["css=#order_Shipping_shipping_delivery_date_year > option:nth-child(2)", "css:finder"],
+ ["xpath=//option[@value='2015']", "xpath:attributes"],
+ ["xpath=//select[@id='order_Shipping_shipping_delivery_date_year']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[5]/div/div/div/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'2015')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "a4318c2e-30ae-4d94-95a8-4598d675898a",
+ "comment": "",
+ "command": "select",
+ "target": "id=order_Shipping_shipping_delivery_date_year",
+ "targets": [],
+ "value": "label=2020"
+ }, {
+ "id": "d195e485-09c7-4ecc-a2fa-4e27924e5ab4",
+ "comment": "",
+ "command": "click",
+ "target": "css=#order_Shipping_shipping_delivery_date_year > option:nth-child(7)",
+ "targets": [
+ ["css=#order_Shipping_shipping_delivery_date_year > option:nth-child(7)", "css:finder"],
+ ["xpath=//option[@value='2020']", "xpath:attributes"],
+ ["xpath=//select[@id='order_Shipping_shipping_delivery_date_year']/option[7]", "xpath:idRelative"],
+ ["xpath=//div[5]/div/div/div/select/option[7]", "xpath:position"],
+ ["xpath=//option[contains(.,'2020')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e20bc0e2-6ec7-4614-bdfc-8dbf70624e58",
+ "comment": "",
+ "command": "select",
+ "target": "id=order_Shipping_shipping_delivery_date_month",
+ "targets": [],
+ "value": "label=08"
+ }, {
+ "id": "0d880539-a273-42ec-87b2-e59b082a8671",
+ "comment": "",
+ "command": "click",
+ "target": "css=#order_Shipping_shipping_delivery_date_month > option:nth-child(9)",
+ "targets": [
+ ["css=#order_Shipping_shipping_delivery_date_month > option:nth-child(9)", "css:finder"],
+ ["xpath=(//option[@value='8'])[3]", "xpath:attributes"],
+ ["xpath=//select[@id='order_Shipping_shipping_delivery_date_month']/option[9]", "xpath:idRelative"],
+ ["xpath=//select[2]/option[9]", "xpath:position"],
+ ["xpath=//option[contains(.,'08')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "574b250e-e3a6-4439-b42d-ba4a3f82823a",
+ "comment": "",
+ "command": "select",
+ "target": "id=order_Shipping_shipping_delivery_date_day",
+ "targets": [],
+ "value": "label=19"
+ }, {
+ "id": "1404e420-c197-41f9-9f9a-1d939e5b3320",
+ "comment": "",
+ "command": "click",
+ "target": "css=#order_Shipping_shipping_delivery_date_day > option:nth-child(20)",
+ "targets": [
+ ["css=#order_Shipping_shipping_delivery_date_day > option:nth-child(20)", "css:finder"],
+ ["xpath=(//option[@value='19'])[3]", "xpath:attributes"],
+ ["xpath=//select[@id='order_Shipping_shipping_delivery_date_day']/option[20]", "xpath:idRelative"],
+ ["xpath=//select[3]/option[20]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "a49d78c4-7c45-4457-8ae2-fd19d699b919",
+ "comment": "",
+ "command": "select",
+ "target": "id=order_Shipping_DeliveryTime",
+ "targets": [],
+ "value": "label=午前"
+ }, {
+ "id": "367c6906-7558-42ee-bf72-613930bc016b",
+ "comment": "",
+ "command": "click",
+ "target": "css=#order_Shipping_DeliveryTime > option:nth-child(2)",
+ "targets": [
+ ["css=#order_Shipping_DeliveryTime > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[7]", "xpath:attributes"],
+ ["xpath=//select[@id='order_Shipping_DeliveryTime']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[5]/div[2]/div/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'午前')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "ffd5b0c9-bcf9-4623-9781-f67511a6823a",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_Shipping_note",
+ "targets": [
+ ["id=order_Shipping_note", "id"],
+ ["name=order[Shipping][note]", "name"],
+ ["css=#order_Shipping_note", "css:finder"],
+ ["xpath=//textarea[@id='order_Shipping_note']", "xpath:attributes"],
+ ["xpath=//div[@id='shippingInfo']/div/div[2]/div[4]/div[3]/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[3]/div/textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "384d30fe-506d-4ccb-ade1-07cab31dce2f",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_Shipping_note",
+ "targets": [
+ ["id=order_Shipping_note", "id"],
+ ["name=order[Shipping][note]", "name"],
+ ["css=#order_Shipping_note", "css:finder"],
+ ["xpath=//textarea[@id='order_Shipping_note']", "xpath:attributes"],
+ ["xpath=//div[@id='shippingInfo']/div/div[2]/div[4]/div[3]/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[3]/div/textarea", "xpath:position"]
+ ],
+ "value": "出荷メモ"
+ }, {
+ "id": "c9d2994f-11b2-4363-a058-7637af46d9c8",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=商品を追加",
+ "targets": [
+ ["linkText=商品を追加", "linkText"],
+ ["css=.add", "css:finder"],
+ ["xpath=//a[contains(text(),'商品を追加')]", "xpath:link"],
+ ["xpath=//div[@id='orderItem']/div/div/div/a", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/div/div/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'商品を追加')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "174106af-2729-4324-a681-80a67d59b2a1",
+ "comment": "",
+ "command": "click",
+ "target": "id=searchProductModalButton",
+ "targets": [
+ ["id=searchProductModalButton", "id"],
+ ["css=#searchProductModalButton", "css:finder"],
+ ["xpath=//button[@id='searchProductModalButton']", "xpath:attributes"],
+ ["xpath=//div[@id='addProduct']/div/div/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/div/div/div/div/div[2]/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "6b58a636-2d05-4fd4-86b6-18adb489ca70",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id14",
+ "targets": [],
+ "value": "label=16mm × 16mm"
+ }, {
+ "id": "47b135c7-6bbd-4c23-9816-f104b60016b7",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id14 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id14 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='4'])[7]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id14']/option[2]", "xpath:idRelative"],
+ ["xpath=//td[3]/div/div[2]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'16mm × 16mm')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "b637fa81-1f35-48cc-918a-fe557b9282d4",
+ "comment": "",
+ "command": "select",
+ "target": "name=classcategory_id2",
+ "targets": [],
+ "value": "label=バニラ"
+ }, {
+ "id": "a951fc89-36a9-4ade-b83a-23fad34b556f",
+ "comment": "",
+ "command": "click",
+ "target": "css=.row:nth-child(2) > .col-8 option:nth-child(2)",
+ "targets": [
+ ["css=.row:nth-child(2) > .col-8 option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='3'])[7]", "xpath:attributes"],
+ ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[3]/div[2]/div[2]/select/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'バニラ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "431ad801-1e14-43bc-9b4b-3c42ae64d986",
+ "comment": "",
+ "command": "click",
+ "target": "css=tr:nth-child(2) .fa",
+ "targets": [
+ ["css=tr:nth-child(2) .fa", "css:finder"],
+ ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[4]/button/i", "xpath:idRelative"],
+ ["xpath=//button/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "e5375fe7-9bd3-4d78-bfce-fb0614997286",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=その他の明細を追加",
+ "targets": [
+ ["linkText=その他の明細を追加", "linkText"],
+ ["css=.btn-ec-regular:nth-child(3)", "css:finder"],
+ ["xpath=//a[contains(text(),'その他の明細を追加')]", "xpath:link"],
+ ["xpath=//div[@id='orderItem']/div/div/div/a[2]", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/div/div/div/a[2]", "xpath:position"],
+ ["xpath=//a[contains(.,'その他の明細を追加')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "d53aff3b-a7fe-4a1e-9a92-e3b022f856ab",
+ "comment": "",
+ "command": "click",
+ "target": "css=tr:nth-child(4) .fa",
+ "targets": [
+ ["css=tr:nth-child(4) .fa", "css:finder"],
+ ["xpath=//div[@id='searchOrderItemTypeList']/table/tbody/tr[2]/td[3]/button/i", "xpath:idRelative"],
+ ["xpath=//tr[2]/td[3]/button/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "c629cc5d-d145-485d-ab67-90601af72b88",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_OrderItems_2_price",
+ "targets": [
+ ["id=order_OrderItems_2_price", "id"],
+ ["name=order[OrderItems][2][price]", "name"],
+ ["css=#order_OrderItems_2_price", "css:finder"],
+ ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"],
+ ["xpath=//table[@id='table-form-field']/tbody/tr[2]/td[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//tr[2]/td[2]/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "f4da6357-2aa3-4317-8a74-cf9fce7631fa",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_OrderItems_2_price",
+ "targets": [
+ ["id=order_OrderItems_2_price", "id"],
+ ["name=order[OrderItems][2][price]", "name"],
+ ["css=#order_OrderItems_2_price", "css:finder"],
+ ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"],
+ ["xpath=//table[@id='table-form-field']/tbody/tr[2]/td[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//tr[2]/td[2]/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "e93f429a-639e-451b-a80b-1538da17cf7e",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=order_OrderItems_2_price",
+ "targets": [
+ ["id=order_OrderItems_2_price", "id"],
+ ["name=order[OrderItems][2][price]", "name"],
+ ["css=#order_OrderItems_2_price", "css:finder"],
+ ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"],
+ ["xpath=//table[@id='table-form-field']/tbody/tr[2]/td[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//tr[2]/td[2]/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "89f9652a-af62-44fc-bbb9-17ce75eac42f",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_OrderItems_2_price",
+ "targets": [
+ ["id=order_OrderItems_2_price", "id"],
+ ["name=order[OrderItems][2][price]", "name"],
+ ["css=#order_OrderItems_2_price", "css:finder"],
+ ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"],
+ ["xpath=//table[@id='table-form-field']/tbody/tr[2]/td[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//tr[2]/td[2]/div/div/input", "xpath:position"]
+ ],
+ "value": "1000"
+ }, {
+ "id": "0cf60fbe-95e7-4525-960e-78e64a7df4b9",
+ "comment": "",
+ "command": "click",
+ "target": "css=.justify-content-end:nth-child(4)",
+ "targets": [
+ ["css=.justify-content-end:nth-child(4)", "css:finder"],
+ ["xpath=//div[@id='orderItem']/div/div[2]", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/div/div[2]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "6eadf4ac-1bda-4971-a4a9-8b3680ff186f",
+ "comment": "",
+ "command": "click",
+ "target": "css=#calculate > .ladda-label",
+ "targets": [
+ ["css=#calculate > .ladda-label", "css:finder"],
+ ["xpath=//button[@id='calculate']/span", "xpath:idRelative"],
+ ["xpath=//div[2]/button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'計算結果を更新')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "c989a63d-e334-4c66-ba6b-e63e8074e6c1",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=#calculate > .ladda-label",
+ "targets": [
+ ["css=#calculate > .ladda-label", "css:finder"],
+ ["xpath=//button[@id='calculate']/span", "xpath:idRelative"],
+ ["xpath=//div[2]/button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'計算結果を更新')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "fa3a1efc-7ab6-4b09-9c1b-6628fd60e8e1",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_note",
+ "targets": [
+ ["id=order_note", "id"],
+ ["name=order[note]", "name"],
+ ["css=#order_note", "css:finder"],
+ ["xpath=//textarea[@id='order_note']", "xpath:attributes"],
+ ["xpath=//div[@id='freeArea']/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[2]/div/textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "e3c207ab-8364-42a6-b93e-5f9334afb639",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_note",
+ "targets": [
+ ["id=order_note", "id"],
+ ["name=order[note]", "name"],
+ ["css=#order_note", "css:finder"],
+ ["xpath=//textarea[@id='order_note']", "xpath:attributes"],
+ ["xpath=//div[@id='freeArea']/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[2]/div/textarea", "xpath:position"]
+ ],
+ "value": "ショップ用メモ"
+ }, {
+ "id": "eea2a21a-8e3d-4db8-b82f-cb32efc3fee5",
+ "comment": "",
+ "command": "click",
+ "target": "css=.px-5:nth-child(1)",
+ "targets": [
+ ["css=.px-5:nth-child(1)", "css:finder"],
+ ["xpath=(//button[@name='mode'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[2]/div/div/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "8c5c9245-6d80-4792-8f17-d5642a31333e",
+ "comment": "",
+ "command": "click",
+ "target": "css=.c-baseLink > span",
+ "targets": [
+ ["css=.c-baseLink > span", "css:finder"],
+ ["xpath=//form[@id='form1']/div[2]/div/div/div/div/a/span", "xpath:idRelative"],
+ ["xpath=//div/div/a/span", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d08d18dc-1e1d-4417-98c7-8750488fdfe3",
+ "comment": "",
+ "command": "click",
+ "target": "css=#admin_search_order_status > .form-check:nth-child(1) > .form-check-label",
+ "targets": [
+ ["css=#admin_search_order_status > .form-check:nth-child(1) > .form-check-label", "css:finder"],
+ ["xpath=//div[@id='admin_search_order_status']/div/label", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/div/label", "xpath:position"],
+ ["xpath=//label[contains(.,'新規受付')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "dbfa1195-7d64-464f-9679-d850a4ede401",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ladda-label",
+ "targets": [
+ ["css=.ladda-label", "css:finder"],
+ ["xpath=//button[@id='search_submit']/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "68852b37-3d8c-4d07-b8c4-a9258a949192",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.mb-3",
+ "targets": [
+ ["css=.mb-3", "css:finder"],
+ ["xpath=//form[@id='search_form']/div/div/div/div[3]", "xpath:idRelative"],
+ ["xpath=//form/div/div/div/div[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "6904dd1c-6a28-405f-a5c7-0c4a7849bc18",
+ "comment": "",
+ "command": "click",
+ "target": "css=#admin_search_order_status > .form-check:nth-child(1) > .form-check-label",
+ "targets": [
+ ["css=#admin_search_order_status > .form-check:nth-child(1) > .form-check-label", "css:finder"],
+ ["xpath=//div[@id='admin_search_order_status']/div/label", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/div/label", "xpath:position"],
+ ["xpath=//label[contains(.,'新規受付')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "33975424-5595-4f59-b193-f9b999d91079",
+ "comment": "",
+ "command": "click",
+ "target": "css=.c-outsideBlock__contents:nth-child(3) > .row",
+ "targets": [
+ ["css=.c-outsideBlock__contents:nth-child(3) > .row", "css:finder"],
+ ["xpath=//form[@id='search_form']/div[3]/div", "xpath:idRelative"],
+ ["xpath=//form/div[3]/div", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "1bdbad2c-6b7b-4ddb-853c-de2a0f678bfb",
+ "comment": "",
+ "command": "click",
+ "target": "id=search_submit",
+ "targets": [
+ ["id=search_submit", "id"],
+ ["css=#search_submit", "css:finder"],
+ ["xpath=//button[@id='search_submit']", "xpath:attributes"],
+ ["xpath=//form[@id='search_form']/div[3]/div/div/div/button", "xpath:idRelative"],
+ ["xpath=//button", "xpath:position"],
+ ["xpath=//button[contains(.,'検索')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "f9a2d10c-285e-4c6f-a236-2d18d0686853",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "id=search_submit",
+ "targets": [
+ ["id=search_submit", "id"],
+ ["css=#search_submit", "css:finder"],
+ ["xpath=//button[@id='search_submit']", "xpath:attributes"],
+ ["xpath=//form[@id='search_form']/div[3]/div/div/div/button", "xpath:idRelative"],
+ ["xpath=//button", "xpath:position"],
+ ["xpath=//button[contains(.,'検索')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e3822151-431f-496e-b164-aa3c08519a0e",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=受注登録",
+ "targets": [
+ ["linkText=受注登録", "linkText"],
+ ["css=#nav-order > li:nth-child(2) > a", "css:finder"],
+ ["xpath=//ul[@id='nav-order']/li[2]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/order/new')]", "xpath:href"],
+ ["xpath=//li[3]/ul/li[2]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'受注登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "30c6aaae-6a67-4739-909b-e6ccd6773fc1",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,200.13333129882812)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "2896e79c-a705-4918-b406-ca07de071087",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=会員から検索・入力",
+ "targets": [
+ ["linkText=会員から検索・入力", "linkText"],
+ ["css=.px-3", "css:finder"],
+ ["xpath=//a[contains(text(),'会員から検索・入力')]", "xpath:link"],
+ ["xpath=//div[@id='ordererInfo']/div/div/div/a", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'会員から検索・入力')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "d935888e-b2b2-44bc-ae88-76cea38b8426",
+ "comment": "",
+ "command": "click",
+ "target": "id=searchCustomerModalButton",
+ "targets": [
+ ["id=searchCustomerModalButton", "id"],
+ ["css=#searchCustomerModalButton", "css:finder"],
+ ["xpath=//button[@id='searchCustomerModalButton']", "xpath:attributes"],
+ ["xpath=//div[@id='searchCustomerModal']/div/div/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'検索')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "368ca419-c115-44ed-913b-95774a1aba3b",
+ "comment": "",
+ "command": "click",
+ "target": "css=tr:nth-child(1) .btn",
+ "targets": [
+ ["css=tr:nth-child(1) .btn", "css:finder"],
+ ["xpath=(//button[@type='button'])[4]", "xpath:attributes"],
+ ["xpath=//div[@id='searchCustomerModalList']/table/tbody/tr/td[5]/div/button", "xpath:idRelative"],
+ ["xpath=//td[5]/div/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "ce4bb159-1c9f-4055-abd7-97bd39fa484c",
+ "comment": "",
+ "command": "click",
+ "target": "css=.copy-customer",
+ "targets": [
+ ["css=.copy-customer", "css:finder"],
+ ["xpath=(//button[@type='button'])[7]", "xpath:attributes"],
+ ["xpath=//div[@id='shippingInfo']/div/div/div/button", "xpath:idRelative"],
+ ["xpath=//div/div/div[3]/div[2]/div/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'注文者情報をコピー')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "538fb061-9b4f-4e57-8182-327ae17e7ca7",
+ "comment": "",
+ "command": "runScript",
+ "target": "window.scrollTo(0,953.7999877929688)",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "3b91c647-b9c6-450f-86de-c26b8e31674c",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_Shipping_tracking_number",
+ "targets": [
+ ["id=order_Shipping_tracking_number", "id"],
+ ["name=order[Shipping][tracking_number]", "name"],
+ ["css=#order_Shipping_tracking_number", "css:finder"],
+ ["xpath=//input[@id='order_Shipping_tracking_number']", "xpath:attributes"],
+ ["xpath=//div[@id='shippingInfo']/div/div[2]/div[4]/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "0ec5b72b-0a37-40e2-9065-a46db640dcbd",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_Shipping_tracking_number",
+ "targets": [
+ ["id=order_Shipping_tracking_number", "id"],
+ ["name=order[Shipping][tracking_number]", "name"],
+ ["css=#order_Shipping_tracking_number", "css:finder"],
+ ["xpath=//input[@id='order_Shipping_tracking_number']", "xpath:attributes"],
+ ["xpath=//div[@id='shippingInfo']/div/div[2]/div[4]/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div/div/input", "xpath:position"]
+ ],
+ "value": "999999999"
+ }, {
+ "id": "16976b7d-c1b7-43b8-b724-7c655783a6f8",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_Shipping_note",
+ "targets": [
+ ["id=order_Shipping_note", "id"],
+ ["name=order[Shipping][note]", "name"],
+ ["css=#order_Shipping_note", "css:finder"],
+ ["xpath=//textarea[@id='order_Shipping_note']", "xpath:attributes"],
+ ["xpath=//div[@id='shippingInfo']/div/div[2]/div[4]/div[3]/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[3]/div/textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "378bed17-c663-4bed-8b61-c72ff1008476",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_Shipping_note",
+ "targets": [
+ ["id=order_Shipping_note", "id"],
+ ["name=order[Shipping][note]", "name"],
+ ["css=#order_Shipping_note", "css:finder"],
+ ["xpath=//textarea[@id='order_Shipping_note']", "xpath:attributes"],
+ ["xpath=//div[@id='shippingInfo']/div/div[2]/div[4]/div[3]/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[3]/div/textarea", "xpath:position"]
+ ],
+ "value": "出荷メモ"
+ }, {
+ "id": "3401e07f-7b52-4d29-85c5-ce080a0779bc",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=商品を追加",
+ "targets": [
+ ["linkText=商品を追加", "linkText"],
+ ["css=.add", "css:finder"],
+ ["xpath=//a[contains(text(),'商品を追加')]", "xpath:link"],
+ ["xpath=//div[@id='orderItem']/div/div/div/a", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/div/div/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'商品を追加')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "bc82da26-3f8d-4e01-b304-c4b1b66af21e",
+ "comment": "",
+ "command": "click",
+ "target": "id=searchProductModalButton",
+ "targets": [
+ ["id=searchProductModalButton", "id"],
+ ["css=#searchProductModalButton", "css:finder"],
+ ["xpath=//button[@id='searchProductModalButton']", "xpath:attributes"],
+ ["xpath=//div[@id='addProduct']/div/div/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/div/div/div/div/div[2]/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "f516fdea-3609-4013-92ef-8561b5942818",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id14",
+ "targets": [],
+ "value": "label=32mm × 32mm"
+ }, {
+ "id": "ef7bc3c7-feac-4c5d-8454-5152c5ecb106",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id14 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id14 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='5'])[6]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id14']/option[2]", "xpath:idRelative"],
+ ["xpath=//td[3]/div/div[2]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'32mm × 32mm')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "ece13a31-1122-43e3-984f-54a52f7f984f",
+ "comment": "",
+ "command": "select",
+ "target": "name=classcategory_id2",
+ "targets": [],
+ "value": "label=チョコ"
+ }, {
+ "id": "2953a4d2-2774-44b5-b04c-9ce7b0364948",
+ "comment": "",
+ "command": "click",
+ "target": "css=.row:nth-child(2) > .col-8 option:nth-child(2)",
+ "targets": [
+ ["css=.row:nth-child(2) > .col-8 option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='1'])[9]", "xpath:attributes"],
+ ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[3]/div[2]/div[2]/select/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "d7dbf528-05fd-4e8a-8e8c-aee55d023964",
+ "comment": "",
+ "command": "click",
+ "target": "css=tr:nth-child(2) > .align-middle .fa",
+ "targets": [
+ ["css=tr:nth-child(2) > .align-middle .fa", "css:finder"],
+ ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[4]/button/i", "xpath:idRelative"],
+ ["xpath=//td[4]/button/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "e82ba8b3-8921-477e-92f3-67fc9fdf0570",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=tr:nth-child(2) > .align-middle .fa",
+ "targets": [
+ ["css=tr:nth-child(2) > .align-middle .fa", "css:finder"],
+ ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[4]/button/i", "xpath:idRelative"],
+ ["xpath=//td[4]/button/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "c0f58415-6edf-4f41-b699-27ebf512d0a0",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_note",
+ "targets": [
+ ["id=order_note", "id"],
+ ["name=order[note]", "name"],
+ ["css=#order_note", "css:finder"],
+ ["xpath=//textarea[@id='order_note']", "xpath:attributes"],
+ ["xpath=//div[@id='freeArea']/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[2]/div/textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "16aac390-9d39-48c4-a9c6-5b03fbbadb91",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_note",
+ "targets": [
+ ["id=order_note", "id"],
+ ["name=order[note]", "name"],
+ ["css=#order_note", "css:finder"],
+ ["xpath=//textarea[@id='order_note']", "xpath:attributes"],
+ ["xpath=//div[@id='freeArea']/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[2]/div/textarea", "xpath:position"]
+ ],
+ "value": "ショップメモ"
+ }, {
+ "id": "ee35d224-8e2f-4694-8101-7ae327d86df1",
+ "comment": "",
+ "command": "click",
+ "target": "css=.px-5:nth-child(1)",
+ "targets": [
+ ["css=.px-5:nth-child(1)", "css:finder"],
+ ["xpath=(//button[@name='mode'])[2]", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[2]/div/div/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "b006fc9b-6c87-4610-8195-c29da4ae5030",
+ "comment": "",
+ "command": "click",
+ "target": "css=.fa-angle-down:nth-child(1)",
+ "targets": [
+ ["css=.fa-angle-down:nth-child(1)", "css:finder"],
+ ["xpath=//form[@id='form1']/div/div/div/div[2]/div/div/div[3]/a/i", "xpath:idRelative"],
+ ["xpath=//div[3]/a/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "b3ad842a-2214-4864-aa5b-4a69c1547512",
+ "comment": "",
+ "command": "click",
+ "target": "id=shipping-add",
+ "targets": [
+ ["id=shipping-add", "id"],
+ ["linkText=出荷情報の追加", "linkText"],
+ ["css=#shipping-add", "css:finder"],
+ ["xpath=//a[contains(text(),'出荷情報の追加')]", "xpath:link"],
+ ["xpath=//a[@id='shipping-add']", "xpath:attributes"],
+ ["xpath=//div[@id='shippingInfo']/div/div/div[2]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '/admin/shipping/3/edit')]", "xpath:href"],
+ ["xpath=//div[2]/div/div/div[2]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'出荷情報の追加')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "32d01e56-baa9-44a7-87f4-d24304ec94e5",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=保存せずに移動",
+ "targets": [
+ ["linkText=保存せずに移動", "linkText"],
+ ["css=.btn-ec-sub:nth-child(2)", "css:finder"],
+ ["xpath=//a[contains(text(),'保存せずに移動')]", "xpath:link"],
+ ["xpath=//div[@id='confirmFormChangeModal']/div/div/div[3]/a[2]", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '/admin/shipping/3/edit')]", "xpath:href"],
+ ["xpath=//div[3]/a[2]", "xpath:position"],
+ ["xpath=//a[contains(.,'保存せずに移動')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "f6aa4f27-08dc-4ea0-b78a-fcf1f2b2c382",
+ "comment": "",
+ "command": "click",
+ "target": "id=addShipping",
+ "targets": [
+ ["id=addShipping", "id"],
+ ["css=#addShipping", "css:finder"],
+ ["xpath=//button[@id='addShipping']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[4]/div/div/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[4]/div/div/div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'出荷情報の追加')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "b12eeaab-854d-4317-9a1b-7cdac0151e44",
+ "comment": "",
+ "command": "click",
+ "target": "css=#shipmentOverview_1 .col-6 > .row:nth-child(1) .col:nth-child(1)",
+ "targets": [
+ ["css=#shipmentOverview_1 .col-6 > .row:nth-child(1) .col:nth-child(1)", "css:finder"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div/div/div/div", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[2]/div/div/div/div/div", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "d4d5dfb8-907f-4992-9af4-13df2ecf43ed",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shippings_1_name_name01",
+ "targets": [
+ ["id=form_shippings_1_name_name01", "id"],
+ ["name=form[shippings][1][name][name01]", "name"],
+ ["css=#form_shippings_1_name_name01", "css:finder"],
+ ["xpath=//input[@id='form_shippings_1_name_name01']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[2]/div/div/div/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "b82f1b71-8dc4-4fbc-b6cb-6451c26a4b3f",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shippings_1_name_name01",
+ "targets": [
+ ["id=form_shippings_1_name_name01", "id"],
+ ["name=form[shippings][1][name][name01]", "name"],
+ ["css=#form_shippings_1_name_name01", "css:finder"],
+ ["xpath=//input[@id='form_shippings_1_name_name01']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[2]/div/div/div/div/div/input", "xpath:position"]
+ ],
+ "value": "石井"
+ }, {
+ "id": "d1c4669c-8562-48e2-a1e9-c2b5ef09eed6",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shippings_1_name_name02",
+ "targets": [
+ ["id=form_shippings_1_name_name02", "id"],
+ ["name=form[shippings][1][name][name02]", "name"],
+ ["css=#form_shippings_1_name_name02", "css:finder"],
+ ["xpath=//input[@id='form_shippings_1_name_name02']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div/div/div/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[2]/div/div/div/div/div[2]/input", "xpath:position"]
+ ],
+ "value": "キューブ"
+ }, {
+ "id": "8183ee82-caf3-45be-a010-e42206ba546f",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shippings_1_kana_kana01",
+ "targets": [
+ ["id=form_shippings_1_kana_kana01", "id"],
+ ["name=form[shippings][1][kana][kana01]", "name"],
+ ["css=#form_shippings_1_kana_kana01", "css:finder"],
+ ["xpath=//input[@id='form_shippings_1_kana_kana01']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div[2]/div/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[2]/div/div[2]/div/div/div/input", "xpath:position"]
+ ],
+ "value": "イシイ"
+ }, {
+ "id": "5f3080be-d012-49db-9459-92cf8150fe46",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shippings_1_kana_kana02",
+ "targets": [
+ ["id=form_shippings_1_kana_kana02", "id"],
+ ["name=form[shippings][1][kana][kana02]", "name"],
+ ["css=#form_shippings_1_kana_kana02", "css:finder"],
+ ["xpath=//input[@id='form_shippings_1_kana_kana02']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div[2]/div/div/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[2]/div/div[2]/div/div/div[2]/input", "xpath:position"]
+ ],
+ "value": "キューブ"
+ }, {
+ "id": "21f72fe4-d2dd-4460-85dd-3c4aa9359408",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shippings_1_postal_code",
+ "targets": [
+ ["id=form_shippings_1_postal_code", "id"],
+ ["name=form[shippings][1][postal_code]", "name"],
+ ["css=#form_shippings_1_postal_code", "css:finder"],
+ ["xpath=//input[@id='form_shippings_1_postal_code']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div[3]/div/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[2]/div/div[3]/div/div/div/input", "xpath:position"]
+ ],
+ "value": "5300002"
+ }, {
+ "id": "fad77f5b-01dd-4956-83f2-80aa79dc8773",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shippings_1_address_addr02",
+ "targets": [
+ ["id=form_shippings_1_address_addr02", "id"],
+ ["name=form[shippings][1][address][addr02]", "name"],
+ ["css=#form_shippings_1_address_addr02", "css:finder"],
+ ["xpath=//input[@id='form_shippings_1_address_addr02']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div[3]/div/div[4]/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[2]/div/div[3]/div/div[4]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "ad4fcefd-3e8e-417c-867d-ed1050f75810",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shippings_1_address_addr02",
+ "targets": [
+ ["id=form_shippings_1_address_addr02", "id"],
+ ["name=form[shippings][1][address][addr02]", "name"],
+ ["css=#form_shippings_1_address_addr02", "css:finder"],
+ ["xpath=//input[@id='form_shippings_1_address_addr02']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div[3]/div/div[4]/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[2]/div/div[3]/div/div[4]/div/input", "xpath:position"]
+ ],
+ "value": "2"
+ }, {
+ "id": "a2924fde-f0c9-4f8b-b069-570f289c1604",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shippings_1_phone_number",
+ "targets": [
+ ["id=form_shippings_1_phone_number", "id"],
+ ["name=form[shippings][1][phone_number]", "name"],
+ ["css=#form_shippings_1_phone_number", "css:finder"],
+ ["xpath=//input[@id='form_shippings_1_phone_number']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[2]/div[2]/div/div/input", "xpath:position"]
+ ],
+ "value": "999999999"
+ }, {
+ "id": "d9a48246-7e84-4d1c-b9e6-1d36da14f593",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shippings_1_company_name",
+ "targets": [
+ ["id=form_shippings_1_company_name", "id"],
+ ["name=form[shippings][1][company_name]", "name"],
+ ["css=#form_shippings_1_company_name", "css:finder"],
+ ["xpath=//input[@id='form_shippings_1_company_name']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div[2]/div[2]/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[2]/div[2]/div[2]/div/input", "xpath:position"]
+ ],
+ "value": "イーシーキューブ"
+ }, {
+ "id": "a5f75dfe-573b-419e-98ca-6b20e904b63b",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shippings_1_tracking_number",
+ "targets": [
+ ["id=form_shippings_1_tracking_number", "id"],
+ ["name=form[shippings][1][tracking_number]", "name"],
+ ["css=#form_shippings_1_tracking_number", "css:finder"],
+ ["xpath=//input[@id='form_shippings_1_tracking_number']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[4]/div/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[4]/div/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "82e621a3-76f7-447d-9f52-11897e296a3a",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shippings_1_tracking_number",
+ "targets": [
+ ["id=form_shippings_1_tracking_number", "id"],
+ ["name=form[shippings][1][tracking_number]", "name"],
+ ["css=#form_shippings_1_tracking_number", "css:finder"],
+ ["xpath=//input[@id='form_shippings_1_tracking_number']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[4]/div/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[4]/div/div/div/input", "xpath:position"]
+ ],
+ "value": "888888888"
+ }, {
+ "id": "ddabf73e-a5fe-4d9b-8248-c0423bfc71ba",
+ "comment": "",
+ "command": "select",
+ "target": "id=form_shippings_1_Delivery",
+ "targets": [],
+ "value": "label=サンプル宅配"
+ }, {
+ "id": "16ff4f07-efed-409f-a865-51fcebacda1f",
+ "comment": "",
+ "command": "click",
+ "target": "css=#form_shippings_1_Delivery > option:nth-child(2)",
+ "targets": [
+ ["css=#form_shippings_1_Delivery > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='2'])[8]", "xpath:attributes"],
+ ["xpath=//select[@id='form_shippings_1_Delivery']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[4]/div/div[2]/div/select/option[2]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "03672bc2-0c25-4b50-b072-a679247cd24c",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shippings_1_DeliveryTime",
+ "targets": [
+ ["id=form_shippings_1_DeliveryTime", "id"],
+ ["name=form[shippings][1][DeliveryTime]", "name"],
+ ["css=#form_shippings_1_DeliveryTime", "css:finder"],
+ ["xpath=//select[@id='form_shippings_1_DeliveryTime']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[4]/div[2]/div[2]/div/select", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[4]/div[2]/div[2]/div/select", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "bc779ac3-77c5-413f-8bd2-1a829383ae0f",
+ "comment": "",
+ "command": "click",
+ "target": "css=#form_shippings_1_shipping_delivery_date_year > option:nth-child(1)",
+ "targets": [
+ ["css=#form_shippings_1_shipping_delivery_date_year > option:nth-child(1)", "css:finder"],
+ ["xpath=(//option[@value=''])[8]", "xpath:attributes"],
+ ["xpath=//select[@id='form_shippings_1_shipping_delivery_date_year']/option", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[4]/div[2]/div/div/div/select/option", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "434a9be4-c7ca-456c-9ac2-6ddcf5da38f6",
+ "comment": "",
+ "command": "select",
+ "target": "id=form_shippings_1_shipping_delivery_date_year",
+ "targets": [],
+ "value": "label=2016"
+ }, {
+ "id": "0bcd0afb-1888-461b-8300-fb4c58d66649",
+ "comment": "",
+ "command": "click",
+ "target": "css=#form_shippings_1_shipping_delivery_date_year > option:nth-child(3)",
+ "targets": [
+ ["css=#form_shippings_1_shipping_delivery_date_year > option:nth-child(3)", "css:finder"],
+ ["xpath=(//option[@value='2016'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='form_shippings_1_shipping_delivery_date_year']/option[3]", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[4]/div[2]/div/div/div/select/option[3]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "c76bc4b9-2d9e-4bbc-95a2-40c41cab44a0",
+ "comment": "",
+ "command": "select",
+ "target": "id=form_shippings_1_shipping_delivery_date_month",
+ "targets": [],
+ "value": "label=05"
+ }, {
+ "id": "e7e9404d-6f78-4fc2-9c30-25dd8cfc2beb",
+ "comment": "",
+ "command": "click",
+ "target": "css=#form_shippings_1_shipping_delivery_date_month > option:nth-child(6)",
+ "targets": [
+ ["css=#form_shippings_1_shipping_delivery_date_month > option:nth-child(6)", "css:finder"],
+ ["xpath=(//option[@value='5'])[6]", "xpath:attributes"],
+ ["xpath=//select[@id='form_shippings_1_shipping_delivery_date_month']/option[6]", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[4]/div[2]/div/div/div/select[2]/option[6]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "ed2b3088-261e-4b98-a3d2-af592b5941c6",
+ "comment": "",
+ "command": "select",
+ "target": "id=form_shippings_1_shipping_delivery_date_day",
+ "targets": [],
+ "value": "label=06"
+ }, {
+ "id": "b1851e0a-4a49-4b18-8c5f-7316bc39afdb",
+ "comment": "",
+ "command": "click",
+ "target": "css=#form_shippings_1_shipping_delivery_date_day > option:nth-child(7)",
+ "targets": [
+ ["css=#form_shippings_1_shipping_delivery_date_day > option:nth-child(7)", "css:finder"],
+ ["xpath=(//option[@value='6'])[7]", "xpath:attributes"],
+ ["xpath=//select[@id='form_shippings_1_shipping_delivery_date_day']/option[7]", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[4]/div[2]/div/div/div/select[3]/option[7]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "0eb43402-8f24-422a-80c7-518d4ee03f79",
+ "comment": "",
+ "command": "click",
+ "target": "css=#shipping-product_1 .addProduct-button",
+ "targets": [
+ ["css=#shipping-product_1 .addProduct-button", "css:finder"],
+ ["xpath=(//button[@type='button'])[17]", "xpath:attributes"],
+ ["xpath=//div[@id='shipping-product_1']/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[6]/div/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "b64cb154-fb5d-487a-9cda-0c73e98969e9",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=#shipping-product_1 .addProduct-button",
+ "targets": [
+ ["css=#shipping-product_1 .addProduct-button", "css:finder"],
+ ["xpath=(//button[@type='button'])[17]", "xpath:attributes"],
+ ["xpath=//div[@id='shipping-product_1']/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[6]/div/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "219b8e17-3c07-44b5-9a76-be5ed688bc18",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "css=#shipping-product_1 .addProduct-button",
+ "targets": [
+ ["css=#shipping-product_1 .addProduct-button", "css:finder"],
+ ["xpath=(//button[@type='button'])[17]", "xpath:attributes"],
+ ["xpath=//div[@id='shipping-product_1']/div/button", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[6]/div/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "79a51688-af21-4319-b30b-5109c5f23c58",
+ "comment": "",
+ "command": "click",
+ "target": "id=searchProductModalButton",
+ "targets": [
+ ["id=searchProductModalButton", "id"],
+ ["css=#searchProductModalButton", "css:finder"],
+ ["xpath=//button[@id='searchProductModalButton']", "xpath:attributes"],
+ ["xpath=//div[@id='addProduct']/div/div/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'検索')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "4918367b-c1ab-4503-a228-7305bb945179",
+ "comment": "",
+ "command": "select",
+ "target": "id=classcategory_id14",
+ "targets": [],
+ "value": "label=32mm × 32mm"
+ }, {
+ "id": "49ee4d7c-aac9-44f3-b136-c51572a31b4b",
+ "comment": "",
+ "command": "click",
+ "target": "css=#classcategory_id14 > option:nth-child(2)",
+ "targets": [
+ ["css=#classcategory_id14 > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='5'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='classcategory_id14']/option[2]", "xpath:idRelative"],
+ ["xpath=//td[3]/div/div[2]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'32mm × 32mm')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "6bc9f9dc-53fe-44b5-be2e-95e042cbaab9",
+ "comment": "",
+ "command": "select",
+ "target": "name=classcategory_id2",
+ "targets": [],
+ "value": "label=抹茶"
+ }, {
+ "id": "f2d6b40f-2321-4f4a-8393-4430fc828ac1",
+ "comment": "",
+ "command": "click",
+ "target": "css=.row:nth-child(2) > .col-8 option:nth-child(2)",
+ "targets": [
+ ["css=.row:nth-child(2) > .col-8 option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='2'])[2]", "xpath:attributes"],
+ ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[3]/div[2]/div[2]/select/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'抹茶')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "c5697bc1-f2f1-4c76-9d08-daf31e63cec1",
+ "comment": "",
+ "command": "click",
+ "target": "css=tr:nth-child(2) .fa",
+ "targets": [
+ ["css=tr:nth-child(2) .fa", "css:finder"],
+ ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[4]/button/i", "xpath:idRelative"],
+ ["xpath=//button/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "fbd977d4-8b8b-4ebd-bd1b-07b49f76d57d",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=tr:nth-child(2) .fa",
+ "targets": [
+ ["css=tr:nth-child(2) .fa", "css:finder"],
+ ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[4]/button/i", "xpath:idRelative"],
+ ["xpath=//button/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "c9d2ffff-df21-46e1-8f26-5c7f3316c428",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shippings_0_note",
+ "targets": [
+ ["id=form_shippings_0_note", "id"],
+ ["name=form[shippings][0][note]", "name"],
+ ["css=#form_shippings_0_note", "css:finder"],
+ ["xpath=//textarea[@id='form_shippings_0_note']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_0']/div/div[9]/div/div/div/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "5dceae02-ecf7-493a-ae89-41140675af75",
+ "comment": "",
+ "command": "click",
+ "target": "id=form_shippings_1_note",
+ "targets": [
+ ["id=form_shippings_1_note", "id"],
+ ["name=form[shippings][1][note]", "name"],
+ ["css=#form_shippings_1_note", "css:finder"],
+ ["xpath=//textarea[@id='form_shippings_1_note']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[9]/div/div/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[9]/div/div/div/textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "e031ee06-35b4-4701-b0e5-8b79ebf0339f",
+ "comment": "",
+ "command": "type",
+ "target": "id=form_shippings_1_note",
+ "targets": [
+ ["id=form_shippings_1_note", "id"],
+ ["name=form[shippings][1][note]", "name"],
+ ["css=#form_shippings_1_note", "css:finder"],
+ ["xpath=//textarea[@id='form_shippings_1_note']", "xpath:attributes"],
+ ["xpath=//div[@id='shipmentOverview_1']/div/div[9]/div/div/div/textarea", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[9]/div/div/div/textarea", "xpath:position"]
+ ],
+ "value": "出荷メモ2"
+ }, {
+ "id": "3380b17f-47d5-4a48-bb42-51643a11b5de",
+ "comment": "",
+ "command": "click",
+ "target": "css=#shipping-product_1 .addOtherProduct-button",
+ "targets": [
+ ["css=#shipping-product_1 .addOtherProduct-button", "css:finder"],
+ ["xpath=(//a[contains(text(),'その他の明細を追加')])[2]", "xpath:link"],
+ ["xpath=//div[@id='shipping-product_1']/div/a", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[6]/div/a", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "a4f10e27-58c6-4b2b-83a2-5188a647bb3f",
+ "comment": "",
+ "command": "click",
+ "target": "css=tr:nth-child(4) .fa",
+ "targets": [
+ ["css=tr:nth-child(4) .fa", "css:finder"],
+ ["xpath=//div[@id='searchOrderItemTypeList']/table/tbody/tr[2]/td[3]/button/i", "xpath:idRelative"],
+ ["xpath=//tr[2]/td[3]/button/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "072cd5b1-0177-45b0-8753-07eea8594b13",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=tr:nth-child(4) .fa",
+ "targets": [
+ ["css=tr:nth-child(4) .fa", "css:finder"],
+ ["xpath=//div[@id='searchOrderItemTypeList']/table/tbody/tr[2]/td[3]/button/i", "xpath:idRelative"],
+ ["xpath=//tr[2]/td[3]/button/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "7b772945-53fe-4689-802f-e76669613a27",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "css=tr:nth-child(4) .fa",
+ "targets": [
+ ["css=tr:nth-child(4) .fa", "css:finder"],
+ ["xpath=//div[@id='searchOrderItemTypeList']/table/tbody/tr[2]/td[3]/button/i", "xpath:idRelative"],
+ ["xpath=//tr[2]/td[3]/button/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "2cb2997c-c906-4f60-b805-dde1c9cd336f",
+ "comment": "",
+ "command": "click",
+ "target": "id=btn_save",
+ "targets": [
+ ["id=btn_save", "id"],
+ ["name=mode", "name"],
+ ["css=#btn_save", "css:finder"],
+ ["xpath=//button[@id='btn_save']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[5]/div/div/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[5]/div/div/div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "2efff5ca-32c4-4b25-8797-5b5ee574f65c",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "id=btn_save",
+ "targets": [
+ ["id=btn_save", "id"],
+ ["name=mode", "name"],
+ ["css=#btn_save", "css:finder"],
+ ["xpath=//button[@id='btn_save']", "xpath:attributes"],
+ ["xpath=//form[@id='form1']/div[5]/div/div/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[5]/div/div/div[2]/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "5c12f634-8dbf-46e0-8143-10742ec6677a",
+ "comment": "",
+ "command": "click",
+ "target": "css=.c-baseLink > span",
+ "targets": [
+ ["css=.c-baseLink > span", "css:finder"],
+ ["xpath=//form[@id='form1']/div[5]/div/div/div/div/a/span", "xpath:idRelative"],
+ ["xpath=//div[5]/div/div/div/div/a/span", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "423985bd-b2b5-4fed-b012-f7053a735868",
+ "comment": "",
+ "command": "click",
+ "target": "css=.c-baseLink > span",
+ "targets": [
+ ["css=.c-baseLink > span", "css:finder"],
+ ["xpath=//form[@id='form1']/div[5]/div/div/div/div/a/span", "xpath:idRelative"],
+ ["xpath=//div[5]/div/div/div/div/a/span", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "5849bb6e-c174-4f1b-9d7d-6c21fa3e2e09",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "css=.c-baseLink > span",
+ "targets": [
+ ["css=.c-baseLink > span", "css:finder"],
+ ["xpath=//form[@id='form1']/div[5]/div/div/div/div/a/span", "xpath:idRelative"],
+ ["xpath=//div[5]/div/div/div/div/a/span", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "20ccf336-7e35-471f-8f0f-b98433bcee2a",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=その他の明細を追加",
+ "targets": [
+ ["linkText=その他の明細を追加", "linkText"],
+ ["css=.col-6 > .btn", "css:finder"],
+ ["xpath=//a[contains(text(),'その他の明細を追加')]", "xpath:link"],
+ ["xpath=//div[@id='orderItem']/div/div/div/a", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/div/div/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'その他の明細を追加')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "3c8def23-902f-46a3-9915-ca34a7912601",
+ "comment": "",
+ "command": "click",
+ "target": "css=tr:nth-child(4) .fa",
+ "targets": [
+ ["css=tr:nth-child(4) .fa", "css:finder"],
+ ["xpath=//div[@id='searchOrderItemTypeList']/table/tbody/tr[2]/td[3]/button/i", "xpath:idRelative"],
+ ["xpath=//tr[2]/td[3]/button/i", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "4d355047-4e97-4f30-b9a7-1a756a396716",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_OrderItems_2_price",
+ "targets": [
+ ["id=order_OrderItems_2_price", "id"],
+ ["name=order[OrderItems][2][price]", "name"],
+ ["css=#order_OrderItems_2_price", "css:finder"],
+ ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"],
+ ["xpath=//table[@id='table-form-field']/tbody/tr[3]/td[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//tr[3]/td[2]/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "dc85d203-464b-45df-94ba-16eea738a67f",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_OrderItems_2_price",
+ "targets": [
+ ["id=order_OrderItems_2_price", "id"],
+ ["name=order[OrderItems][2][price]", "name"],
+ ["css=#order_OrderItems_2_price", "css:finder"],
+ ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"],
+ ["xpath=//table[@id='table-form-field']/tbody/tr[3]/td[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//tr[3]/td[2]/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "109c74ce-6255-4d12-992a-f64bc01912ed",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=order_OrderItems_2_price",
+ "targets": [
+ ["id=order_OrderItems_2_price", "id"],
+ ["name=order[OrderItems][2][price]", "name"],
+ ["css=#order_OrderItems_2_price", "css:finder"],
+ ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"],
+ ["xpath=//table[@id='table-form-field']/tbody/tr[3]/td[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//tr[3]/td[2]/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "a58ad46a-e7a6-42a3-a2df-6dcc6774d629",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_OrderItems_2_price",
+ "targets": [
+ ["id=order_OrderItems_2_price", "id"],
+ ["name=order[OrderItems][2][price]", "name"],
+ ["css=#order_OrderItems_2_price", "css:finder"],
+ ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"],
+ ["xpath=//table[@id='table-form-field']/tbody/tr[3]/td[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//tr[3]/td[2]/div/div/input", "xpath:position"]
+ ],
+ "value": "1000"
+ }, {
+ "id": "cbb7c6cd-6e6b-45f3-b060-e0a591c98519",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_OrderItems_4_price",
+ "targets": [
+ ["id=order_OrderItems_4_price", "id"],
+ ["name=order[OrderItems][4][price]", "name"],
+ ["css=#order_OrderItems_4_price", "css:finder"],
+ ["xpath=//input[@id='order_OrderItems_4_price']", "xpath:attributes"],
+ ["xpath=//table[@id='table-form-field']/tbody/tr[4]/td[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//tr[4]/td[2]/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "83f19bd1-993f-474b-b0b2-588e8c169dc7",
+ "comment": "",
+ "command": "click",
+ "target": "id=order_OrderItems_4_price",
+ "targets": [
+ ["id=order_OrderItems_4_price", "id"],
+ ["name=order[OrderItems][4][price]", "name"],
+ ["css=#order_OrderItems_4_price", "css:finder"],
+ ["xpath=//input[@id='order_OrderItems_4_price']", "xpath:attributes"],
+ ["xpath=//table[@id='table-form-field']/tbody/tr[4]/td[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//tr[4]/td[2]/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "61dc8c45-9c74-4488-994f-7d281e39429c",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=order_OrderItems_4_price",
+ "targets": [
+ ["id=order_OrderItems_4_price", "id"],
+ ["name=order[OrderItems][4][price]", "name"],
+ ["css=#order_OrderItems_4_price", "css:finder"],
+ ["xpath=//input[@id='order_OrderItems_4_price']", "xpath:attributes"],
+ ["xpath=//table[@id='table-form-field']/tbody/tr[4]/td[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//tr[4]/td[2]/div/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "a2527b54-c0ba-487e-8dec-cb06c4dd7245",
+ "comment": "",
+ "command": "type",
+ "target": "id=order_OrderItems_4_price",
+ "targets": [
+ ["id=order_OrderItems_4_price", "id"],
+ ["name=order[OrderItems][4][price]", "name"],
+ ["css=#order_OrderItems_4_price", "css:finder"],
+ ["xpath=//input[@id='order_OrderItems_4_price']", "xpath:attributes"],
+ ["xpath=//table[@id='table-form-field']/tbody/tr[4]/td[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//tr[4]/td[2]/div/div/input", "xpath:position"]
+ ],
+ "value": "1000"
+ }, {
+ "id": "3bae2c1a-67a4-4859-a77b-20c709c5f81d",
+ "comment": "",
+ "command": "click",
+ "target": "css=.row:nth-child(10)",
+ "targets": [
+ ["css=.row:nth-child(10)", "css:finder"],
+ ["xpath=//div[@id='orderItem']/div/div[7]", "xpath:idRelative"],
+ ["xpath=//div[7]", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "ed24d815-1778-4cfa-b46f-f6a9dbb05f29",
+ "comment": "",
+ "command": "click",
+ "target": "css=.btn-ec-conversion > .ladda-label",
+ "targets": [
+ ["css=.btn-ec-conversion > .ladda-label", "css:finder"],
+ ["xpath=//form[@id='form1']/div[2]/div/div/div[2]/div/div/button/span", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/button/span", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "176e36ac-f4eb-4c2d-92f6-a2861d0093e8",
+ "comment": "",
+ "command": "click",
+ "target": "css=#mailHistory > .card-body",
+ "targets": [
+ ["css=#mailHistory > .card-body", "css:finder"],
+ ["xpath=//div[@id='mailHistory']/div", "xpath:idRelative"],
+ ["xpath=//div[6]/div[2]/div", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "0aacdb15-1b20-48ac-93b3-a5594898e057",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=メールを作成",
+ "targets": [
+ ["linkText=メールを作成", "linkText"],
+ ["css=.text-center > .btn", "css:finder"],
+ ["xpath=//a[contains(text(),'メールを作成')]", "xpath:link"],
+ ["xpath=//div[@id='mailHistory']/div/div/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '/admin/order/3/mail')]", "xpath:href"],
+ ["xpath=//div[6]/div[2]/div/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'メールを作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "6e412281-4b8f-4667-86ab-c736068d777e",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "linkText=メールを作成",
+ "targets": [
+ ["linkText=メールを作成", "linkText"],
+ ["css=.text-center > .btn", "css:finder"],
+ ["xpath=//a[contains(text(),'メールを作成')]", "xpath:link"],
+ ["xpath=//div[@id='mailHistory']/div/div/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '/admin/order/3/mail')]", "xpath:href"],
+ ["xpath=//div[6]/div[2]/div/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'メールを作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "7d8cfa7a-4302-4426-ad84-efa5a0cb419c",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "linkText=メールを作成",
+ "targets": [
+ ["linkText=メールを作成", "linkText"],
+ ["css=.text-center > .btn", "css:finder"],
+ ["xpath=//a[contains(text(),'メールを作成')]", "xpath:link"],
+ ["xpath=//div[@id='mailHistory']/div/div/a", "xpath:idRelative"],
+ ["xpath=(//a[contains(@href, '/admin/order/3/mail')])[2]", "xpath:href"],
+ ["xpath=//div[6]/div[2]/div/div/a", "xpath:position"],
+ ["xpath=//a[contains(.,'メールを作成')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "2bd7dd2f-dfca-42d7-9bce-186e99106d7b",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=保存せずに移動",
+ "targets": [
+ ["linkText=保存せずに移動", "linkText"],
+ ["css=.btn-ec-sub:nth-child(2)", "css:finder"],
+ ["xpath=//a[contains(text(),'保存せずに移動')]", "xpath:link"],
+ ["xpath=//div[@id='confirmFormChangeModal']/div/div/div[3]/a[2]", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '/admin/order/3/mail')]", "xpath:href"],
+ ["xpath=//div[3]/a[2]", "xpath:position"],
+ ["xpath=//a[contains(.,'保存せずに移動')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "cd85f991-48f5-4bac-bf29-0b8e0f61320a",
+ "comment": "",
+ "command": "click",
+ "target": "css=option:nth-child(2)",
+ "targets": [
+ ["css=option:nth-child(2)", "css:finder"],
+ ["xpath=//option[@value='1']", "xpath:attributes"],
+ ["xpath=//select[@id='template-change']/option[2]", "xpath:idRelative"],
+ ["xpath=//option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'注文受付メール')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "0b84df8b-e863-4230-b31b-3591ca2c5e32",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ladda-label",
+ "targets": [
+ ["css=.ladda-label", "css:finder"],
+ ["xpath=//form[@id='order-mail-form']/div[2]/div/div/div[2]/div/div/button/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"],
+ ["xpath=//span[contains(.,'送信内容を確認')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "f81b83a5-a92d-4a98-bb08-66ceeb9277bf",
+ "comment": "",
+ "command": "click",
+ "target": "css=.btn",
+ "targets": [
+ ["css=.btn", "css:finder"],
+ ["xpath=//button[@name='mode']", "xpath:attributes"],
+ ["xpath=//form[@id='order-mail-form']/div/div[3]/div/div/div[2]/div/div/button", "xpath:idRelative"],
+ ["xpath=//button", "xpath:position"],
+ ["xpath=//button[contains(.,'送信')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "c44f984a-88c9-4b28-95cb-4e037b8878b3",
+ "comment": "",
+ "command": "click",
+ "target": "css=.c-baseLink > span",
+ "targets": [
+ ["css=.c-baseLink > span", "css:finder"],
+ ["xpath=//form[@id='form1']/div[2]/div/div/div/div/a/span", "xpath:idRelative"],
+ ["xpath=//div/div/a/span", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "a4c7ab56-b824-4491-be12-5fa230630e4e",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=tr:nth-child(3) > .align-middle > .btn",
+ "targets": [
+ ["css=tr:nth-child(3) > .align-middle > .btn", "css:finder"],
+ ["xpath=//table[@id='search_result']/tbody/tr[3]/td[6]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/order/2/edit#order_message')]", "xpath:href"],
+ ["xpath=//tr[3]/td[6]/a", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "8ba852c7-68d0-4d3e-9db8-ea75f4a1671a",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "css=tr:nth-child(3) > .align-middle > .btn",
+ "targets": [
+ ["css=tr:nth-child(3) > .align-middle > .btn", "css:finder"],
+ ["xpath=//table[@id='search_result']/tbody/tr[3]/td[6]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/order/2/edit#order_message')]", "xpath:href"],
+ ["xpath=//tr[3]/td[6]/a", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "3c6e2619-917a-4464-b188-990d1987144e",
+ "comment": "",
+ "command": "click",
+ "target": "id=tracking_number_2",
+ "targets": [
+ ["id=tracking_number_2", "id"],
+ ["css=#tracking_number_2", "css:finder"],
+ ["xpath=//input[@id='tracking_number_2']", "xpath:attributes"],
+ ["xpath=//table[@id='search_result']/tbody/tr[3]/td[8]/div/input", "xpath:idRelative"],
+ ["xpath=//tr[3]/td[8]/div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "e8463776-972d-490e-bec8-dd8690a01d30",
+ "comment": "",
+ "command": "type",
+ "target": "id=tracking_number_2",
+ "targets": [
+ ["id=tracking_number_2", "id"],
+ ["css=#tracking_number_2", "css:finder"],
+ ["xpath=//input[@id='tracking_number_2']", "xpath:attributes"],
+ ["xpath=//table[@id='search_result']/tbody/tr[3]/td[8]/div/input", "xpath:idRelative"],
+ ["xpath=//tr[3]/td[8]/div/input", "xpath:position"]
+ ],
+ "value": "333333333"
+ }, {
+ "id": "52fc839d-1669-4462-b8a4-b73908780fdc",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=tr:nth-child(2) .input-group .btn",
+ "targets": [
+ ["css=tr:nth-child(2) .input-group .btn", "css:finder"],
+ ["xpath=(//button[@type='button'])[7]", "xpath:attributes"],
+ ["xpath=//table[@id='search_result']/tbody/tr[2]/td[8]/div/span/button", "xpath:idRelative"],
+ ["xpath=//tr[2]/td[8]/div/span/button", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "bce7756f-260b-49db-b24b-4f7b7173d803",
+ "comment": "",
+ "command": "click",
+ "target": "id=toggle_check_all",
+ "targets": [
+ ["id=toggle_check_all", "id"],
+ ["name=filter", "name"],
+ ["css=#toggle_check_all", "css:finder"],
+ ["xpath=//input[@id='toggle_check_all']", "xpath:attributes"],
+ ["xpath=//table[@id='search_result']/thead/tr/th/input", "xpath:idRelative"],
+ ["xpath=//th/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "a74d3236-f5d7-4a15-b286-d70d6d01d178",
+ "comment": "",
+ "command": "select",
+ "target": "id=option_bulk_status",
+ "targets": [],
+ "value": "label=発送済み"
+ }, {
+ "id": "1b946eef-5b9a-4a8d-a2e2-01193eeb4b59",
+ "comment": "",
+ "command": "click",
+ "target": "css=#option_bulk_status > option:nth-child(6)",
+ "targets": [
+ ["css=#option_bulk_status > option:nth-child(6)", "css:finder"],
+ ["xpath=//option[@value='5']", "xpath:attributes"],
+ ["xpath=//select[@id='option_bulk_status']/option[6]", "xpath:idRelative"],
+ ["xpath=//option[6]", "xpath:position"],
+ ["xpath=//option[contains(.,'発送済み')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "29a37fff-719e-4541-8590-d80e957880e9",
+ "comment": "",
+ "command": "click",
+ "target": "id=btn_bulk_status",
+ "targets": [
+ ["id=btn_bulk_status", "id"],
+ ["css=#btn_bulk_status", "css:finder"],
+ ["xpath=//button[@id='btn_bulk_status']", "xpath:attributes"],
+ ["xpath=//form[@id='form_bulk']/div/div/div/div[2]/button", "xpath:idRelative"],
+ ["xpath=//div[2]/button", "xpath:position"],
+ ["xpath=//button[contains(.,'決定')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "e2c32a7e-0af3-45cb-b1ae-225359d3c953",
+ "comment": "",
+ "command": "click",
+ "target": "id=bulkChangeComplete",
+ "targets": [
+ ["id=bulkChangeComplete", "id"],
+ ["css=#bulkChangeComplete", "css:finder"],
+ ["xpath=//button[@id='bulkChangeComplete']", "xpath:attributes"],
+ ["xpath=//div[@id='sentUpdateModal']/div/div/div[3]/button[3]", "xpath:idRelative"],
+ ["xpath=//button[3]", "xpath:position"],
+ ["xpath=//button[contains(.,'閉じる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "93d61621-ee6a-4a04-9815-cc2893c6b8da",
+ "comment": "",
+ "command": "click",
+ "target": "id=toggle_check_all",
+ "targets": [
+ ["id=toggle_check_all", "id"],
+ ["name=filter", "name"],
+ ["css=#toggle_check_all", "css:finder"],
+ ["xpath=//input[@id='toggle_check_all']", "xpath:attributes"],
+ ["xpath=//table[@id='search_result']/thead/tr/th/input", "xpath:idRelative"],
+ ["xpath=//th/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "62901e89-47aa-4104-9778-b6a7aff916d1",
+ "comment": "",
+ "command": "click",
+ "target": "id=bulkSendMail",
+ "targets": [
+ ["id=bulkSendMail", "id"],
+ ["css=#bulkSendMail", "css:finder"],
+ ["xpath=//button[@id='bulkSendMail']", "xpath:attributes"],
+ ["xpath=//form[@id='form_bulk']/div/div/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[3]/div/div/form/div/div/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'メールする')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "8a7c1fbd-d262-4df5-9537-6bf1ad27bf64",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "id=bulkSendMail",
+ "targets": [
+ ["id=bulkSendMail", "id"],
+ ["css=#bulkSendMail", "css:finder"],
+ ["xpath=//button[@id='bulkSendMail']", "xpath:attributes"],
+ ["xpath=//form[@id='form_bulk']/div/div/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[3]/div/div/form/div/div/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'メールする')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "66cf628d-8ec8-48aa-898c-8eb483ca575d",
+ "comment": "",
+ "command": "mouseOut",
+ "target": "id=bulkSendMail",
+ "targets": [
+ ["id=bulkSendMail", "id"],
+ ["css=#bulkSendMail", "css:finder"],
+ ["xpath=//button[@id='bulkSendMail']", "xpath:attributes"],
+ ["xpath=//form[@id='form_bulk']/div/div/div/div/button", "xpath:idRelative"],
+ ["xpath=//div[3]/div/div/form/div/div/div/div/button", "xpath:position"],
+ ["xpath=//button[contains(.,'メールする')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "c95fe319-9e28-41ee-83e4-ba1cde806e59",
+ "comment": "",
+ "command": "click",
+ "target": "css=a > .font-weight-bold:nth-child(2)",
+ "targets": [
+ ["css=a > .font-weight-bold:nth-child(2)", "css:finder"],
+ ["xpath=//div[@id='bulk-options']/div[3]/div/a/span", "xpath:idRelative"],
+ ["xpath=//div[3]/div/a/span", "xpath:position"],
+ ["xpath=//span[contains(.,'メールの文面を確認')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "a70fe589-b1f0-484d-ad77-e1c969a9daf3",
+ "comment": "",
+ "command": "click",
+ "target": "id=bulkChange",
+ "targets": [
+ ["id=bulkChange", "id"],
+ ["css=#bulkChange", "css:finder"],
+ ["xpath=//button[@id='bulkChange']", "xpath:attributes"],
+ ["xpath=//div[@id='sentUpdateModal']/div/div/div[3]/button[2]", "xpath:idRelative"],
+ ["xpath=//div[3]/button[2]", "xpath:position"],
+ ["xpath=//button[contains(.,'送信')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "75ef8790-fd73-48e2-87f5-59b03032dc27",
+ "comment": "",
+ "command": "click",
+ "target": "id=bulkChangeComplete",
+ "targets": [
+ ["id=bulkChangeComplete", "id"],
+ ["css=#bulkChangeComplete", "css:finder"],
+ ["xpath=//button[@id='bulkChangeComplete']", "xpath:attributes"],
+ ["xpath=//div[@id='sentUpdateModal']/div/div/div[3]/button[3]", "xpath:idRelative"],
+ ["xpath=//button[3]", "xpath:position"],
+ ["xpath=//button[contains(.,'閉じる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "41832942-3f1d-4c60-ad11-09cd45d46d9f",
+ "comment": "",
+ "command": "click",
+ "target": "id=bulkChangeComplete",
+ "targets": [
+ ["id=bulkChangeComplete", "id"],
+ ["css=#bulkChangeComplete", "css:finder"],
+ ["xpath=//button[@id='bulkChangeComplete']", "xpath:attributes"],
+ ["xpath=//div[@id='sentUpdateModal']/div/div/div[3]/button[3]", "xpath:idRelative"],
+ ["xpath=//button[3]", "xpath:position"],
+ ["xpath=//button[contains(.,'閉じる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "5190e5f1-00fa-4eb2-be1f-11ef7b1a549e",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=bulkChangeComplete",
+ "targets": [
+ ["id=bulkChangeComplete", "id"],
+ ["css=#bulkChangeComplete", "css:finder"],
+ ["xpath=//button[@id='bulkChangeComplete']", "xpath:attributes"],
+ ["xpath=//div[@id='sentUpdateModal']/div/div/div[3]/button[3]", "xpath:idRelative"],
+ ["xpath=//button[3]", "xpath:position"],
+ ["xpath=//button[contains(.,'閉じる')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }]
+ }, {
+ "id": "72004182-0333-4101-8bdc-25c6e2eb91f1",
+ "name": "会員管理",
+ "commands": [{
+ "id": "ccaf088d-8090-491d-9c51-bbe5bd4b2a9a",
+ "comment": "",
+ "command": "open",
+ "target": "https://ec-cube/admin/",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "fe4e8c55-4646-43df-b6d6-9054ccdaf74e",
+ "comment": "",
+ "command": "setWindowSize",
+ "target": "1160x821",
+ "targets": [],
+ "value": ""
+ }, {
+ "id": "c9b7c6a6-a5e9-4823-a556-e5fe2b1518d4",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=会員管理",
+ "targets": [
+ ["linkText=会員管理", "linkText"],
+ ["css=.c-mainNavArea__navItem:nth-child(4) > .c-mainNavArea__navItemTitle", "css:finder"],
+ ["xpath=//body[@id='page_admin_homepage']/div/div/nav/ul/li[4]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, '#nav-customer')]", "xpath:href"],
+ ["xpath=//nav/ul/li[4]/a", "xpath:position"],
+ ["xpath=//a[contains(.,' 会員管理')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "2b315ddb-b0b7-43e0-a44a-f242b187f743",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=会員一覧",
+ "targets": [
+ ["linkText=会員一覧", "linkText"],
+ ["css=#nav-customer > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//ul[@id='nav-customer']/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/customer')]", "xpath:href"],
+ ["xpath=//li[4]/ul/li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'会員一覧')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "33c0d106-c3f7-4b0a-994b-1c7acbf694dd",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=会員登録",
+ "targets": [
+ ["linkText=会員登録", "linkText"],
+ ["css=#nav-customer > li:nth-child(2) > a", "css:finder"],
+ ["xpath=//ul[@id='nav-customer']/li[2]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/customer/new')]", "xpath:href"],
+ ["xpath=//li[4]/ul/li[2]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'会員登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "ab44b3ca-92c9-40dd-b893-0bb64d9a0420",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_customer_name_name01",
+ "targets": [
+ ["id=admin_customer_name_name01", "id"],
+ ["name=admin_customer[name][name01]", "name"],
+ ["css=#admin_customer_name_name01", "css:finder"],
+ ["xpath=//input[@id='admin_customer_name_name01']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div/div[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//div/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "5c3c4516-611c-43cb-9533-8b449180733e",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_name_name01",
+ "targets": [
+ ["id=admin_customer_name_name01", "id"],
+ ["name=admin_customer[name][name01]", "name"],
+ ["css=#admin_customer_name_name01", "css:finder"],
+ ["xpath=//input[@id='admin_customer_name_name01']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div/div[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//div/input", "xpath:position"]
+ ],
+ "value": "石"
+ }, {
+ "id": "30efafb7-4a50-4cd7-b674-2ee930786f6a",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_name_name02",
+ "targets": [
+ ["id=admin_customer_name_name02", "id"],
+ ["name=admin_customer[name][name02]", "name"],
+ ["css=#admin_customer_name_name02", "css:finder"],
+ ["xpath=//input[@id='admin_customer_name_name02']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div/div[2]/div/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[2]/input", "xpath:position"]
+ ],
+ "value": "九部"
+ }, {
+ "id": "3dabb035-b073-4135-a9f2-cd3090879c5c",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_kana_kana01",
+ "targets": [
+ ["id=admin_customer_kana_kana01", "id"],
+ ["name=admin_customer[kana][kana01]", "name"],
+ ["css=#admin_customer_kana_kana01", "css:finder"],
+ ["xpath=//input[@id='admin_customer_kana_kana01']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[2]/div[2]/div/div/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div/input", "xpath:position"]
+ ],
+ "value": "イシ"
+ }, {
+ "id": "74678c2c-8e13-403c-a77d-ba03fc3dbf59",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_kana_kana02",
+ "targets": [
+ ["id=admin_customer_kana_kana02", "id"],
+ ["name=admin_customer[kana][kana02]", "name"],
+ ["css=#admin_customer_kana_kana02", "css:finder"],
+ ["xpath=//input[@id='admin_customer_kana_kana02']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[2]/div[2]/div/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[2]/div[2]/div/div[2]/input", "xpath:position"]
+ ],
+ "value": "キューブ"
+ }, {
+ "id": "4e7a0392-57f7-4bb7-a4f9-c93d866666d9",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_company_name",
+ "targets": [
+ ["id=admin_customer_company_name", "id"],
+ ["name=admin_customer[company_name]", "name"],
+ ["css=#admin_customer_company_name", "css:finder"],
+ ["xpath=//input[@id='admin_customer_company_name']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[3]/div[2]/input", "xpath:position"]
+ ],
+ "value": "イーシーキューブ"
+ }, {
+ "id": "55d7b0e5-f160-44f7-bf0c-4c594a5ab906",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_postal_code",
+ "targets": [
+ ["id=admin_customer_postal_code", "id"],
+ ["name=admin_customer[postal_code]", "name"],
+ ["css=#admin_customer_postal_code", "css:finder"],
+ ["xpath=//input[@id='admin_customer_postal_code']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[4]/div[2]/div/div/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/div/div/div[2]/input", "xpath:position"]
+ ],
+ "value": "5"
+ }, {
+ "id": "9ca12c07-f425-4518-8033-19c0d7c38bbe",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_customer_postal_code",
+ "targets": [
+ ["id=admin_customer_postal_code", "id"],
+ ["name=admin_customer[postal_code]", "name"],
+ ["css=#admin_customer_postal_code", "css:finder"],
+ ["xpath=//input[@id='admin_customer_postal_code']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[4]/div[2]/div/div/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/div/div/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "ca6281de-9aef-475b-a672-35d5bd43885c",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_postal_code",
+ "targets": [
+ ["id=admin_customer_postal_code", "id"],
+ ["name=admin_customer[postal_code]", "name"],
+ ["css=#admin_customer_postal_code", "css:finder"],
+ ["xpath=//input[@id='admin_customer_postal_code']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[4]/div[2]/div/div/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/div[2]/div/div/div[2]/input", "xpath:position"]
+ ],
+ "value": "5300003"
+ }, {
+ "id": "249eff04-d59c-4362-be02-db0e2580d54c",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_customer_address_addr02",
+ "targets": [
+ ["id=admin_customer_address_addr02", "id"],
+ ["name=admin_customer[address][addr02]", "name"],
+ ["css=#admin_customer_address_addr02", "css:finder"],
+ ["xpath=//input[@id='admin_customer_address_addr02']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[4]/div[2]/div[4]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "bfd4e46b-b155-4438-959d-254c3f596b33",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_address_addr02",
+ "targets": [
+ ["id=admin_customer_address_addr02", "id"],
+ ["name=admin_customer[address][addr02]", "name"],
+ ["css=#admin_customer_address_addr02", "css:finder"],
+ ["xpath=//input[@id='admin_customer_address_addr02']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[4]/div[2]/div[4]/input", "xpath:idRelative"],
+ ["xpath=//div[4]/input", "xpath:position"]
+ ],
+ "value": "2"
+ }, {
+ "id": "15657c30-8359-4eee-8af9-d82bad850e97",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_customer_email",
+ "targets": [
+ ["id=admin_customer_email", "id"],
+ ["name=admin_customer[email]", "name"],
+ ["css=#admin_customer_email", "css:finder"],
+ ["xpath=//input[@id='admin_customer_email']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[5]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[5]/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "0d3996f7-d9d7-44b0-b553-f90ee8a8024c",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_email",
+ "targets": [
+ ["id=admin_customer_email", "id"],
+ ["name=admin_customer[email]", "name"],
+ ["css=#admin_customer_email", "css:finder"],
+ ["xpath=//input[@id='admin_customer_email']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[5]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[5]/div[2]/input", "xpath:position"]
+ ],
+ "value": "ec-cube-cube@example.com"
+ }, {
+ "id": "3d878741-b012-43ab-bcea-4950f0f42d69",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_phone_number",
+ "targets": [
+ ["id=admin_customer_phone_number", "id"],
+ ["name=admin_customer[phone_number]", "name"],
+ ["css=#admin_customer_phone_number", "css:finder"],
+ ["xpath=//input[@id='admin_customer_phone_number']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[6]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[6]/div[2]/input", "xpath:position"]
+ ],
+ "value": "222222222"
+ }, {
+ "id": "32028c70-0a9d-4e03-847b-44a0fcaf6254",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_password_first",
+ "targets": [
+ ["id=admin_customer_password_first", "id"],
+ ["name=admin_customer[password][first]", "name"],
+ ["css=#admin_customer_password_first", "css:finder"],
+ ["xpath=//input[@id='admin_customer_password_first']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[7]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[7]/div[2]/input", "xpath:position"]
+ ],
+ "value": "password"
+ }, {
+ "id": "3785b746-4b91-447f-9c32-b388d96aa1d0",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_password_second",
+ "targets": [
+ ["id=admin_customer_password_second", "id"],
+ ["name=admin_customer[password][second]", "name"],
+ ["css=#admin_customer_password_second", "css:finder"],
+ ["xpath=//input[@id='admin_customer_password_second']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[8]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[8]/div[2]/input", "xpath:position"]
+ ],
+ "value": "password"
+ }, {
+ "id": "10699b01-3faa-4444-9f35-0433ec8967a4",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_customer_password_first",
+ "targets": [
+ ["id=admin_customer_password_first", "id"],
+ ["name=admin_customer[password][first]", "name"],
+ ["css=#admin_customer_password_first", "css:finder"],
+ ["xpath=//input[@id='admin_customer_password_first']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[7]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[7]/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "eebfe387-a0e9-4948-805c-d82b4d0200b9",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_password_first",
+ "targets": [
+ ["id=admin_customer_password_first", "id"],
+ ["name=admin_customer[password][first]", "name"],
+ ["css=#admin_customer_password_first", "css:finder"],
+ ["xpath=//input[@id='admin_customer_password_first']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[7]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[7]/div[2]/input", "xpath:position"]
+ ],
+ "value": "password123"
+ }, {
+ "id": "034b442f-ca52-4cf4-b27b-73ec29e413ee",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_customer_password_second",
+ "targets": [
+ ["id=admin_customer_password_second", "id"],
+ ["name=admin_customer[password][second]", "name"],
+ ["css=#admin_customer_password_second", "css:finder"],
+ ["xpath=//input[@id='admin_customer_password_second']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[8]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[8]/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "653245c4-1a16-48f2-8a8f-08056f92967f",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_password_second",
+ "targets": [
+ ["id=admin_customer_password_second", "id"],
+ ["name=admin_customer[password][second]", "name"],
+ ["css=#admin_customer_password_second", "css:finder"],
+ ["xpath=//input[@id='admin_customer_password_second']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[8]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[8]/div[2]/input", "xpath:position"]
+ ],
+ "value": "password12"
+ }, {
+ "id": "2dd753c3-b248-4afe-ae4f-1838eaef4be8",
+ "comment": "",
+ "command": "click",
+ "target": "css=.form-check:nth-child(1) > .form-check-label",
+ "targets": [
+ ["css=.form-check:nth-child(1) > .form-check-label", "css:finder"],
+ ["xpath=//div[@id='admin_customer_sex']/div/label", "xpath:idRelative"],
+ ["xpath=//label", "xpath:position"],
+ ["xpath=//label[contains(.,'男性')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "48b7d593-7020-4bd2-86ff-17ab7bd9c8ca",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_customer_job",
+ "targets": [
+ ["id=admin_customer_job", "id"],
+ ["name=admin_customer[job]", "name"],
+ ["css=#admin_customer_job", "css:finder"],
+ ["xpath=//select[@id='admin_customer_job']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[10]/div[2]/select", "xpath:idRelative"],
+ ["xpath=//div[2]/select", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "8f242f85-a429-4e4a-9382-652c4ed6a6a8",
+ "comment": "",
+ "command": "select",
+ "target": "id=admin_customer_job",
+ "targets": [],
+ "value": "label=コンピューター関連技術職"
+ }, {
+ "id": "4483bb32-a088-4883-974b-bf68cb8a1801",
+ "comment": "",
+ "command": "click",
+ "target": "css=#admin_customer_job > option:nth-child(4)",
+ "targets": [
+ ["css=#admin_customer_job > option:nth-child(4)", "css:finder"],
+ ["xpath=(//option[@value='3'])[2]", "xpath:attributes"],
+ ["xpath=//select[@id='admin_customer_job']/option[4]", "xpath:idRelative"],
+ ["xpath=//div[2]/select/option[4]", "xpath:position"],
+ ["xpath=//option[contains(.,'コンピューター関連技術職')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "f6c5ce2a-5601-4634-8764-f511cd3da15c",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_customer_birth",
+ "targets": [
+ ["id=admin_customer_birth", "id"],
+ ["name=admin_customer[birth]", "name"],
+ ["css=#admin_customer_birth", "css:finder"],
+ ["xpath=//input[@id='admin_customer_birth']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[11]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[11]/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "fba068ce-052d-4558-bd13-a271b8ed36ed",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_customer_birth",
+ "targets": [
+ ["id=admin_customer_birth", "id"],
+ ["name=admin_customer[birth]", "name"],
+ ["css=#admin_customer_birth", "css:finder"],
+ ["xpath=//input[@id='admin_customer_birth']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[11]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[11]/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "424626c5-5912-4033-81bd-1b8b6d2562e3",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_customer_birth",
+ "targets": [
+ ["id=admin_customer_birth", "id"],
+ ["name=admin_customer[birth]", "name"],
+ ["css=#admin_customer_birth", "css:finder"],
+ ["xpath=//input[@id='admin_customer_birth']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[11]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[11]/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "fcee8983-89f2-43b2-8c08-5370969d75da",
+ "comment": "",
+ "command": "doubleClick",
+ "target": "id=admin_customer_birth",
+ "targets": [
+ ["id=admin_customer_birth", "id"],
+ ["name=admin_customer[birth]", "name"],
+ ["css=#admin_customer_birth", "css:finder"],
+ ["xpath=//input[@id='admin_customer_birth']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[11]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[11]/div[2]/input", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "044843e6-a5ee-4ee2-92cd-a59ed7ffc9d7",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_birth",
+ "targets": [
+ ["id=admin_customer_birth", "id"],
+ ["name=admin_customer[birth]", "name"],
+ ["css=#admin_customer_birth", "css:finder"],
+ ["xpath=//input[@id='admin_customer_birth']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[11]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[11]/div[2]/input", "xpath:position"]
+ ],
+ "value": "2006-09-01"
+ }, {
+ "id": "d85b1dec-bde7-4a28-9bfa-6ac2f5cb8693",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_point",
+ "targets": [
+ ["id=admin_customer_point", "id"],
+ ["name=admin_customer[point]", "name"],
+ ["css=#admin_customer_point", "css:finder"],
+ ["xpath=//input[@id='admin_customer_point']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[12]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[12]/div[2]/input", "xpath:position"]
+ ],
+ "value": "10000"
+ }, {
+ "id": "d8093263-2c31-408e-87e4-6cf8ee94a16c",
+ "comment": "",
+ "command": "click",
+ "target": "css=.row:nth-child(11) > .col-3",
+ "targets": [
+ ["css=.row:nth-child(11) > .col-3", "css:finder"],
+ ["xpath=//div[@id='ordererInfo']/div/div[11]/div", "xpath:idRelative"],
+ ["xpath=//div[11]/div", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "67818cc8-4816-47fb-a1f5-97c877d4a9da",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_customer_note",
+ "targets": [
+ ["id=admin_customer_note", "id"],
+ ["name=admin_customer[note]", "name"],
+ ["css=#admin_customer_note", "css:finder"],
+ ["xpath=//textarea[@id='admin_customer_note']", "xpath:attributes"],
+ ["xpath=//div[@id='shopMemo']/div/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "4a45f0ec-cc2b-4d84-af82-77ac9a15f5b1",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_note",
+ "targets": [
+ ["id=admin_customer_note", "id"],
+ ["name=admin_customer[note]", "name"],
+ ["css=#admin_customer_note", "css:finder"],
+ ["xpath=//textarea[@id='admin_customer_note']", "xpath:attributes"],
+ ["xpath=//div[@id='shopMemo']/div/textarea", "xpath:idRelative"],
+ ["xpath=//textarea", "xpath:position"]
+ ],
+ "value": "ショップ用メモ"
+ }, {
+ "id": "b0b204ca-f0bc-42fb-902d-c8b2070fabf2",
+ "comment": "",
+ "command": "click",
+ "target": "id=admin_customer_status",
+ "targets": [
+ ["id=admin_customer_status", "id"],
+ ["name=admin_customer[status]", "name"],
+ ["css=#admin_customer_status", "css:finder"],
+ ["xpath=//select[@id='admin_customer_status']", "xpath:attributes"],
+ ["xpath=//div[@id='ex-conversion-action']/div/select", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/div[2]/div/div/select", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "4e383bc6-4fe2-4fe8-b43a-2f856e845a83",
+ "comment": "",
+ "command": "select",
+ "target": "id=admin_customer_status",
+ "targets": [],
+ "value": "label=本会員"
+ }, {
+ "id": "d4215ab0-0ab4-4eee-bff0-913feaef2416",
+ "comment": "",
+ "command": "click",
+ "target": "css=#admin_customer_status > option:nth-child(2)",
+ "targets": [
+ ["css=#admin_customer_status > option:nth-child(2)", "css:finder"],
+ ["xpath=(//option[@value='2'])[3]", "xpath:attributes"],
+ ["xpath=//select[@id='admin_customer_status']/option[2]", "xpath:idRelative"],
+ ["xpath=//div[2]/div/div/div[2]/div/div/select/option[2]", "xpath:position"],
+ ["xpath=//option[contains(.,'本会員')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "34507518-2cbf-4ac9-838d-251449db652b",
+ "comment": "",
+ "command": "click",
+ "target": "css=.btn",
+ "targets": [
+ ["css=.btn", "css:finder"],
+ ["xpath=//button[@type='submit']", "xpath:attributes"],
+ ["xpath=//div[@id='ex-conversion-action']/div[2]/button", "xpath:idRelative"],
+ ["xpath=//button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "ce87d86c-d859-4566-bc36-e487959f4824",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_password_first",
+ "targets": [
+ ["id=admin_customer_password_first", "id"],
+ ["name=admin_customer[password][first]", "name"],
+ ["css=#admin_customer_password_first", "css:finder"],
+ ["xpath=//input[@id='admin_customer_password_first']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[7]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[7]/div[2]/input", "xpath:position"]
+ ],
+ "value": "password.123"
+ }, {
+ "id": "23b6727b-f1ab-4bce-bf8b-1238041fdd78",
+ "comment": "",
+ "command": "type",
+ "target": "id=admin_customer_password_second",
+ "targets": [
+ ["id=admin_customer_password_second", "id"],
+ ["name=admin_customer[password][second]", "name"],
+ ["css=#admin_customer_password_second", "css:finder"],
+ ["xpath=//input[@id='admin_customer_password_second']", "xpath:attributes"],
+ ["xpath=//div[@id='ordererInfo']/div/div[8]/div[2]/input", "xpath:idRelative"],
+ ["xpath=//div[8]/div[2]/input", "xpath:position"]
+ ],
+ "value": "password.123"
+ }, {
+ "id": "3f783397-0ddc-48d8-b70c-4f2983f85aa8",
+ "comment": "",
+ "command": "click",
+ "target": "css=.btn",
+ "targets": [
+ ["css=.btn", "css:finder"],
+ ["xpath=//button[@type='submit']", "xpath:attributes"],
+ ["xpath=//div[@id='ex-conversion-action']/div[2]/button", "xpath:idRelative"],
+ ["xpath=//button", "xpath:position"],
+ ["xpath=//button[contains(.,'登録')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "1f35bc75-ea0a-44bc-a9ca-2118529bf1fa",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=会員一覧",
+ "targets": [
+ ["linkText=会員一覧", "linkText"],
+ ["css=#nav-customer > li:nth-child(1) > a", "css:finder"],
+ ["xpath=//ul[@id='nav-customer']/li/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/customer')]", "xpath:href"],
+ ["xpath=//li[4]/ul/li/a", "xpath:position"],
+ ["xpath=//a[contains(.,'会員一覧')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "19614483-9e4e-4d56-8d5e-cbee7bdd1e90",
+ "comment": "",
+ "command": "click",
+ "target": "linkText=石 九部",
+ "targets": [
+ ["linkText=石 九部", "linkText"],
+ ["css=#ex-customer-4 > .align-middle > a", "css:finder"],
+ ["xpath=//a[contains(text(),'石 九部')]", "xpath:link"],
+ ["xpath=//tr[@id='ex-customer-4']/td[2]/a", "xpath:idRelative"],
+ ["xpath=//a[contains(@href, 'https://ec-cube/admin/customer/4/edit')]", "xpath:href"],
+ ["xpath=//td[2]/a", "xpath:position"],
+ ["xpath=//a[contains(.,'石 九部')]", "xpath:innerText"]
+ ],
+ "value": ""
+ }, {
+ "id": "a6efbfed-44d2-47d7-8e83-1654b7513770",
+ "comment": "",
+ "command": "click",
+ "target": "css=.ladda-label",
+ "targets": [
+ ["css=.ladda-label", "css:finder"],
+ ["xpath=//div[@id='ex-conversion-action']/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"]
+ ],
+ "value": ""
+ }, {
+ "id": "afa3be7f-721b-44ee-a6f7-374feb1e1d93",
+ "comment": "",
+ "command": "mouseOver",
+ "target": "css=.ladda-label",
+ "targets": [
+ ["css=.ladda-label", "css:finder"],
+ ["xpath=//div[@id='ex-conversion-action']/div[2]/button/span", "xpath:idRelative"],
+ ["xpath=//button/span", "xpath:position"]
+ ],
+ "value": ""
+ }]
+ }],
+ "suites": [{
+ "id": "9a93a5e6-e470-42fc-821f-e58d86b64905",
+ "name": "管理画面マニュアル探査",
+ "persistSession": false,
+ "parallel": false,
+ "timeout": 300,
+ "tests": ["72004182-0333-4101-8bdc-25c6e2eb91f1", "af12755b-95df-4a47-ba6d-b9ea45cb4ea7", "93cadc3b-359e-440c-97b4-a69a41f7c12d"]
+ }],
+ "urls": ["https://ec-cube/admin"],
+ "plugins": []
+}
diff --git a/zap/selenium/ide/README.md b/zap/selenium/ide/README.md
new file mode 100644
index 00000000000..751f07eb972
--- /dev/null
+++ b/zap/selenium/ide/README.md
@@ -0,0 +1,7 @@
+## 手動探索用 Selenium IDE project
+
+*現在作業作業進行中です。ブラウザ操作が途中で停止してしまう場合がありますのでご注意ください*
+
+- https://addons.mozilla.org/ja/firefox/addon/selenium-ide/ より、 Firefox のアドオンをインストールして利用してください
+- OWASP ZAP での手動探索時を省力化するために使用します
+
|