From f4ca5a5b34f4e450882eb0dc5417840377902449 Mon Sep 17 00:00:00 2001 From: jitendra Date: Fri, 21 Dec 2018 18:54:07 +0530 Subject: [PATCH 01/15] Compiled assets for production --- packages/Webkul/Admin/webpack.mix.js | 4 ++-- packages/Webkul/Shop/publishable/assets/css/shop.css | 2 +- packages/Webkul/Shop/publishable/assets/mix-manifest.json | 2 +- packages/Webkul/Shop/webpack.mix.js | 4 ++-- packages/Webkul/Ui/publishable/assets/css/ui.css | 2 +- packages/Webkul/Ui/publishable/assets/mix-manifest.json | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/Webkul/Admin/webpack.mix.js b/packages/Webkul/Admin/webpack.mix.js index 3f72c18c8..92e3d593b 100644 --- a/packages/Webkul/Admin/webpack.mix.js +++ b/packages/Webkul/Admin/webpack.mix.js @@ -1,8 +1,8 @@ const { mix } = require("laravel-mix"); require("laravel-mix-merge-manifest"); -// var publicPath = 'publishable/assets'; -var publicPath = "../../../public/vendor/webkul/admin/assets"; +var publicPath = 'publishable/assets'; +// var publicPath = "../../../public/vendor/webkul/admin/assets"; mix.setPublicPath(publicPath).mergeManifest(); mix.disableNotifications(); diff --git a/packages/Webkul/Shop/publishable/assets/css/shop.css b/packages/Webkul/Shop/publishable/assets/css/shop.css index 2606370de..2a119920d 100644 --- a/packages/Webkul/Shop/publishable/assets/css/shop.css +++ b/packages/Webkul/Shop/publishable/assets/css/shop.css @@ -1 +1 @@ -@import url(https://fonts.googleapis.com/css?family=Montserrat:400,500);.icon{display:inline-block;background-size:cover}.dropdown-right-icon{background-image:URL("../images/icon-dropdown-left.svg");width:8px;height:8px;margin-left:auto;margin-bottom:2px}.icon-menu-close{background-image:URL("../images/icon-menu-close.svg");width:24px;height:24px;margin-left:auto}.icon-menu-close-adj{background-image:URL("../images/cross-icon-adj.svg");margin-left:auto}.grid-view-icon{background-image:URL("../images/icon-grid-view.svg");width:24px;height:24px}.list-view-icon{background-image:URL("../images/icon-list-view.svg");width:24px;height:24px}.sort-icon{background-image:URL("../images/icon-sort.svg");width:32px;height:32px}.filter-icon{background-image:URL("../images/icon-filter.svg");width:32px;height:32px}.whishlist-icon{background-image:URL("../images/wishlist.svg");width:24px;height:24px}.share-icon{background-image:URL("../images/icon-share.svg");width:24px;height:24px}.icon-menu{background-image:URL("../images/icon-menu.svg");width:24px;height:24px}.icon-search{background-image:URL("../images/icon-search.svg");width:24px;height:24px}.icon-menu-back{background-image:URL("../images/icon-menu-back.svg");width:24px;height:24px}.shipping-icon{background-image:url("../images/shipping.svg");width:32px;height:32px}.payment-icon{background-image:url("../images/payment.svg");width:32px;height:32px}.cart-icon{background-image:url("../images/icon-cart.svg");width:24px;height:24px}.wishlist-icon{background-image:url("../images/wishlist.svg");width:32px;height:32px}.icon-arrow-up{background-image:url("../images/arrow-up.svg");width:16px;height:16px}.icon-arrow-down{background-image:url("../images/arrow-down.svg");width:16px;height:16px}.expand-icon{background-image:url("../images/Expand-Light.svg");width:18px;height:18px}.expand-on-icon{background-image:url("../images/Expand-Light-On.svg");width:18px;height:18px}.icon-menu-close-adj{background-image:url("../images/cross-icon-adj.svg");width:32px;height:32px}.icon-facebook{background-image:url("../images/facebook.svg")}.icon-twitter{background-image:url("../images/twitter.svg")}.icon-google-plus{background-image:url("../images/google-plus.svg")}.icon-instagram{background-image:url("../images/instagram.svg")}.icon-linkedin{background-image:url("../images/linkedin.svg")}body{margin:0;padding:0;font-weight:500;max-width:100%;width:auto;color:#242424;font-size:16px}*{font-family:Montserrat,sans-serif}::-webkit-input-placeholder{font-family:Montserrat,sans-serif}input{font-family:Montserrat,sans-serif}.btn{border-radius:0!important}.mb-10{margin-bottom:10px}.mb-15{margin-bottom:15px}.mb-20{margin-bottom:20px}.mb-25{margin-bottom:25px}.mb-30{margin-bottom:30px}.mb-35{margin-bottom:35px}.mb-40{margin-bottom:40px}.mb-45{margin-bottom:45px}.mb-50{margin-bottom:50px}.mb-60{margin-bottom:60px}.mb-70{margin-bottom:70px}.mb-80{margin-bottom:80px}.mb-90{margin-bottom:90px}.mt-5{margin-top:5px}.mt-10{margin-top:10px}.mt-15{margin-top:15px}.mt-20{margin-top:20px}.mt-25{margin-top:25px}.mt-30{margin-top:30px}.mt-35{margin-top:35px}.mt-40{margin-top:40px}.mt-45{margin-top:45px}.mt-50{margin-top:50px}.mt-60{margin-top:60px}.mt-70{margin-top:70px}.mt-80{margin-top:80px}.mt-90{margin-top:90px}.pagination.shop{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.bold{font-weight:700;color:#3a3a3a}.radio-container{display:block;position:relative;padding-left:35px;margin-bottom:12px;cursor:pointer;font-size:16px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.radio-container input{position:absolute;opacity:0;cursor:pointer}.radio-container .checkmark{position:absolute;top:0;left:0;height:16px;width:16px;background-color:#fff;border:2px solid #ff6472;border-radius:50%}.radio-container .checkmark:after{content:"";position:absolute;display:none;top:2px;left:2px;width:8px;height:8px;border-radius:50%;background:#ff6472}.radio-container input:checked~.checkmark:after{display:block}.add-to-wishlist .wishlist-icon:hover{background-image:url("../images/wishlist-added.svg")}.product-price{margin-bottom:14px;width:100%;font-weight:600}.product-price .price-label{font-size:14px;font-weight:400}.product-price .regular-price{color:#a5a5a5;text-decoration:line-through;margin-right:10px}.product-price .special-price{color:#ff6472}.horizontal-rule{width:100%;height:1px;background:#c7c7c7}.account-head .account-heading{font-size:28px;color:#242424;text-transform:capitalize;text-align:left}.account-head .account-action{font-size:17px;margin-top:1%;color:#0031f0;float:right}.account-head .horizontal-rule{margin-top:1.1%;width:100%;height:1px;vertical-align:middle;background:#c7c7c7}.account-item-card{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:125px}.account-item-card,.account-item-card .media-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.account-item-card .media-info .media{height:125px;width:110px}.account-item-card .media-info .info{margin-left:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:space-evenly;-ms-flex-pack:space-evenly;justify-content:space-evenly}.account-item-card .media-info .info .stars .icon{height:16px;width:16px}.account-item-card .operations{height:120px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.account-item-card .operations a{width:100%}.account-item-card .operations a span{float:right}.account-items-list{display:block;width:100%}.search-result-status{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.grid-container{margin-top:20px}.main-container-wrapper{max-width:1300px;width:auto;padding-left:15px;padding-right:15px;margin-left:auto;margin-right:auto}.main-container-wrapper .content-container{display:block}.main-container-wrapper .product-grid-4{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));grid-auto-rows:auto;grid-column-gap:48px;grid-row-gap:15px;justify-items:end}.main-container-wrapper .product-grid-3{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));grid-gap:27px;grid-auto-rows:auto;justify-items:center}.main-container-wrapper .product-card{position:relative;padding:15px}.main-container-wrapper .product-card .product-image{max-height:350px;max-width:280px;margin-bottom:10px;background:#f2f2f2}.main-container-wrapper .product-card .product-image img{display:block;width:100%}.main-container-wrapper .product-card .product-name{margin-bottom:14px;width:100%;color:#242424}.main-container-wrapper .product-card .product-name a{color:#242424}.main-container-wrapper .product-card .product-description{display:none}.main-container-wrapper .product-card .product-ratings{width:100%}.main-container-wrapper .product-card .product-ratings .icon{width:16px;height:16px}.main-container-wrapper .product-card .cart-wish-wrap{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:40px}.main-container-wrapper .product-card .cart-wish-wrap .addtocart{margin-right:10px;text-transform:uppercase;text-align:left;-webkit-box-shadow:1px 1px 0 #ccc;box-shadow:1px 1px 0 #ccc}.main-container-wrapper .product-card .cart-wish-wrap .add-to-wishlist{margin-top:5px;background:transparent;border:0;cursor:pointer;padding:0}.main-container-wrapper .product-card .sticker{border-radius:100px;position:absolute;top:10px;left:10px;text-transform:uppercase;padding:4px 13px;font-size:14px;color:#fff;-webkit-box-shadow:1px 1px 1px #ccc;box-shadow:1px 1px 1px #ccc}.main-container-wrapper .product-card .sticker.sale{background:#ff6472}.main-container-wrapper .product-card .sticker.new{background:#2ed04c}.main-container-wrapper .product-card:hover{-webkit-box-shadow:1px 1px 10px #ccc;box-shadow:1px 1px 10px #ccc}@media only screen and (max-width:580px){.main-container-wrapper .main-container-wrapper{padding:0}}@media only screen and (max-width:551px){.main-container-wrapper .product-grid-3{grid-template-columns:48.5% 48.5%;grid-column-gap:20px}}@media only screen and (max-width:854px){.main-container-wrapper .product-grid-4{grid-template-columns:29.5% 29.5% 29.5%;grid-column-gap:35px}}@media only screen and (max-width:653px){.main-container-wrapper .product-grid-4{grid-template-columns:48.5% 48.5%;grid-column-gap:17px}}@media only screen and (max-width:425px){.main-container-wrapper .product-card{font-size:90%}.main-container-wrapper .product-card .btn.btn-md{padding:5px}.main-container-wrapper .product-grid-4{grid-template-columns:48.5% 48.5%;grid-column-gap:10px}}.main-container-wrapper .product-list{min-height:200px}.main-container-wrapper .product-list .product-card{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:20px}.main-container-wrapper .product-list .product-card .product-image{float:left;width:30%;height:350px}.main-container-wrapper .product-list .product-card .product-image img{height:100%}.main-container-wrapper .product-list .product-card .product-information{float:right;width:70%;padding-left:30px}.main-container-wrapper .product-list .product-card:last-child{margin-bottom:0}.main-container-wrapper .product-list.empty h2{font-size:20px}.main-container-wrapper section.featured-products{display:block;margin-bottom:5%}.main-container-wrapper section.featured-products .featured-heading{width:100%;text-align:center;text-transform:uppercase;font-size:18px;margin-bottom:20px}.main-container-wrapper section.featured-products .featured-heading .featured-separator{color:#d3d3d3}.main-container-wrapper section.news-update{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;margin-bottom:5%}.main-container-wrapper section.news-update .news-update-grid{display:grid;grid-template-columns:58.5% 40%;grid-gap:20px}.main-container-wrapper section.news-update .news-update-grid .block1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.main-container-wrapper section.news-update .news-update-grid .block1 img{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;width:100%}.main-container-wrapper section.news-update .news-update-grid .block2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;display:grid;grid-template-rows:repeat(2,minmax(50%,1fr));grid-row-gap:20px}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block1 img{width:100%}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block2 img{width:100%}section.slider-block{display:block;margin-left:auto;margin-right:auto;margin-bottom:5%}section.slider-block div.slider-content{position:relative;height:500px;margin-left:auto;margin-right:auto}section.slider-block div.slider-content ul.slider-images .show-content{display:none}section.slider-block div.slider-content ul.slider-images li{position:absolute;visibility:hidden}section.slider-block div.slider-content ul.slider-images li.show{display:block;position:relative;visibility:visible;width:100%;-webkit-animation-name:example;animation-name:example;-webkit-animation-duration:4s;animation-duration:4s}section.slider-block div.slider-content ul.slider-images li.show .show-content{display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#242424;height:100%;width:100%;top:0}@-webkit-keyframes example{0%{opacity:.1}to{opacity:1}}@keyframes example{0%{opacity:.1}to{opacity:1}}section.slider-block div.slider-content ul.slider-images li img{height:500px;width:100%}section.slider-block div.slider-content div.slider-control{display:block;cursor:pointer;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;bottom:2%;right:2%}section.slider-block div.slider-content div.slider-control .dark-left-icon{background-color:#f2f2f2;height:48px;width:48px;max-height:100%;max-width:100%}section.slider-block div.slider-content div.slider-control .light-right-icon{background-color:#242424;height:48px;width:48px;max-height:100%;max-width:100%}@media only screen and (max-width:770px){section.slider-block div.slider-content div.slider-control{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;bottom:46%;right:0;width:100%}}.header{margin-top:16px;margin-bottom:21px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.header .header-top{margin-bottom:16px;max-width:100%;width:auto;margin-left:auto;margin-right:auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.header .header-top,.header .header-top div.left-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.left-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.header .header-top div.left-content ul.logo-container{margin-right:12px}.header .header-top div.left-content ul.logo-container li{display:-webkit-box;display:-ms-flexbox;display:flex}.header .header-top div.left-content ul.logo-container li img{max-width:120px;max-height:40px}.header .header-top div.left-content ul.search-container li.search-group{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.left-content ul.search-container li.search-group .search-field{height:38px;border:2px solid #c7c7c7;border-radius:3px;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;padding-left:12px;font-family:Montserrat,sans-serif;font-size:14px}.header .header-top div.left-content ul.search-container li.search-group .search-icon-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;height:38px;width:38px;border:2px solid #c7c7c7;border-top-right-radius:3px;border-bottom-right-radius:3px}.header .header-top div.left-content ul.search-container li.search-group .search-icon-wrapper button{background:#fff;border:0;padding:3px 5px}.header .header-top div.right-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.right-content .currency-switcher{float:right;border-right:2px solid #c7c7c7;cursor:pointer}.header .header-top div.right-content .currency-switcher .dropdown-toggle{line-height:25px;margin-left:14px;margin-right:14px}.header .header-top div.right-content .currency-switcher .dropdown-list{width:100px;top:37px}.header .header-top div.right-content .currency-switcher .dropdown-list .dropdown-container{padding:0 10px}.header .header-top div.right-content ul.account-dropdown-container{float:right;border-right:2px solid #c7c7c7;cursor:pointer}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin-left:14px;margin-right:14px}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown .account{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown .dropdown-list{width:300px;padding:25px}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown .dropdown-container{padding:0;overflow:hidden}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown ul.account-dropdown-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown ul.account-dropdown-list li>a{color:#fff}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown ul.account-dropdown-list .btn{min-width:100px;text-align:center}.header .header-top div.right-content ul.cart-dropdown-container{float:right;margin-left:10px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .cart-icon{margin-right:8px;height:24px;width:24px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .icon.arrow-down-icon{margin-top:10px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list{width:387px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container{padding:10px 18px;max-height:410px;overflow-y:auto}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-cart{color:#242424}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header{width:100%}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header p{display:inline;line-height:25px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header i{float:right;height:22px;width:22px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header p.heading{font-weight:lighter}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-content{padding-top:8px;padding-bottom:10px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-content .item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;border-bottom:1px solid #c7c7c7;padding-top:8px;padding-bottom:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-content .item img{height:75px;width:75px;margin-right:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-content .item-details{max-height:125px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .item-details .item-name{font-size:16px;font-weight:700;margin-bottom:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .item-details .item-options{font-size:16px;margin-bottom:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .item-details .item-price{margin-bottom:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .item-details .item-qty{font-weight:lighter;margin-bottom:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-footer .btn{margin:0;max-width:170px;text-align:center}.header .header-top ul.right-responsive{display:none;cursor:pointer}.header .header-top ul.right-responsive li{margin-right:5px}.header .header-top ul.right-responsive li:last-child{margin-right:-2px}.header .header-top ul.right-responsive ul{margin-right:5px}.header .header-top ul.right-responsive ul:last-child{margin-right:0}.header .header-bottom{height:47px;margin-left:auto;margin-right:auto;border-top:1px solid #c7c7c7;border-bottom:1px solid #c7c7c7;display:block}.header .header-bottom ul.nav{display:block;font-size:16px;max-width:100%;width:auto;margin-left:auto;margin-right:auto}.header .header-bottom .nav ul{margin:0;padding:0;-webkit-box-shadow:1px 1px 1px 0 rgba(0,0,0,.4);box-shadow:1px 1px 1px 0 rgba(0,0,0,.4)}.header .header-bottom .nav a{display:block;color:#242424;text-decoration:none;padding:.8em .3em .8em .5em;text-transform:uppercase;letter-spacing:-.38px;position:relative}.header .header-bottom .nav li>.icon{display:none}.header .header-bottom .nav{vertical-align:top;display:inline-block}.header .header-bottom .nav li{position:relative;height:45px}.header .header-bottom .nav>li{float:left;margin-right:1px}.header .header-bottom .nav>li>a{margin-bottom:1px}.header .header-bottom .nav>li>a .icon{display:none}.header .header-bottom .nav li li a{margin-top:1px}.header .header-bottom .nav li a:first-child:nth-last-child(2):before{content:"";position:absolute;height:0;width:0;border:5px solid transparent;top:50%;right:5px}.header .header-bottom .nav ul{position:absolute;white-space:nowrap;border:1px solid #c7c7c7;background-color:#fff;z-index:1;left:-99999em}.header .header-bottom .nav>li:hover{background-color:#f2f2f2}.header .header-bottom .nav>li:hover>ul{left:auto;min-width:100%}.header .header-bottom .nav>li li:hover{background-color:#f2f2f2}.header .header-bottom .nav>li li:hover>ul{left:100%;margin-left:1px;top:-2px}.header .header-bottom .nav>li:hover>a:first-child:nth-last-child(2):before,.header .header-bottom .nav li li>a:first-child:nth-last-child(2):before{margin-top:-5px}.header .header-bottom .nav li li:hover>a:first-child:nth-last-child(2):before{right:10px}.header .search-responsive{display:none}.header .search-responsive .search-content{border-bottom:1px solid #c7c7c7;height:48px}.header .search-responsive .search-content .search{width:70%;margin-left:20px;height:30px;border:none;font-size:16px;position:absolute}.header .search-responsive .search-content .right{float:right}.header .search-responsive .search-content .suggestion{position:absolute;margin-left:20px}.header .search-responsive .search-content:first-child{border-top:1px solid #c7c7c7}@media (max-width:720px){.header .currency-switcher{display:none!important}.header .header-bottom{height:auto;display:none}.header .header-bottom .nav a{display:inline-block}.header .header-bottom .nav li,.header .header-bottom ul.nav{height:auto}.header .header-bottom .nav>li{float:none}.header .header-bottom .nav li>.icon{float:right;display:block}.header .header-bottom .icon.icon-arrow-down{margin-right:5px}.header .header-bottom .nav li .left{height:16px;width:16px}.header .header-bottom .nav li a>.icon{display:none}.header .header-bottom .nav ul{position:unset;border:none;-webkit-box-shadow:none;box-shadow:none}.header .header-bottom .nav>li li:hover>ul{margin-left:0;top:0}ul.account-dropdown-container,ul.cart-dropdown-container,ul.search-container{display:none!important}ul.right-responsive{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;margin-left:12px}}.footer{background-color:#f2f2f2;padding-left:10%;padding-right:10%;width:100%;display:inline-block}.footer .footer-content .footer-list-container{display:grid;padding:40px 10px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-auto-rows:auto;grid-row-gap:1vh}.footer .footer-content .footer-list-container .list-container .list-heading{text-transform:uppercase;color:#a5a5a5}.footer .footer-content .footer-list-container .list-container .list-group{padding-top:25px}.footer .footer-content .footer-list-container .list-container .list-group a{color:#242424}.footer .footer-content .footer-list-container .list-container .list-group li{margin-bottom:12px;list-style-type:none;text-transform:uppercase}.footer .footer-content .footer-list-container .list-container .list-group li span.icon{display:inline-block;vertical-align:middle;margin-right:5px;height:24px;width:24px}.footer .footer-content .footer-list-container .list-container .form-container{padding-top:5px}.footer .footer-content .footer-list-container .list-container .form-container .control-group .subscribe-field{width:100%}.footer .footer-content .footer-list-container .list-container .form-container .control-group .subscribe-field::-webkit-input-placeholder{font-family:montserrat,sans-serif}.footer .footer-content .footer-list-container .list-container .form-container .control-group .subscribe-field::-moz-placeholder{font-family:montserrat,sans-serif}.footer .footer-content .footer-list-container .list-container .form-container .control-group .btn-primary{background-color:#242424;margin-top:8px;border-radius:0;text-align:center}.footer .footer-content .footer-list-container .list-container .form-container .control-group .locale-switcher{width:100%}.footer .footer-content .footer-list-container .list-container .currency{display:none}@media (max-width:720px){.footer{padding-left:15px}.footer .footer-list-container{padding-left:0!important}.footer .currency{display:block!important}}.footer-bottom{margin-top:-16px;width:100%;height:120px;font-size:16px;color:#a5a5a5;letter-spacing:-.26px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.footer-bottom p{padding:0 15px}.main .category-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}.main .category-container .layered-filter-wrapper,.main .category-container .responsive-layred-filter{width:25%;float:left;padding-right:20px;min-height:1px}.main .category-container .layered-filter-wrapper .filter-title,.main .category-container .responsive-layred-filter .filter-title{border-bottom:1px solid #c7c7c7;color:#242424;padding:10px 0}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item{border-bottom:1px solid #c7c7c7;padding-bottom:10px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-title,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-title{padding:10px 40px 0 10px;color:#5e5e5e;cursor:pointer;position:relative}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-title .remove-filter-link,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-title .remove-filter-link{font-weight:400;color:#0031f0;margin-right:10px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-title .icon,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-title .icon{background-image:url("../images/arrow-down.svg")!important;width:10px;height:10px;position:absolute;right:15px;top:14px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content{padding:10px;display:none}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items{padding:0;margin:0;list-style:none none}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item{padding:8px 0;color:#5e5e5e}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox{margin:0}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox .checkbox-view,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox .checkbox-view{height:16px;width:16px;background-image:url("../images/checkbox.svg")}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox input:checked+.checkbox-view,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox input:checked+.checkbox-view{background-image:url("../images/checkbox-checked.svg")}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content .price-range-wrapper,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content .price-range-wrapper{margin-top:21px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item.active .filter-attributes-content,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item.active .filter-attributes-content{display:block}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item.active .filter-attributes-title .icon,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item.active .filter-attributes-title .icon{background-image:url("../images//arrow-up.svg")!important}.main .category-container .responsive-layred-filter{display:none;width:100%;float:none;padding-right:0;margin-top:-25px!important}.main .category-container .category-block{width:80%;display:block}.main .category-container .category-block .hero-image{display:block;visibility:visible;width:auto}.main .category-container .category-block .hero-image img{height:400px;width:100%}.main .top-toolbar{width:100%;display:inline-block}.main .top-toolbar .page-info{float:left;color:#242424;line-height:45px}.main .top-toolbar .page-info span{display:none}.main .top-toolbar .page-info span:first-child{display:inline}.main .top-toolbar .pager{float:right}.main .top-toolbar .pager label{margin-right:5px}.main .top-toolbar .pager select{background:#f2f2f2;border:1px solid #c7c7c7;border-radius:3px;color:#242424;padding:10px}.main .top-toolbar .pager .view-mode{display:inline-block;margin-right:20px}.main .top-toolbar .pager .view-mode a,.main .top-toolbar .pager .view-mode span{display:inline-block;vertical-align:middle}.main .top-toolbar .pager .view-mode a.grid-view,.main .top-toolbar .pager .view-mode span.grid-view{margin-right:10px}.main .top-toolbar .pager .view-mode .sort-filter{display:none}.main .top-toolbar .pager .sorter{display:inline-block;margin-right:10px}.main .top-toolbar .pager .limiter{display:inline-block}.main .bottom-toolbar{display:block;margin-top:40px;margin-bottom:40px;text-align:center}@media only screen and (max-width:840px){.main .category-container .responsive-layred-filter,.main .layered-filter-wrapper{display:none}.main .category-block{width:100%!important}.main .category-block .top-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.main .category-block .top-toolbar .page-info{border-bottom:1px solid #c7c7c7;line-height:15px}.main .category-block .top-toolbar .page-info span{display:inline}.main .category-block .top-toolbar .page-info span:first-child{display:none}.main .category-block .top-toolbar .page-info .sort-filter{float:right;cursor:pointer}.main .category-block .top-toolbar .pager{margin-top:20px;display:none}.main .category-block .top-toolbar .pager .view-mode{display:none}.main .category-block .responsive-layred-filter{display:block}}section.product-detail{color:#242424}section.product-detail div.category-breadcrumbs{display:inline}section.product-detail div.layouter{display:block;margin-top:20px;margin-bottom:20px}section.product-detail div.layouter .form-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}section.product-detail div.layouter .form-container div.product-image-group{margin-right:30px;width:604px;height:650px;max-width:604px}section.product-detail div.layouter .form-container div.product-image-group div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-right:4px;min-width:120px;overflow:hidden;position:relative;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;max-height:480px}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame{border:2px solid transparent;background:#f2f2f2;width:120px;max-height:120px}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame.active{border-color:#c7c7c7}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame img{height:100%;width:100%}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control{width:100%;position:absolute;text-align:center;cursor:pointer;z-index:1}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control .overlay{opacity:.3;background:#242424;width:100%;height:18px;position:absolute;left:0;z-index:-1}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control .icon{z-index:2}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control.top{top:0}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control.bottom{bottom:0}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image{display:block;position:relative;background:#f2f2f2;width:100%;max-height:480px;height:100%}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image img{width:100%;height:auto;max-height:480px}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image .add-to-wishlist{background-image:url("../images/wishlist.svg");position:absolute;top:10px;right:12px;background-color:transparent;border:0;cursor:pointer;padding:0;width:32px;height:32px}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image .add-to-wishlist:hover{background-image:url("../images/wishlist-added.svg")}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image .share{position:absolute;top:10px;right:45px}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons{display:none;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin-top:10px;width:79.5%;float:right;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons .addtocart{width:49%;background:#000;white-space:nowrap;text-transform:uppercase}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons .buynow{width:49%;white-space:nowrap;text-transform:uppercase}section.product-detail div.layouter .form-container .details{width:50%}section.product-detail div.layouter .form-container .details .product-price{margin-bottom:14px}section.product-detail div.layouter .form-container .details .product-ratings{margin-bottom:20px}section.product-detail div.layouter .form-container .details .product-ratings .icon{width:16px;height:16px}section.product-detail div.layouter .form-container .details .product-ratings .total-reviews{display:inline-block;margin-left:15px}section.product-detail div.layouter .form-container .details .product-heading{font-size:24px;color:#242424;margin-bottom:15px}section.product-detail div.layouter .form-container .details .product-price{margin-bottom:15px;font-size:24px}section.product-detail div.layouter .form-container .details .product-price .special-price{font-size:24px}section.product-detail div.layouter .form-container .details .stock-status{margin-bottom:15px;font-weight:600;color:#fc6868}section.product-detail div.layouter .form-container .details .stock-status.active{color:#4caf50}section.product-detail div.layouter .form-container .details .description{margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid hsla(0,0%,64%,.2)}section.product-detail div.layouter .form-container .details .description ul,section.product-detail div.layouter .form-container .details .full-description ul{padding-left:40px;list-style:disc}section.product-detail div.layouter .form-container .details .full-specifications td{padding:10px 0;color:#5e5e5e}section.product-detail div.layouter .form-container .details .full-specifications td:first-child{padding-right:40px}section.product-detail div.layouter .form-container .details .accordian .accordian-header{padding-left:0;font-weight:600}section.product-detail div.layouter .form-container .details .accordian .accordian-content{padding:20px 0}section.product-detail div.layouter .form-container .details .attributes{display:block;width:100%;border-bottom:1px solid hsla(0,0%,64%,.2)}@media only screen and (max-width:720px){section.product-detail div.layouter .form-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}section.product-detail div.layouter .form-container div.product-image-group{margin-right:0;max-width:none;width:auto}section.product-detail div.layouter .form-container div.product-image-group .loader{margin-left:47%}section.product-detail div.layouter .form-container div.product-image-group div{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list{height:120px;margin-top:5px;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;overflow-x:scroll;margin-right:0}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame img{height:100%;width:auto}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control{display:none}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image{display:-webkit-box;display:-ms-flexbox;display:flex}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image img{margin-left:auto;margin-right:auto;width:480px}section.product-detail div.layouter .form-container div.product-image-group div .wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%!important}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons{width:100%}section.product-detail div.layouter .form-container .details{width:100%;margin-top:20px}}@media only screen and (max-width:510px){section.product-detail div.layouter .form-container div.product-image-group .product-hero-image img{width:100%!important}}@media only screen and (max-width:480px){section.product-detail div.layouter .form-container .details{margin-top:0}}@media only screen and (max-width:360px){section.product-detail div.layouter .form-container .details{margin-top:-120px}}.rating-reviews .rating-header{padding:20px 0}.rating-reviews .stars .icon{width:16px;height:16px}.rating-reviews .overall{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.rating-reviews .overall .review-info .number{font-size:34px}.rating-reviews .overall .review-info .total-reviews{margin-top:10px}.rating-reviews .reviews{margin-top:40px;margin-bottom:40px}.rating-reviews .reviews .review{margin-bottom:25px}.rating-reviews .reviews .review .title{margin-bottom:5px}.rating-reviews .reviews .review .stars{margin-bottom:15px;display:inline-block}.rating-reviews .reviews .review .message{margin-bottom:10px}.rating-reviews .reviews .review .reviewer-details{color:#a5a5a5}.rating-reviews .reviews .view-all{margin-top:15px;color:#0031f0;margin-bottom:15px}section.cart{width:100%;color:#242424;margin-bottom:80px;margin-top:20px}section.cart .title{font-size:24px}section.cart .cart-content{margin-top:20px;width:100%;display:inline-block}section.cart .cart-content .left-side{width:70%;float:left}section.cart .cart-content .left-side .misc-controls{width:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:20px}section.cart .cart-content .left-side .misc-controls a.link,section.cart .cart-content .left-side .misc-controls div button{margin-right:15px}section.cart .cart-content .right-side{width:30%;display:inline-block;padding-left:40px}.cart-item-list{margin-top:21px;padding:1px}.cart-item-list .item{padding:10px;margin-bottom:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;border:1px solid #c7c7c7;border-radius:3px}.cart-item-list .item .item-image{height:160px;width:160px;-webkit-box-shadow:1px 1px 1px #c7c7c7;box-shadow:1px 1px 1px #c7c7c7}.cart-item-list .item .item-details{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;width:100%}.cart-item-list .item .item-details .item-title{font-size:18px;margin-bottom:10px;font-weight:600}.cart-item-list .item .item-details .item-title a{color:#242424}.cart-item-list .item .item-details .price{margin-bottom:10px;font-size:18px;font-weight:600}.cart-item-list .item .item-details .summary{margin-bottom:17px}.cart-item-list .item .item-details .misc{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.cart-item-list .item .item-details .misc .control-group{font-size:16px!important;width:220px;margin:0}.cart-item-list .item .item-details .misc .control-group .wrap{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cart-item-list .item .item-details .misc .control-group label{margin-right:15px}.cart-item-list .item .item-details .misc .control-group .control{height:38px;width:60px;border-radius:3px;text-align:center;line-height:38px}.cart-item-list .item .item-details .misc .remove,.cart-item-list .item .item-details .misc .towishlist{margin-top:18px;margin-right:15px}.cart-item-list .item .error-message{color:#ff6472}.order-summary h3{font-size:16px;margin-top:0}.order-summary .item-detail{margin-top:12px}.order-summary .item-detail label.right{float:right}.order-summary .payble-amount{margin-top:17px;border-top:1px solid #c7c7c7;padding-top:12px}.order-summary .payble-amount label{font-weight:700}.order-summary .payble-amount label.right{float:right}@media only screen and (max-width:770px){section.cart .cart-content{display:block}section.cart .cart-content .left-side{width:100%;float:none}section.cart .cart-content .left-side .misc-controls{position:relative;top:200px}section.cart .cart-content .right-side{width:100%;padding-left:0;position:relative;top:-40px}}@media only screen and (max-width:560px){section.cart .cart-content .left-side .cart-item-list .item .item-image{height:90px;width:90px}section.cart .cart-content .left-side .cart-item-list .item .item-details .misc{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:40px}section.cart .cart-content .left-side .misc-controls{display:block;top:180px}section.cart .cart-content .left-side .misc-controls div{margin-top:10px}section.cart .cart-content .right-side{top:-80px}}@media only screen and (max-width:386px){section.cart .cart-content .left-side .misc-controls div button{width:100%}section.cart .cart-content .left-side .misc-controls div a{margin-top:10px;width:100%;text-align:center}section.cart .cart-content .left-side .box,section.cart .cart-content .left-side .remove{margin-right:15px!important}section.cart .cart-content .right-side{top:-130px}}.checkout-process{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%;margin-top:20px;margin-bottom:20px}.checkout-process .col-main{width:65%;padding-right:40px}.checkout-process .col-main ul.checkout-steps{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;width:100%;padding-bottom:15px;border-bottom:1px solid #c7c7c7}.checkout-process .col-main ul.checkout-steps li{height:48px;display:-webkit-box;display:-ms-flexbox;display:flex}.checkout-process .col-main ul.checkout-steps li .decorator{height:48px;width:48px;border:1px solid #000;border-radius:50%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;border:1px solid #c7c7c7;background-repeat:no-repeat;background-position:50%}.checkout-process .col-main ul.checkout-steps li .decorator.address-info{background-image:url("../images/address.svg")}.checkout-process .col-main ul.checkout-steps li .decorator.shipping{background-image:url("../images/shipping.svg")}.checkout-process .col-main ul.checkout-steps li .decorator.payment{background-image:url("../images/payment.svg")}.checkout-process .col-main ul.checkout-steps li .decorator.review{background-image:url("../images/finish.svg")}.checkout-process .col-main ul.checkout-steps li.completed{cursor:pointer}.checkout-process .col-main ul.checkout-steps li.completed .decorator{background-image:url("../images/complete.svg")}.checkout-process .col-main ul.checkout-steps li span{margin-left:7px;margin-top:auto;margin-bottom:auto}.checkout-process .col-main ul.checkout-steps li.active{color:#2650ef}.checkout-process .col-main ul.checkout-steps li.active .decorator{border:1px solid #2650ef}.checkout-process .col-main .step-content{padding-top:20px}.checkout-process .col-main .step-content .form-header{width:100%;display:inline-block}.checkout-process .col-main .step-content .form-header h1{float:left}.checkout-process .col-main .step-content .form-header .btn{float:right}.checkout-process .col-main .step-content .form-container{border-bottom:1px solid #c7c7c7;padding-top:20px;padding-bottom:20px}.checkout-process .col-main .step-content .shipping-methods h4{margin:0}.checkout-process .col-main .step-content .payment-methods .radio{font-weight:600}.checkout-process .col-main .step-content .payment-methods .control-info{margin-left:28px}.checkout-process .col-main .step-content .address{display:inline-block;width:100%}.checkout-process .col-main .step-content .address .address-card{width:50%;float:left}.checkout-process .col-main .step-content .address .address-card .card-title span{font-weight:600}.checkout-process .col-main .step-content .address .address-card .card-content{margin-top:15px;color:#242424;line-height:25px}.checkout-process .col-main .step-content .address .address-card .card-content .horizontal-rule{margin:12px 0;display:block;width:25px;background:#121212}.checkout-process .col-main .step-content .cart-item-list .item .row .title{width:100px;display:inline-block;color:#a5a5a5;font-weight:500;margin-bottom:10px}.checkout-process .col-main .step-content .cart-item-list .item .row .value{font-size:18px;font-weight:600}.checkout-process .col-main .step-content .order-description{display:inline-block;width:100%}.checkout-process .col-main .step-content .order-description .shipping{margin-bottom:25px}.checkout-process .col-main .step-content .order-description .decorator{height:48px;width:48px;border-radius:50%;border:1px solid #c7c7c7;vertical-align:middle;display:inline-block;text-align:center}.checkout-process .col-main .step-content .order-description .decorator .icon{margin-top:7px}.checkout-process .col-main .step-content .order-description .text{font-weight:600;vertical-align:middle;display:inline-block}.checkout-process .col-main .step-content .order-description .text .info{font-weight:500;margin-top:2px}.checkout-process .col-right{width:35%;padding-left:40px}@media only screen and (max-width:770px){.checkout-process .col-main{width:100%;padding-right:0}.checkout-process .col-main ul.checkout-steps{border-bottom:none;padding-bottom:0}.checkout-process .col-main ul.checkout-steps span{display:none}.checkout-process .col-main ul.checkout-steps .line{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;border-bottom:1px solid #c7c7c7;margin-left:5px;margin-right:5px}.checkout-process .step-content{padding-top:0}.checkout-process .step-content .control-group .control{width:100%}.checkout-process .col-right{display:none}}@media only screen and (max-width:480px){.checkout-process .col-main .step-content .address,.checkout-process .col-main .step-content .order-description{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.checkout-process .col-main .step-content .address .billing-address,.checkout-process .col-main .step-content .address .pull-left,.checkout-process .col-main .step-content .order-description .billing-address,.checkout-process .col-main .step-content .order-description .pull-left{width:100%!important}.checkout-process .col-main .step-content .address .pull-right,.checkout-process .col-main .step-content .address .shipping-address,.checkout-process .col-main .step-content .order-description .pull-right,.checkout-process .col-main .step-content .order-description .shipping-address{width:100%!important;margin-top:20px}}.attached-products-wrapper{margin-bottom:80px}.attached-products-wrapper .title{margin-bottom:40px;font-size:18px;color:#242424;text-align:center;position:relative}.attached-products-wrapper .title .border-bottom{border-bottom:1px solid hsla(0,0%,64%,.2);display:inline-block;width:100px;position:absolute;top:40px;left:50%;margin-left:-50px}.attached-products-wrapper .horizontal-rule{height:1px;background:#c7c7c7;width:148px;margin-bottom:24px;margin-left:auto;margin-right:auto}section.review .category-breadcrumbs{display:inline}section.review .review-layouter{display:-webkit-box;display:-ms-flexbox;display:flex}section.review .review-layouter .product-info{font-size:24px}section.review .review-layouter .product-info .product-image img{height:280px;width:280px}section.review .review-layouter .product-info .product-name a{color:#242424}section.review .review-layouter .product-info .product-price .pro-price{color:#ff6472}section.review .review-layouter .product-info .product-price .pro-price-not{margin-left:10px;font-size:16px;color:#a5a5a5}section.review .review-layouter .product-info .product-price .offer{margin-left:10px;font-size:16px}section.review .review-layouter .review-form{margin-left:20px;width:55%}section.review .review-layouter .review-form .heading{color:#242424;font-weight:600}section.review .review-layouter .review-form .heading .right{float:right;margin-top:-10px}section.review .review-layouter .review-form .star{font-size:23px;color:#d4d4d4;-webkit-transition:all .2s;transition:all .2s}section.review .review-layouter .review-form .star:before{content:"\2605"}section.review .review-layouter .review-form .control-group .control{width:100%}section.review .review-layouter .review-form .review-detail{height:150px;border:1px solid #b22222;margin-top:30px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}section.review .review-layouter .review-form .review-detail .rating-review{margin-top:40px;margin-left:20px;width:48%}section.review .review-layouter .review-form .review-detail .rating-review .avg-rating-count span{font-size:34px;text-align:center}section.review .review-layouter .review-form .review-detail .rating-calculate .progress-only{width:20px;border:1px solid blue}section.review .review-layouter .ratings-reviews{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}section.review .review-layouter .ratings-reviews .left-side{padding:40px 20px;width:50%}section.review .review-layouter .ratings-reviews .left-side .rate{font-size:34px}section.review .review-layouter .ratings-reviews .left-side .stars .icon{height:16px;width:16px}section.review .review-layouter .ratings-reviews .right-side{width:50%}section.review .review-layouter .ratings-reviews .right-side .rater{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:5px;width:100%}section.review .review-layouter .ratings-reviews .right-side .rater .star-name{margin-right:5px;width:35px}section.review .review-layouter .ratings-reviews .right-side .rater .rate-number{width:15px}section.review .review-layouter .ratings-reviews .right-side .rater .percentage{width:50px;margin-right:10px}section.review .review-layouter .ratings-reviews .right-side .rater .percentage span{float:right;white-space:nowrap}section.review .review-layouter .ratings-reviews .right-side .rater .line-bar{height:4px;width:calc(100% - 100px);margin-right:5px;margin-left:5px;background:#d8d8d8}section.review .review-layouter .ratings-reviews .right-side .rater .line-bar .line-value{background-color:#0031f0}@media only screen and (max-width:770px){section.review .category-breadcrumbs{display:none}section.review .review-layouter{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}section.review .review-layouter .product-info .product-image,section.review .review-layouter .product-info .product-name,section.review .review-layouter .product-info .product-price{max-width:280px;margin-left:auto;margin-right:auto}section.review .review-layouter .review-form{width:100%;margin-left:0}section.review .review-layouter .review-form .heading{margin-bottom:70px}section.review .review-layouter .review-form .heading .right{margin-top:50px}section.review .review-layouter .review-form .ratings-reviews{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%}section.review .review-layouter .review-form .ratings-reviews .left-side{width:100%;padding:0 0 40px;margin-top:-50px}section.review .review-layouter .review-form .ratings-reviews .right-side{width:100%}section.review .review-layouter .review-form .ratings-reviews .right-side .rater .percentage{margin-right:0}}.auth-content{padding-top:15%;padding-bottom:15%}.auth-content .sign-up-text{margin-bottom:2%;margin-left:auto;margin-right:auto;font-size:18px;color:#a5a5a5;text-align:center}.auth-content .login-form{margin-left:auto;margin-right:auto;display:-webkit-box;display:-ms-flexbox;display:flex;border:1px solid #c7c7c7;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:500px;min-width:320px;padding:25px}.auth-content .login-form .login-text{font-size:24px;font-weight:600;margin-bottom:30px}.auth-content .login-form .control-group{margin-bottom:15px!important}.auth-content .login-form .control-group .control{width:100%!important}.auth-content .login-form .forgot-password-link{font-size:17px;color:#0031f0;margin-bottom:5%}.auth-content .login-form .signup-confirm{margin-bottom:5%}.auth-content .login-form .btn-primary{width:100%;text-transform:uppercase}.account-content{width:100%;-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;margin-top:5.5%;margin-bottom:5.5%}.account-content,.account-content .sidebar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}.account-content .sidebar{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:25%;height:100%}.account-content .menu-block{margin-bottom:30px}.account-content .menu-block:last-child{margin-bottom:0}.account-content .menu-block .menu-block-title{padding-bottom:10px;font-size:18px}.account-content .menu-block .menubar{border:1px solid #c7c7c7;color:#a5a5a5;position:relative}.account-content .menu-block .menubar li{width:95%;height:50px;margin-left:5%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #c7c7c7;text-align:center}.account-content .menu-block .menubar li a{color:#5e5e5e}.account-content .menu-block .menubar li .icon{display:none;position:absolute;right:12px}.account-content .menu-block .menubar li:first-child{border-top:none}.account-content .menu-block .menubar li:last-child{border-bottom:none}.account-content .menu-block .menubar li.active a{color:#0031f0}.account-content .menu-block .menubar li.active .icon{display:inline-block}.account-content .account-layout{margin-left:40px;width:100%}.account-content .account-layout .account-head .back-icon,.account-content .account-layout .responsive-empty,.account-content .account-layout .responsive-table{display:none}.account-table-content{color:#242424;margin-top:1.4%}.account-table-content table tbody tr{height:45px}.account-table-content table tbody tr td{width:250px}.address-holder{-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}.address-card-1,.address-holder{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.address-card-1{width:260px;border:1px solid #c7c7c7;position:relative;padding:20px;margin-right:15px;margin-bottom:15px}.address-card-1 .control-group{width:15px;height:15px;margin-top:10px}.address-card-1 .details{font-weight:lighter}.address-card-1 .details span{display:block}.address-card-1 .details .control-links{width:90%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.address-card-1 .details .control-links .btn{height:30px}.address-card-1 .details .default-address{position:absolute;top:10px;right:10px}.edit-form{display:-webkit-box;display:-ms-flexbox;display:flex;border:1px solid #c7c7c7;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:345px;padding:25px}@media only screen and (max-width:770px){.account-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.account-content .account-side-menu{display:none;width:100%;border:none}.account-content .account-side-menu li{margin-left:0;width:100%}.account-content .account-side-menu li a{color:#242424}.account-content .responsive-side-menu{cursor:pointer;padding-top:13px;display:block!important;height:46px;border-bottom:1px solid #c7c7c7;border-top:1px solid #c7c7c7}.account-content .responsive-side-menu .right{float:right}.account-content .account-layout{margin-left:0;margin-top:20px}.account-content .account-layout .account-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #c7c7c7;border-top:1px solid #c7c7c7;height:46px}.account-content .account-layout .account-head .account-action{margin-top:12px;margin-left:15px}.account-content .account-layout .account-head .back-icon{display:block}.account-content .account-layout .account-head span{margin-top:12px;font-size:18px}.account-content .account-layout .account-head .horizontal-rule{display:none}.account-content .account-layout .account-table-content{margin-top:2%}.account-content .account-layout .account-table-content table tbody tr{height:70px}.account-content .account-layout .account-table-content table tbody tr td{display:block}.account-content .account-layout .account-table-content .address-holder{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.account-content .account-items-list,.account-content .edit-form{margin-top:20px}.account-content .account-items-list .table,.account-content .edit-form .table{display:none}.account-content .account-items-list .responsive-empty,.account-content .edit-form .responsive-empty{display:block}.account-content .account-items-list .responsive-table,.account-content .edit-form .responsive-table{border:1px solid #c7c7c7;margin-top:5px;width:100%;display:block}.account-content .account-items-list .responsive-table tbody td,.account-content .edit-form .responsive-table tbody td{padding:8px 5px}.account-content .account-items-list .responsive-table tbody td:first-child,.account-content .edit-form .responsive-table tbody td:first-child{width:25%}.account-content .account-items-list .responsive-table tbody td:last-child,.account-content .edit-form .responsive-table tbody td:last-child{padding-left:10px}.account-content .account-items-list.table{display:none}.account-content .control-group .control{width:100%}}.sale-container{color:#5e5e5e}.sale-container .sale-section .secton-title{font-size:18px;color:#8e8e8e;padding:15px 0;border-bottom:1px solid #c7c7c7}.sale-container .sale-section .section-content{display:block;padding:20px 0;border-bottom:1px solid #e8e8e8}.sale-container .sale-section .section-content .row{display:block;padding:7px 0}.sale-container .sale-section .section-content .row .title{width:200px;letter-spacing:-.26px;display:inline-block}.sale-container .sale-section .section-content .row .value{letter-spacing:-.26px;display:inline-block}.sale-container .sale-section .section-content .order-box-container{display:inline-block;width:100%}.sale-container .sale-section .section-content .order-box-container .box{float:left;width:25%}.sale-container .sale-section .section-content .order-box-container .box .box-title{padding:10px 0;font-size:18px;color:#8e8e8e}.sale-container .sale-section .section-content .order-box-container .box .box-content{color:#3a3a3a}.sale-container .sale-section .section-content .qty-row{display:block}.sale-container .sale-section .section-content .responsive-table{display:none}.sale-container .totals{padding-top:20px;display:inline-block;width:100%;border-top:1px solid #e8e8e8}.sale-container .totals .sale-summary{height:130px;float:right;border-collapse:collapse}.sale-container .totals .sale-summary tr td{padding:5px 8px;width:auto;color:#3a3a3a}.sale-container .totals .sale-summary tr.bold{font-weight:600;font-size:15px}.sale-container .totals .sale-summary tr.border td{border-bottom:1px solid #c7c7c7}@media only screen and (max-width:770px){.sale-container .sale-section .section-content .row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.sale-container .sale-section .section-content .row .title{line-height:20px}.sale-container .sale-section .section-content .table{display:none}.sale-container .sale-section .section-content .responsive-table{border:1px solid #c7c7c7;margin-top:5px;width:100%;display:block}.sale-container .sale-section .section-content .responsive-table tbody td{padding:8px 5px}.sale-container .sale-section .section-content .responsive-table tbody td:first-child{width:35%}.sale-container .sale-section .section-content .responsive-table tbody td:last-child{padding-left:10px}.sale-container .sale-section .section-content .totals .sale-summary{width:100%}.sale-container .sale-section .section-content .totals .sale-summary tr td:nth-child(2){display:none}.sale-container .sale-section .section-content .order-box-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.sale-container .sale-section .section-content .order-box-container .box{width:100%;margin:10px auto}}.verify-account{text-align:center;background:#204d74;width:200px;margin-right:auto;margin-left:auto;border-radius:4px}.verify-account a{color:#fff!important}.cp-spinner{position:absolute;left:26%;margin-top:calc(20% - 80px)}@media only screen and (max-width:720px){.cp-spinner{left:50%;margin-left:-24px;top:50%;margin-top:-24px}}@media only screen and (max-width:720px){.error-container .wrapper{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important;margin:10px 0 20px!important;-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:start!important;height:100%!important}}.rtl{direction:rtl}.rtl .header .header-top div.left-content ul.logo-container{margin-right:0;margin-left:12px}.rtl .header .header-top div.left-content ul.search-container li.search-group .search-field{border-left:none;border-right:2px solid #c7c7c7;padding-right:12px;padding-left:0}.rtl .header .header-top div.left-content ul.search-container li.search-group .search-icon-wrapper{border:2px solid #c7c7c7}.rtl .header .header-top div.right-content .currency-switcher .dropdown-list{left:0;right:auto}.rtl .header .header-top div.right-content ul.cart-dropdown-container{float:left;margin-left:0}.rtl .header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .cart-icon{margin-right:0;margin-left:8px}.rtl .header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list{left:0!important;right:auto!important}.rtl .header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-container .dropdown-content .item img{margin-right:0}.rtl .header .header-bottom .nav>li{float:right;margin-right:0;margin-left:1px}.rtl .header .header-bottom .nav a{padding:.8em .5em .8em .3em!important}.rtl .header .header-bottom .nav li a>.icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rtl .header .header-bottom .nav>li li:hover>ul{left:unset!important;right:100%!important}.rtl .header .search-responsive .search-content .right{float:left}.rtl .dropdown-list{text-align:right}.rtl .dropdown-list.bottom-right{left:0;right:auto}@media only screen and (max-width:720px){.rtl .header .header-top ul.right-responsive{margin-left:0}.rtl .header .header-top ul.right-responsive li{margin:0}.rtl .header .header-top ul.right-responsive li:last-child{margin-right:5px;margin-left:-2px}.rtl .header .header-top ul.right-responsive ul{margin:0}.rtl .header .header-bottom .nav>li{float:none}.rtl .header .header-bottom .nav li>.icon{float:left;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rtl .header .header-bottom .icon.icon-arrow-down{margin-left:5px}}.rtl section.slider-block div.slider-content div.slider-control{left:2%;right:auto}@media only screen and (max-width:720px){.rtl section.slider-block div.slider-content div.slider-control{left:0}}.rtl .main-container-wrapper .product-card .sticker{left:auto;right:10px}.rtl .main-container-wrapper .product-card .cart-wish-wrap .addtocart{margin-right:0;margin-left:10px}.rtl section.product-detail div.layouter .form-container div.product-image-group{margin-right:0;margin-left:30px}.rtl section.product-detail div.layouter .form-container div .thumb-list{margin-left:4px;margin-right:0}.rtl section.product-detail div.layouter .form-container .details .product-ratings .total-reviews{margin-left:0;margin-right:15px}@media only screen and (max-width:720px){.rtl section.product-detail div.layouter .form-container div.product-image-group{margin-right:0;margin-left:0}}.rtl .main .category-container .layered-filter-wrapper,.rtl .main .category-container .responsive-layred-filter{padding-right:0;padding-left:20px}.rtl .main .top-toolbar .pager{float:left}.rtl .main .top-toolbar .pager .view-mode{margin-right:0;margin-left:20px}.rtl .main .top-toolbar .pager .sorter{margin-right:0;margin-left:10px}.rtl .main .top-toolbar .pager label{margin-right:0;margin-left:5px}.rtl .main .top-toolbar .page-info{float:right}.rtl section.review .review-layouter .review-form{margin-left:0;margin-right:20px}.rtl section.review .review-layouter .review-form .heading .right{float:left}.rtl section.review .review-layouter .review-form .ratings-reviews .right-side .rater .star-name{margin-right:0;margin-left:5px}@media only screen and (max-width:770px){.rtl section.review .review-layouter .review-form{margin-right:0}}.rtl section.cart .cart-content .left-side{width:70%;float:right}.rtl section.cart .cart-content .left-side .misc-controls a.link{margin-left:15px;margin-right:0}.rtl section.cart .cart-content .right-side{width:30%;padding-right:40px;padding-left:0}.rtl .order-summary .item-detail label.right,.rtl .payble-amount label.right{float:left}.rtl .item div{margin-left:15px;margin-right:0!important}.rtl .cart-item-list .item .item-details .misc div.qty-text{margin-right:0;margin-left:10px}.rtl .cart-item-list .item .item-details .misc .remove,.rtl .cart-item-list .item .item-details .misc input.box{margin-right:0;margin-left:30px}@media only screen and (max-width:770px){.rtl section.cart .cart-content .left-side{width:100%;float:none}.rtl section.cart .cart-content .right-side{width:100%;padding-right:0}}.rtl .checkout-process .col-right{padding-left:0;padding-right:40px}.rtl .checkout-process .col-main{padding-left:40px;padding-right:0}.rtl .checkout-process .col-main ul.checkout-steps li span{margin-right:7px;margin-left:0}.rtl .checkout-process .col-main .step-content .form-header h1{float:right}.rtl .checkout-process .col-main .step-content .form-header .btn{float:left}.rtl .checkout-process .col-main .step-content .payment-methods .control-info{margin-right:28px;margin-left:0}.rtl .checkout-process .col-main .step-content .address .billing-address,.rtl .checkout-process .col-main .step-content .address .pull-left,.rtl .checkout-process .col-main .step-content .order-description .billing-address,.rtl .checkout-process .col-main .step-content .order-description .pull-left{float:right!important}.rtl .checkout-process .col-main .step-content .address .pull-right,.rtl .checkout-process .col-main .step-content .address .shipping-address,.rtl .checkout-process .col-main .step-content .order-description .pull-right,.rtl .checkout-process .col-main .step-content .order-description .shipping-address{float:left!important}.rtl .checkbox,.rtl .radio{margin:10px 0 5px 5px}.rtl .radio .radio-view{margin-left:5px;margin-right:0}.rtl .radio input{right:0;left:auto}@media only screen and (max-width:770px){.rtl .checkout-process .col-main{padding-left:0}}.rtl .account-content .account-layout{margin-left:0;margin-right:40px}.rtl .account-content .account-side-menu li{margin-right:5%;margin-left:0}.rtl .account-content .account-side-menu li .icon{left:12px;right:auto;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rtl .account-head .account-action{float:left}.rtl .account-item-card .media-info .info{margin-right:20px;margin-left:0}.rtl .account-item-card .operations a span{float:left}.rtl .table table{text-align:right}.rtl .sale-container .totals .sale-summary{float:left}.rtl .sale-container .sale-section .section-content .order-box-container{display:-webkit-box;display:-ms-flexbox;display:flex}@media only screen and (max-width:770px){.rtl .account-content .account-layout{margin-right:0}.rtl .account-content .account-layout .account-head .account-action{margin-right:15px;margin-left:0}.rtl .account-content .account-layout .account-head .back-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg);margin-bottom:10px}.rtl .account-content .responsive-side-menu .right{float:left}.rtl .account-content .account-side-menu li{margin-right:0}}.rtl .footer .footer-content .footer-list-container .list-container .list-group li span.icon{margin-left:5px;margin-right:0}@media (max-width:720px){.rtl .footer{padding-right:15px;padding-left:10%}.rtl .footer .footer-list-container{padding-right:0!important}}.rtl .cp-spinner{position:absolute;left:auto;right:26%;margin-top:calc(20% - 80px)}@media only screen and (max-width:720px){.rtl .cp-spinner{right:50%;margin-right:-24px;left:auto}} \ No newline at end of file +@import url(https://fonts.googleapis.com/css?family=Montserrat:400,500);.icon{display:inline-block;background-size:cover}.dropdown-right-icon{background-image:URL("../images/icon-dropdown-left.svg");width:8px;height:8px;margin-left:auto;margin-bottom:2px}.icon-menu-close{background-image:URL("../images/icon-menu-close.svg");width:24px;height:24px;margin-left:auto}.icon-menu-close-adj{background-image:URL("../images/cross-icon-adj.svg");margin-left:auto}.grid-view-icon{background-image:URL("../images/icon-grid-view.svg");width:24px;height:24px}.list-view-icon{background-image:URL("../images/icon-list-view.svg");width:24px;height:24px}.sort-icon{background-image:URL("../images/icon-sort.svg");width:32px;height:32px}.filter-icon{background-image:URL("../images/icon-filter.svg");width:32px;height:32px}.whishlist-icon{background-image:URL("../images/wishlist.svg");width:24px;height:24px}.share-icon{background-image:URL("../images/icon-share.svg");width:24px;height:24px}.icon-menu{background-image:URL("../images/icon-menu.svg");width:24px;height:24px}.icon-search{background-image:URL("../images/icon-search.svg");width:24px;height:24px}.icon-menu-back{background-image:URL("../images/icon-menu-back.svg");width:24px;height:24px}.shipping-icon{background-image:url("../images/shipping.svg");width:32px;height:32px}.payment-icon{background-image:url("../images/payment.svg");width:32px;height:32px}.cart-icon{background-image:url("../images/icon-cart.svg");width:24px;height:24px}.wishlist-icon{background-image:url("../images/wishlist.svg");width:32px;height:32px}.icon-arrow-up{background-image:url("../images/arrow-up.svg");width:16px;height:16px}.icon-arrow-down{background-image:url("../images/arrow-down.svg");width:16px;height:16px}.expand-icon{background-image:url("../images/Expand-Light.svg");width:18px;height:18px}.expand-on-icon{background-image:url("../images/Expand-Light-On.svg");width:18px;height:18px}.icon-menu-close-adj{background-image:url("../images/cross-icon-adj.svg");width:32px;height:32px}.icon-facebook{background-image:url("../images/facebook.svg")}.icon-twitter{background-image:url("../images/twitter.svg")}.icon-google-plus{background-image:url("../images/google-plus.svg")}.icon-instagram{background-image:url("../images/instagram.svg")}.icon-linkedin{background-image:url("../images/linkedin.svg")}body{margin:0;padding:0;font-weight:500;max-width:100%;width:auto;color:#242424;font-size:16px}*{font-family:Montserrat,sans-serif}::-webkit-input-placeholder{font-family:Montserrat,sans-serif}textarea{resize:none}input{font-family:Montserrat,sans-serif}.btn{border-radius:0!important}.mb-10{margin-bottom:10px}.mb-15{margin-bottom:15px}.mb-20{margin-bottom:20px}.mb-25{margin-bottom:25px}.mb-30{margin-bottom:30px}.mb-35{margin-bottom:35px}.mb-40{margin-bottom:40px}.mb-45{margin-bottom:45px}.mb-50{margin-bottom:50px}.mb-60{margin-bottom:60px}.mb-70{margin-bottom:70px}.mb-80{margin-bottom:80px}.mb-90{margin-bottom:90px}.mt-5{margin-top:5px}.mt-10{margin-top:10px}.mt-15{margin-top:15px}.mt-20{margin-top:20px}.mt-25{margin-top:25px}.mt-30{margin-top:30px}.mt-35{margin-top:35px}.mt-40{margin-top:40px}.mt-45{margin-top:45px}.mt-50{margin-top:50px}.mt-60{margin-top:60px}.mt-70{margin-top:70px}.mt-80{margin-top:80px}.mt-90{margin-top:90px}.pagination.shop{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.bold{font-weight:700;color:#3a3a3a}.radio-container{display:block;position:relative;padding-left:35px;margin-bottom:12px;cursor:pointer;font-size:16px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.radio-container input{position:absolute;opacity:0;cursor:pointer}.radio-container .checkmark{position:absolute;top:0;left:0;height:16px;width:16px;background-color:#fff;border:2px solid #ff6472;border-radius:50%}.radio-container .checkmark:after{content:"";position:absolute;display:none;top:2px;left:2px;width:8px;height:8px;border-radius:50%;background:#ff6472}.radio-container input:checked~.checkmark:after{display:block}.add-to-wishlist .wishlist-icon:hover{background-image:url("../images/wishlist-added.svg")}.product-price{margin-bottom:14px;width:100%;font-weight:600}.product-price .price-label{font-size:14px;font-weight:400}.product-price .regular-price{color:#a5a5a5;text-decoration:line-through;margin-right:10px}.product-price .special-price{color:#ff6472}.horizontal-rule{width:100%;height:1px;background:#c7c7c7}.account-head .account-heading{font-size:28px;color:#242424;text-transform:capitalize;text-align:left}.account-head .account-action{font-size:17px;margin-top:1%;color:#0031f0;float:right}.account-head .horizontal-rule{margin-top:1.1%;width:100%;height:1px;vertical-align:middle;background:#c7c7c7}.account-item-card{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:125px}.account-item-card,.account-item-card .media-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.account-item-card .media-info .media{height:125px;width:110px}.account-item-card .media-info .info{margin-left:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:space-evenly;-ms-flex-pack:space-evenly;justify-content:space-evenly}.account-item-card .media-info .info .stars .icon{height:16px;width:16px}.account-item-card .operations{height:120px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.account-item-card .operations a{width:100%}.account-item-card .operations a span{float:right}.account-items-list{display:block;width:100%}.search-result-status{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.grid-container{margin-top:20px}.main-container-wrapper{max-width:1300px;width:auto;padding-left:15px;padding-right:15px;margin-left:auto;margin-right:auto}.main-container-wrapper .content-container{display:block}.main-container-wrapper .product-grid-4{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));grid-auto-rows:auto;grid-column-gap:48px;grid-row-gap:15px;justify-items:end}.main-container-wrapper .product-grid-3{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));grid-gap:27px;grid-auto-rows:auto;justify-items:center}.main-container-wrapper .product-card{position:relative;padding:15px}.main-container-wrapper .product-card .product-image{max-height:350px;max-width:280px;margin-bottom:10px;background:#f2f2f2}.main-container-wrapper .product-card .product-image img{display:block;width:100%}.main-container-wrapper .product-card .product-name{margin-bottom:14px;width:100%;color:#242424}.main-container-wrapper .product-card .product-name a{color:#242424}.main-container-wrapper .product-card .product-description{display:none}.main-container-wrapper .product-card .product-ratings{width:100%}.main-container-wrapper .product-card .product-ratings .icon{width:16px;height:16px}.main-container-wrapper .product-card .cart-wish-wrap{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:40px}.main-container-wrapper .product-card .cart-wish-wrap .addtocart{margin-right:10px;text-transform:uppercase;text-align:left;-webkit-box-shadow:1px 1px 0 #ccc;box-shadow:1px 1px 0 #ccc}.main-container-wrapper .product-card .cart-wish-wrap .add-to-wishlist{margin-top:5px;background:transparent;border:0;cursor:pointer;padding:0}.main-container-wrapper .product-card .sticker{border-radius:100px;position:absolute;top:10px;left:10px;text-transform:uppercase;padding:4px 13px;font-size:14px;color:#fff;-webkit-box-shadow:1px 1px 1px #ccc;box-shadow:1px 1px 1px #ccc}.main-container-wrapper .product-card .sticker.sale{background:#ff6472}.main-container-wrapper .product-card .sticker.new{background:#2ed04c}.main-container-wrapper .product-card:hover{-webkit-box-shadow:1px 1px 10px #ccc;box-shadow:1px 1px 10px #ccc}@media only screen and (max-width:580px){.main-container-wrapper .main-container-wrapper{padding:0}}@media only screen and (max-width:551px){.main-container-wrapper .product-grid-3{grid-template-columns:48.5% 48.5%;grid-column-gap:20px}}@media only screen and (max-width:854px){.main-container-wrapper .product-grid-4{grid-template-columns:29.5% 29.5% 29.5%;grid-column-gap:35px}}@media only screen and (max-width:653px){.main-container-wrapper .product-grid-4{grid-template-columns:48.5% 48.5%;grid-column-gap:17px}}@media only screen and (max-width:425px){.main-container-wrapper .product-card{font-size:90%}.main-container-wrapper .product-card .btn.btn-md{padding:5px}.main-container-wrapper .product-grid-4{grid-template-columns:48.5% 48.5%;grid-column-gap:10px}}.main-container-wrapper .product-list{min-height:200px}.main-container-wrapper .product-list .product-card{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:20px}.main-container-wrapper .product-list .product-card .product-image{float:left;width:30%;height:350px}.main-container-wrapper .product-list .product-card .product-image img{height:100%}.main-container-wrapper .product-list .product-card .product-information{float:right;width:70%;padding-left:30px}.main-container-wrapper .product-list .product-card:last-child{margin-bottom:0}.main-container-wrapper .product-list.empty h2{font-size:20px}.main-container-wrapper section.featured-products{display:block;margin-bottom:5%}.main-container-wrapper section.featured-products .featured-heading{width:100%;text-align:center;text-transform:uppercase;font-size:18px;margin-bottom:20px}.main-container-wrapper section.featured-products .featured-heading .featured-separator{color:#d3d3d3}.main-container-wrapper section.news-update{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;margin-bottom:5%}.main-container-wrapper section.news-update .news-update-grid{display:grid;grid-template-columns:58.5% 40%;grid-gap:20px}.main-container-wrapper section.news-update .news-update-grid .block1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.main-container-wrapper section.news-update .news-update-grid .block1 img{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;width:100%}.main-container-wrapper section.news-update .news-update-grid .block2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;display:grid;grid-template-rows:repeat(2,minmax(50%,1fr));grid-row-gap:20px}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block1 img{width:100%}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block2 img{width:100%}section.slider-block{display:block;margin-left:auto;margin-right:auto;margin-bottom:5%}section.slider-block div.slider-content{position:relative;height:500px;margin-left:auto;margin-right:auto}section.slider-block div.slider-content ul.slider-images .show-content{display:none}section.slider-block div.slider-content ul.slider-images li{position:absolute;visibility:hidden}section.slider-block div.slider-content ul.slider-images li.show{display:block;position:relative;visibility:visible;width:100%;-webkit-animation-name:example;animation-name:example;-webkit-animation-duration:4s;animation-duration:4s}section.slider-block div.slider-content ul.slider-images li.show .show-content{display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#242424;height:100%;width:100%;top:0}@-webkit-keyframes example{0%{opacity:.1}to{opacity:1}}@keyframes example{0%{opacity:.1}to{opacity:1}}section.slider-block div.slider-content ul.slider-images li img{height:500px;width:100%}section.slider-block div.slider-content div.slider-control{display:block;cursor:pointer;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;bottom:2%;right:2%}section.slider-block div.slider-content div.slider-control .dark-left-icon{background-color:#f2f2f2;height:48px;width:48px;max-height:100%;max-width:100%}section.slider-block div.slider-content div.slider-control .light-right-icon{background-color:#242424;height:48px;width:48px;max-height:100%;max-width:100%}@media only screen and (max-width:770px){section.slider-block div.slider-content div.slider-control{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;bottom:46%;right:0;width:100%}}.header{margin-top:16px;margin-bottom:21px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.header .header-top{margin-bottom:16px;max-width:100%;width:auto;margin-left:auto;margin-right:auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.header .header-top,.header .header-top div.left-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.left-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.header .header-top div.left-content ul.logo-container{margin-right:12px}.header .header-top div.left-content ul.logo-container li{display:-webkit-box;display:-ms-flexbox;display:flex}.header .header-top div.left-content ul.logo-container li img{max-width:120px;max-height:40px}.header .header-top div.left-content ul.search-container li.search-group{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.left-content ul.search-container li.search-group .search-field{height:38px;border:2px solid #c7c7c7;border-radius:3px;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;padding-left:12px;font-family:Montserrat,sans-serif;font-size:14px}.header .header-top div.left-content ul.search-container li.search-group .search-icon-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;height:38px;width:38px;border:2px solid #c7c7c7;border-top-right-radius:3px;border-bottom-right-radius:3px}.header .header-top div.left-content ul.search-container li.search-group .search-icon-wrapper button{background:#fff;border:0;padding:3px 5px}.header .header-top div.right-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.right-content .currency-switcher{float:right;border-right:2px solid #c7c7c7;cursor:pointer}.header .header-top div.right-content .currency-switcher .dropdown-toggle{line-height:25px;margin-left:14px;margin-right:14px}.header .header-top div.right-content .currency-switcher .dropdown-list{width:100px;top:37px}.header .header-top div.right-content .currency-switcher .dropdown-list .dropdown-container{padding:0 10px}.header .header-top div.right-content ul.account-dropdown-container{float:right;border-right:2px solid #c7c7c7;cursor:pointer}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin-left:14px;margin-right:14px}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown .account{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown .dropdown-list{width:300px;padding:25px}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown .dropdown-container{padding:0;overflow:hidden}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown ul.account-dropdown-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown ul.account-dropdown-list li>a{color:#fff}.header .header-top div.right-content ul.account-dropdown-container li.account-dropdown ul.account-dropdown-list .btn{min-width:100px;text-align:center}.header .header-top div.right-content ul.cart-dropdown-container{float:right;margin-left:10px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .cart-icon{margin-right:8px;height:24px;width:24px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .icon.arrow-down-icon{margin-top:10px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list{width:387px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container{padding:10px 18px;max-height:410px;overflow-y:auto}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-cart{color:#242424}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header{width:100%}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header p{display:inline;line-height:25px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header i{float:right;height:22px;width:22px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header p.heading{font-weight:lighter}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-content{padding-top:8px;padding-bottom:10px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-content .item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;border-bottom:1px solid #c7c7c7;padding-top:8px;padding-bottom:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-content .item img{height:75px;width:75px;margin-right:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-content .item-details{max-height:125px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .item-details .item-name{font-size:16px;font-weight:700;margin-bottom:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .item-details .item-options{font-size:16px;margin-bottom:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .item-details .item-price{margin-bottom:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .item-details .item-qty{font-weight:lighter;margin-bottom:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:8px}.header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list .dropdown-container .dropdown-footer .btn{margin:0;max-width:170px;text-align:center}.header .header-top ul.right-responsive{display:none;cursor:pointer}.header .header-top ul.right-responsive li{margin-right:5px}.header .header-top ul.right-responsive li:last-child{margin-right:-2px}.header .header-top ul.right-responsive ul{margin-right:5px}.header .header-top ul.right-responsive ul:last-child{margin-right:0}.header .header-bottom{height:47px;margin-left:auto;margin-right:auto;border-top:1px solid #c7c7c7;border-bottom:1px solid #c7c7c7;display:block}.header .header-bottom ul.nav{display:block;font-size:16px;max-width:100%;width:auto;margin-left:auto;margin-right:auto}.header .header-bottom .nav ul{margin:0;padding:0;-webkit-box-shadow:1px 1px 1px 0 rgba(0,0,0,.4);box-shadow:1px 1px 1px 0 rgba(0,0,0,.4)}.header .header-bottom .nav a{display:block;color:#242424;text-decoration:none;padding:.8em .3em .8em .5em;text-transform:uppercase;letter-spacing:-.38px;position:relative}.header .header-bottom .nav li>.icon{display:none}.header .header-bottom .nav{vertical-align:top;display:inline-block}.header .header-bottom .nav li{position:relative;height:45px}.header .header-bottom .nav>li{float:left;margin-right:1px}.header .header-bottom .nav>li>a{margin-bottom:1px}.header .header-bottom .nav>li>a .icon{display:none}.header .header-bottom .nav li li a{margin-top:1px}.header .header-bottom .nav li a:first-child:nth-last-child(2):before{content:"";position:absolute;height:0;width:0;border:5px solid transparent;top:50%;right:5px}.header .header-bottom .nav ul{position:absolute;white-space:nowrap;border:1px solid #c7c7c7;background-color:#fff;z-index:1;left:-99999em}.header .header-bottom .nav>li:hover{background-color:#f2f2f2}.header .header-bottom .nav>li:hover>ul{left:auto;min-width:100%}.header .header-bottom .nav>li li:hover{background-color:#f2f2f2}.header .header-bottom .nav>li li:hover>ul{left:100%;margin-left:1px;top:-2px}.header .header-bottom .nav>li:hover>a:first-child:nth-last-child(2):before,.header .header-bottom .nav li li>a:first-child:nth-last-child(2):before{margin-top:-5px}.header .header-bottom .nav li li:hover>a:first-child:nth-last-child(2):before{right:10px}.header .search-responsive{display:none}.header .search-responsive .search-content{border-bottom:1px solid #c7c7c7;height:48px}.header .search-responsive .search-content .search{width:70%;margin-left:20px;height:30px;border:none;font-size:16px;position:absolute}.header .search-responsive .search-content .right{float:right}.header .search-responsive .search-content .suggestion{position:absolute;margin-left:20px}.header .search-responsive .search-content:first-child{border-top:1px solid #c7c7c7}@media (max-width:720px){.header .currency-switcher{display:none!important}.header .header-bottom{height:auto;display:none}.header .header-bottom .nav a{display:inline-block}.header .header-bottom .nav li,.header .header-bottom ul.nav{height:auto}.header .header-bottom .nav>li{float:none}.header .header-bottom .nav li>.icon{float:right;display:block}.header .header-bottom .icon.icon-arrow-down{margin-right:5px}.header .header-bottom .nav li .left{height:16px;width:16px}.header .header-bottom .nav li a>.icon{display:none}.header .header-bottom .nav ul{position:unset;border:none;-webkit-box-shadow:none;box-shadow:none}.header .header-bottom .nav>li li:hover>ul{margin-left:0;top:0}ul.account-dropdown-container,ul.cart-dropdown-container,ul.search-container{display:none!important}ul.right-responsive{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;margin-left:12px}}.footer{background-color:#f2f2f2;padding-left:10%;padding-right:10%;width:100%;display:inline-block}.footer .footer-content .footer-list-container{display:grid;padding:40px 10px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-auto-rows:auto;grid-row-gap:1vh}.footer .footer-content .footer-list-container .list-container .list-heading{text-transform:uppercase;color:#a5a5a5}.footer .footer-content .footer-list-container .list-container .list-group{padding-top:25px}.footer .footer-content .footer-list-container .list-container .list-group a{color:#242424}.footer .footer-content .footer-list-container .list-container .list-group li{margin-bottom:12px;list-style-type:none;text-transform:uppercase}.footer .footer-content .footer-list-container .list-container .list-group li span.icon{display:inline-block;vertical-align:middle;margin-right:5px;height:24px;width:24px}.footer .footer-content .footer-list-container .list-container .form-container{padding-top:5px}.footer .footer-content .footer-list-container .list-container .form-container .control-group .subscribe-field{width:100%}.footer .footer-content .footer-list-container .list-container .form-container .control-group .subscribe-field::-webkit-input-placeholder{font-family:montserrat,sans-serif}.footer .footer-content .footer-list-container .list-container .form-container .control-group .subscribe-field::-moz-placeholder{font-family:montserrat,sans-serif}.footer .footer-content .footer-list-container .list-container .form-container .control-group .btn-primary{background-color:#242424;margin-top:8px;border-radius:0;text-align:center}.footer .footer-content .footer-list-container .list-container .form-container .control-group .locale-switcher{width:100%}.footer .footer-content .footer-list-container .list-container .currency{display:none}@media (max-width:720px){.footer{padding-left:15px}.footer .footer-list-container{padding-left:0!important}.footer .currency{display:block!important}}.footer-bottom{margin-top:-16px;width:100%;height:120px;font-size:16px;color:#a5a5a5;letter-spacing:-.26px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.footer-bottom p{padding:0 15px}.main .category-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}.main .category-container .layered-filter-wrapper,.main .category-container .responsive-layred-filter{width:25%;float:left;padding-right:20px;min-height:1px}.main .category-container .layered-filter-wrapper .filter-title,.main .category-container .responsive-layred-filter .filter-title{border-bottom:1px solid #c7c7c7;color:#242424;padding:10px 0}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item{border-bottom:1px solid #c7c7c7;padding-bottom:10px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-title,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-title{padding:10px 40px 0 10px;color:#5e5e5e;cursor:pointer;position:relative}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-title .remove-filter-link,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-title .remove-filter-link{font-weight:400;color:#0031f0;margin-right:10px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-title .icon,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-title .icon{background-image:url("../images/arrow-down.svg")!important;width:10px;height:10px;position:absolute;right:15px;top:14px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content{padding:10px;display:none}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items{padding:0;margin:0;list-style:none none}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item{padding:8px 0;color:#5e5e5e}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox{margin:0}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox .checkbox-view,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox .checkbox-view{height:16px;width:16px;background-image:url("../images/checkbox.svg")}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox input:checked+.checkbox-view,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox input:checked+.checkbox-view{background-image:url("../images/checkbox-checked.svg")}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content .price-range-wrapper,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content .price-range-wrapper{margin-top:21px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item.active .filter-attributes-content,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item.active .filter-attributes-content{display:block}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item.active .filter-attributes-title .icon,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item.active .filter-attributes-title .icon{background-image:url("../images//arrow-up.svg")!important}.main .category-container .responsive-layred-filter{display:none;width:100%;float:none;padding-right:0;margin-top:-25px!important}.main .category-container .category-block{width:80%;display:block}.main .category-container .category-block .hero-image{display:block;visibility:visible;width:auto}.main .category-container .category-block .hero-image img{height:400px;width:100%}.main .top-toolbar{width:100%;display:inline-block}.main .top-toolbar .page-info{float:left;color:#242424;line-height:45px}.main .top-toolbar .page-info span{display:none}.main .top-toolbar .page-info span:first-child{display:inline}.main .top-toolbar .pager{float:right}.main .top-toolbar .pager label{margin-right:5px}.main .top-toolbar .pager select{background:#f2f2f2;border:1px solid #c7c7c7;border-radius:3px;color:#242424;padding:10px}.main .top-toolbar .pager .view-mode{display:inline-block;margin-right:20px}.main .top-toolbar .pager .view-mode a,.main .top-toolbar .pager .view-mode span{display:inline-block;vertical-align:middle}.main .top-toolbar .pager .view-mode a.grid-view,.main .top-toolbar .pager .view-mode span.grid-view{margin-right:10px}.main .top-toolbar .pager .view-mode .sort-filter{display:none}.main .top-toolbar .pager .sorter{display:inline-block;margin-right:10px}.main .top-toolbar .pager .limiter{display:inline-block}.main .bottom-toolbar{display:block;margin-top:40px;margin-bottom:40px;text-align:center}@media only screen and (max-width:840px){.main .category-container .responsive-layred-filter,.main .layered-filter-wrapper{display:none}.main .category-block{width:100%!important}.main .category-block .top-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.main .category-block .top-toolbar .page-info{border-bottom:1px solid #c7c7c7;line-height:15px}.main .category-block .top-toolbar .page-info span{display:inline}.main .category-block .top-toolbar .page-info span:first-child{display:none}.main .category-block .top-toolbar .page-info .sort-filter{float:right;cursor:pointer}.main .category-block .top-toolbar .pager{margin-top:20px;display:none}.main .category-block .top-toolbar .pager .view-mode{display:none}.main .category-block .responsive-layred-filter{display:block}}section.product-detail{color:#242424}section.product-detail div.category-breadcrumbs{display:inline}section.product-detail div.layouter{display:block;margin-top:20px;margin-bottom:20px}section.product-detail div.layouter .form-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}section.product-detail div.layouter .form-container div.product-image-group{margin-right:30px;width:604px;height:650px;max-width:604px}section.product-detail div.layouter .form-container div.product-image-group div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-right:4px;min-width:120px;overflow:hidden;position:relative;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;max-height:480px}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame{border:2px solid transparent;background:#f2f2f2;width:120px;max-height:120px}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame.active{border-color:#c7c7c7}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame img{height:100%;width:100%}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control{width:100%;position:absolute;text-align:center;cursor:pointer;z-index:1}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control .overlay{opacity:.3;background:#242424;width:100%;height:18px;position:absolute;left:0;z-index:-1}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control .icon{z-index:2}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control.top{top:0}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control.bottom{bottom:0}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image{display:block;position:relative;background:#f2f2f2;width:100%;max-height:480px;height:100%}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image img{width:100%;height:auto;max-height:480px}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image .add-to-wishlist{background-image:url("../images/wishlist.svg");position:absolute;top:10px;right:12px;background-color:transparent;border:0;cursor:pointer;padding:0;width:32px;height:32px}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image .add-to-wishlist:hover{background-image:url("../images/wishlist-added.svg")}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image .share{position:absolute;top:10px;right:45px}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons{display:none;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin-top:10px;width:79.5%;float:right;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons .addtocart{width:49%;background:#000;white-space:nowrap;text-transform:uppercase}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons .buynow{width:49%;white-space:nowrap;text-transform:uppercase}section.product-detail div.layouter .form-container .details{width:50%}section.product-detail div.layouter .form-container .details .product-price{margin-bottom:14px}section.product-detail div.layouter .form-container .details .product-ratings{margin-bottom:20px}section.product-detail div.layouter .form-container .details .product-ratings .icon{width:16px;height:16px}section.product-detail div.layouter .form-container .details .product-ratings .total-reviews{display:inline-block;margin-left:15px}section.product-detail div.layouter .form-container .details .product-heading{font-size:24px;color:#242424;margin-bottom:15px}section.product-detail div.layouter .form-container .details .product-price{margin-bottom:15px;font-size:24px}section.product-detail div.layouter .form-container .details .product-price .special-price{font-size:24px}section.product-detail div.layouter .form-container .details .stock-status{margin-bottom:15px;font-weight:600;color:#fc6868}section.product-detail div.layouter .form-container .details .stock-status.active{color:#4caf50}section.product-detail div.layouter .form-container .details .description{margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid hsla(0,0%,64%,.2)}section.product-detail div.layouter .form-container .details .description ul,section.product-detail div.layouter .form-container .details .full-description ul{padding-left:40px;list-style:disc}section.product-detail div.layouter .form-container .details .full-specifications td{padding:10px 0;color:#5e5e5e}section.product-detail div.layouter .form-container .details .full-specifications td:first-child{padding-right:40px}section.product-detail div.layouter .form-container .details .accordian .accordian-header{padding-left:0;font-weight:600}section.product-detail div.layouter .form-container .details .accordian .accordian-content{padding:20px 0}section.product-detail div.layouter .form-container .details .attributes{display:block;width:100%;border-bottom:1px solid hsla(0,0%,64%,.2)}@media only screen and (max-width:720px){section.product-detail div.layouter .form-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}section.product-detail div.layouter .form-container div.product-image-group{margin-right:0;max-width:none;width:auto}section.product-detail div.layouter .form-container div.product-image-group .loader{margin-left:47%}section.product-detail div.layouter .form-container div.product-image-group div{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list{height:120px;margin-top:5px;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;overflow-x:scroll;margin-right:0}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame img{height:100%;width:auto}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control{display:none}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image{display:-webkit-box;display:-ms-flexbox;display:flex}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image img{margin-left:auto;margin-right:auto;width:480px}section.product-detail div.layouter .form-container div.product-image-group div .wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%!important}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons{width:100%}section.product-detail div.layouter .form-container .details{width:100%;margin-top:20px}}@media only screen and (max-width:510px){section.product-detail div.layouter .form-container div.product-image-group .product-hero-image img{width:100%!important}}@media only screen and (max-width:480px){section.product-detail div.layouter .form-container .details{margin-top:0}}@media only screen and (max-width:360px){section.product-detail div.layouter .form-container .details{margin-top:-120px}}.rating-reviews .rating-header{padding:20px 0}.rating-reviews .stars .icon{width:16px;height:16px}.rating-reviews .overall{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.rating-reviews .overall .review-info .number{font-size:34px}.rating-reviews .overall .review-info .total-reviews{margin-top:10px}.rating-reviews .reviews{margin-top:40px;margin-bottom:40px}.rating-reviews .reviews .review{margin-bottom:25px}.rating-reviews .reviews .review .title{margin-bottom:5px}.rating-reviews .reviews .review .stars{margin-bottom:15px;display:inline-block}.rating-reviews .reviews .review .message{margin-bottom:10px}.rating-reviews .reviews .review .reviewer-details{color:#a5a5a5}.rating-reviews .reviews .view-all{margin-top:15px;color:#0031f0;margin-bottom:15px}section.cart{width:100%;color:#242424;margin-bottom:80px;margin-top:20px}section.cart .title{font-size:24px}section.cart .cart-content{margin-top:20px;width:100%;display:inline-block}section.cart .cart-content .left-side{width:70%;float:left}section.cart .cart-content .left-side .misc-controls{width:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:20px}section.cart .cart-content .left-side .misc-controls a.link,section.cart .cart-content .left-side .misc-controls div button{margin-right:15px}section.cart .cart-content .right-side{width:30%;display:inline-block;padding-left:40px}.cart-item-list{margin-top:21px;padding:1px}.cart-item-list .item{padding:10px;margin-bottom:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;border:1px solid #c7c7c7;border-radius:3px}.cart-item-list .item .item-image{height:160px;width:160px;-webkit-box-shadow:1px 1px 1px #c7c7c7;box-shadow:1px 1px 1px #c7c7c7}.cart-item-list .item .item-details{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;width:100%}.cart-item-list .item .item-details .item-title{font-size:18px;margin-bottom:10px;font-weight:600}.cart-item-list .item .item-details .item-title a{color:#242424}.cart-item-list .item .item-details .price{margin-bottom:10px;font-size:18px;font-weight:600}.cart-item-list .item .item-details .summary{margin-bottom:17px}.cart-item-list .item .item-details .misc{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.cart-item-list .item .item-details .misc .control-group{font-size:16px!important;width:220px;margin:0}.cart-item-list .item .item-details .misc .control-group .wrap{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cart-item-list .item .item-details .misc .control-group label{margin-right:15px}.cart-item-list .item .item-details .misc .control-group .control{height:38px;width:60px;border-radius:3px;text-align:center;line-height:38px}.cart-item-list .item .item-details .misc .remove,.cart-item-list .item .item-details .misc .towishlist{margin-top:18px;margin-right:15px}.cart-item-list .item .error-message{color:#ff6472}.order-summary h3{font-size:16px;margin-top:0}.order-summary .item-detail{margin-top:12px}.order-summary .item-detail label.right{float:right}.order-summary .payble-amount{margin-top:17px;border-top:1px solid #c7c7c7;padding-top:12px}.order-summary .payble-amount label{font-weight:700}.order-summary .payble-amount label.right{float:right}@media only screen and (max-width:770px){section.cart .cart-content{display:block}section.cart .cart-content .left-side{width:100%;float:none}section.cart .cart-content .left-side .misc-controls{position:relative;top:200px}section.cart .cart-content .right-side{width:100%;padding-left:0;position:relative;top:-40px}}@media only screen and (max-width:560px){section.cart .cart-content .left-side .cart-item-list .item .item-image{height:90px;width:90px}section.cart .cart-content .left-side .cart-item-list .item .item-details .misc{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:40px}section.cart .cart-content .left-side .misc-controls{display:block;top:180px}section.cart .cart-content .left-side .misc-controls div{margin-top:10px}section.cart .cart-content .right-side{top:-80px}}@media only screen and (max-width:386px){section.cart .cart-content .left-side .misc-controls div button{width:100%}section.cart .cart-content .left-side .misc-controls div a{margin-top:10px;width:100%;text-align:center}section.cart .cart-content .left-side .box,section.cart .cart-content .left-side .remove{margin-right:15px!important}section.cart .cart-content .right-side{top:-130px}}.checkout-process{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%;margin-top:20px;margin-bottom:20px}.checkout-process .col-main{width:65%;padding-right:40px}.checkout-process .col-main ul.checkout-steps{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;width:100%;padding-bottom:15px;border-bottom:1px solid #c7c7c7}.checkout-process .col-main ul.checkout-steps li{height:48px;display:-webkit-box;display:-ms-flexbox;display:flex}.checkout-process .col-main ul.checkout-steps li .decorator{height:48px;width:48px;border:1px solid #000;border-radius:50%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;border:1px solid #c7c7c7;background-repeat:no-repeat;background-position:50%}.checkout-process .col-main ul.checkout-steps li .decorator.address-info{background-image:url("../images/address.svg")}.checkout-process .col-main ul.checkout-steps li .decorator.shipping{background-image:url("../images/shipping.svg")}.checkout-process .col-main ul.checkout-steps li .decorator.payment{background-image:url("../images/payment.svg")}.checkout-process .col-main ul.checkout-steps li .decorator.review{background-image:url("../images/finish.svg")}.checkout-process .col-main ul.checkout-steps li.completed{cursor:pointer}.checkout-process .col-main ul.checkout-steps li.completed .decorator{background-image:url("../images/complete.svg")}.checkout-process .col-main ul.checkout-steps li span{margin-left:7px;margin-top:auto;margin-bottom:auto}.checkout-process .col-main ul.checkout-steps li.active{color:#2650ef}.checkout-process .col-main ul.checkout-steps li.active .decorator{border:1px solid #2650ef}.checkout-process .col-main .step-content{padding-top:20px}.checkout-process .col-main .step-content .form-header{width:100%;display:inline-block}.checkout-process .col-main .step-content .form-header h1{float:left}.checkout-process .col-main .step-content .form-header .btn{float:right}.checkout-process .col-main .step-content .form-container{border-bottom:1px solid #c7c7c7;padding-top:20px;padding-bottom:20px}.checkout-process .col-main .step-content .shipping-methods h4{margin:0}.checkout-process .col-main .step-content .payment-methods .radio{font-weight:600}.checkout-process .col-main .step-content .payment-methods .control-info{margin-left:28px}.checkout-process .col-main .step-content .address{display:inline-block;width:100%}.checkout-process .col-main .step-content .address .address-card{width:50%;float:left}.checkout-process .col-main .step-content .address .address-card .card-title span{font-weight:600}.checkout-process .col-main .step-content .address .address-card .card-content{margin-top:15px;color:#242424;line-height:25px}.checkout-process .col-main .step-content .address .address-card .card-content .horizontal-rule{margin:12px 0;display:block;width:25px;background:#121212}.checkout-process .col-main .step-content .cart-item-list .item .row .title{width:100px;display:inline-block;color:#a5a5a5;font-weight:500;margin-bottom:10px}.checkout-process .col-main .step-content .cart-item-list .item .row .value{font-size:18px;font-weight:600}.checkout-process .col-main .step-content .order-description{display:inline-block;width:100%}.checkout-process .col-main .step-content .order-description .shipping{margin-bottom:25px}.checkout-process .col-main .step-content .order-description .decorator{height:48px;width:48px;border-radius:50%;border:1px solid #c7c7c7;vertical-align:middle;display:inline-block;text-align:center}.checkout-process .col-main .step-content .order-description .decorator .icon{margin-top:7px}.checkout-process .col-main .step-content .order-description .text{font-weight:600;vertical-align:middle;display:inline-block}.checkout-process .col-main .step-content .order-description .text .info{font-weight:500;margin-top:2px}.checkout-process .col-right{width:35%;padding-left:40px}@media only screen and (max-width:770px){.checkout-process .col-main{width:100%;padding-right:0}.checkout-process .col-main ul.checkout-steps{border-bottom:none;padding-bottom:0}.checkout-process .col-main ul.checkout-steps span{display:none}.checkout-process .col-main ul.checkout-steps .line{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;border-bottom:1px solid #c7c7c7;margin-left:5px;margin-right:5px}.checkout-process .step-content{padding-top:0}.checkout-process .step-content .control-group .control{width:100%}.checkout-process .col-right{display:none}}@media only screen and (max-width:480px){.checkout-process .col-main .step-content .address,.checkout-process .col-main .step-content .order-description{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.checkout-process .col-main .step-content .address .billing-address,.checkout-process .col-main .step-content .address .pull-left,.checkout-process .col-main .step-content .order-description .billing-address,.checkout-process .col-main .step-content .order-description .pull-left{width:100%!important}.checkout-process .col-main .step-content .address .pull-right,.checkout-process .col-main .step-content .address .shipping-address,.checkout-process .col-main .step-content .order-description .pull-right,.checkout-process .col-main .step-content .order-description .shipping-address{width:100%!important;margin-top:20px}}.attached-products-wrapper{margin-bottom:80px}.attached-products-wrapper .title{margin-bottom:40px;font-size:18px;color:#242424;text-align:center;position:relative}.attached-products-wrapper .title .border-bottom{border-bottom:1px solid hsla(0,0%,64%,.2);display:inline-block;width:100px;position:absolute;top:40px;left:50%;margin-left:-50px}.attached-products-wrapper .horizontal-rule{height:1px;background:#c7c7c7;width:148px;margin-bottom:24px;margin-left:auto;margin-right:auto}section.review .category-breadcrumbs{display:inline}section.review .review-layouter{display:-webkit-box;display:-ms-flexbox;display:flex}section.review .review-layouter .product-info{font-size:24px}section.review .review-layouter .product-info .product-image img{height:280px;width:280px}section.review .review-layouter .product-info .product-name a{color:#242424}section.review .review-layouter .product-info .product-price .pro-price{color:#ff6472}section.review .review-layouter .product-info .product-price .pro-price-not{margin-left:10px;font-size:16px;color:#a5a5a5}section.review .review-layouter .product-info .product-price .offer{margin-left:10px;font-size:16px}section.review .review-layouter .review-form{margin-left:20px;width:55%}section.review .review-layouter .review-form .heading{color:#242424;font-weight:600}section.review .review-layouter .review-form .heading .right{float:right;margin-top:-10px}section.review .review-layouter .review-form .star{font-size:23px;color:#d4d4d4;-webkit-transition:all .2s;transition:all .2s}section.review .review-layouter .review-form .star:before{content:"\2605"}section.review .review-layouter .review-form .control-group .control{width:100%}section.review .review-layouter .review-form .review-detail{height:150px;border:1px solid #b22222;margin-top:30px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}section.review .review-layouter .review-form .review-detail .rating-review{margin-top:40px;margin-left:20px;width:48%}section.review .review-layouter .review-form .review-detail .rating-review .avg-rating-count span{font-size:34px;text-align:center}section.review .review-layouter .review-form .review-detail .rating-calculate .progress-only{width:20px;border:1px solid blue}section.review .review-layouter .ratings-reviews{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}section.review .review-layouter .ratings-reviews .left-side{padding:40px 20px;width:50%}section.review .review-layouter .ratings-reviews .left-side .rate{font-size:34px}section.review .review-layouter .ratings-reviews .left-side .stars .icon{height:16px;width:16px}section.review .review-layouter .ratings-reviews .right-side{width:50%}section.review .review-layouter .ratings-reviews .right-side .rater{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:5px;width:100%}section.review .review-layouter .ratings-reviews .right-side .rater .star-name{margin-right:5px;width:35px}section.review .review-layouter .ratings-reviews .right-side .rater .rate-number{width:15px}section.review .review-layouter .ratings-reviews .right-side .rater .percentage{width:50px;margin-right:10px}section.review .review-layouter .ratings-reviews .right-side .rater .percentage span{float:right;white-space:nowrap}section.review .review-layouter .ratings-reviews .right-side .rater .line-bar{height:4px;width:calc(100% - 100px);margin-right:5px;margin-left:5px;background:#d8d8d8}section.review .review-layouter .ratings-reviews .right-side .rater .line-bar .line-value{background-color:#0031f0}@media only screen and (max-width:770px){section.review .category-breadcrumbs{display:none}section.review .review-layouter{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}section.review .review-layouter .product-info .product-image,section.review .review-layouter .product-info .product-name,section.review .review-layouter .product-info .product-price{max-width:280px;margin-left:auto;margin-right:auto}section.review .review-layouter .review-form{width:100%;margin-left:0}section.review .review-layouter .review-form .heading{margin-bottom:70px}section.review .review-layouter .review-form .heading .right{margin-top:50px}section.review .review-layouter .review-form .ratings-reviews{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%}section.review .review-layouter .review-form .ratings-reviews .left-side{width:100%;padding:0 0 40px;margin-top:-50px}section.review .review-layouter .review-form .ratings-reviews .right-side{width:100%}section.review .review-layouter .review-form .ratings-reviews .right-side .rater .percentage{margin-right:0}}.auth-content{padding-top:15%;padding-bottom:15%}.auth-content .sign-up-text{margin-bottom:2%;margin-left:auto;margin-right:auto;font-size:18px;color:#a5a5a5;text-align:center}.auth-content .login-form{margin-left:auto;margin-right:auto;display:-webkit-box;display:-ms-flexbox;display:flex;border:1px solid #c7c7c7;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:500px;min-width:320px;padding:25px}.auth-content .login-form .login-text{font-size:24px;font-weight:600;margin-bottom:30px}.auth-content .login-form .control-group{margin-bottom:15px!important}.auth-content .login-form .control-group .control{width:100%!important}.auth-content .login-form .forgot-password-link{font-size:17px;color:#0031f0;margin-bottom:5%}.auth-content .login-form .signup-confirm{margin-bottom:5%}.auth-content .login-form .btn-primary{width:100%;text-transform:uppercase}.account-content{width:100%;-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;margin-top:5.5%;margin-bottom:5.5%}.account-content,.account-content .sidebar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}.account-content .sidebar{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:25%;height:100%}.account-content .menu-block{margin-bottom:30px}.account-content .menu-block:last-child{margin-bottom:0}.account-content .menu-block .menu-block-title{padding-bottom:10px;font-size:18px}.account-content .menu-block .menubar{border:1px solid #c7c7c7;color:#a5a5a5;position:relative}.account-content .menu-block .menubar li{width:95%;height:50px;margin-left:5%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #c7c7c7;text-align:center}.account-content .menu-block .menubar li a{color:#5e5e5e}.account-content .menu-block .menubar li .icon{display:none;position:absolute;right:12px}.account-content .menu-block .menubar li:first-child{border-top:none}.account-content .menu-block .menubar li:last-child{border-bottom:none}.account-content .menu-block .menubar li.active a{color:#0031f0}.account-content .menu-block .menubar li.active .icon{display:inline-block}.account-content .account-layout{margin-left:40px;width:100%}.account-content .account-layout .account-head .back-icon,.account-content .account-layout .responsive-empty,.account-content .account-layout .responsive-table{display:none}.account-table-content{color:#242424;margin-top:1.4%}.account-table-content table tbody tr{height:45px}.account-table-content table tbody tr td{width:250px}.address-holder{-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}.address-card-1,.address-holder{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.address-card-1{width:260px;border:1px solid #c7c7c7;position:relative;padding:20px;margin-right:15px;margin-bottom:15px}.address-card-1 .control-group{width:15px;height:15px;margin-top:10px}.address-card-1 .details{font-weight:lighter}.address-card-1 .details span{display:block}.address-card-1 .details .control-links{width:90%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.address-card-1 .details .control-links .btn{height:30px}.address-card-1 .details .default-address{position:absolute;top:10px;right:10px}.edit-form{display:-webkit-box;display:-ms-flexbox;display:flex;border:1px solid #c7c7c7;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:345px;padding:25px}@media only screen and (max-width:770px){.account-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.account-content .account-side-menu{display:none;width:100%;border:none}.account-content .account-side-menu li{margin-left:0;width:100%}.account-content .account-side-menu li a{color:#242424}.account-content .responsive-side-menu{cursor:pointer;padding-top:13px;display:block!important;height:46px;border-bottom:1px solid #c7c7c7;border-top:1px solid #c7c7c7}.account-content .responsive-side-menu .right{float:right}.account-content .account-layout{margin-left:0;margin-top:20px}.account-content .account-layout .account-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #c7c7c7;border-top:1px solid #c7c7c7;height:46px}.account-content .account-layout .account-head .account-action{margin-top:12px;margin-left:15px}.account-content .account-layout .account-head .back-icon{display:block}.account-content .account-layout .account-head span{margin-top:12px;font-size:18px}.account-content .account-layout .account-head .horizontal-rule{display:none}.account-content .account-layout .account-table-content{margin-top:2%}.account-content .account-layout .account-table-content table tbody tr{height:70px}.account-content .account-layout .account-table-content table tbody tr td{display:block}.account-content .account-layout .account-table-content .address-holder{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.account-content .account-items-list,.account-content .edit-form{margin-top:20px}.account-content .account-items-list .table,.account-content .edit-form .table{display:none}.account-content .account-items-list .responsive-empty,.account-content .edit-form .responsive-empty{display:block}.account-content .account-items-list .responsive-table,.account-content .edit-form .responsive-table{border:1px solid #c7c7c7;margin-top:5px;width:100%;display:block}.account-content .account-items-list .responsive-table tbody td,.account-content .edit-form .responsive-table tbody td{padding:8px 5px}.account-content .account-items-list .responsive-table tbody td:first-child,.account-content .edit-form .responsive-table tbody td:first-child{width:25%}.account-content .account-items-list .responsive-table tbody td:last-child,.account-content .edit-form .responsive-table tbody td:last-child{padding-left:10px}.account-content .account-items-list.table{display:none}.account-content .control-group .control{width:100%}}.sale-container{color:#5e5e5e}.sale-container .sale-section .secton-title{font-size:18px;color:#8e8e8e;padding:15px 0;border-bottom:1px solid #c7c7c7}.sale-container .sale-section .section-content{display:block;padding:20px 0;border-bottom:1px solid #e8e8e8}.sale-container .sale-section .section-content .row{display:block;padding:7px 0}.sale-container .sale-section .section-content .row .title{width:200px;letter-spacing:-.26px;display:inline-block}.sale-container .sale-section .section-content .row .value{letter-spacing:-.26px;display:inline-block}.sale-container .sale-section .section-content .order-box-container{display:inline-block;width:100%}.sale-container .sale-section .section-content .order-box-container .box{float:left;width:25%}.sale-container .sale-section .section-content .order-box-container .box .box-title{padding:10px 0;font-size:18px;color:#8e8e8e}.sale-container .sale-section .section-content .order-box-container .box .box-content{color:#3a3a3a}.sale-container .sale-section .section-content .qty-row{display:block}.sale-container .sale-section .section-content .responsive-table{display:none}.sale-container .totals{padding-top:20px;display:inline-block;width:100%;border-top:1px solid #e8e8e8}.sale-container .totals .sale-summary{height:130px;float:right;border-collapse:collapse}.sale-container .totals .sale-summary tr td{padding:5px 8px;width:auto;color:#3a3a3a}.sale-container .totals .sale-summary tr.bold{font-weight:600;font-size:15px}.sale-container .totals .sale-summary tr.border td{border-bottom:1px solid #c7c7c7}@media only screen and (max-width:770px){.sale-container .sale-section .section-content .row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.sale-container .sale-section .section-content .row .title{line-height:20px}.sale-container .sale-section .section-content .table{display:none}.sale-container .sale-section .section-content .responsive-table{border:1px solid #c7c7c7;margin-top:5px;width:100%;display:block}.sale-container .sale-section .section-content .responsive-table tbody td{padding:8px 5px}.sale-container .sale-section .section-content .responsive-table tbody td:first-child{width:35%}.sale-container .sale-section .section-content .responsive-table tbody td:last-child{padding-left:10px}.sale-container .sale-section .section-content .totals .sale-summary{width:100%}.sale-container .sale-section .section-content .totals .sale-summary tr td:nth-child(2){display:none}.sale-container .sale-section .section-content .order-box-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.sale-container .sale-section .section-content .order-box-container .box{width:100%;margin:10px auto}}.verify-account{text-align:center;background:#204d74;width:200px;margin-right:auto;margin-left:auto;border-radius:4px}.verify-account a{color:#fff!important}.cp-spinner{position:absolute;left:26%;margin-top:calc(20% - 80px)}@media only screen and (max-width:720px){.cp-spinner{left:50%;margin-left:-24px;top:50%;margin-top:-24px}}@media only screen and (max-width:720px){.error-container .wrapper{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important;margin:10px 0 20px!important;-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:start!important;height:100%!important}}.rtl{direction:rtl}.rtl .header .header-top div.left-content ul.logo-container{margin-right:0;margin-left:12px}.rtl .header .header-top div.left-content ul.search-container li.search-group .search-field{border-left:none;border-right:2px solid #c7c7c7;padding-right:12px;padding-left:0}.rtl .header .header-top div.left-content ul.search-container li.search-group .search-icon-wrapper{border:2px solid #c7c7c7}.rtl .header .header-top div.right-content .currency-switcher .dropdown-list{left:0;right:auto}.rtl .header .header-top div.right-content ul.cart-dropdown-container{float:left;margin-left:0}.rtl .header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .cart-icon{margin-right:0;margin-left:8px}.rtl .header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-list{left:0!important;right:auto!important}.rtl .header .header-top div.right-content ul.cart-dropdown-container li.cart-dropdown .dropdown-container .dropdown-content .item img{margin-right:0}.rtl .header .header-bottom .nav>li{float:right;margin-right:0;margin-left:1px}.rtl .header .header-bottom .nav a{padding:.8em .5em .8em .3em!important}.rtl .header .header-bottom .nav li a>.icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rtl .header .header-bottom .nav>li li:hover>ul{left:unset!important;right:100%!important}.rtl .header .search-responsive .search-content .right{float:left}.rtl .dropdown-list{text-align:right}.rtl .dropdown-list.bottom-right{left:0;right:auto}@media only screen and (max-width:720px){.rtl .header .header-top ul.right-responsive{margin-left:0}.rtl .header .header-top ul.right-responsive li{margin:0}.rtl .header .header-top ul.right-responsive li:last-child{margin-right:5px;margin-left:-2px}.rtl .header .header-top ul.right-responsive ul{margin:0}.rtl .header .header-bottom .nav>li{float:none}.rtl .header .header-bottom .nav li>.icon{float:left;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rtl .header .header-bottom .icon.icon-arrow-down{margin-left:5px}}.rtl section.slider-block div.slider-content div.slider-control{left:2%;right:auto}@media only screen and (max-width:720px){.rtl section.slider-block div.slider-content div.slider-control{left:0}}.rtl .main-container-wrapper .product-card .sticker{left:auto;right:10px}.rtl .main-container-wrapper .product-card .cart-wish-wrap .addtocart{margin-right:0;margin-left:10px}.rtl section.product-detail div.layouter .form-container div.product-image-group{margin-right:0;margin-left:30px}.rtl section.product-detail div.layouter .form-container div .thumb-list{margin-left:4px;margin-right:0}.rtl section.product-detail div.layouter .form-container .details .product-ratings .total-reviews{margin-left:0;margin-right:15px}@media only screen and (max-width:720px){.rtl section.product-detail div.layouter .form-container div.product-image-group{margin-right:0;margin-left:0}}.rtl .main .category-container .layered-filter-wrapper,.rtl .main .category-container .responsive-layred-filter{padding-right:0;padding-left:20px}.rtl .main .top-toolbar .pager{float:left}.rtl .main .top-toolbar .pager .view-mode{margin-right:0;margin-left:20px}.rtl .main .top-toolbar .pager .sorter{margin-right:0;margin-left:10px}.rtl .main .top-toolbar .pager label{margin-right:0;margin-left:5px}.rtl .main .top-toolbar .page-info{float:right}.rtl section.review .review-layouter .review-form{margin-left:0;margin-right:20px}.rtl section.review .review-layouter .review-form .heading .right{float:left}.rtl section.review .review-layouter .review-form .ratings-reviews .right-side .rater .star-name{margin-right:0;margin-left:5px}@media only screen and (max-width:770px){.rtl section.review .review-layouter .review-form{margin-right:0}}.rtl section.cart .cart-content .left-side{width:70%;float:right}.rtl section.cart .cart-content .left-side .misc-controls a.link{margin-left:15px;margin-right:0}.rtl section.cart .cart-content .right-side{width:30%;padding-right:40px;padding-left:0}.rtl .order-summary .item-detail label.right,.rtl .payble-amount label.right{float:left}.rtl .item div{margin-left:15px;margin-right:0!important}.rtl .cart-item-list .item .item-details .misc div.qty-text{margin-right:0;margin-left:10px}.rtl .cart-item-list .item .item-details .misc .remove,.rtl .cart-item-list .item .item-details .misc input.box{margin-right:0;margin-left:30px}@media only screen and (max-width:770px){.rtl section.cart .cart-content .left-side{width:100%;float:none}.rtl section.cart .cart-content .right-side{width:100%;padding-right:0}}.rtl .checkout-process .col-right{padding-left:0;padding-right:40px}.rtl .checkout-process .col-main{padding-left:40px;padding-right:0}.rtl .checkout-process .col-main ul.checkout-steps li span{margin-right:7px;margin-left:0}.rtl .checkout-process .col-main .step-content .form-header h1{float:right}.rtl .checkout-process .col-main .step-content .form-header .btn{float:left}.rtl .checkout-process .col-main .step-content .payment-methods .control-info{margin-right:28px;margin-left:0}.rtl .checkout-process .col-main .step-content .address .billing-address,.rtl .checkout-process .col-main .step-content .address .pull-left,.rtl .checkout-process .col-main .step-content .order-description .billing-address,.rtl .checkout-process .col-main .step-content .order-description .pull-left{float:right!important}.rtl .checkout-process .col-main .step-content .address .pull-right,.rtl .checkout-process .col-main .step-content .address .shipping-address,.rtl .checkout-process .col-main .step-content .order-description .pull-right,.rtl .checkout-process .col-main .step-content .order-description .shipping-address{float:left!important}.rtl .checkbox,.rtl .radio{margin:10px 0 5px 5px}.rtl .radio .radio-view{margin-left:5px;margin-right:0}.rtl .radio input{right:0;left:auto}@media only screen and (max-width:770px){.rtl .checkout-process .col-main{padding-left:0}}.rtl .account-content .account-layout{margin-left:0;margin-right:40px}.rtl .account-content .account-side-menu li{margin-right:5%;margin-left:0}.rtl .account-content .account-side-menu li .icon{left:12px;right:auto;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rtl .account-head .account-action{float:left}.rtl .account-item-card .media-info .info{margin-right:20px;margin-left:0}.rtl .account-item-card .operations a span{float:left}.rtl .table table{text-align:right}.rtl .sale-container .totals .sale-summary{float:left}.rtl .sale-container .sale-section .section-content .order-box-container{display:-webkit-box;display:-ms-flexbox;display:flex}@media only screen and (max-width:770px){.rtl .account-content .account-layout{margin-right:0}.rtl .account-content .account-layout .account-head .account-action{margin-right:15px;margin-left:0}.rtl .account-content .account-layout .account-head .back-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg);margin-bottom:10px}.rtl .account-content .responsive-side-menu .right{float:left}.rtl .account-content .account-side-menu li{margin-right:0}}.rtl .footer .footer-content .footer-list-container .list-container .list-group li span.icon{margin-left:5px;margin-right:0}@media (max-width:720px){.rtl .footer{padding-right:15px;padding-left:10%}.rtl .footer .footer-list-container{padding-right:0!important}}.rtl .cp-spinner{position:absolute;left:auto;right:26%;margin-top:calc(20% - 80px)}@media only screen and (max-width:720px){.rtl .cp-spinner{right:50%;margin-right:-24px;left:auto}} \ No newline at end of file diff --git a/packages/Webkul/Shop/publishable/assets/mix-manifest.json b/packages/Webkul/Shop/publishable/assets/mix-manifest.json index cb454d063..0186780ae 100644 --- a/packages/Webkul/Shop/publishable/assets/mix-manifest.json +++ b/packages/Webkul/Shop/publishable/assets/mix-manifest.json @@ -1,4 +1,4 @@ { "/js/shop.js": "/js/shop.js?id=dc2ea56a854d779e7089", - "/css/shop.css": "/css/shop.css?id=7c64b6577e4bcb5b03ee" + "/css/shop.css": "/css/shop.css?id=c96b5204660def3468d9" } \ No newline at end of file diff --git a/packages/Webkul/Shop/webpack.mix.js b/packages/Webkul/Shop/webpack.mix.js index cc2d629f2..acf0d5b90 100644 --- a/packages/Webkul/Shop/webpack.mix.js +++ b/packages/Webkul/Shop/webpack.mix.js @@ -1,8 +1,8 @@ const { mix } = require("laravel-mix"); require("laravel-mix-merge-manifest"); -// var publicPath = 'publishable/assets'; -var publicPath = "../../../public/themes/default/assets"; +var publicPath = 'publishable/assets'; +// var publicPath = "../../../public/themes/default/assets"; mix.setPublicPath(publicPath).mergeManifest(); mix.disableNotifications(); diff --git a/packages/Webkul/Ui/publishable/assets/css/ui.css b/packages/Webkul/Ui/publishable/assets/css/ui.css index dd48c416f..3020514e0 100644 --- a/packages/Webkul/Ui/publishable/assets/css/ui.css +++ b/packages/Webkul/Ui/publishable/assets/css/ui.css @@ -1 +1 @@ -.active.configuration-icon,.catalog-icon,.configuration-icon,.customer-icon,.dashboard-icon,.sales-icon,.settings-icon{width:48px;height:48px;display:inline-block;background-size:cover}.icon{display:inline-block;background-size:cover}.dashboard-icon{background-image:url("../images/Icon-Dashboard.svg")}.sales-icon{background-image:url("../images/Icon-Sales.svg")}.catalog-icon{background-image:url("../images/Icon-Catalog.svg")}.customer-icon{background-image:url("../images/Icon-Customers.svg")}.configuration-icon{background-image:url("../images/Icon-Configure.svg")}.settings-icon{background-image:url("../images/Icon-Settings.svg")}.angle-right-icon{background-image:url("../images/Angle-Right.svg");width:17px;height:17px}.angle-left-icon{background-image:url("../images/Angle-Left.svg");width:17px;height:17px}.arrow-down-icon{background-image:url("../images/Arrow-Down-Light.svg");width:14px;height:8px}.arrow-right-icon{background-image:url("../images/Arrow-Right.svg");width:18px;height:18px}.white-cross-sm-icon{background-image:url("../images/Icon-Sm-Cross-White.svg");width:18px;height:18px}.accordian-up-icon{background-image:url("../images/Accordion-Arrow-Up.svg");width:24px;height:24px}.accordian-down-icon{background-image:url("../images/Accordion-Arrow-Down.svg");width:24px;height:24px}.cross-icon{background-image:url("../images/Icon-Crossed.svg");width:18px;height:18px}.trash-icon{background-image:url("../images/Icon-Trash.svg");width:24px;height:24px}.remove-icon{background-image:url("../images/Icon-remove.svg");width:24px;height:24px}.pencil-lg-icon{background-image:url("../images/Icon-Pencil-Large.svg");width:24px;height:24px}.eye-icon{background-image:url("../images/Icon-eye.svg");width:24px;height:24px}.search-icon{background-image:url("../images/icon-search.svg");width:24px;height:24px}.sortable-icon{background-image:url("../images/Icon-Sortable.svg");width:24px;height:24px}.sort-down-icon,.sort-up-icon{background-image:url("../images/Icon-Sort-Down.svg");width:18px;height:18px}.sort-up-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.primary-back-icon{background-image:url("../images/Icon-Back-Primary.svg");width:24px;height:24px}.checkbox-dash-icon{background-image:url("../images/Checkbox-Dash.svg");width:24px;height:24px}.account-icon{background-image:url("../images/icon-account.svg");width:24px;height:24px}.expand-icon{background-image:url("../images/Expand-Light.svg");width:18px;height:18px}.expand-on-icon{background-image:url("../images/Expand-Light-On.svg");width:18px;height:18px}.dark-left-icon{background-image:url("../images/arrow-left-dark.svg");width:18px;height:18px}.light-right-icon{background-image:url("../images/arrow-right-light.svg");width:18px;height:18px}.folder-icon{background-image:url("../images/Folder-Icon.svg");width:24px;height:24px}.star-icon{background-image:url("../images/Star-Icon.svg");width:24px;height:24px}.arrow-down-white-icon{background-image:url("../images/down-arrow-white.svg");width:17px;height:13px}.arrow-up-white-icon{background-image:url("../images/up-arrow-white.svg");width:17px;height:13px}.profile-pic-icon{background-image:url("../images/Profile-Pic.svg");width:60px;height:60px}.graph-up-icon{background-image:url("../images/Icon-Graph-Green.svg");width:24px;height:24px}.graph-down-icon{background-image:url("../images/Icon-Graph-Red.svg");width:24px;height:24px}.no-result-icon{background-image:url("../images/limited-icon.svg");width:52px;height:47px}.active .dashboard-icon{background-image:url("../images/Icon-Dashboard-Active.svg")}.active .sales-icon{background-image:url("../images/Icon-Sales-Active.svg")}.active .catalog-icon{background-image:url("../images/Icon-Catalog-Active.svg")}.active .customer-icon{background-image:url("../images/Icon-Customers-Active.svg")}.active .settings-icon{background-image:url("../images/Icon-Settings-Active.svg")}.active .configuration-icon{background-image:url("../images/Icon-Configure-Active.svg")}.active>.arrow-down-icon{background-image:url("../images/Arrow-Down.svg");width:14px;height:8px}.active>.expand-icon{background-image:url("../images/Expand-Light-On.svg")}.active.dashboard-icon{background-image:url("../images/Icon-Dashboard-Active.svg")}.active.customer-icon{background-image:url("../images/Icon-Customers-Active.svg")}.active.sales-icon{background-image:url("../images/Icon-Sales-Active.svg")}.active.settings-icon{background-image:url("../images/Icon-Settings-Active.svg")}.active.configuration-icon{background-image:url("../images/Icon-Configure-Active.svg")}.active.arrow-down-icon{background-image:url("../images/Arrow-Down.svg");width:14px;height:8px}.active.expand-icon{background-image:url("../images/Expand-Light-On.svg")}.icon-404{background-image:url("../images/404-image.svg");width:255px;height:255px}.export-icon{background-image:url("../images/Icon-Export.svg");width:32px;height:32px}.grid-container .filter-wrapper{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.grid-container .filter-wrapper .filter-row-one,.grid-container .filter-wrapper .filter-row-two{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.grid-container .filter-wrapper .filter-row-one{height:40px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.grid-container .filter-wrapper .filter-row-one .search-filter .control{font-family:montserrat,sans-serif;padding-left:10px;width:380px;height:36px;border:2px solid #c7c7c7;border-radius:3px;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;font-size:14px}.grid-container .filter-wrapper .filter-row-one .search-filter .ic-wrapper{display:block;height:36px;width:36px;border:2px solid #c7c7c7;border-left:none;border-radius:2px}.grid-container .filter-wrapper .filter-row-one .search-filter .ic-wrapper .search-icon{margin-left:4px;margin-top:4px;height:24px;width:24px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-family:montserrat,sans-serif;padding-left:5px;height:36px;width:150px;border:2px solid #c7c7c7;border-radius:2px;background-color:#fff;color:#8e8e8e;font-size:14px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle .dropdown-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle .dropdown-header{width:100%;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle .dropdown-header .arrow-down-icon{margin-right:5px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul li.filter-column-dropdown .filter-column-select,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul li input,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul li select{width:100%;background:#fff;border:2px solid #c7c7c7;border-radius:3px;height:36px;display:inline-block;vertical-align:middle;-webkit-transition:.2s cubic-bezier(.4,0,.2,1);transition:.2s cubic-bezier(.4,0,.2,1);padding:0 5px;font-family:montserrat,sans-serif;margin-top:10px;margin-bottom:5px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-boolean,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-datetime,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-number,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-string,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-boolean,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-datetime,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-number,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-string{display:none}.grid-container .filter-wrapper .filter-row-two{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:6px;margin-bottom:6px}.grid-container .filter-wrapper .filter-row-two .filter-one{margin-right:10px}.grid-container .filter-wrapper .filter-row-two .filter-one .filter-name{margin-right:5px}.grid-container .filter-wrapper .filter-row-two .filter-one .filter-value{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;background:#e7e7e7;padding-left:5px;color:#000311;vertical-align:middle}.grid-container .filter-wrapper .filter-row-two .filter-one .filter-value .f-value{margin:auto}.grid-container .filter-wrapper .filter-row-two .filter-one .filter-value .cross-icon{margin:5px;height:18px!important;width:18px!important;cursor:pointer}.grid-container .table thead .mass-action-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.grid-container .table thead .mass-action-wrapper .massaction-remove{margin-top:4px;margin-right:10px}.grid-container .table thead .mass-action-wrapper .selected-items{margin-right:15px}.grid-container .table thead tr th.grid_head .sort-down-icon,.grid-container .table thead tr th.grid_head .sort-up-icon{margin-left:5px;margin-top:-3px;vertical-align:middle}.grid-container .table thead tr th.grid_head.sortable{cursor:pointer}.grid-container .table thead tr th{text-transform:capitalize}.grid-container .table tbody td.action a:first-child{margin-right:10px}.grid-container .table .pagination{margin-top:20px}@-webkit-keyframes jelly{0%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:0}70%{-webkit-transform:translateY(5px) scale(1.05);transform:translateY(5px) scale(1.05);opacity:1}to{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);opacity:1}}@keyframes jelly{0%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:0}70%{-webkit-transform:translateY(5px) scale(1.05);transform:translateY(5px) scale(1.05);opacity:1}to{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);opacity:1}}@-webkit-keyframes jelly-out{0%{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);opacity:1}30%{-webkit-transform:translateY(-5px) scale(1.05);transform:translateY(-5px) scale(1.05);opacity:1}to{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:0}}@keyframes jelly-out{0%{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);opacity:1}30%{-webkit-transform:translateY(-5px) scale(1.05);transform:translateY(-5px) scale(1.05);opacity:1}to{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:0}}*{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus{outline:none}a:active,a:focus,a:hover,a:link,a:visited{text-decoration:none;color:#0041ff}ul{margin:0;padding:0;list-style:none}h1{font-size:28px;margin-top:0}h1,h2{color:#3a3a3a}h2{font-size:18px}.tooltip{position:relative;border-bottom:1px solid #000}.tooltip .tooltiptext{visibility:hidden;width:120px;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px 0;position:absolute;z-index:1}.tooltip:hover .tooltiptext{visibility:visible}.hide{display:none!important}.btn{-webkit-box-shadow:0 1px 4px 0 rgba(0,0,0,.2),0 0 8px 0 rgba(0,0,0,.1);box-shadow:0 1px 4px 0 rgba(0,0,0,.2),0 0 8px 0 rgba(0,0,0,.1);border-radius:3px;border:none;color:#fff;cursor:pointer;-webkit-transition:.2s cubic-bezier(.4,0,.2,1);transition:.2s cubic-bezier(.4,0,.2,1);font:inherit;display:inline-block}.btn:active,.btn:focus,.btn:hover{opacity:.75;border:none}.btn.btn-sm{padding:6px 12px}.btn.btn-md{padding:8px 16px}.btn.btn-lg{padding:10px 20px}.btn.btn-xl{padding:12px 24px;font-size:16px}.btn.btn-primary{background:#0041ff;color:#fff}.btn.btn-black{background:#000;color:#fff}.btn:disabled,.btn[disabled=disabled],.btn[disabled=disabled]:active,.btn[disabled=disabled]:hover{cursor:not-allowed;background:#b1b1ae;-webkit-box-shadow:none;box-shadow:none;opacity:1}.dropdown-open{position:relative}.dropdown-list{width:200px;margin-bottom:20px;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 0 9px 0 rgba(0,0,0,.16);box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 0 9px 0 rgba(0,0,0,.16);border-radius:3px;background-color:#fff;position:absolute;display:none;z-index:10;text-align:left}.dropdown-list.bottom-left{top:42px;left:0}.dropdown-list.bottom-right{top:42px;right:0}.dropdown-list.top-left{bottom:42px;left:0}.dropdown-list.top-right{bottom:42px;right:0}.dropdown-list .search-box{padding:20px;border-bottom:1px solid hsla(0,0%,64%,.2)}.dropdown-list .search-box .control{background:#fff;border:2px solid #c7c7c7;border-radius:3px;width:100%;height:36px;display:inline-block;vertical-align:middle;-webkit-transition:.2s cubic-bezier(.4,0,.2,1);transition:.2s cubic-bezier(.4,0,.2,1);padding:0 10px;font-size:15px}.dropdown-list .search-box .control:focus{border-color:#0041ff}.dropdown-list .dropdown-container{padding:20px;overflow-y:auto;max-height:280px}.dropdown-list .dropdown-container label{font-size:15px;display:inline-block;text-transform:uppercase;color:#9e9e9e;font-weight:700;padding-bottom:5px}.dropdown-list .dropdown-container ul{margin:0;list-style-type:none;padding:0}.dropdown-list .dropdown-container ul li{padding:5px 0}.dropdown-list .dropdown-container ul li a:active,.dropdown-list .dropdown-container ul li a:focus,.dropdown-list .dropdown-container ul li a:link,.dropdown-list .dropdown-container ul li a:visited{color:#333;display:block}.dropdown-list .dropdown-container ul li a:hover{color:#0041ff}.dropdown-list .dropdown-container ul li .checkbox{margin:0}.dropdown-list .dropdown-container ul li .control-group label{color:#3a3a3a;font-size:15px;font-weight:500;text-transform:capitalize;width:100%}.dropdown-list .dropdown-container .btn{width:100%;margin-top:10px}.table{width:100%;overflow-x:auto}.table table{width:100%;border-collapse:collapse;text-align:left}.table table thead th{font-weight:700;padding:12px 10px;background:#f8f9fa;color:#3a3a3a}.table table tbody td{padding:10px;border-bottom:1px solid #d3d3d3;color:#3a3a3a;vertical-align:top}.table table tbody td.actions{text-align:right}.table table tbody td.actions .icon{cursor:pointer;vertical-align:middle}.table table tbody td.empty{text-align:center}.table table tbody tr:last-child td{border-bottom:none}.table .control-group{width:100%;margin-bottom:0}.table .control-group .control{width:100%;margin:0}.dropdown-btn{min-width:150px;text-align:left;background:#fff;border:2px solid #c7c7c7;border-radius:3px;font-size:14px;padding:8px 35px 8px 10px;cursor:pointer;position:relative}.dropdown-btn:active,.dropdown-btn:focus,.dropdown-btn:hover{opacity:.75;border:2px solid #c7c7c7}.dropdown-btn .icon{position:absolute;right:10px;top:50%;margin-top:-4px}.pagination .page-item{background:#fff;border:2px solid #c7c7c7;border-radius:3px;padding:7px 14px;margin-right:5px;font-size:16px;display:inline-block;color:#8e8e8e;vertical-align:middle;text-decoration:none}.pagination .page-item.next,.pagination .page-item.previous{padding:6px 9px}.pagination .page-item.active{background:#0041ff;color:#fff;border-color:#0041ff}.pagination .page-item .icon{vertical-align:middle;margin-bottom:3px}.checkbox{position:relative;display:block;vertical-align:middle;margin:10px 5px 5px 0}.checkbox input{left:0;opacity:0;position:absolute;top:0;height:24px;width:24px;z-index:100}.checkbox .checkbox-view{background-image:url("../images/Checkbox.svg");height:24px;width:24px;margin:0;display:inline-block!important;vertical-align:middle;margin-right:5px}.checkbox input:checked+.checkbox-view{background-image:url("../images/Checkbox-Checked.svg")}.checkbox input:disabled+.checkbox-view{opacity:.5;cursor:not-allowed}.radio{position:relative;display:block;margin:10px 5px 5px 0}.radio input{left:0;opacity:0;position:absolute;top:0;z-index:100}.radio .radio-view{background-image:url("../images/controls.svg");background-position:-21px 0;height:20px;width:20px;margin:0;display:inline-block!important;vertical-align:middle;margin-right:5px}.radio input:checked+.radio-view{background-position:-21px -21px}.radio input:disabled+.radio-view{opacity:.5;cursor:not-allowed}.control-group{display:block;margin-bottom:25px;font-size:15px;color:#333;width:750px;max-width:100%;position:relative}.control-group label{display:block;color:#3a3a3a}.control-group label.required:after{content:"*";color:#fc6868;font-weight:700;display:inline-block}.control-group textarea.control{height:100px;padding:10px}.control-group .control{background:#fff;border:2px solid #c7c7c7;border-radius:3px;width:70%;height:36px;display:inline-block;vertical-align:middle;-webkit-transition:.2s cubic-bezier(.4,0,.2,1);transition:.2s cubic-bezier(.4,0,.2,1);padding:0 10px;font-size:15px;margin-top:10px;margin-bottom:5px}.control-group .control:focus{border-color:#0041ff}.control-group .control[disabled=disabled]{border-color:#d3d3d3;background-color:#d3d3d3;cursor:not-allowed}.control-group .control[multiple]{height:100px}.control-group.date:after,.control-group.datetime:after{background-image:url("../images/Icon-Calendar.svg");width:24px;height:24px;content:"";display:inline-block;vertical-align:middle;margin-left:-34px;margin-top:2px;pointer-events:none}.control-group .control-info{display:block;font-style:italic;color:#6f6f6f}.control-group .control-error{display:none;color:#ff5656;margin-top:5px}.control-group.has-error .control{border-color:#fc6868}.control-group.has-error .control-error{display:block}.control-group.price .currency-code{vertical-align:middle;display:inline-block}.button-group{margin-top:20px;margin-bottom:20px}.alert-wrapper{width:300px;top:10px;right:10px;position:fixed;z-index:6;text-align:left}.alert-wrapper .alert{width:300px;padding:15px;border-radius:3px;display:inline-block;-webkit-box-shadow:0 4px 15.36px .64px rgba(0,0,0,.1),0 2px 6px 0 rgba(0,0,0,.12);box-shadow:0 4px 15.36px .64px rgba(0,0,0,.1),0 2px 6px 0 rgba(0,0,0,.12);position:relative;-webkit-animation:jelly .5s ease-in-out;animation:jelly .5s ease-in-out;-webkit-transform-origin:center top;transform-origin:center top;z-index:500;margin-bottom:10px}.alert-wrapper .alert.alert-error{background:#fc6868}.alert-wrapper .alert.alert-info{background:#204d74}.alert-wrapper .alert.alert-success{background:#4caf50}.alert-wrapper .alert.alert-warning{background:#ffc107}.alert-wrapper .alert .icon{position:absolute;right:10px;top:10px;cursor:pointer}.alert-wrapper .alert p{color:#fff;margin:0;padding:0;font-size:15px}.tabs ul{border-bottom:1px solid hsla(0,0%,64%,.2)}.tabs ul li{display:inline-block}.tabs ul li a{padding:15px 20px;cursor:pointer;margin:0 2px;text-align:center;color:#000311;display:block}.tabs ul li.active a{border-bottom:3px solid #0041ff}.accordian,accordian{display:inline-block;width:100%}.accordian .accordian-header,.accordian div[slot*=header],accordian .accordian-header,accordian div[slot*=header]{width:100%;display:inline-block;font-size:18px;color:#3a3a3a;border-bottom:1px solid hsla(0,0%,64%,.2);padding:20px 15px;cursor:pointer}.accordian .accordian-header .expand-icon,.accordian div[slot*=header] .expand-icon,accordian .accordian-header .expand-icon,accordian div[slot*=header] .expand-icon{background-image:url("../images/Expand-Light.svg");margin-right:10px;margin-top:3px}.accordian .accordian-header h1,.accordian div[slot*=header] h1,accordian .accordian-header h1,accordian div[slot*=header] h1{margin:0;font-size:20px;display:inline-block}.accordian .accordian-header .icon,.accordian div[slot*=header] .icon,accordian .accordian-header .icon,accordian div[slot*=header] .icon{float:right}.accordian .accordian-header .icon.left,.accordian div[slot*=header] .icon.left,accordian .accordian-header .icon.left,accordian div[slot*=header] .icon.left{float:left}.accordian .accordian-content,.accordian div[slot*=body],accordian .accordian-content,accordian div[slot*=body]{width:100%;padding:20px 15px;display:none;-webkit-transition:all .3s ease;transition:all .3s ease}.accordian.active>.accordian-content,accordian.active>.accordian-content{display:inline-block}.accordian.active>.accordian-header .expand-icon,accordian.active>.accordian-header .expand-icon{background-image:url("../images/Expand-Light-On.svg")}.tree-container .tree-item{padding-left:30px;display:inline-block;margin-top:10px;width:100%}.tree-container .tree-item>.tree-item{display:none}.tree-container .tree-item.active>.tree-item{display:inline-block}.tree-container .tree-item .checkbox,.tree-container .tree-item .radio{margin:0;display:inline-block}.tree-container .tree-item .expand-icon{display:inline-block;margin-right:10px;cursor:pointer;background-image:url("../images/Expand-Light.svg");width:18px;height:18px;vertical-align:middle}.tree-container .tree-item .folder-icon{vertical-align:middle;margin-right:10px}.tree-container .tree-item.active>.expand-icon{background-image:url("../images/Expand-Light-On.svg")}.tree-container>.tree-item{padding-left:0}.panel{-webkit-box-shadow:0 2px 25px 0 rgba(0,0,0,.15);box-shadow:0 2px 25px 0 rgba(0,0,0,.15);border-radius:5px;background:#fff}.panel .panel-content{padding:20px}modal{display:none}.modal-open{overflow:hidden}.modal-overlay{display:none;overflow-y:auto;z-index:10;top:0;right:0;bottom:0;left:0;position:fixed;background:#000;opacity:.75}.modal-open .modal-overlay{display:block}.modal-container{-webkit-animation:fade-in-white .3s ease-in-out;animation:fade-in-white .3s ease-in-out;z-index:11;margin-left:-350px;width:600px;max-width:80%;background:#fff;position:fixed;left:50%;top:100px;margin-bottom:100px;-webkit-box-shadow:0 15px 25px 0 rgba(0,0,0,.03),0 20px 45px 5px rgba(0,0,0,.2);box-shadow:0 15px 25px 0 rgba(0,0,0,.03),0 20px 45px 5px rgba(0,0,0,.2);-webkit-animation:jelly .5s ease-in-out;animation:jelly .5s ease-in-out;border-radius:5px}.modal-container .modal-header{padding:20px}.modal-container .modal-header h3{display:inline-block;font-size:20px;color:#3a3a3a;margin:0}.modal-container .modal-header .icon{float:right;cursor:pointer}.modal-container .modal-body{padding:20px}.modal-container .modal-body .control-group .control{width:100%}.label{background:#e7e7e7;border-radius:2px;padding:8px;color:#000311;display:inline-block}.label.label-sm{padding:5px}.label.label-md{padding:8px}.label.label-lg{padding:11px}.label.label-xl{padding:14px}.badge{border-radius:50px;color:#fff;padding:8px;white-space:nowrap}.badge.badge-sm{padding:5px}.badge.badge-md{padding:3px 10px}.badge.badge-lg{padding:11px}.badge.badge-xl{padding:14px}.badge.badge-success{background-color:#4caf50}.badge.badge-info{background-color:#0041ff}.badge.badge-danger{background-color:#fc6868}.badge.badge-warning{background-color:#ffc107}.image-wrapper{margin-bottom:20px;margin-top:10px;display:inline-block;width:100%}.image-wrapper .image-item{width:200px;height:200px;margin-right:20px;background:#f8f9fa;border-radius:3px;display:inline-block;position:relative;background-image:url("../images/placeholder-icon.svg");background-repeat:no-repeat;background-position:50%;margin-bottom:20px}.image-wrapper .image-item img.preview{width:100%;height:100%}.image-wrapper .image-item input{display:none}.image-wrapper .image-item .remove-image{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.08)),to(rgba(0,0,0,.24)));background-image:linear-gradient(-180deg,rgba(0,0,0,.08),rgba(0,0,0,.24));border-radius:0 0 4px 4px;position:absolute;bottom:0;width:100%;padding:10px;text-align:center;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.24);margin-right:20px;cursor:pointer}.image-wrapper .image-item:hover .remove-image{display:block}.image-wrapper .image-item.has-image{background-image:none}.cp-spinner{width:48px;height:48px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.cp-round:before{border-radius:50%;border:6px solid #bababa}.cp-round:after,.cp-round:before{content:" ";width:48px;height:48px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;top:0;left:0}.cp-round:after{border-radius:50%;border-top:6px solid #0041ff;border-right:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid transparent;-webkit-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} \ No newline at end of file +.active.configuration-icon,.catalog-icon,.configuration-icon,.customer-icon,.dashboard-icon,.sales-icon,.settings-icon{width:48px;height:48px;display:inline-block;background-size:cover}.icon{display:inline-block;background-size:cover}.dashboard-icon{background-image:url("../images/Icon-Dashboard.svg")}.sales-icon{background-image:url("../images/Icon-Sales.svg")}.catalog-icon{background-image:url("../images/Icon-Catalog.svg")}.customer-icon{background-image:url("../images/Icon-Customers.svg")}.configuration-icon{background-image:url("../images/Icon-Configure.svg")}.settings-icon{background-image:url("../images/Icon-Settings.svg")}.angle-right-icon{background-image:url("../images/Angle-Right.svg");width:17px;height:17px}.angle-left-icon{background-image:url("../images/Angle-Left.svg");width:17px;height:17px}.arrow-down-icon{background-image:url("../images/Arrow-Down-Light.svg");width:14px;height:8px}.arrow-right-icon{background-image:url("../images/Arrow-Right.svg");width:18px;height:18px}.white-cross-sm-icon{background-image:url("../images/Icon-Sm-Cross-White.svg");width:18px;height:18px}.accordian-up-icon{background-image:url("../images/Accordion-Arrow-Up.svg");width:24px;height:24px}.accordian-down-icon{background-image:url("../images/Accordion-Arrow-Down.svg");width:24px;height:24px}.cross-icon{background-image:url("../images/Icon-Crossed.svg");width:18px;height:18px}.trash-icon{background-image:url("../images/Icon-Trash.svg");width:24px;height:24px}.remove-icon{background-image:url("../images/Icon-remove.svg");width:24px;height:24px}.pencil-lg-icon{background-image:url("../images/Icon-Pencil-Large.svg");width:24px;height:24px}.eye-icon{background-image:url("../images/Icon-eye.svg");width:24px;height:24px}.search-icon{background-image:url("../images/icon-search.svg");width:24px;height:24px}.sortable-icon{background-image:url("../images/Icon-Sortable.svg");width:24px;height:24px}.sort-down-icon,.sort-up-icon{background-image:url("../images/Icon-Sort-Down.svg");width:18px;height:18px}.sort-up-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.primary-back-icon{background-image:url("../images/Icon-Back-Primary.svg");width:24px;height:24px}.checkbox-dash-icon{background-image:url("../images/Checkbox-Dash.svg");width:24px;height:24px}.account-icon{background-image:url("../images/icon-account.svg");width:24px;height:24px}.expand-icon{background-image:url("../images/Expand-Light.svg");width:18px;height:18px}.expand-on-icon{background-image:url("../images/Expand-Light-On.svg");width:18px;height:18px}.dark-left-icon{background-image:url("../images/arrow-left-dark.svg");width:18px;height:18px}.light-right-icon{background-image:url("../images/arrow-right-light.svg");width:18px;height:18px}.folder-icon{background-image:url("../images/Folder-Icon.svg");width:24px;height:24px}.star-icon{background-image:url("../images/Star-Icon.svg");width:24px;height:24px}.arrow-down-white-icon{background-image:url("../images/down-arrow-white.svg");width:17px;height:13px}.arrow-up-white-icon{background-image:url("../images/up-arrow-white.svg");width:17px;height:13px}.profile-pic-icon{background-image:url("../images/Profile-Pic.svg");width:60px;height:60px}.graph-up-icon{background-image:url("../images/Icon-Graph-Green.svg");width:24px;height:24px}.graph-down-icon{background-image:url("../images/Icon-Graph-Red.svg");width:24px;height:24px}.no-result-icon{background-image:url("../images/limited-icon.svg");width:52px;height:47px}.active .dashboard-icon{background-image:url("../images/Icon-Dashboard-Active.svg")}.active .sales-icon{background-image:url("../images/Icon-Sales-Active.svg")}.active .catalog-icon{background-image:url("../images/Icon-Catalog-Active.svg")}.active .customer-icon{background-image:url("../images/Icon-Customers-Active.svg")}.active .settings-icon{background-image:url("../images/Icon-Settings-Active.svg")}.active .configuration-icon{background-image:url("../images/Icon-Configure-Active.svg")}.active>.arrow-down-icon{background-image:url("../images/Arrow-Down.svg");width:14px;height:8px}.active>.expand-icon{background-image:url("../images/Expand-Light-On.svg")}.active.dashboard-icon{background-image:url("../images/Icon-Dashboard-Active.svg")}.active.customer-icon{background-image:url("../images/Icon-Customers-Active.svg")}.active.sales-icon{background-image:url("../images/Icon-Sales-Active.svg")}.active.settings-icon{background-image:url("../images/Icon-Settings-Active.svg")}.active.configuration-icon{background-image:url("../images/Icon-Configure-Active.svg")}.active.arrow-down-icon{background-image:url("../images/Arrow-Down.svg");width:14px;height:8px}.active.expand-icon{background-image:url("../images/Expand-Light-On.svg")}.icon-404{background-image:url("../images/404-image.svg");width:255px;height:255px}.export-icon{background-image:url("../images/Icon-Export.svg");width:32px;height:32px}.grid-container .filter-wrapper{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.grid-container .filter-wrapper .filter-row-one,.grid-container .filter-wrapper .filter-row-two{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.grid-container .filter-wrapper .filter-row-one{height:40px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.grid-container .filter-wrapper .filter-row-one .search-filter .control{font-family:montserrat,sans-serif;padding-left:10px;width:380px;height:36px;border:2px solid #c7c7c7;border-radius:3px;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;font-size:14px}.grid-container .filter-wrapper .filter-row-one .search-filter .ic-wrapper{display:block;height:36px;width:36px;border:2px solid #c7c7c7;border-left:none;border-radius:2px}.grid-container .filter-wrapper .filter-row-one .search-filter .ic-wrapper .search-icon{margin-left:4px;margin-top:4px;height:24px;width:24px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-family:montserrat,sans-serif;padding-left:5px;height:36px;width:150px;border:2px solid #c7c7c7;border-radius:2px;background-color:#fff;color:#8e8e8e;font-size:14px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle .dropdown-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle .dropdown-header{width:100%;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle .dropdown-header .arrow-down-icon{margin-right:5px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul li.filter-column-dropdown .filter-column-select,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul li input,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul li select{width:100%;background:#fff;border:2px solid #c7c7c7;border-radius:3px;height:36px;display:inline-block;vertical-align:middle;-webkit-transition:.2s cubic-bezier(.4,0,.2,1);transition:.2s cubic-bezier(.4,0,.2,1);padding:0 5px;font-family:montserrat,sans-serif;margin-top:10px;margin-bottom:5px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-boolean,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-datetime,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-number,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-string,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-boolean,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-datetime,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-number,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-string{display:none}.grid-container .filter-wrapper .filter-row-two{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:6px;margin-bottom:6px}.grid-container .filter-wrapper .filter-row-two .filter-one{margin-right:10px}.grid-container .filter-wrapper .filter-row-two .filter-one .filter-name{margin-right:5px}.grid-container .filter-wrapper .filter-row-two .filter-one .filter-value{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;background:#e7e7e7;padding-left:5px;color:#000311;vertical-align:middle}.grid-container .filter-wrapper .filter-row-two .filter-one .filter-value .f-value{margin:auto}.grid-container .filter-wrapper .filter-row-two .filter-one .filter-value .cross-icon{margin:5px;height:18px!important;width:18px!important;cursor:pointer}.grid-container .table thead .mass-action-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.grid-container .table thead .mass-action-wrapper .massaction-remove{margin-top:4px;margin-right:10px}.grid-container .table thead .mass-action-wrapper .selected-items{margin-right:15px}.grid-container .table thead tr th.grid_head .sort-down-icon,.grid-container .table thead tr th.grid_head .sort-up-icon{margin-left:5px;margin-top:-3px;vertical-align:middle}.grid-container .table thead tr th.grid_head.sortable{cursor:pointer}.grid-container .table thead tr th{text-transform:capitalize}.grid-container .table tbody td.action a:first-child{margin-right:10px}.grid-container .table .pagination{margin-top:20px}@-webkit-keyframes jelly{0%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:0}70%{-webkit-transform:translateY(5px) scale(1.05);transform:translateY(5px) scale(1.05);opacity:1}to{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);opacity:1}}@keyframes jelly{0%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:0}70%{-webkit-transform:translateY(5px) scale(1.05);transform:translateY(5px) scale(1.05);opacity:1}to{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);opacity:1}}@-webkit-keyframes jelly-out{0%{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);opacity:1}30%{-webkit-transform:translateY(-5px) scale(1.05);transform:translateY(-5px) scale(1.05);opacity:1}to{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:0}}@keyframes jelly-out{0%{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);opacity:1}30%{-webkit-transform:translateY(-5px) scale(1.05);transform:translateY(-5px) scale(1.05);opacity:1}to{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:0}}*{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus{outline:none}a:active,a:focus,a:hover,a:link,a:visited{text-decoration:none;color:#0041ff}textarea{resize:none}ul{margin:0;padding:0;list-style:none}h1{font-size:28px;margin-top:0}h1,h2{color:#3a3a3a}h2{font-size:18px}.tooltip{position:relative;border-bottom:1px solid #000}.tooltip .tooltiptext{visibility:hidden;width:120px;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px 0;position:absolute;z-index:1}.tooltip:hover .tooltiptext{visibility:visible}.hide{display:none!important}.btn{-webkit-box-shadow:0 1px 4px 0 rgba(0,0,0,.2),0 0 8px 0 rgba(0,0,0,.1);box-shadow:0 1px 4px 0 rgba(0,0,0,.2),0 0 8px 0 rgba(0,0,0,.1);border-radius:3px;border:none;color:#fff;cursor:pointer;-webkit-transition:.2s cubic-bezier(.4,0,.2,1);transition:.2s cubic-bezier(.4,0,.2,1);font:inherit;display:inline-block}.btn:active,.btn:focus,.btn:hover{opacity:.75;border:none}.btn.btn-sm{padding:6px 12px}.btn.btn-md{padding:8px 16px}.btn.btn-lg{padding:10px 20px}.btn.btn-xl{padding:12px 24px;font-size:16px}.btn.btn-primary{background:#0041ff;color:#fff}.btn.btn-black{background:#000;color:#fff}.btn:disabled,.btn[disabled=disabled],.btn[disabled=disabled]:active,.btn[disabled=disabled]:hover{cursor:not-allowed;background:#b1b1ae;-webkit-box-shadow:none;box-shadow:none;opacity:1}.dropdown-open{position:relative}.dropdown-list{width:200px;margin-bottom:20px;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 0 9px 0 rgba(0,0,0,.16);box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 0 9px 0 rgba(0,0,0,.16);border-radius:3px;background-color:#fff;position:absolute;display:none;z-index:10;text-align:left}.dropdown-list.bottom-left{top:42px;left:0}.dropdown-list.bottom-right{top:42px;right:0}.dropdown-list.top-left{bottom:42px;left:0}.dropdown-list.top-right{bottom:42px;right:0}.dropdown-list .search-box{padding:20px;border-bottom:1px solid hsla(0,0%,64%,.2)}.dropdown-list .search-box .control{background:#fff;border:2px solid #c7c7c7;border-radius:3px;width:100%;height:36px;display:inline-block;vertical-align:middle;-webkit-transition:.2s cubic-bezier(.4,0,.2,1);transition:.2s cubic-bezier(.4,0,.2,1);padding:0 10px;font-size:15px}.dropdown-list .search-box .control:focus{border-color:#0041ff}.dropdown-list .dropdown-container{padding:20px;overflow-y:auto;max-height:280px}.dropdown-list .dropdown-container label{font-size:15px;display:inline-block;text-transform:uppercase;color:#9e9e9e;font-weight:700;padding-bottom:5px}.dropdown-list .dropdown-container ul{margin:0;list-style-type:none;padding:0}.dropdown-list .dropdown-container ul li{padding:5px 0}.dropdown-list .dropdown-container ul li a:active,.dropdown-list .dropdown-container ul li a:focus,.dropdown-list .dropdown-container ul li a:link,.dropdown-list .dropdown-container ul li a:visited{color:#333;display:block}.dropdown-list .dropdown-container ul li a:hover{color:#0041ff}.dropdown-list .dropdown-container ul li .checkbox{margin:0}.dropdown-list .dropdown-container ul li .control-group label{color:#3a3a3a;font-size:15px;font-weight:500;text-transform:capitalize;width:100%}.dropdown-list .dropdown-container .btn{width:100%;margin-top:10px}.table{width:100%;overflow-x:auto}.table table{width:100%;border-collapse:collapse;text-align:left}.table table thead th{font-weight:700;padding:12px 10px;background:#f8f9fa;color:#3a3a3a}.table table tbody td{padding:10px;border-bottom:1px solid #d3d3d3;color:#3a3a3a;vertical-align:top}.table table tbody td.actions{text-align:right}.table table tbody td.actions .icon{cursor:pointer;vertical-align:middle}.table table tbody td.empty{text-align:center}.table table tbody tr:last-child td{border-bottom:none}.table .control-group{width:100%;margin-bottom:0}.table .control-group .control{width:100%;margin:0}.dropdown-btn{min-width:150px;text-align:left;background:#fff;border:2px solid #c7c7c7;border-radius:3px;font-size:14px;padding:8px 35px 8px 10px;cursor:pointer;position:relative}.dropdown-btn:active,.dropdown-btn:focus,.dropdown-btn:hover{opacity:.75;border:2px solid #c7c7c7}.dropdown-btn .icon{position:absolute;right:10px;top:50%;margin-top:-4px}.pagination .page-item{background:#fff;border:2px solid #c7c7c7;border-radius:3px;padding:7px 14px;margin-right:5px;font-size:16px;display:inline-block;color:#8e8e8e;vertical-align:middle;text-decoration:none}.pagination .page-item.next,.pagination .page-item.previous{padding:6px 9px}.pagination .page-item.active{background:#0041ff;color:#fff;border-color:#0041ff}.pagination .page-item .icon{vertical-align:middle;margin-bottom:3px}.checkbox{position:relative;display:block;vertical-align:middle;margin:10px 5px 5px 0}.checkbox input{left:0;opacity:0;position:absolute;top:0;height:24px;width:24px;z-index:100}.checkbox .checkbox-view{background-image:url("../images/Checkbox.svg");height:24px;width:24px;margin:0;display:inline-block!important;vertical-align:middle;margin-right:5px}.checkbox input:checked+.checkbox-view{background-image:url("../images/Checkbox-Checked.svg")}.checkbox input:disabled+.checkbox-view{opacity:.5;cursor:not-allowed}.radio{position:relative;display:block;margin:10px 5px 5px 0}.radio input{left:0;opacity:0;position:absolute;top:0;z-index:100}.radio .radio-view{background-image:url("../images/controls.svg");background-position:-21px 0;height:20px;width:20px;margin:0;display:inline-block!important;vertical-align:middle;margin-right:5px}.radio input:checked+.radio-view{background-position:-21px -21px}.radio input:disabled+.radio-view{opacity:.5;cursor:not-allowed}.control-group{display:block;margin-bottom:25px;font-size:15px;color:#333;width:750px;max-width:100%;position:relative}.control-group label{display:block;color:#3a3a3a}.control-group label.required:after{content:"*";color:#fc6868;font-weight:700;display:inline-block}.control-group textarea.control{height:100px;padding:10px}.control-group .control{background:#fff;border:2px solid #c7c7c7;border-radius:3px;width:70%;height:36px;display:inline-block;vertical-align:middle;-webkit-transition:.2s cubic-bezier(.4,0,.2,1);transition:.2s cubic-bezier(.4,0,.2,1);padding:0 10px;font-size:15px;margin-top:10px;margin-bottom:5px}.control-group .control:focus{border-color:#0041ff}.control-group .control[disabled=disabled]{border-color:#d3d3d3;background-color:#d3d3d3;cursor:not-allowed}.control-group .control[multiple]{height:100px}.control-group.date:after,.control-group.datetime:after{background-image:url("../images/Icon-Calendar.svg");width:24px;height:24px;content:"";display:inline-block;vertical-align:middle;margin-left:-34px;margin-top:2px;pointer-events:none}.control-group .control-info{display:block;font-style:italic;color:#6f6f6f}.control-group .control-error{display:none;color:#ff5656;margin-top:5px}.control-group.has-error .control{border-color:#fc6868}.control-group.has-error .control-error{display:block}.control-group.price .currency-code{vertical-align:middle;display:inline-block}.button-group{margin-top:20px;margin-bottom:20px}.alert-wrapper{width:300px;top:10px;right:10px;position:fixed;z-index:6;text-align:left}.alert-wrapper .alert{width:300px;padding:15px;border-radius:3px;display:inline-block;-webkit-box-shadow:0 4px 15.36px .64px rgba(0,0,0,.1),0 2px 6px 0 rgba(0,0,0,.12);box-shadow:0 4px 15.36px .64px rgba(0,0,0,.1),0 2px 6px 0 rgba(0,0,0,.12);position:relative;-webkit-animation:jelly .5s ease-in-out;animation:jelly .5s ease-in-out;-webkit-transform-origin:center top;transform-origin:center top;z-index:500;margin-bottom:10px}.alert-wrapper .alert.alert-error{background:#fc6868}.alert-wrapper .alert.alert-info{background:#204d74}.alert-wrapper .alert.alert-success{background:#4caf50}.alert-wrapper .alert.alert-warning{background:#ffc107}.alert-wrapper .alert .icon{position:absolute;right:10px;top:10px;cursor:pointer}.alert-wrapper .alert p{color:#fff;margin:0;padding:0;font-size:15px}.tabs ul{border-bottom:1px solid hsla(0,0%,64%,.2)}.tabs ul li{display:inline-block}.tabs ul li a{padding:15px 20px;cursor:pointer;margin:0 2px;text-align:center;color:#000311;display:block}.tabs ul li.active a{border-bottom:3px solid #0041ff}.accordian,accordian{display:inline-block;width:100%}.accordian .accordian-header,.accordian div[slot*=header],accordian .accordian-header,accordian div[slot*=header]{width:100%;display:inline-block;font-size:18px;color:#3a3a3a;border-bottom:1px solid hsla(0,0%,64%,.2);padding:20px 15px;cursor:pointer}.accordian .accordian-header .expand-icon,.accordian div[slot*=header] .expand-icon,accordian .accordian-header .expand-icon,accordian div[slot*=header] .expand-icon{background-image:url("../images/Expand-Light.svg");margin-right:10px;margin-top:3px}.accordian .accordian-header h1,.accordian div[slot*=header] h1,accordian .accordian-header h1,accordian div[slot*=header] h1{margin:0;font-size:20px;display:inline-block}.accordian .accordian-header .icon,.accordian div[slot*=header] .icon,accordian .accordian-header .icon,accordian div[slot*=header] .icon{float:right}.accordian .accordian-header .icon.left,.accordian div[slot*=header] .icon.left,accordian .accordian-header .icon.left,accordian div[slot*=header] .icon.left{float:left}.accordian .accordian-content,.accordian div[slot*=body],accordian .accordian-content,accordian div[slot*=body]{width:100%;padding:20px 15px;display:none;-webkit-transition:all .3s ease;transition:all .3s ease}.accordian.active>.accordian-content,accordian.active>.accordian-content{display:inline-block}.accordian.active>.accordian-header .expand-icon,accordian.active>.accordian-header .expand-icon{background-image:url("../images/Expand-Light-On.svg")}.tree-container .tree-item{padding-left:30px;display:inline-block;margin-top:10px;width:100%}.tree-container .tree-item>.tree-item{display:none}.tree-container .tree-item.active>.tree-item{display:inline-block}.tree-container .tree-item .checkbox,.tree-container .tree-item .radio{margin:0;display:inline-block}.tree-container .tree-item .expand-icon{display:inline-block;margin-right:10px;cursor:pointer;background-image:url("../images/Expand-Light.svg");width:18px;height:18px;vertical-align:middle}.tree-container .tree-item .folder-icon{vertical-align:middle;margin-right:10px}.tree-container .tree-item.active>.expand-icon{background-image:url("../images/Expand-Light-On.svg")}.tree-container>.tree-item{padding-left:0}.panel{-webkit-box-shadow:0 2px 25px 0 rgba(0,0,0,.15);box-shadow:0 2px 25px 0 rgba(0,0,0,.15);border-radius:5px;background:#fff}.panel .panel-content{padding:20px}modal{display:none}.modal-open{overflow:hidden}.modal-overlay{display:none;overflow-y:auto;z-index:10;top:0;right:0;bottom:0;left:0;position:fixed;background:#000;opacity:.75}.modal-open .modal-overlay{display:block}.modal-container{-webkit-animation:fade-in-white .3s ease-in-out;animation:fade-in-white .3s ease-in-out;z-index:11;margin-left:-350px;width:600px;max-width:80%;background:#fff;position:fixed;left:50%;top:100px;margin-bottom:100px;-webkit-box-shadow:0 15px 25px 0 rgba(0,0,0,.03),0 20px 45px 5px rgba(0,0,0,.2);box-shadow:0 15px 25px 0 rgba(0,0,0,.03),0 20px 45px 5px rgba(0,0,0,.2);-webkit-animation:jelly .5s ease-in-out;animation:jelly .5s ease-in-out;border-radius:5px}.modal-container .modal-header{padding:20px}.modal-container .modal-header h3{display:inline-block;font-size:20px;color:#3a3a3a;margin:0}.modal-container .modal-header .icon{float:right;cursor:pointer}.modal-container .modal-body{padding:20px}.modal-container .modal-body .control-group .control{width:100%}.label{background:#e7e7e7;border-radius:2px;padding:8px;color:#000311;display:inline-block}.label.label-sm{padding:5px}.label.label-md{padding:8px}.label.label-lg{padding:11px}.label.label-xl{padding:14px}.badge{border-radius:50px;color:#fff;padding:8px;white-space:nowrap}.badge.badge-sm{padding:5px}.badge.badge-md{padding:3px 10px}.badge.badge-lg{padding:11px}.badge.badge-xl{padding:14px}.badge.badge-success{background-color:#4caf50}.badge.badge-info{background-color:#0041ff}.badge.badge-danger{background-color:#fc6868}.badge.badge-warning{background-color:#ffc107}.image-wrapper{margin-bottom:20px;margin-top:10px;display:inline-block;width:100%}.image-wrapper .image-item{width:200px;height:200px;margin-right:20px;background:#f8f9fa;border-radius:3px;display:inline-block;position:relative;background-image:url("../images/placeholder-icon.svg");background-repeat:no-repeat;background-position:50%;margin-bottom:20px}.image-wrapper .image-item img.preview{width:100%;height:100%}.image-wrapper .image-item input{display:none}.image-wrapper .image-item .remove-image{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.08)),to(rgba(0,0,0,.24)));background-image:linear-gradient(-180deg,rgba(0,0,0,.08),rgba(0,0,0,.24));border-radius:0 0 4px 4px;position:absolute;bottom:0;width:100%;padding:10px;text-align:center;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.24);margin-right:20px;cursor:pointer}.image-wrapper .image-item:hover .remove-image{display:block}.image-wrapper .image-item.has-image{background-image:none}.cp-spinner{width:48px;height:48px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.cp-round:before{border-radius:50%;border:6px solid #bababa}.cp-round:after,.cp-round:before{content:" ";width:48px;height:48px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;top:0;left:0}.cp-round:after{border-radius:50%;border-top:6px solid #0041ff;border-right:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid transparent;-webkit-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} \ No newline at end of file diff --git a/packages/Webkul/Ui/publishable/assets/mix-manifest.json b/packages/Webkul/Ui/publishable/assets/mix-manifest.json index 0d7aa70ea..541b12927 100644 --- a/packages/Webkul/Ui/publishable/assets/mix-manifest.json +++ b/packages/Webkul/Ui/publishable/assets/mix-manifest.json @@ -1,4 +1,4 @@ { "/js/ui.js": "/js/ui.js?id=c3ee60fd11e29aca2922", - "/css/ui.css": "/css/ui.css?id=8d57ae10a97f50169f1f" + "/css/ui.css": "/css/ui.css?id=014ff883008a2459b5e1" } \ No newline at end of file From ebbad1013fbfbd88a2a4837ddfd803b06f94f0c8 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Mon, 24 Dec 2018 13:19:39 +0530 Subject: [PATCH 02/15] datagrid checkbox alignment issue resolved --- packages/Webkul/Ui/src/Resources/assets/sass/app.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/Webkul/Ui/src/Resources/assets/sass/app.scss b/packages/Webkul/Ui/src/Resources/assets/sass/app.scss index 6b86cfc6c..a48d0322c 100644 --- a/packages/Webkul/Ui/src/Resources/assets/sass/app.scss +++ b/packages/Webkul/Ui/src/Resources/assets/sass/app.scss @@ -355,7 +355,7 @@ h2 { position: relative; display: block; vertical-align: middle; - margin: 10px 5px 5px 0px; + margin: 0px 5px 5px 0px; input { left: 0; From 14ee9beb698f0c319a5cb254f7f8a15235f9fdf3 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Mon, 24 Dec 2018 15:33:39 +0530 Subject: [PATCH 03/15] Slider validation fix, wasn't able to create slider layers --- .../Webkul/Shop/src/Http/Controllers/SliderController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/Webkul/Shop/src/Http/Controllers/SliderController.php b/packages/Webkul/Shop/src/Http/Controllers/SliderController.php index 64fa39343..6e0d60a6d 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/SliderController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/SliderController.php @@ -57,7 +57,7 @@ class SliderController extends controller $this->validate(request(), [ 'title' => 'string|required', 'channel_id' => 'required', - 'image' => 'required|mimes:jpeg,bmp,png' + 'image.*' => 'required|mimes:jpeg,bmp,png,jpg' ]); $result = $this->slider->save(request()->all()); @@ -90,7 +90,7 @@ class SliderController extends controller $this->validate(request(), [ 'title' => 'string|required', 'channel_id' => 'required', - 'image' => 'sometimes|mimes:jpeg,bmp,png' + 'image.*' => 'sometimes|mimes:jpeg,bmp,png,jpg' ]); $result = $this->slider->updateItem(request()->all(), $id); From ee0ab9107df85bed00f0ebd6a60cc3e6cb62e4dd Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Wed, 26 Dec 2018 13:59:51 +0530 Subject: [PATCH 04/15] Shipping origin configuration --- .../views/configuration/field-type.blade.php | 5 -- .../Webkul/Shipping/src/Config/system.php | 52 +++++++++++++++++++ 2 files changed, 52 insertions(+), 5 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php b/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php index bb32a82ff..7a0399cd1 100644 --- a/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php @@ -51,11 +51,8 @@ @elseif ($field['type'] == 'select') - - @endif @{{ errors.first('{!! $firstField !!}[{!! $secondField !!}][{!! $field['name'] !!}]') }} diff --git a/packages/Webkul/Shipping/src/Config/system.php b/packages/Webkul/Shipping/src/Config/system.php index 9f1553fc9..4b52a179b 100644 --- a/packages/Webkul/Shipping/src/Config/system.php +++ b/packages/Webkul/Shipping/src/Config/system.php @@ -97,5 +97,57 @@ return [ 'validation' => 'required' ] ] + ], [ + 'key' => 'sales.shipping', + 'name' => 'Shipping Origin', + 'sort' => 0 + ], [ + 'key' => 'sales.shipping.origin', + 'name' => 'Origin', + 'sort' => 0, + 'fields' => [ + [ + 'name' => 'country', + 'title' => 'Country', + 'type' => 'text', + 'validation' => 'required', + 'channel_based' => true, + 'locale_based' => false + ], [ + 'name' => 'state', + 'title' => 'State', + 'type' => 'text', + 'validation' => 'required', + 'channel_based' => true, + 'locale_based' => false + ], [ + 'name' => 'address1', + 'title' => 'Address Line 1', + 'type' => 'text', + 'validation' => 'required', + 'channel_based' => true, + 'locale_based' => false + ], [ + 'name' => 'address2', + 'title' => 'Address Line 2', + 'type' => 'text', + 'channel_based' => true, + 'locale_based' => false + ], [ + 'name' => 'zipcode', + 'title' => 'Zip', + 'type' => 'text', + 'validation' => 'required', + 'channel_based' => true, + 'locale_based' => false + ], [ + 'name' => 'city', + 'title' => 'City', + 'type' => 'text', + 'validation' => 'required', + 'channel_based' => true, + 'locale_based' => false + ] + ] ] ]; \ No newline at end of file From 2e668c70201ff70e97b60c786891382053378a10 Mon Sep 17 00:00:00 2001 From: jitendra Date: Wed, 26 Dec 2018 15:30:23 +0530 Subject: [PATCH 05/15] Inventory source selection feature added during shipment creation --- README.md | 9 +- .../src/DataGrids/OrderShipmentsDataGrid.php | 12 ++ .../Controllers/Sales/ShipmentController.php | 94 +++++++--- packages/Webkul/Admin/src/Listeners/Order.php | 5 - .../Webkul/Admin/src/Listeners/Product.php | 14 -- .../Admin/src/Resources/assets/sass/app.scss | 4 + .../Admin/src/Resources/lang/en/app.php | 8 +- .../views/sales/orders/view.blade.php | 6 +- .../views/sales/shipments/create.blade.php | 171 +++++++++++++----- .../views/sales/shipments/view.blade.php | 12 ++ .../views/settings/channels/create.blade.php | 12 ++ .../views/settings/channels/edit.blade.php | 13 ++ packages/Webkul/Admin/webpack.mix.js | 4 +- ...create_channel_inventory_sources_table.php | 35 ++++ .../Http/Controllers/ChannelController.php | 1 + packages/Webkul/Core/src/Models/Channel.php | 11 +- .../src/Repositories/ChannelRepository.php | 4 + ...eate_product_salable_inventories_table.php | 38 ++++ .../Webkul/Product/src/Models/Product.php | 29 ++- .../src/Models/ProductSalableInventory.php | 38 ++++ .../ProductInventoryRepository.php | 29 ++- .../ProductSalableInventoryRepository.php | 64 +++++++ .../src/Contracts/OrderItemInventory.php | 7 - ...18_12_24_184402_alter_shipments_table.php} | 11 +- packages/Webkul/Sales/src/Models/Order.php | 12 +- .../Webkul/Sales/src/Models/OrderItem.php | 22 +-- .../Sales/src/Models/OrderItemInventory.php | 19 -- .../src/Models/OrderItemInventoryProxy.php | 10 - packages/Webkul/Sales/src/Models/Shipment.php | 12 +- .../src/Providers/ModuleServiceProvider.php | 1 - .../OrderItemInventoryRepository.php | 78 -------- .../src/Repositories/OrderItemRepository.php | 31 +++- .../src/Repositories/OrderRepository.php | 16 +- .../Repositories/ShipmentItemRepository.php | 56 ++++++ .../src/Repositories/ShipmentRepository.php | 48 ++++- .../Repositories/ShipmenttemRepository.php | 27 --- 36 files changed, 676 insertions(+), 287 deletions(-) create mode 100644 packages/Webkul/Core/src/Database/Migrations/2018_12_24_123812_create_channel_inventory_sources_table.php create mode 100644 packages/Webkul/Product/src/Database/Migrations/2018_12_24_125915_create_product_salable_inventories_table.php create mode 100644 packages/Webkul/Product/src/Models/ProductSalableInventory.php create mode 100644 packages/Webkul/Product/src/Repositories/ProductSalableInventoryRepository.php delete mode 100644 packages/Webkul/Sales/src/Contracts/OrderItemInventory.php rename packages/Webkul/Sales/src/Database/Migrations/{2018_10_04_124730_create_order_item_inventories.php => 2018_12_24_184402_alter_shipments_table.php} (54%) delete mode 100644 packages/Webkul/Sales/src/Models/OrderItemInventory.php delete mode 100644 packages/Webkul/Sales/src/Models/OrderItemInventoryProxy.php delete mode 100644 packages/Webkul/Sales/src/Repositories/OrderItemInventoryRepository.php create mode 100644 packages/Webkul/Sales/src/Repositories/ShipmentItemRepository.php delete mode 100644 packages/Webkul/Sales/src/Repositories/ShipmenttemRepository.php diff --git a/README.md b/README.md index 1761b74a8..bf9c1a56f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,12 @@ -                       ![Bagisto Logo](https://bagisto.com/wp-content/themes/bagisto/images/logo.png) +

+Total Downloads +

+

+Total Downloads +Latest Stable Version +License +

# Topics 1. ### Introduction diff --git a/packages/Webkul/Admin/src/DataGrids/OrderShipmentsDataGrid.php b/packages/Webkul/Admin/src/DataGrids/OrderShipmentsDataGrid.php index 9c2feae0a..c6e6f3e54 100644 --- a/packages/Webkul/Admin/src/DataGrids/OrderShipmentsDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/OrderShipmentsDataGrid.php @@ -53,6 +53,12 @@ class OrderShipmentsDataGrid 'primaryKey' => 'ship.order_id', 'condition' => '=', 'secondaryKey' => 'ors.id', + ], [ + 'join' => 'leftjoin', + 'table' => 'inventory_sources as is', + 'primaryKey' => 'ship.inventory_source_id', + 'condition' => '=', + 'secondaryKey' => 'is.id', ] ], @@ -82,6 +88,12 @@ class OrderShipmentsDataGrid 'type' => 'string', 'label' => 'Customer Name', 'sortable' => false, + ], [ + 'name' => 'is.name', + 'alias' => 'inventorySourceName', + 'type' => 'string', + 'label' => 'Inventory Source', + 'sortable' => true ], [ 'name' => 'ors.created_at', 'alias' => 'orscreated', diff --git a/packages/Webkul/Admin/src/Http/Controllers/Sales/ShipmentController.php b/packages/Webkul/Admin/src/Http/Controllers/Sales/ShipmentController.php index 69e8cda8d..7f2aede94 100644 --- a/packages/Webkul/Admin/src/Http/Controllers/Sales/ShipmentController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/Sales/ShipmentController.php @@ -5,8 +5,9 @@ namespace Webkul\Admin\Http\Controllers\Sales; use Illuminate\Http\Request; use Illuminate\Http\Response; use Webkul\Admin\Http\Controllers\Controller; -use Webkul\Sales\Repositories\OrderRepository as Order; use Webkul\Sales\Repositories\ShipmentRepository as Shipment; +use Webkul\Sales\Repositories\OrderRepository as Order; +use Webkul\Sales\Repositories\OrderItemRepository as OrderItem; /** * Sales Shipment controller @@ -23,28 +24,40 @@ class ShipmentController extends Controller */ protected $_config; - /** - * OrderRepository object - * - * @var array - */ - protected $order; - /** * ShipmentRepository object * - * @var array + * @var mixed */ protected $shipment; + /** + * OrderRepository object + * + * @var mixed + */ + protected $order; + + /** + * OrderItemRepository object + * + * @var mixed + */ + protected $orderItem; + /** * Create a new controller instance. * - * @param Webkul\Sales\Repositories\OrderRepository $order * @param Webkul\Sales\Repositories\ShipmentRepository $shipment + * @param Webkul\Sales\Repositories\OrderRepository $order + * @param Webkul\Sales\Repositories\OrderitemRepository $orderItem * @return void */ - public function __construct(Shipment $shipment, Order $order) + public function __construct( + Shipment $shipment, + Order $order, + OrderItem $orderItem + ) { $this->middleware('admin'); @@ -52,6 +65,8 @@ class ShipmentController extends Controller $this->order = $order; + $this->orderItem = $orderItem; + $this->shipment = $shipment; } @@ -76,6 +91,12 @@ class ShipmentController extends Controller { $order = $this->order->find($orderId); + if(!$order->channel || !$order->canShip()) { + session()->flash('error', 'Shipment can not be created for this order.'); + + return redirect()->back(); + } + return view($this->_config['view'], compact('order')); } @@ -99,21 +120,14 @@ class ShipmentController extends Controller $this->validate(request(), [ 'shipment.carrier_title' => 'required', 'shipment.track_number' => 'required', - 'shipment.items.*' => 'required|numeric|min:0', + 'shipment.source' => 'required', + 'shipment.items.*.*' => 'required|numeric|min:0', ]); $data = request()->all(); - - $haveProductToShip = false; - foreach ($data['shipment']['items'] as $itemId => $qty) { - if($qty) { - $haveProductToShip = true; - break; - } - } - if(!$haveProductToShip) { - session()->flash('error', 'Shipment can not be created without products.'); + if(!$this->isInventoryValidate($data)) { + session()->flash('error', 'Requested quantity is invalid or not available.'); return redirect()->back(); } @@ -125,6 +139,42 @@ class ShipmentController extends Controller return redirect()->route($this->_config['redirect'], $orderId); } + /** + * Checks if requested quantity available or not + * + * @param array $data + * @return boolean + */ + public function isInventoryValidate(&$data) + { + $valid = false; + + foreach ($data['shipment']['items'] as $itemId => $inventorySource) { + if ($qty = $inventorySource[$data['shipment']['source']]) { + $orderItem = $this->orderItem->find($itemId); + + $product = ($orderItem->type == 'configurable') + ? $orderItem->child->product + : $orderItem->product; + + // Check if requested qty is available, if not ship available qty + $inventory = $product->inventories() + ->where('inventory_source_id', $data['shipment']['source']) + ->first(); + + if ($orderItem->qty_to_ship < $qty || $inventory->qty < $qty) { + return false; + } + + $valid = true; + } else { + unset($data['shipment']['items'][$itemId]); + } + } + + return $valid; + } + /** * Show the view for the specified resource. * diff --git a/packages/Webkul/Admin/src/Listeners/Order.php b/packages/Webkul/Admin/src/Listeners/Order.php index 44a433981..377b4fbdd 100644 --- a/packages/Webkul/Admin/src/Listeners/Order.php +++ b/packages/Webkul/Admin/src/Listeners/Order.php @@ -64,10 +64,5 @@ class Order { */ public function updateProductInventory($order) { - $productListener = app(\Webkul\Admin\Listeners\Product::class); - - foreach ($order->items as $item) { - $productListener->afterOrderRecieved($item->product->id, $item->qty_ordered); - } } } \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Listeners/Product.php b/packages/Webkul/Admin/src/Listeners/Product.php index 1f259232f..cbe1b54b9 100644 --- a/packages/Webkul/Admin/src/Listeners/Product.php +++ b/packages/Webkul/Admin/src/Listeners/Product.php @@ -213,20 +213,6 @@ class Product { return true; } - /** - * Updates the product quantity when the order is received - * - * @param $productId - * @param $itemQuantity - */ - public function afterOrderRecieved($productId, $itemQuantity) { - $productGrid = $this->productGrid->findOneByField('product_id', $productId); - - $productGrid->update(['quantity' => $productGrid->quantity - $itemQuantity]); - - return true; - } - /** * Manually invoke this function when you have created the products by importing or seeding or factory. */ diff --git a/packages/Webkul/Admin/src/Resources/assets/sass/app.scss b/packages/Webkul/Admin/src/Resources/assets/sass/app.scss index bcce0777e..efed33611 100644 --- a/packages/Webkul/Admin/src/Resources/assets/sass/app.scss +++ b/packages/Webkul/Admin/src/Resources/assets/sass/app.scss @@ -481,6 +481,10 @@ body { margin-bottom: 0; } } + + .radio { + margin: 0; + } } .sale-summary { diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index faec0f03c..056e3501f 100644 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -191,9 +191,14 @@ return [ 'save-btn-title' => 'Save Shipment', 'qty-ordered' => 'Qty Ordered', 'qty-to-ship' => 'Qty to Ship', + 'available-sources' => 'Available Sources', + 'source' => 'Source', + 'select-source' => 'Please Select Source', + 'qty-available' => 'Qty Available', + 'inventory-source' => 'Inventory Source', 'carrier-title' => 'Carrier Title', 'tracking-number' => 'Tracking Number', - 'view-title' => 'Shipment #:shipment_id', + 'view-title' => 'Shipment #:shipment_id' ] ], 'catalog' => [ @@ -445,6 +450,7 @@ return [ 'default-locale' => 'Default Locale', 'currencies' => 'Currencies', 'base-currency' => 'Base Currency', + 'inventory_sources' => 'Inventory Sources', 'design' => 'Design', 'theme' => 'Theme', 'home_page_content' => 'Home Page Content', diff --git a/packages/Webkul/Admin/src/Resources/views/sales/orders/view.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/orders/view.blade.php index 7fa327cc3..a2940d97a 100644 --- a/packages/Webkul/Admin/src/Resources/views/sales/orders/view.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sales/orders/view.blade.php @@ -27,7 +27,7 @@ @endif - @if($order->canShip()) + @if($order->canShip() && $order->channel) {{ __('admin::app.sales.orders.shipment-btn-title') }} @@ -368,6 +368,7 @@ {{ __('admin::app.sales.shipments.order-id') }} {{ __('admin::app.sales.shipments.order-date') }} {{ __('admin::app.sales.shipments.customer-name') }} + {{ __('admin::app.sales.shipments.inventory-source') }} {{ __('admin::app.sales.shipments.total-qty') }} {{ __('admin::app.sales.shipments.action') }} @@ -382,6 +383,9 @@ #{{ $shipment->order->id }} {{ $shipment->order->created_at }} {{ $shipment->address->name }} + @if ($shipment->inventory_source) + {{ $shipment->inventory_source->name }} + @endif {{ $shipment->total_qty }} diff --git a/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php index 8c74de7fb..af2e0b615 100644 --- a/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php @@ -218,49 +218,7 @@
-
- - - - - - - - - - - - - @foreach ($order->items as $item) - @if ($item->qty_to_ship > 0) - - - - - - - @endif - @endforeach - - -
{{ __('admin::app.sales.orders.SKU') }}{{ __('admin::app.sales.orders.product-name') }}{{ __('admin::app.sales.shipments.qty-ordered') }}{{ __('admin::app.sales.shipments.qty-to-ship') }}
{{ $item->type == 'configurable' ? $item->child->sku : $item->sku }} - {{ $item->name }} - - @if ($html = $item->getOptionDetailHtml()) -

{{ $html }}

- @endif -
{{ $item->qty_ordered }} -
- - - - @verbatim - {{ errors.first('shipment[items][id ?>]') }} - @endverbatim - -
-
-
+
@@ -269,4 +227,129 @@ -@stop \ No newline at end of file +@stop + +@push('scripts') + + + + + +@endpush \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/views/sales/shipments/view.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/shipments/view.blade.php index 666ebb18d..9359dfbd6 100644 --- a/packages/Webkul/Admin/src/Resources/views/sales/shipments/view.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sales/shipments/view.blade.php @@ -191,6 +191,18 @@ + @if ($shipment->inventory_source) +
+ + {{ __('admin::app.sales.shipments.inventory-source') }} + + + + {{ $shipment->inventory_source->name }} + +
+ @endif +
{{ __('admin::app.sales.shipments.carrier-title') }} diff --git a/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php index 9055ca282..ebf463abb 100644 --- a/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php @@ -44,6 +44,18 @@
+
+ + + @{{ errors.first('inventory_sources[]') }} +
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php index 238074b2c..0802b67a9 100644 --- a/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php @@ -46,6 +46,19 @@
+
+ + inventory_sources->pluck('id')->toArray() ?> + + @{{ errors.first('inventory_sources[]') }} +
+
diff --git a/packages/Webkul/Admin/webpack.mix.js b/packages/Webkul/Admin/webpack.mix.js index 92e3d593b..3f72c18c8 100644 --- a/packages/Webkul/Admin/webpack.mix.js +++ b/packages/Webkul/Admin/webpack.mix.js @@ -1,8 +1,8 @@ const { mix } = require("laravel-mix"); require("laravel-mix-merge-manifest"); -var publicPath = 'publishable/assets'; -// var publicPath = "../../../public/vendor/webkul/admin/assets"; +// var publicPath = 'publishable/assets'; +var publicPath = "../../../public/vendor/webkul/admin/assets"; mix.setPublicPath(publicPath).mergeManifest(); mix.disableNotifications(); diff --git a/packages/Webkul/Core/src/Database/Migrations/2018_12_24_123812_create_channel_inventory_sources_table.php b/packages/Webkul/Core/src/Database/Migrations/2018_12_24_123812_create_channel_inventory_sources_table.php new file mode 100644 index 000000000..8f821264b --- /dev/null +++ b/packages/Webkul/Core/src/Database/Migrations/2018_12_24_123812_create_channel_inventory_sources_table.php @@ -0,0 +1,35 @@ +integer('channel_id')->unsigned(); + $table->integer('inventory_source_id')->unsigned(); + + $table->unique(['channel_id', 'inventory_source_id']); + $table->foreign('channel_id')->references('id')->on('channels')->onDelete('cascade'); + $table->foreign('inventory_source_id')->references('id')->on('inventory_sources')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('channel_inventory_sources'); + } +} diff --git a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php index e103e15dc..01336c106 100644 --- a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php +++ b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php @@ -120,6 +120,7 @@ class ChannelController extends Controller 'code' => ['required', 'unique:channels,code,' . $id, new \Webkul\Core\Contracts\Validations\Code], 'name' => 'required', 'locales' => 'required|array|min:1', + 'inventory_sources' => 'required|array|min:1', 'default_locale_id' => 'required', 'currencies' => 'required|array|min:1', 'base_currency_id' => 'required', diff --git a/packages/Webkul/Core/src/Models/Channel.php b/packages/Webkul/Core/src/Models/Channel.php index ba6bbbea9..2290967c6 100644 --- a/packages/Webkul/Core/src/Models/Channel.php +++ b/packages/Webkul/Core/src/Models/Channel.php @@ -3,9 +3,10 @@ namespace Webkul\Core\Models; use Illuminate\Database\Eloquent\Model; +use Illuminate\Support\Facades\Storage; use Webkul\Core\Models\Locale; use Webkul\Core\Models\Currency; -use Illuminate\Support\Facades\Storage; +use Webkul\Inventory\Models\InventorySource; class Channel extends Model { @@ -35,6 +36,14 @@ class Channel extends Model return $this->belongsToMany(Currency::class, 'channel_currencies'); } + /** + * Get the channel inventory sources. + */ + public function inventory_sources() + { + return $this->belongsToMany(InventorySource::class, 'channel_inventory_sources'); + } + protected $with = ['base_currency']; diff --git a/packages/Webkul/Core/src/Repositories/ChannelRepository.php b/packages/Webkul/Core/src/Repositories/ChannelRepository.php index a3d1f364b..7664b5f4d 100644 --- a/packages/Webkul/Core/src/Repositories/ChannelRepository.php +++ b/packages/Webkul/Core/src/Repositories/ChannelRepository.php @@ -35,6 +35,8 @@ class ChannelRepository extends Repository $channel->currencies()->sync($data['currencies']); + $channel->inventory_sources()->sync($data['inventory_sources']); + $this->uploadImages($data, $channel); $this->uploadImages($data, $channel, 'favicon'); @@ -58,6 +60,8 @@ class ChannelRepository extends Repository $channel->currencies()->sync($data['currencies']); + $channel->inventory_sources()->sync($data['inventory_sources']); + $this->uploadImages($data, $channel); $this->uploadImages($data, $channel, 'favicon'); diff --git a/packages/Webkul/Product/src/Database/Migrations/2018_12_24_125915_create_product_salable_inventories_table.php b/packages/Webkul/Product/src/Database/Migrations/2018_12_24_125915_create_product_salable_inventories_table.php new file mode 100644 index 000000000..349261f2e --- /dev/null +++ b/packages/Webkul/Product/src/Database/Migrations/2018_12_24_125915_create_product_salable_inventories_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->integer('qty')->default(0); + $table->integer('sold_qty')->default(0); + $table->integer('product_id')->unsigned(); + $table->integer('channel_id')->unsigned(); + + $table->unique(['product_id', 'channel_id']); + $table->foreign('product_id')->references('id')->on('products')->onDelete('cascade'); + $table->foreign('channel_id')->references('id')->on('channels')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('product_salable_inventories'); + } +} diff --git a/packages/Webkul/Product/src/Models/Product.php b/packages/Webkul/Product/src/Models/Product.php index 4bf20d078..b96eb751f 100644 --- a/packages/Webkul/Product/src/Models/Product.php +++ b/packages/Webkul/Product/src/Models/Product.php @@ -76,6 +76,14 @@ class Product extends Model return $this->hasMany(ProductInventory::class, 'product_id'); } + /** + * The salable inventories that belong to the product. + */ + public function salable_inventories() + { + return $this->hasMany(ProductSalableInventory::class, 'product_id'); + } + /** * The inventory sources that belong to the product. */ @@ -140,6 +148,16 @@ class Product extends Model return false; } + /** + * @param integer $qty + * + * @return bool + */ + public function inventory_source_qty($inventorySource) + { + return $this->inventories()->where('inventory_source_id', $inventorySource->id)->sum('qty'); + } + /** * @param integer $qty * @@ -147,15 +165,14 @@ class Product extends Model */ public function haveSufficientQuantity($qty) { - $inventories = $this->inventory_sources()->orderBy('priority', 'asc')->get(); + $salableInventories = $this->salable_inventories()->get(); $total = 0; - foreach($inventories as $inventorySource) { - if(!$inventorySource->status) - continue; - - $total += $inventorySource->pivot->qty; + foreach($salableInventories as $inventory) { + if($inventory->channel->id == core()->getCurrentChannel()->id) { + $total += $inventory->qty; + } } return $qty <= $total ? true : false; diff --git a/packages/Webkul/Product/src/Models/ProductSalableInventory.php b/packages/Webkul/Product/src/Models/ProductSalableInventory.php new file mode 100644 index 000000000..3cf72db82 --- /dev/null +++ b/packages/Webkul/Product/src/Models/ProductSalableInventory.php @@ -0,0 +1,38 @@ +belongsTo(Channel::class); + } + + // /** + // * Get the inventory source owns the product. + // */ + // public function inventory_source() + // { + // return $this->belongsTo(InventorySource::class); + // } + + /** + * Get the product that owns the product inventory. + */ + public function product() + { + return $this->belongsTo(Product::class); + } +} \ No newline at end of file diff --git a/packages/Webkul/Product/src/Repositories/ProductInventoryRepository.php b/packages/Webkul/Product/src/Repositories/ProductInventoryRepository.php index 40d8462de..d3cacaf5c 100644 --- a/packages/Webkul/Product/src/Repositories/ProductInventoryRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductInventoryRepository.php @@ -4,6 +4,7 @@ namespace Webkul\Product\Repositories; use Illuminate\Container\Container as App; use Webkul\Core\Eloquent\Repository; +use Webkul\Product\Repositories\ProductSalableInventoryRepository as SalableInventoryRepository; /** * Product Inventory Reposotory @@ -13,6 +14,30 @@ use Webkul\Core\Eloquent\Repository; */ class ProductInventoryRepository extends Repository { + + /** + * ProductSalableInventoryRepository object + * + * @var mixed + */ + protected $salableInventory; + + /** + * Create a new repository instance. + * + * @param Webkul\Product\Repositories\ProductSalableInventoryRepository $salableInventory + * @return void + */ + public function __construct( + SalableInventoryRepository $salableInventory, + App $app + ) + { + $this->salableInventory = $salableInventory; + + parent::__construct($app); + } + /** * Specify Model class name * @@ -24,7 +49,7 @@ class ProductInventoryRepository extends Repository } /** - * @param array $inventories + * @param array $data * @param mixed $product * @return mixed */ @@ -61,5 +86,7 @@ class ProductInventoryRepository extends Repository if($inventorySourceIds->count()) { $product->inventory_sources()->detach($inventorySourceIds); } + + $this->salableInventory->saveInventories($product); } } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Repositories/ProductSalableInventoryRepository.php b/packages/Webkul/Product/src/Repositories/ProductSalableInventoryRepository.php new file mode 100644 index 000000000..09ace49b3 --- /dev/null +++ b/packages/Webkul/Product/src/Repositories/ProductSalableInventoryRepository.php @@ -0,0 +1,64 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class ProductSalableInventoryRepository extends Repository +{ + /** + * Specify Model class name + * + * @return mixed + */ + function model() + { + return 'Webkul\Product\Models\ProductSalableInventory'; + } + + /** + * @param mixed $product + * @return mixed + */ + public function saveInventories($product) + { + foreach (core()->getAllChannels() as $channel) { + $inventorySourceIds = $channel->inventory_sources()->pluck('inventory_source_id'); + + $salableQty = 0; + + foreach ($product->inventories()->get() as $productInventory) { + if(is_numeric($index = $inventorySourceIds->search($productInventory->inventory_source->id))) { + $salableQty += $productInventory->qty; + } + } + + $salableInventory = $this->findOneWhere([ + 'product_id' => $product->id, + 'channel_id' => $channel->id, + ]); + + if($salableInventory) { + $salableQty -= $salableInventory->sold_qty; + + if ($salableQty < 0) + $salableQty = 0; + + $this->update(['qty' => $salableQty], $salableInventory->id); + } else { + $this->create([ + 'qty' => $salableQty, + 'product_id' => $product->id, + 'channel_id' => $channel->id, + ]); + } + } + } +} \ No newline at end of file diff --git a/packages/Webkul/Sales/src/Contracts/OrderItemInventory.php b/packages/Webkul/Sales/src/Contracts/OrderItemInventory.php deleted file mode 100644 index 7e3fb76cd..000000000 --- a/packages/Webkul/Sales/src/Contracts/OrderItemInventory.php +++ /dev/null @@ -1,7 +0,0 @@ -increments('id'); - $table->integer('qty')->default(0); + Schema::table('shipments', function (Blueprint $table) { $table->integer('inventory_source_id')->unsigned()->nullable(); - $table->integer('order_item_id')->unsigned()->nullable(); - $table->timestamps(); + $table->foreign('inventory_source_id')->references('id')->on('inventory_sources')->onDelete('set null'); }); } @@ -29,6 +26,6 @@ class CreateOrderItemInventories extends Migration */ public function down() { - Schema::dropIfExists('order_item_inventories'); + // } } diff --git a/packages/Webkul/Sales/src/Models/Order.php b/packages/Webkul/Sales/src/Models/Order.php index e9fac2ff7..49d5df70d 100644 --- a/packages/Webkul/Sales/src/Models/Order.php +++ b/packages/Webkul/Sales/src/Models/Order.php @@ -22,7 +22,8 @@ class Order extends Model implements OrderContract /** * Get the order items record associated with the order. */ - public function getCustomerFullNameAttribute() { + public function getCustomerFullNameAttribute() + { return $this->customer_first_name . ' ' . $this->customer_last_name; } @@ -53,21 +54,24 @@ class Order extends Model implements OrderContract /** * Get the order items record associated with the order. */ - public function items() { + public function items() + { return $this->hasMany(OrderItemProxy::modelClass())->whereNull('parent_id'); } /** * Get the order shipments record associated with the order. */ - public function shipments() { + public function shipments() + { return $this->hasMany(ShipmentProxy::modelClass()); } /** * Get the order invoices record associated with the order. */ - public function invoices() { + public function invoices() + { return $this->hasMany(InvoiceProxy::modelClass()); } diff --git a/packages/Webkul/Sales/src/Models/OrderItem.php b/packages/Webkul/Sales/src/Models/OrderItem.php index f07aecd7e..a8d0f0288 100644 --- a/packages/Webkul/Sales/src/Models/OrderItem.php +++ b/packages/Webkul/Sales/src/Models/OrderItem.php @@ -17,21 +17,24 @@ class OrderItem extends Model implements OrderItemContract /** * Get remaining qty for shipping. */ - public function getQtyToShipAttribute() { + public function getQtyToShipAttribute() + { return $this->qty_ordered - $this->qty_shipped - $this->qty_refunded - $this->qty_canceled; } /** * Get remaining qty for invoice. */ - public function getQtyToInvoiceAttribute() { + public function getQtyToInvoiceAttribute() + { return $this->qty_ordered - $this->qty_invoiced - $this->qty_canceled; } /** * Get remaining qty for cancel. */ - public function getQtyToCancelAttribute() { + public function getQtyToCancelAttribute() + { return $this->qty_ordered - $this->qty_canceled - $this->qty_invoiced; } @@ -59,24 +62,19 @@ class OrderItem extends Model implements OrderItemContract return $this->hasOne(OrderItemProxy::modelClass(), 'parent_id'); } - /** - * Get the inventories record associated with the order item. - */ - public function inventories() { - return $this->hasMany(CartItemInventoryProxy::modelClass()); - } - /** * Get the invoice items record associated with the order item. */ - public function invoice_items() { + public function invoice_items() + { return $this->hasMany(InvoiceItemProxy::modelClass()); } /** * Get the shipment items record associated with the order item. */ - public function shipment_items() { + public function shipment_items() + { return $this->hasMany(ShipmentItemProxy::modelClass()); } diff --git a/packages/Webkul/Sales/src/Models/OrderItemInventory.php b/packages/Webkul/Sales/src/Models/OrderItemInventory.php deleted file mode 100644 index 1d6101016..000000000 --- a/packages/Webkul/Sales/src/Models/OrderItemInventory.php +++ /dev/null @@ -1,19 +0,0 @@ -belongsTo(OrderItemProxy::modelClass()); - } -} \ No newline at end of file diff --git a/packages/Webkul/Sales/src/Models/OrderItemInventoryProxy.php b/packages/Webkul/Sales/src/Models/OrderItemInventoryProxy.php deleted file mode 100644 index 75a62abf4..000000000 --- a/packages/Webkul/Sales/src/Models/OrderItemInventoryProxy.php +++ /dev/null @@ -1,10 +0,0 @@ -hasMany(ShipmentItemProxy::modelClass()); } + /** + * Get the inventory source associated with the shipment. + */ + public function inventory_source() + { + return $this->belongsTo(InventorySource::class, 'inventory_source_id'); + } + /** * Get the customer record associated with the shipment. */ diff --git a/packages/Webkul/Sales/src/Providers/ModuleServiceProvider.php b/packages/Webkul/Sales/src/Providers/ModuleServiceProvider.php index 8e6ea19b0..02444c64a 100644 --- a/packages/Webkul/Sales/src/Providers/ModuleServiceProvider.php +++ b/packages/Webkul/Sales/src/Providers/ModuleServiceProvider.php @@ -9,7 +9,6 @@ class ModuleServiceProvider extends BaseModuleServiceProvider protected $models = [ \Webkul\Sales\Models\Order::class, \Webkul\Sales\Models\OrderItem::class, - \Webkul\Sales\Models\OrderItemInventory::class, \Webkul\Sales\Models\OrderAddress::class, \Webkul\Sales\Models\OrderPayment::class, \Webkul\Sales\Models\Invoice::class, diff --git a/packages/Webkul/Sales/src/Repositories/OrderItemInventoryRepository.php b/packages/Webkul/Sales/src/Repositories/OrderItemInventoryRepository.php deleted file mode 100644 index 3731d8b99..000000000 --- a/packages/Webkul/Sales/src/Repositories/OrderItemInventoryRepository.php +++ /dev/null @@ -1,78 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ - -class OrderItemInventoryRepository extends Repository -{ - /** - * Specify Model class name - * - * @return Mixed - */ - - function model() - { - return 'Webkul\Sales\Contracts\OrderItemInventory'; - } - - /** - * @param array $data - * @return mixed - */ - public function create(array $data) - { - $orderItem = $data['orderItem']; - - $orderedQuantity = $orderItem->qty_ordered; - - $product = $orderItem->type == 'configurable' ? $orderItem->child->product : $orderItem->product; - - if($product) { - $inventories = $product->inventory_sources()->orderBy('priority', 'asc')->get(); - - foreach($inventories as $inventorySource) { - if(!$orderedQuantity) - break; - - $sourceQuantity = $inventorySource->pivot->qty; - - if(!$inventorySource->status || !$sourceQuantity) - continue; - - if($sourceQuantity >= $orderedQuantity) { - $orderItemQuantity = $orderedQuantity; - - $sourceQuantity -= $orderItemQuantity; - - $orderedQuantity = 0; - } else { - $orderItemQuantity = $sourceQuantity; - - $sourceQuantity = 0; - - $orderedQuantity -= $orderItemQuantity; - } - - $this->model->create([ - 'qty' => $orderItemQuantity, - 'order_item_id' => $orderItem->id, - 'inventory_source_id' => $inventorySource->id, - ]); - - $inventorySource->pivot->update([ - 'qty' => $sourceQuantity - ]); - } - } - } -} \ No newline at end of file diff --git a/packages/Webkul/Sales/src/Repositories/OrderItemRepository.php b/packages/Webkul/Sales/src/Repositories/OrderItemRepository.php index 30f9d5dd1..b203954b5 100644 --- a/packages/Webkul/Sales/src/Repositories/OrderItemRepository.php +++ b/packages/Webkul/Sales/src/Repositories/OrderItemRepository.php @@ -19,7 +19,6 @@ class OrderItemRepository extends Repository * * @return Mixed */ - function model() { return 'Webkul\Sales\Contracts\OrderItem'; @@ -78,4 +77,34 @@ class OrderItemRepository extends Repository return $orderItem; } + + + /** + * @param mixed $orderItem + * @return void + */ + public function manageStock($orderItem) + { + if(!$orderedQuantity = $orderItem->qty_ordered) + return; + + $product = $orderItem->type == 'configurable' ? $orderItem->child->product : $orderItem->product; + + if(!$product) { + return; + } + + $salableInventory = $product->salable_inventories() + ->where('channel_id', $orderItem->order->channel->id) + ->first(); + + if($salableInventory) { + $soldQty = $salableInventory->sold_qty + $orderItem->qty_ordered; + + $salableInventory->update([ + 'qty' => ($salableInventory->qty - $orderItem->qty_ordered), + 'sold_qty' => $soldQty + ]); + } + } } \ No newline at end of file diff --git a/packages/Webkul/Sales/src/Repositories/OrderRepository.php b/packages/Webkul/Sales/src/Repositories/OrderRepository.php index 8d9025ed3..c2a780975 100644 --- a/packages/Webkul/Sales/src/Repositories/OrderRepository.php +++ b/packages/Webkul/Sales/src/Repositories/OrderRepository.php @@ -8,7 +8,6 @@ use Illuminate\Support\Facades\DB; use Illuminate\Database\Eloquent\Model; use Webkul\Core\Eloquent\Repository; use Webkul\Sales\Repositories\OrderItemRepository; -use Webkul\Sales\Repositories\OrderItemInventoryRepository; /** * Order Reposotory @@ -26,30 +25,19 @@ class OrderRepository extends Repository */ protected $orderItem; - /** - * OrderItemInventoryRepository object - * - * @var Object - */ - protected $orderItemInventory; - /** * Create a new repository instance. * - * @param Webkul\Sales\Repositories\OrderItemRepository $orderItem - * @param Webkul\Sales\Repositories\OrderItemInventoryRepository $orderItemInventory + * @param Webkul\Sales\Repositories\OrderItemRepository $orderItem * @return void */ public function __construct( OrderItemRepository $orderItem, - OrderItemInventoryRepository $orderItemInventory, App $app ) { $this->orderItem = $orderItem; - $this->orderItemInventory = $orderItemInventory; - parent::__construct($app); } @@ -107,7 +95,7 @@ class OrderRepository extends Repository $orderItem->child = $this->orderItem->create(array_merge($item['child'], ['order_id' => $order->id, 'parent_id' => $orderItem->id])); } - $this->orderItemInventory->create(['orderItem' => $orderItem]); + $this->orderItem->manageStock($orderItem); } Event::fire('checkout.order.save.after', $order); diff --git a/packages/Webkul/Sales/src/Repositories/ShipmentItemRepository.php b/packages/Webkul/Sales/src/Repositories/ShipmentItemRepository.php new file mode 100644 index 000000000..802513526 --- /dev/null +++ b/packages/Webkul/Sales/src/Repositories/ShipmentItemRepository.php @@ -0,0 +1,56 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class ShipmentItemRepository extends Repository +{ + /** + * Specify Model class name + * + * @return Mixed + */ + function model() + { + return 'Webkul\Sales\Contracts\ShipmentItem'; + } + + /** + * @param array $data + * @return void + */ + public function updateProductInventory($data) + { + $salableInventory = $data['product']->salable_inventories() + ->where('channel_id', $data['shipment']->order->channel->id) + ->first(); + + $inventory = $data['product']->inventories() + ->where('inventory_source_id', $data['shipment']->inventory_source_id) + ->first(); + + if (($salableQty = $salableInventory->sold_qty - $data['qty']) < 0) { + $salableQty = 0; + } + + $salableInventory->update([ + 'sold_qty' => $salableQty + ]); + + if (($qty = $inventory->qty - $data['qty']) < 0) { + $qty = 0; + } + + $inventory->update([ + 'qty' => $data['qty'] + ]); + } +} \ No newline at end of file diff --git a/packages/Webkul/Sales/src/Repositories/ShipmentRepository.php b/packages/Webkul/Sales/src/Repositories/ShipmentRepository.php index de5c5c043..5f494022b 100644 --- a/packages/Webkul/Sales/src/Repositories/ShipmentRepository.php +++ b/packages/Webkul/Sales/src/Repositories/ShipmentRepository.php @@ -88,31 +88,37 @@ class ShipmentRepository extends Repository $order = $this->order->find($data['order_id']); - $totalQty = array_sum($data['shipment']['items']); - $shipment = $this->model->create([ 'order_id' => $order->id, - 'total_qty' => $totalQty, + 'total_qty' => 0, 'carrier_title' => $data['shipment']['carrier_title'], 'track_number' => $data['shipment']['track_number'], 'customer_id' => $order->customer_id, 'customer_type' => $order->customer_type, 'order_address_id' => $order->shipping_address->id, + 'inventory_source_id' => $data['shipment']['source'], ]); - foreach ($data['shipment']['items'] as $itemId => $qty) { - if(!$qty) continue; + $totalQty = 0; + + foreach ($data['shipment']['items'] as $itemId => $inventorySource) { + $qty = $inventorySource[$data['shipment']['source']]; $orderItem = $this->orderItem->find($itemId); - if($qty > $orderItem->qty_to_ship) - $qty = $orderItem->qty_to_ship; + $product = ($orderItem->type == 'configurable') + ? $orderItem->child->product + : $orderItem->product; + + $totalQty += $qty; $shipmentItem = $this->shipmentItem->create([ 'shipment_id' => $shipment->id, 'order_item_id' => $orderItem->id, 'name' => $orderItem->name, - 'sku' => ($orderItem->type == 'configurable' ? $orderItem->child->sku : $orderItem->sku), + 'sku' => ($orderItem->type == 'configurable') + ? $orderItem->child->sku + : $orderItem->sku, 'qty' => $qty, 'weight' => $orderItem->weight * $qty, 'price' => $orderItem->price, @@ -124,9 +130,20 @@ class ShipmentRepository extends Repository 'additional' => $orderItem->additional, ]); + $this->shipmentItem->updateProductInventory([ + 'shipment' => $shipment, + 'shipmentItem' => $shipmentItem, + 'product' => $product, + 'qty' => $qty + ]); + $this->orderItem->update(['qty_shipped' => $orderItem->qty_shipped + $qty], $orderItem->id); } + $shipment->update([ + 'total_qty' => $totalQty + ]); + $this->order->updateOrderStatus($order); Event::fire('sales.shipment.save.after', $shipment); @@ -140,4 +157,19 @@ class ShipmentRepository extends Repository return $shipment; } + + /** + * @param array $data + * @return integer + */ + public function getTotalQty(array $data) + { + $qty = 0; + + foreach ($data['shipment']['items'] as $itemId => $inventorySource) { + $qty += $inventorySource[$data['shipment']['source']]; + } + + return $qty; + } } \ No newline at end of file diff --git a/packages/Webkul/Sales/src/Repositories/ShipmenttemRepository.php b/packages/Webkul/Sales/src/Repositories/ShipmenttemRepository.php deleted file mode 100644 index 2e5428c65..000000000 --- a/packages/Webkul/Sales/src/Repositories/ShipmenttemRepository.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ - -class ShipmentItemRepository extends Repository -{ - /** - * Specify Model class name - * - * @return Mixed - */ - - function model() - { - return 'Webkul\Sales\Contracts\ShipmentItem'; - } -} \ No newline at end of file From 6b2b054f97414fe32942d4005380546ce26e2d1a Mon Sep 17 00:00:00 2001 From: jitendra Date: Wed, 26 Dec 2018 18:52:44 +0530 Subject: [PATCH 06/15] Get config for shipping and payment method updated --- .../Admin/src/Resources/views/sales/invoices/create.blade.php | 2 +- .../Admin/src/Resources/views/sales/invoices/pdf.blade.php | 2 +- .../Admin/src/Resources/views/sales/invoices/view.blade.php | 2 +- .../Admin/src/Resources/views/sales/orders/view.blade.php | 2 +- .../Admin/src/Resources/views/sales/shipments/create.blade.php | 2 +- .../Admin/src/Resources/views/sales/shipments/view.blade.php | 2 +- packages/Webkul/Core/src/Core.php | 3 +-- packages/Webkul/Sales/src/Repositories/OrderRepository.php | 2 +- .../Shop/src/Resources/views/checkout/onepage/review.blade.php | 2 +- .../src/Resources/views/customers/account/orders/pdf.blade.php | 2 +- .../Resources/views/customers/account/orders/view.blade.php | 2 +- .../src/Resources/views/emails/sales/new-invoice.blade.php | 2 +- .../Shop/src/Resources/views/emails/sales/new-order.blade.php | 2 +- .../src/Resources/views/emails/sales/new-shipment.blade.php | 2 +- 14 files changed, 14 insertions(+), 15 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/sales/invoices/create.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/invoices/create.blade.php index 3bfdf2574..90bb314a5 100644 --- a/packages/Webkul/Admin/src/Resources/views/sales/invoices/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sales/invoices/create.blade.php @@ -153,7 +153,7 @@ - {{ core()->getConfigData('paymentmethods.' . $order->payment->method . '.title') }} + {{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
diff --git a/packages/Webkul/Admin/src/Resources/views/sales/invoices/pdf.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/invoices/pdf.blade.php index f5329d212..6d1df23d6 100644 --- a/packages/Webkul/Admin/src/Resources/views/sales/invoices/pdf.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sales/invoices/pdf.blade.php @@ -142,7 +142,7 @@ - {{ core()->getConfigData('paymentmethods.' . $invoice->order->payment->method . '.title') }} + {{ core()->getConfigData('sales.paymentmethods.' . $invoice->order->payment->method . '.title') }} {{ $invoice->order->shipping_title }} diff --git a/packages/Webkul/Admin/src/Resources/views/sales/invoices/view.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/invoices/view.blade.php index 967b099bf..392b766e1 100644 --- a/packages/Webkul/Admin/src/Resources/views/sales/invoices/view.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sales/invoices/view.blade.php @@ -153,7 +153,7 @@ - {{ core()->getConfigData('paymentmethods.' . $order->payment->method . '.title') }} + {{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }} diff --git a/packages/Webkul/Admin/src/Resources/views/sales/orders/view.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/orders/view.blade.php index a2940d97a..030e6c8cb 100644 --- a/packages/Webkul/Admin/src/Resources/views/sales/orders/view.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sales/orders/view.blade.php @@ -160,7 +160,7 @@ - {{ core()->getConfigData('paymentmethods.' . $order->payment->method . '.title') }} + {{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }} diff --git a/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php index af2e0b615..eae212a51 100644 --- a/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php @@ -153,7 +153,7 @@ - {{ core()->getConfigData('paymentmethods.' . $order->payment->method . '.title') }} + {{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }} diff --git a/packages/Webkul/Admin/src/Resources/views/sales/shipments/view.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/shipments/view.blade.php index 9359dfbd6..154d058c0 100644 --- a/packages/Webkul/Admin/src/Resources/views/sales/shipments/view.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sales/shipments/view.blade.php @@ -149,7 +149,7 @@ - {{ core()->getConfigData('paymentmethods.' . $order->payment->method . '.title') }} + {{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }} diff --git a/packages/Webkul/Core/src/Core.php b/packages/Webkul/Core/src/Core.php index aeba6ae3c..82bd7d870 100644 --- a/packages/Webkul/Core/src/Core.php +++ b/packages/Webkul/Core/src/Core.php @@ -537,8 +537,7 @@ class Core 'code' => $field, 'locale_code' => $locale ]); - } - else { + } else { $coreConfigValue = $this->coreConfigRepository->findOneWhere([ 'code' => $field ]); diff --git a/packages/Webkul/Sales/src/Repositories/OrderRepository.php b/packages/Webkul/Sales/src/Repositories/OrderRepository.php index 91b0237a7..e2fdcf72e 100644 --- a/packages/Webkul/Sales/src/Repositories/OrderRepository.php +++ b/packages/Webkul/Sales/src/Repositories/OrderRepository.php @@ -78,7 +78,7 @@ class OrderRepository extends Repository unset($data['channel']); } - $data['status'] = core()->getConfigData('paymentmethods.' . $data['payment']['method'] . '.order_status') ?? 'pending'; + $data['status'] = core()->getConfigData('sales.paymentmethods.' . $data['payment']['method'] . '.order_status') ?? 'pending'; $order = $this->model->create(array_merge($data, ['increment_id' => $this->generateIncrementId()])); diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/onepage/review.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/onepage/review.blade.php index b8848fe8b..59a92746e 100644 --- a/packages/Webkul/Shop/src/Resources/views/checkout/onepage/review.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/onepage/review.blade.php @@ -122,7 +122,7 @@
- {{ core()->getConfigData('paymentmethods.' . $cart->payment->method . '.title') }} + {{ core()->getConfigData('sales.paymentmethods.' . $cart->payment->method . '.title') }}
diff --git a/packages/Webkul/Shop/src/Resources/views/customers/account/orders/pdf.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/account/orders/pdf.blade.php index b95ccbcfc..3a500402a 100644 --- a/packages/Webkul/Shop/src/Resources/views/customers/account/orders/pdf.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/account/orders/pdf.blade.php @@ -142,7 +142,7 @@ - {{ core()->getConfigData('paymentmethods.' . $invoice->order->payment->method . '.title') }} + {{ core()->getConfigData('sales.paymentmethods.' . $invoice->order->payment->method . '.title') }} {{ $invoice->order->shipping_title }} diff --git a/packages/Webkul/Shop/src/Resources/views/customers/account/orders/view.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/account/orders/view.blade.php index fe2abd354..a6be5135d 100644 --- a/packages/Webkul/Shop/src/Resources/views/customers/account/orders/view.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/account/orders/view.blade.php @@ -483,7 +483,7 @@
- {{ core()->getConfigData('paymentmethods.' . $order->payment->method . '.title') }} + {{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
diff --git a/packages/Webkul/Shop/src/Resources/views/emails/sales/new-invoice.blade.php b/packages/Webkul/Shop/src/Resources/views/emails/sales/new-invoice.blade.php index df09c3823..d22054e6c 100644 --- a/packages/Webkul/Shop/src/Resources/views/emails/sales/new-invoice.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/emails/sales/new-invoice.blade.php @@ -91,7 +91,7 @@
- {{ core()->getConfigData('paymentmethods.' . $order->payment->method . '.title') }} + {{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
diff --git a/packages/Webkul/Shop/src/Resources/views/emails/sales/new-order.blade.php b/packages/Webkul/Shop/src/Resources/views/emails/sales/new-order.blade.php index cd0b7a1c2..6fdfb0405 100644 --- a/packages/Webkul/Shop/src/Resources/views/emails/sales/new-order.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/emails/sales/new-order.blade.php @@ -89,7 +89,7 @@
- {{ core()->getConfigData('paymentmethods.' . $order->payment->method . '.title') }} + {{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
diff --git a/packages/Webkul/Shop/src/Resources/views/emails/sales/new-shipment.blade.php b/packages/Webkul/Shop/src/Resources/views/emails/sales/new-shipment.blade.php index a0b0e2124..e9f346051 100644 --- a/packages/Webkul/Shop/src/Resources/views/emails/sales/new-shipment.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/emails/sales/new-shipment.blade.php @@ -101,7 +101,7 @@
- {{ core()->getConfigData('paymentmethods.' . $order->payment->method . '.title') }} + {{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
From de90ab1d6a0060345c47e4427ed4c964ad30a715 Mon Sep 17 00:00:00 2001 From: jitendra Date: Wed, 26 Dec 2018 19:33:01 +0530 Subject: [PATCH 07/15] Per unit and per order feature added in Flatrate shipping --- packages/Webkul/Shipping/src/Carriers/FlatRate.php | 14 ++++++++++++-- packages/Webkul/Shipping/src/Config/system.php | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/Webkul/Shipping/src/Carriers/FlatRate.php b/packages/Webkul/Shipping/src/Carriers/FlatRate.php index 6f9e48953..e568697cb 100644 --- a/packages/Webkul/Shipping/src/Carriers/FlatRate.php +++ b/packages/Webkul/Shipping/src/Carriers/FlatRate.php @@ -5,6 +5,7 @@ namespace Webkul\Shipping\Carriers; use Config; use Webkul\Checkout\Models\CartShippingRate; use Webkul\Shipping\Facades\Shipping; +use Webkul\Checkout\Facades\Cart; /** * Class Rate. @@ -29,6 +30,8 @@ class FlatRate extends AbstractShipping if(!$this->isAvailable()) return false; + $cart = Cart::getCart(); + $object = new CartShippingRate; $object->carrier = 'flatrate'; @@ -36,8 +39,15 @@ class FlatRate extends AbstractShipping $object->method = 'flatrate_flatrate'; $object->method_title = $this->getConfigData('title'); $object->method_description = $this->getConfigData('description'); - $object->price = core()->convertPrice($this->getConfigData('default_rate')); - $object->base_price = $this->getConfigData('default_rate'); + + if ($this->getConfigData('type') == 'per_unit') { + $object->price = core()->convertPrice($this->getConfigData('default_rate')) * $cart->items_qty; + $object->base_price = $this->getConfigData('default_rate') * $cart->items_qty; + } else { + $object->price = core()->convertPrice($this->getConfigData('default_rate')); + $object->base_price = $this->getConfigData('default_rate'); + } + return $object; } diff --git a/packages/Webkul/Shipping/src/Config/system.php b/packages/Webkul/Shipping/src/Config/system.php index 76f0ffec4..531ed6fef 100644 --- a/packages/Webkul/Shipping/src/Config/system.php +++ b/packages/Webkul/Shipping/src/Config/system.php @@ -74,9 +74,9 @@ return [ 'options' => [ [ 'title' => 'Per Unit', - 'value' => 'Per Order' + 'value' => 'per_unit' ], [ - 'title' => 'Inactive', + 'title' => 'Per Order', 'value' => 'per_order' ] ], From 0cb5eacd9e2b647bdf0a29e5e3f39db9675b198b Mon Sep 17 00:00:00 2001 From: JItendra Singh <39991107+jitendra-webkul@users.noreply.github.com> Date: Wed, 26 Dec 2018 19:54:44 +0530 Subject: [PATCH 08/15] Create LICENSE --- LICENSE | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..ad86d41dc --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +MIT License + +Copyright 2010-2018, Webkul Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From 1bc6ea72e89c1bb84bc6741c5f1af5623a5e36bc Mon Sep 17 00:00:00 2001 From: jitendra Date: Wed, 26 Dec 2018 20:10:38 +0530 Subject: [PATCH 09/15] License link added in readme file --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bf9c1a56f..71c8a1f4e 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ composer dump-autoload ### 5. License -Bagisto is a truly opensource E-Commerce framework which will always be free under the [MIT License](https://opensource.org/licenses/MIT). +Bagisto is a truly opensource E-Commerce framework which will always be free under the [MIT License](https://github.com/bagisto/bagisto/blob/master/LICENSE). ### Coming Soon: -> API support for core packages and numerous fixes. From 336284ee6e6df2e99400a11ffddacbec5c421f7a Mon Sep 17 00:00:00 2001 From: jitendra Date: Thu, 27 Dec 2018 11:35:10 +0530 Subject: [PATCH 10/15] Refactor state grouping by country --- packages/Webkul/Core/src/Core.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/Webkul/Core/src/Core.php b/packages/Webkul/Core/src/Core.php index 82bd7d870..9b868a81e 100644 --- a/packages/Webkul/Core/src/Core.php +++ b/packages/Webkul/Core/src/Core.php @@ -584,8 +584,8 @@ class Core { $collection = []; - foreach ($this->countries() as $country) { - $collection[$country->code] = $this->states($country->code)->toArray(); + foreach ($this->countryStateRepository->all() as $state) { + $collection[$state->country_code][] = $state->toArray(); } return $collection; From fec802b4af0e6a44c72d42275282ca94d950bee2 Mon Sep 17 00:00:00 2001 From: jitendra Date: Thu, 27 Dec 2018 13:03:54 +0530 Subject: [PATCH 11/15] Changed registration page input tag to button --- composer.json | 2 +- .../Shop/src/Resources/views/customers/signup/index.blade.php | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 76fc059b4..af3ebc6da 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "bagisto/bagisto", - "description": "Bagisto Ecommerce", + "description": "Bagisto Laravel ECommerce", "keywords": [ "framework", "laravel" diff --git a/packages/Webkul/Shop/src/Resources/views/customers/signup/index.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/signup/index.blade.php index 2c92f39de..0ffcb5f33 100644 --- a/packages/Webkul/Shop/src/Resources/views/customers/signup/index.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/signup/index.blade.php @@ -73,7 +73,9 @@ @{{ errors.first('agreement') }} - + From 0a2a6c42344eb1de00bd98a65cd4dc02ad07ad14 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Thu, 27 Dec 2018 16:22:44 +0530 Subject: [PATCH 12/15] conflicts in class attribute of storefront search and datagrid's search box --- packages/Webkul/Checkout/src/Cart.php | 22 ++++++++++++++----- .../Controllers/RegistrationController.php | 2 +- .../views/checkout/cart/mini-cart.blade.php | 2 +- .../views/customers/signup/index.blade.php | 6 ++--- .../views/datagrid/filters.blade.php | 2 +- .../Resources/views/datagrid/index.blade.php | 6 +++-- 6 files changed, 27 insertions(+), 13 deletions(-) diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index c4014baad..3cf32d41f 100644 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -229,6 +229,10 @@ class Cart { $product = $this->product->findOneByField('id', $id); if($product->type == 'configurable') { + if(!isset($data['selected_configurable_option'])) { + return false; + } + $parentProduct = $this->product->findOneByField('id', $data['selected_configurable_option']); $canAdd = $parentProduct->haveSufficientQuantity($data['quantity']); @@ -537,16 +541,24 @@ class Cart { { $cart = null; - if(auth()->guard('customer')->check()) { + if (auth()->guard('customer')->check()) { $cart = $this->cart->findOneWhere([ - 'customer_id' => auth()->guard('customer')->user()->id, - 'is_active' => 1 - ]); + 'customer_id' => auth()->guard('customer')->user()->id, + 'is_active' => 1 + ]); - } elseif(session()->has('cart')) { + } elseif (session()->has('cart')) { $cart = $this->cart->find(session()->get('cart')->id); } + if($cart != null) { + if($cart->items->count() == 0) { + $this->cart->delete($cart->id); + + return false; + } + } + return $cart && $cart->is_active ? $cart : null; } diff --git a/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php b/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php index 0726fb51b..947be1eaa 100644 --- a/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php +++ b/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php @@ -58,7 +58,7 @@ class RegistrationController extends Controller 'last_name' => 'string|required', 'email' => 'email|required|unique:customers,email', 'password' => 'confirmed|min:6|required', - 'agreement' => 'required' + // 'agreement' => 'required' ]); $data = request()->input(); diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/cart/mini-cart.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/cart/mini-cart.blade.php index 8df77e20d..c904e9108 100644 --- a/packages/Webkul/Shop/src/Resources/views/checkout/cart/mini-cart.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/cart/mini-cart.blade.php @@ -9,7 +9,7 @@
Cart - ({{ intval($cart->items_qty) }}) + ({{ $cart->items->count() }})
diff --git a/packages/Webkul/Shop/src/Resources/views/customers/signup/index.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/signup/index.blade.php index 2c92f39de..f3a3c11b3 100644 --- a/packages/Webkul/Shop/src/Resources/views/customers/signup/index.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/signup/index.blade.php @@ -63,15 +63,15 @@ --}} {!! view_render_event('bagisto.shop.customers.signup_form_controls.after') !!} - -
--}} diff --git a/packages/Webkul/Ui/src/Resources/views/datagrid/filters.blade.php b/packages/Webkul/Ui/src/Resources/views/datagrid/filters.blade.php index 1fae47ebb..5dffa79eb 100644 --- a/packages/Webkul/Ui/src/Resources/views/datagrid/filters.blade.php +++ b/packages/Webkul/Ui/src/Resources/views/datagrid/filters.blade.php @@ -1,7 +1,7 @@
- +
diff --git a/packages/Webkul/Ui/src/Resources/views/datagrid/index.blade.php b/packages/Webkul/Ui/src/Resources/views/datagrid/index.blade.php index 526fd2ccb..86813a1c3 100644 --- a/packages/Webkul/Ui/src/Resources/views/datagrid/index.blade.php +++ b/packages/Webkul/Ui/src/Resources/views/datagrid/index.blade.php @@ -45,13 +45,15 @@ } $('.search-btn').click(function() { - search_value = $(".search-field").val(); + search_value = $("#search-field").val(); + alert(search_value); formURL('search', 'all', search_value, params); //format for search }); $(".search-field").on('keyup', function (e) { if (e.keyCode == 13) { - search_value = $(".search-field").val(); + search_value = $("#search-field").val(); + alert(search_value); formURL('search', 'all', search_value, params); //format for search } }); From 9581082f569b49f9180027aaa5c5814ecaa40f5c Mon Sep 17 00:00:00 2001 From: jitendra Date: Thu, 27 Dec 2018 17:05:05 +0530 Subject: [PATCH 13/15] Removed auth middleware from controllers --- .../Attribute/src/Http/Controllers/AttributeController.php | 2 -- .../src/Http/Controllers/AttributeFamilyController.php | 2 -- .../Category/src/Http/Controllers/CategoryController.php | 2 -- .../Webkul/Core/src/Http/Controllers/ChannelController.php | 2 -- .../Webkul/Core/src/Http/Controllers/CurrencyController.php | 2 -- .../Core/src/Http/Controllers/ExchangeRateController.php | 2 -- .../Webkul/Core/src/Http/Controllers/LocaleController.php | 2 -- .../Core/src/Http/Controllers/SubscriptionController.php | 2 -- .../Webkul/Product/src/Http/Controllers/ProductController.php | 2 -- packages/Webkul/Shop/src/Resources/assets/sass/app.scss | 4 ++++ .../Webkul/Tax/src/Http/Controllers/TaxCategoryController.php | 2 -- .../Webkul/Tax/src/Http/Controllers/TaxRateController.php | 2 -- .../Webkul/User/src/Http/Controllers/AccountController.php | 2 -- packages/Webkul/User/src/Http/Controllers/UserController.php | 2 -- 14 files changed, 4 insertions(+), 26 deletions(-) diff --git a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php index e67aac50e..311fa6c40 100644 --- a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php +++ b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php @@ -38,8 +38,6 @@ class AttributeController extends Controller */ public function __construct(Attribute $attribute) { - $this->middleware('admin'); - $this->attribute = $attribute; $this->_config = request('_config'); diff --git a/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php b/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php index ed9727c61..e80049554 100644 --- a/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php +++ b/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php @@ -39,8 +39,6 @@ class AttributeFamilyController extends Controller */ public function __construct(AttributeFamily $attributeFamily) { - $this->middleware('admin'); - $this->attributeFamily = $attributeFamily; $this->_config = request('_config'); diff --git a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php index 95ce3fbce..748c97f42 100644 --- a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php +++ b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php @@ -37,8 +37,6 @@ class CategoryController extends Controller */ public function __construct(Category $category) { - $this->middleware('admin'); - $this->category = $category; $this->_config = request('_config'); diff --git a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php index 01336c106..7d4e62999 100644 --- a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php +++ b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php @@ -38,8 +38,6 @@ class ChannelController extends Controller */ public function __construct(Channel $channel) { - $this->middleware('admin'); - $this->channel = $channel; $this->_config = request('_config'); diff --git a/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php b/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php index 4b3830e7b..88ad59829 100644 --- a/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php +++ b/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php @@ -37,8 +37,6 @@ class CurrencyController extends Controller */ public function __construct(Currency $currency) { - $this->middleware('admin'); - $this->currency = $currency; $this->_config = request('_config'); diff --git a/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php b/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php index a8d58a1bc..c9e79796c 100644 --- a/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php +++ b/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php @@ -46,8 +46,6 @@ class ExchangeRateController extends Controller */ public function __construct(ExchangeRate $exchangeRate, Currency $currency) { - $this->middleware('admin'); - $this->exchangeRate = $exchangeRate; $this->currency = $currency; diff --git a/packages/Webkul/Core/src/Http/Controllers/LocaleController.php b/packages/Webkul/Core/src/Http/Controllers/LocaleController.php index 86f1e772e..8407c439c 100644 --- a/packages/Webkul/Core/src/Http/Controllers/LocaleController.php +++ b/packages/Webkul/Core/src/Http/Controllers/LocaleController.php @@ -37,8 +37,6 @@ class LocaleController extends Controller */ public function __construct(Locale $locale) { - $this->middleware('admin'); - $this->locale = $locale; $this->_config = request('_config'); diff --git a/packages/Webkul/Core/src/Http/Controllers/SubscriptionController.php b/packages/Webkul/Core/src/Http/Controllers/SubscriptionController.php index ffff47682..447d48079 100644 --- a/packages/Webkul/Core/src/Http/Controllers/SubscriptionController.php +++ b/packages/Webkul/Core/src/Http/Controllers/SubscriptionController.php @@ -29,8 +29,6 @@ class SubscriptionController extends Controller public function __construct(Subscribers $subscribers) { - $this->middleware('admin'); - $this->subscribers = $subscribers; $this->_config = request('_config'); diff --git a/packages/Webkul/Product/src/Http/Controllers/ProductController.php b/packages/Webkul/Product/src/Http/Controllers/ProductController.php index 7cfabee7d..3c2840fa8 100644 --- a/packages/Webkul/Product/src/Http/Controllers/ProductController.php +++ b/packages/Webkul/Product/src/Http/Controllers/ProductController.php @@ -78,8 +78,6 @@ class ProductController extends Controller Product $product, ProductGrid $productGrid) { - $this->middleware('admin'); - $this->attributeFamily = $attributeFamily; $this->category = $category; diff --git a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss index cadaae9fc..9241e2a96 100644 --- a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss +++ b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss @@ -328,6 +328,10 @@ input { .account-items-list { display: block; width: 100%; + + .grid-container { + margin-top: 40px; + } } //no search results .search-result-status { diff --git a/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php b/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php index a22db6fd3..cc2df8d6f 100644 --- a/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php +++ b/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php @@ -60,8 +60,6 @@ class TaxCategoryController extends Controller TaxMap $taxMap ) { - $this->middleware('admin'); - $this->taxCategory = $taxCategory; $this->taxRate = $taxRate; diff --git a/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php b/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php index c060fb070..7ed71136e 100644 --- a/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php +++ b/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php @@ -38,8 +38,6 @@ class TaxRateController extends Controller */ public function __construct(TaxRate $taxRate) { - $this->middleware('admin'); - $this->taxRate = $taxRate; $this->_config = request('_config'); diff --git a/packages/Webkul/User/src/Http/Controllers/AccountController.php b/packages/Webkul/User/src/Http/Controllers/AccountController.php index f3a452123..f708e36c9 100644 --- a/packages/Webkul/User/src/Http/Controllers/AccountController.php +++ b/packages/Webkul/User/src/Http/Controllers/AccountController.php @@ -29,8 +29,6 @@ class AccountController extends Controller */ public function __construct() { - $this->middleware('admin'); - $this->_config = request('_config'); } diff --git a/packages/Webkul/User/src/Http/Controllers/UserController.php b/packages/Webkul/User/src/Http/Controllers/UserController.php index f449bbd9b..e79f7d0fb 100644 --- a/packages/Webkul/User/src/Http/Controllers/UserController.php +++ b/packages/Webkul/User/src/Http/Controllers/UserController.php @@ -48,8 +48,6 @@ class UserController extends Controller */ public function __construct(Admin $admin, Role $role) { - $this->middleware('admin'); - $this->admin = $admin; $this->role = $role; From abd3bba6177656819a0f4cf21e8fb4853b5fe741 Mon Sep 17 00:00:00 2001 From: jitendra Date: Thu, 27 Dec 2018 18:57:39 +0530 Subject: [PATCH 14/15] Moved catalog event from controllers to repositories --- .../Http/Controllers/AttributeController.php | 30 ++------ .../Controllers/AttributeFamilyController.php | 27 ++----- .../AttributeFamilyRepository.php | 22 ++++++ .../src/Repositories/AttributeRepository.php | 22 ++++++ .../Http/Controllers/CategoryController.php | 9 --- .../src/Repositories/CategoryRepository.php | 28 +++++++- .../Http/Controllers/ProductController.php | 71 +++++-------------- .../src/Repositories/ProductRepository.php | 48 +++++++------ 8 files changed, 123 insertions(+), 134 deletions(-) diff --git a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php index 311fa6c40..3b41c858a 100644 --- a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php +++ b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php @@ -4,7 +4,6 @@ namespace Webkul\Attribute\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; -use Illuminate\Support\Facades\Event; use Webkul\Attribute\Repositories\AttributeRepository as Attribute; @@ -76,12 +75,8 @@ class AttributeController extends Controller 'type' => 'required' ]); - Event::fire('catalog.attribute.create.before'); - $attribute = $this->attribute->create(request()->all()); - Event::fire('catalog.attribute.create.after', $attribute); - session()->flash('success', 'Attribute created successfully.'); return redirect()->route($this->_config['redirect']); @@ -115,12 +110,8 @@ class AttributeController extends Controller 'type' => 'required' ]); - Event::fire('catalog.attribute.update.before', $id); - $attribute = $this->attribute->update(request()->all(), $id); - Event::fire('catalog.attribute.update.after', $attribute); - session()->flash('success', 'Attribute updated successfully.'); return redirect()->route($this->_config['redirect']); @@ -140,12 +131,8 @@ class AttributeController extends Controller session()->flash('error', 'Can not delete system attribute.'); } else { try { - Event::fire('catalog.attribute.delete.before', $id); - $this->attribute->delete($id); - Event::fire('catalog.attribute.delete.after', $id); - session()->flash('success', 'Attribute deleted successfully.'); } catch(\Exception $e) { session()->flash('error', 'Attribute is used in configurable products.'); @@ -160,33 +147,30 @@ class AttributeController extends Controller * * @return response \Illuminate\Http\Response */ - public function massDestroy() { + public function massDestroy() + { $suppressFlash = false; - if(request()->isMethod('post')) { + if (request()->isMethod('post')) { $indexes = explode(',', request()->input('indexes')); - foreach($indexes as $key => $value) { + foreach ($indexes as $key => $value) { $attribute = $this->attribute->findOrFail($value); try { - if(!$attribute->is_user_defined) { + if (!$attribute->is_user_defined) { continue; } else { - Event::fire('catalog.attribute.delete.before', $value); - $this->attribute->delete($value); - - Event::fire('catalog.attribute.delete.after', $value); } - } catch(\Exception $e) { + } catch (\Exception $e) { $suppressFlash = true; continue; } } - if(!$suppressFlash) + if (!$suppressFlash) session()->flash('success', trans('admin::app.datagrid.mass-ops.delete-success', ['resource' => 'attributes'])); else session()->flash('info', trans('admin::app.datagrid.mass-ops.partial-action', ['resource' => 'attributes'])); diff --git a/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php b/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php index e80049554..566e4a832 100644 --- a/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php +++ b/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php @@ -4,7 +4,6 @@ namespace Webkul\Attribute\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; -use Illuminate\Support\Facades\Event; use Webkul\Attribute\Repositories\AttributeFamilyRepository as AttributeFamily; use Webkul\Attribute\Repositories\AttributeRepository as Attribute; @@ -81,12 +80,8 @@ class AttributeFamilyController extends Controller 'name' => 'required' ]); - Event::fire('catalog.attribute_family.create.before'); - $attributeFamily = $this->attributeFamily->create(request()->all()); - Event::fire('catalog.attribute_family.create.after', $attributeFamily); - session()->flash('success', 'Family created successfully.'); return redirect()->route($this->_config['redirect']); @@ -122,12 +117,8 @@ class AttributeFamilyController extends Controller 'name' => 'required' ]); - Event::fire('catalog.attribute_family.update.before', $id); - $attributeFamily = $this->attributeFamily->update(request()->all(), $id); - Event::fire('catalog.attribute_family.update.after', $attributeFamily); - session()->flash('success', 'Family updated successfully.'); return redirect()->route($this->_config['redirect']); @@ -143,17 +134,13 @@ class AttributeFamilyController extends Controller { $attributeFamily = $this->attributeFamily->find($id); - if($this->attributeFamily->count() == 1) { + if ($this->attributeFamily->count() == 1) { session()->flash('error', 'At least one family is required.'); } else if ($attributeFamily->products()->count()) { session()->flash('error', 'Attribute family is used in products.'); } else { - Event::fire('catalog.attribute_family.delete.before', $id); - $this->attributeFamily->delete($id); - Event::fire('catalog.attribute_family.delete.after', $id); - session()->flash('success', 'Family deleted successfully.'); } @@ -168,24 +155,20 @@ class AttributeFamilyController extends Controller public function massDestroy() { $suppressFlash = false; - if(request()->isMethod('delete')) { + if (request()->isMethod('delete')) { $indexes = explode(',', request()->input('indexes')); - foreach($indexes as $key => $value) { + foreach ($indexes as $key => $value) { try { - Event::fire('catalog.attribute_family.delete.before', $value); - $this->attributeFamily->delete($value); - - Event::fire('catalog.attribute_family.delete.after', $value); - } catch(\Exception $e) { + } catch (\Exception $e) { $suppressFlash = true; continue; } } - if(!$suppressFlash) + if (!$suppressFlash) session()->flash('success', trans('admin::app.datagrid.mass-ops.delete-success')); else session()->flash('info', trans('admin::app.datagrid.mass-ops.partial-action', ['resource' => 'Attribute Family'])); diff --git a/packages/Webkul/Attribute/src/Repositories/AttributeFamilyRepository.php b/packages/Webkul/Attribute/src/Repositories/AttributeFamilyRepository.php index 9398308fc..452e52d01 100644 --- a/packages/Webkul/Attribute/src/Repositories/AttributeFamilyRepository.php +++ b/packages/Webkul/Attribute/src/Repositories/AttributeFamilyRepository.php @@ -3,6 +3,7 @@ namespace Webkul\Attribute\Repositories; use Webkul\Core\Eloquent\Repository; +use Illuminate\Support\Facades\Event; use Webkul\Attribute\Repositories\AttributeRepository; use Webkul\Attribute\Repositories\AttributeGroupRepository; use Illuminate\Container\Container as App; @@ -61,6 +62,8 @@ class AttributeFamilyRepository extends Repository */ public function create(array $data) { + Event::fire('catalog.attribute_family.create.before'); + $attributeGroups = isset($data['attribute_groups']) ? $data['attribute_groups'] : []; unset($data['attribute_groups']); $family = $this->model->create($data); @@ -81,6 +84,8 @@ class AttributeFamilyRepository extends Repository } } + Event::fire('catalog.attribute_family.create.after', $attributeFamily); + return $family; } @@ -94,6 +99,8 @@ class AttributeFamilyRepository extends Repository { $family = $this->find($id); + Event::fire('catalog.attribute_family.update.before', $id); + $family->update($data); $previousAttributeGroupIds = $family->attribute_groups()->pluck('id'); @@ -141,6 +148,21 @@ class AttributeFamilyRepository extends Repository $this->attributeGroup->delete($attributeGroupId); } + Event::fire('catalog.attribute_family.update.after', $family); + return $family; } + + /** + * @param $id + * @return void + */ + public function delete($id) + { + Event::fire('catalog.attribute_family.delete.before', $id); + + parent::delete($id); + + Event::fire('catalog.attribute_family.delete.after', $id); + } } \ No newline at end of file diff --git a/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php b/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php index 7c3980de1..26a054421 100644 --- a/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php +++ b/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php @@ -3,6 +3,7 @@ namespace Webkul\Attribute\Repositories; use Webkul\Core\Eloquent\Repository; +use Illuminate\Support\Facades\Event; use Webkul\Attribute\Repositories\AttributeOptionRepository; use Illuminate\Container\Container as App; @@ -50,6 +51,8 @@ class AttributeRepository extends Repository */ public function create(array $data) { + Event::fire('catalog.attribute.create.before'); + $data = $this->validateUserInput($data); $options = isset($data['options']) ? $data['options'] : []; @@ -62,6 +65,8 @@ class AttributeRepository extends Repository } } + Event::fire('catalog.attribute.create.after', $attribute); + return $attribute; } @@ -77,6 +82,8 @@ class AttributeRepository extends Repository $attribute = $this->find($id); + Event::fire('catalog.attribute.update.before', $id); + $attribute->update($data); $previousOptionIds = $attribute->options()->pluck('id'); @@ -101,9 +108,24 @@ class AttributeRepository extends Repository $this->attributeOption->delete($optionId); } + Event::fire('catalog.attribute.update.after', $attribute); + return $attribute; } + /** + * @param $id + * @return void + */ + public function delete($id) + { + Event::fire('catalog.attribute.delete.before', $id); + + parent::delete($id); + + Event::fire('catalog.attribute.delete.after', $id); + } + /** * @param array $data * @return array diff --git a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php index 748c97f42..fe29e3610 100644 --- a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php +++ b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php @@ -4,7 +4,6 @@ namespace Webkul\Category\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; -use Illuminate\Support\Facades\Event; use Webkul\Category\Repositories\CategoryRepository as Category; /** @@ -77,12 +76,8 @@ class CategoryController extends Controller 'image.*' => 'mimes:jpeg,jpg,bmp,png' ]); - Event::fire('catalog.category.create.before'); - $category = $this->category->create(request()->all()); - Event::fire('catalog.category.create.after', $category); - session()->flash('success', 'Category created successfully.'); return redirect()->route($this->_config['redirect']); @@ -124,12 +119,8 @@ class CategoryController extends Controller 'image.*' => 'mimes:jpeg,jpg,bmp,png' ]); - Event::fire('catalog.category.update.before', $id); - $this->category->update(request()->all(), $id); - Event::fire('catalog.category.update.after', $id); - session()->flash('success', 'Category updated successfully.'); return redirect()->route($this->_config['redirect']); diff --git a/packages/Webkul/Category/src/Repositories/CategoryRepository.php b/packages/Webkul/Category/src/Repositories/CategoryRepository.php index 8f4041a1a..11d87b039 100644 --- a/packages/Webkul/Category/src/Repositories/CategoryRepository.php +++ b/packages/Webkul/Category/src/Repositories/CategoryRepository.php @@ -2,10 +2,11 @@ namespace Webkul\Category\Repositories; -use Webkul\Category\Models\Category; -use Webkul\Core\Eloquent\Repository; -use Illuminate\Support\Facades\Storage; use Illuminate\Container\Container as App; +use Illuminate\Support\Facades\Storage; +use Illuminate\Support\Facades\Event; +use Webkul\Core\Eloquent\Repository; +use Webkul\Category\Models\Category; use Webkul\Category\Models\CategoryTranslation; use Illuminate\Database\Eloquent\ModelNotFoundException; @@ -43,6 +44,8 @@ class CategoryRepository extends Repository */ public function create(array $data) { + Event::fire('catalog.category.create.before'); + if (isset($data['locale']) && $data['locale'] == 'all') { $model = app()->make($this->model()); @@ -59,6 +62,8 @@ class CategoryRepository extends Repository $this->uploadImages($data, $category); + Event::fire('catalog.category.create.after', $category); + return $category; } @@ -135,13 +140,30 @@ class CategoryRepository extends Repository { $category = $this->find($id); + Event::fire('catalog.category.update.before', $id); + $category->update($data); $this->uploadImages($data, $category); + Event::fire('catalog.category.update.after', $id); + return $category; } + /** + * @param $id + * @return void + */ + public function delete($id) + { + Event::fire('catalog.category.delete.before', $id); + + parent::delete($id); + + Event::fire('catalog.category.delete.after', $id); + } + /** * @param array $data * @param mixed $category diff --git a/packages/Webkul/Product/src/Http/Controllers/ProductController.php b/packages/Webkul/Product/src/Http/Controllers/ProductController.php index 3c2840fa8..5d9734689 100644 --- a/packages/Webkul/Product/src/Http/Controllers/ProductController.php +++ b/packages/Webkul/Product/src/Http/Controllers/ProductController.php @@ -140,14 +140,8 @@ class ProductController extends Controller 'sku' => ['required', 'unique:products,sku', new \Webkul\Core\Contracts\Validations\Slug] ]); - //before store of the product - Event::fire('catalog.product.create.before'); - $product = $this->product->create(request()->all()); - //after store of the product - Event::fire('catalog.product.create.after', $product); - session()->flash('success', 'Product created successfully.'); return redirect()->route($this->_config['redirect'], ['id' => $product->id]); @@ -179,12 +173,8 @@ class ProductController extends Controller */ public function update(ProductForm $request, $id) { - Event::fire('catalog.product.update.before', $id); - $product = $this->product->update(request()->all(), $id); - Event::fire('catalog.product.update.after', $product); - session()->flash('success', 'Product updated successfully.'); return redirect()->route($this->_config['redirect']); @@ -198,12 +188,8 @@ class ProductController extends Controller */ public function destroy($id) { - Event::fire('catalog.product.delete.before', $id); - $this->product->delete($id); - Event::fire('catalog.product.delete.after', $id); - session()->flash('success', 'Product deleted successfully.'); return redirect()->back(); @@ -214,22 +200,12 @@ class ProductController extends Controller * * @return response */ - public function massDestroy() { - $data = request()->all(); - $productIds = explode(',', $data['indexes']); + public function massDestroy() + { + $productIds = explode(',', request()->input('indexes')); - if(count($productIds)) { - foreach($productIds as $productId) { - $product = $this->product->find($productId); - - if(!is_null($product)) { - Event::fire('catalog.product.delete.before', $productId); - - $product->delete(); - - Event::fire('catalog.product.delete.after', $productId); - } - } + foreach ($productIds as $productId) { + $this->product->delete($productId); } session()->flash('success', trans('admin::app.catalog.products.mass-delete-success')); @@ -242,36 +218,22 @@ class ProductController extends Controller * * @return response */ - public function massUpdate() { + public function massUpdate() + { $data = request()->all(); - $attribute = 'status'; - $productIds = explode(',', $data['indexes']); - - if(!isset($data['massaction-type'])) { + if (!isset($data['massaction-type'])) { return redirect()->back(); } - if(count($productIds)) { - foreach($productIds as $productId) { - $product = $this->product->find($productId); + $productIds = explode(',', $data['indexes']); - if($data['update-options'] == 0 && $data['selected-option-text'] == 'In Active') { - Event::fire('catelog.product.update.before', $productId); - - $result = $this->product->updateAttribute($product, $attribute, $data['update-options']); - - if($result) - Event::fire('catelog.product.update.after', $product); - } else if($data['update-options'] == 1 && $data['selected-option-text'] == 'Active') { - Event::fire('catelog.product.update.before', $productId); - - $result = $this->product->updateAttribute($product, $attribute, $data['update-options']); - - if($result) - Event::fire('product.update.after', $product); - } - } + foreach ($productIds as $productId) { + $this->product->update([ + 'channel' => null, + 'locale' => null, + 'status' => $data['update-options'] + ], $productId); } session()->flash('success', trans('admin::app.catalog.products.mass-update-success')); @@ -282,7 +244,8 @@ class ProductController extends Controller /* * To be manually invoked when data is seeded into products */ - public function sync() { + public function sync() + { Event::fire('products.datagrid.sync', true); return redirect()->route('admin.catalog.products.index'); diff --git a/packages/Webkul/Product/src/Repositories/ProductRepository.php b/packages/Webkul/Product/src/Repositories/ProductRepository.php index 0da7a5526..ba4986599 100644 --- a/packages/Webkul/Product/src/Repositories/ProductRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductRepository.php @@ -3,6 +3,7 @@ namespace Webkul\Product\Repositories; use Illuminate\Container\Container as App; +use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; use Webkul\Attribute\Repositories\AttributeRepository; use Webkul\Attribute\Repositories\AttributeOptionRepository; @@ -111,6 +112,9 @@ class ProductRepository extends Repository */ public function create(array $data) { + //before store of the product + Event::fire('catalog.product.create.before'); + $product = $this->model->create($data); $nameAttribute = $this->attribute->findOneByField('code', 'status'); @@ -137,6 +141,10 @@ class ProductRepository extends Repository } } + //after store of the product + Event::fire('catalog.product.create.after', $product); + + return $product; } @@ -148,6 +156,8 @@ class ProductRepository extends Repository */ public function update(array $data, $id, $attribute = "id") { + Event::fire('catalog.product.update.before', $id); + $product = $this->find($id); if($product->parent_id && $this->checkVariantOptionAvailabiliy($data, $product)) { @@ -221,9 +231,24 @@ class ProductRepository extends Repository $this->productImage->uploadImages($data, $product); + Event::fire('catalog.product.update.after', $product); + return $product; } + /** + * @param $id + * @return mixed + */ + public function delete($id) + { + Event::fire('catalog.product.delete.before', $id); + + parent::delete($id); + + Event::fire('catalog.product.delete.after', $id); + } + /** * @param mixed $product * @param array $permutation @@ -350,29 +375,6 @@ class ProductRepository extends Repository return $variant; } - /** - * Change an attribute's value of the product - * - * @return boolean - */ - public function updateAttribute($product, $attribute, $value) { - $attribute = $this->attribute->findOneByField('code', 'status'); - - $attributeValue = $this->attributeValue->findOneWhere([ - 'product_id' => $product->id, - 'attribute_id' => $attribute->id, - ]); - - $result = $this->attributeValue->update([ - ProductAttributeValue::$attributeTypeFields[$attribute->type] => $value - ], $attributeValue->id); - - if($result) - return true; - else - return false; - } - /** * @param array $data * @param mixed $product From cb3da5fc08ec93dcacc09d4d759236206032b0ac Mon Sep 17 00:00:00 2001 From: jitendra Date: Mon, 31 Dec 2018 16:34:26 +0530 Subject: [PATCH 15/15] Channel root category feature added --- .../src/Providers/EventServiceProvider.php | 2 -- .../Admin/src/Resources/lang/en/app.php | 1 + .../views/settings/channels/create.blade.php | 12 +++++++ .../views/settings/channels/edit.blade.php | 13 ++++++++ .../src/Repositories/CategoryRepository.php | 11 +++++++ ...2018_12_31_161114_alter_channels_table.php | 31 +++++++++++++++++++ .../Http/Controllers/ChannelController.php | 2 ++ packages/Webkul/Core/src/Models/Channel.php | 11 ++++++- .../Http/ViewComposers/CategoryComposer.php | 2 +- 9 files changed, 81 insertions(+), 4 deletions(-) create mode 100644 packages/Webkul/Core/src/Database/Migrations/2018_12_31_161114_alter_channels_table.php diff --git a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php index fe4a0e91b..c869411b4 100644 --- a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php +++ b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php @@ -27,7 +27,5 @@ class EventServiceProvider extends ServiceProvider Event::listen('catalog.product.create.after', 'Webkul\Admin\Listeners\Product@afterProductCreated'); Event::listen('catalog.product.update.after', 'Webkul\Admin\Listeners\Product@afterProductUpdate'); - - Event::listen('catalog.product.delete.after', 'Webkul\Admin\Listeners\Product@afterProductDelete'); } } \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 75b87a4d7..5ae31f64f 100644 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -467,6 +467,7 @@ return [ 'default-locale' => 'Default Locale', 'currencies' => 'Currencies', 'base-currency' => 'Base Currency', + 'root-category' => 'Root Category', 'inventory_sources' => 'Inventory Sources', 'design' => 'Design', 'theme' => 'Theme', diff --git a/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php index ebf463abb..3a7f58e4a 100644 --- a/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php @@ -56,6 +56,18 @@ @{{ errors.first('inventory_sources[]') }}
+
+ + + @{{ errors.first('root_category_id') }} +
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php index 0802b67a9..2e6127045 100644 --- a/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php @@ -59,6 +59,19 @@ @{{ errors.first('inventory_sources[]') }}
+
+ + root_category_id ?> + + @{{ errors.first('root_category_id') }} +
+
diff --git a/packages/Webkul/Category/src/Repositories/CategoryRepository.php b/packages/Webkul/Category/src/Repositories/CategoryRepository.php index 11d87b039..b9eb2ed16 100644 --- a/packages/Webkul/Category/src/Repositories/CategoryRepository.php +++ b/packages/Webkul/Category/src/Repositories/CategoryRepository.php @@ -80,6 +80,17 @@ class CategoryRepository extends Repository : Category::orderBy('position', 'ASC')->get()->toTree(); } + + /** + * Get root categories + * + * @return mixed + */ + public function getRootCategories() + { + return Category::withDepth()->having('depth', '=', 0)->get(); + } + /** * get visible category tree * diff --git a/packages/Webkul/Core/src/Database/Migrations/2018_12_31_161114_alter_channels_table.php b/packages/Webkul/Core/src/Database/Migrations/2018_12_31_161114_alter_channels_table.php new file mode 100644 index 000000000..ae32456d3 --- /dev/null +++ b/packages/Webkul/Core/src/Database/Migrations/2018_12_31_161114_alter_channels_table.php @@ -0,0 +1,31 @@ +integer('root_category_id')->nullable()->unsigned(); + $table->foreign('root_category_id')->references('id')->on('categories')->onDelete('set null'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php index 7d4e62999..61efdb773 100644 --- a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php +++ b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php @@ -77,6 +77,7 @@ class ChannelController extends Controller 'default_locale_id' => 'required', 'currencies' => 'required|array|min:1', 'base_currency_id' => 'required', + 'root_category_id' => 'required', 'logo.*' => 'mimes:jpeg,jpg,bmp,png', 'favicon.*' => 'mimes:jpeg,jpg,bmp,png' ]); @@ -122,6 +123,7 @@ class ChannelController extends Controller 'default_locale_id' => 'required', 'currencies' => 'required|array|min:1', 'base_currency_id' => 'required', + 'root_category_id' => 'required', 'logo.*' => 'mimes:jpeg,jpg,bmp,png', 'favicon.*' => 'mimes:jpeg,jpg,bmp,png' ]); diff --git a/packages/Webkul/Core/src/Models/Channel.php b/packages/Webkul/Core/src/Models/Channel.php index 2290967c6..39de83d72 100644 --- a/packages/Webkul/Core/src/Models/Channel.php +++ b/packages/Webkul/Core/src/Models/Channel.php @@ -6,11 +6,12 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Storage; use Webkul\Core\Models\Locale; use Webkul\Core\Models\Currency; +use Webkul\Category\Models\Category; use Webkul\Inventory\Models\InventorySource; class Channel extends Model { - protected $fillable = ['code', 'name', 'description', 'theme', 'home_page_content', 'footer_content', 'hostname', 'default_locale_id', 'base_currency_id']; + protected $fillable = ['code', 'name', 'description', 'theme', 'home_page_content', 'footer_content', 'hostname', 'default_locale_id', 'base_currency_id', 'root_category_id']; /** * Get the channel locales. @@ -55,6 +56,14 @@ class Channel extends Model return $this->belongsTo(Currency::class); } + /** + * Get the base currency + */ + public function root_category() + { + return $this->belongsTo(Category::class, 'root_category_id'); + } + /** * Get logo image url. */ diff --git a/packages/Webkul/Shop/src/Http/ViewComposers/CategoryComposer.php b/packages/Webkul/Shop/src/Http/ViewComposers/CategoryComposer.php index 5276a4e4a..aea86852d 100644 --- a/packages/Webkul/Shop/src/Http/ViewComposers/CategoryComposer.php +++ b/packages/Webkul/Shop/src/Http/ViewComposers/CategoryComposer.php @@ -44,7 +44,7 @@ class CategoryComposer { $categories = []; - foreach ($this->category->getVisibleCategoryTree() as $category) { + foreach ($this->category->getVisibleCategoryTree(core()->getCurrentChannel()->root_category_id) as $category) { if($category->slug) array_push($categories, $category); }