Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
joshine
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
joshine
Commits
5c3589ce
Commit
5c3589ce
authored
May 04, 2023
by
liumengfei
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'developer' into production
parents
64ff28a6
4cb5a579
Show whitespace changes
Inline
Side-by-side
Showing
45 changed files
with
1172 additions
and
862 deletions
+1172
-862
app/code/Joshine/Banner/view/adminhtml/ui_component/joshine_banner_index_form.xml
+31
-0
app/code/Joshine/Banner/view/adminhtml/ui_component/joshine_banner_index_listing.xml
+0
-13
app/code/Joshine/Review/view/frontend/templates/product/view/list.phtml
+58
-63
app/code/Joshine/Script/Console/Command/ReviewsImporter.php
+10
-14
app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml
+1
-1
app/code/Magento/Checkout/view/frontend/templates/cart/form.phtml
+6
-230
app/code/Magento/Checkout/view/frontend/templates/cart/methods-new.phtml
+2
-1
app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js
+1
-0
app/design/frontend/Joshine/breeze/Magento_Catalog/layout/catalog_product_view.xml
+2
-1
app/design/frontend/Joshine/breeze/Magento_Catalog/templates/product/free_shipping.phtml
+14
-12
app/design/frontend/Joshine/breeze/Magento_Catalog/templates/product/view/addto.phtml
+74
-19
app/design/frontend/Joshine/breeze/Magento_Catalog/templates/product/view/addtocart.phtml
+42
-1
app/design/frontend/Joshine/breeze/Magento_Catalog/web/css/gallery.css
+2
-2
app/design/frontend/Joshine/breeze/Magento_Checkout/layout/checkout_cart_index.xml
+22
-42
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/cart/coupon.phtml
+8
-13
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/cart/form.phtml
+159
-0
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/cart/item/default.phtml
+28
-313
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/cart/methods.phtml
+53
-0
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/cart/minicart.phtml
+1
-1
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/cart/totals.phtml
+50
-0
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/onepage/link.phtml
+8
-4
app/design/frontend/Joshine/breeze/Magento_Checkout/web/template/minicart/content.html
+21
-21
app/design/frontend/Joshine/breeze/Magento_Checkout/web/template/minicart/item/default.html
+25
-3
app/design/frontend/Joshine/breeze/Magento_Checkout/web/template/minicart/subtotal.html
+7
-4
app/design/frontend/Joshine/breeze/Magento_Checkout/web/template/summary/cart-items.html
+1
-1
app/design/frontend/Joshine/breeze/Magento_Paypal/templates/express/shortcut.phtml
+18
-11
app/design/frontend/Joshine/breeze/Magento_Search/templates/form.mini.phtml
+0
-16
app/design/frontend/Joshine/breeze/Magento_Swatches/web/js/swatch-renderer.js
+2
-2
app/design/frontend/Joshine/breeze/etc/view.xml
+3
-3
app/design/frontend/Joshine/breeze/web/css/_custom.less
+403
-67
app/design/frontend/Joshine/breeze/web/css/_joshine_utils.less
+39
-0
app/design/frontend/Joshine/breeze/web/css/_theme.less
+64
-0
app/design/frontend/Joshine/breeze/web/fonts/cyrillic-ext-montserrat.woff2
+0
-0
app/design/frontend/Joshine/breeze/web/fonts/cyrillic-montserrat.woff2
+0
-0
app/design/frontend/Joshine/breeze/web/fonts/devanagari-poppins.woff2
+0
-0
app/design/frontend/Joshine/breeze/web/fonts/latin-ext-montserrat.woff2
+0
-0
app/design/frontend/Joshine/breeze/web/fonts/latin-ext-popoins.woff2
+0
-0
app/design/frontend/Joshine/breeze/web/fonts/latin-montserrat.woff2
+0
-0
app/design/frontend/Joshine/breeze/web/fonts/latin-popoins.woff2
+0
-0
app/design/frontend/Joshine/breeze/web/fonts/vietnamese-montserrat.woff2
+0
-0
app/design/frontend/Joshine/breeze/web/images/cursor-zoom-in.svg
+7
-0
lib/web/mage/gallery/gallery.html
+1
-1
pub/.htaccess
+5
-2
pub/health_check.php
+3
-0
vendor/swissup/theme-frontend-breeze-blank/web/css/abstracts/variables/_base.less
+1
-1
No files found.
app/code/Joshine/Banner/view/adminhtml/ui_component/joshine_banner_index_form.xml
View file @
5c3589ce
...
...
@@ -112,6 +112,34 @@
</field>
<field
name=
"storeviews"
formElement=
"multiselect"
class=
"Magento\Store\Ui\Component\Form\Field\StoreView"
>
<argument
name=
"data"
xsi:type=
"array"
>
<item
name=
"config"
xsi:type=
"array"
>
<item
name=
"source"
xsi:type=
"string"
>
block
</item>
<item
name=
"default"
xsi:type=
"number"
>
0
</item>
</item>
</argument>
<settings>
<validation>
<rule
name=
"required-entry"
xsi:type=
"boolean"
>
true
</rule>
</validation>
<dataType>
int
</dataType>
<tooltip>
<link>
https://docs.magento.com/user-guide/configuration/scope.html
</link>
<description>
What is this?
</description>
</tooltip>
<label
translate=
"true"
>
Store View
</label>
<dataScope>
store_id
</dataScope>
</settings>
<formElements>
<multiselect>
<settings>
<options
class=
"Magento\Cms\Ui\Component\Listing\Column\Cms\Options"
/>
</settings>
</multiselect>
</formElements>
</field>
<field
name=
"url"
sortOrder=
"30"
formElement=
"input"
>
<argument
name=
"data"
xsi:type=
"array"
>
...
...
@@ -195,4 +223,6 @@
</fieldset>
</form>
\ No newline at end of file
app/code/Joshine/Banner/view/adminhtml/ui_component/joshine_banner_index_listing.xml
View file @
5c3589ce
...
...
@@ -95,19 +95,6 @@
</argument>
</column>
<column
name=
"desc"
>
<argument
name=
"data"
xsi:type=
"array"
>
<item
name=
"config"
xsi:type=
"array"
>
<item
name=
"filter"
xsi:type=
"string"
>
text
</item>
<item
name=
"label"
xsi:type=
"string"
translate=
"true"
>
Description
</item>
<item
name=
"resizeEnabled"
xsi:type=
"boolean"
>
true
</item>
<item
name=
"resizeDefaultWidth"
xsi:type=
"string"
>
60
</item>
<item
name=
"fieldClass"
xsi:type=
"string"
>
col3
</item>
</item>
</argument>
</column>
<column
name=
"url"
>
<argument
name=
"data"
xsi:type=
"array"
>
<item
name=
"config"
xsi:type=
"array"
>
...
...
app/code/Joshine/Review/view/frontend/templates/product/view/list.phtml
View file @
5c3589ce
...
...
@@ -19,14 +19,28 @@ $count = $block->getReviewsCount();
$t
=
[
1
=>
__
(
'Small'
)
,
2
=>
__
(
'True to Size'
)
,
3
=>
__
(
'Large'
)];
$imagesBlock
=
$helper
->
getReviewImagesBlock
(
15
,
$block
->
getProductId
());
?>
<div
class=
"block review-list joshine-clearfix"
id=
"customer-reviews"
>
<style>
.review-item-head
{
display
:
flex
;
justify-content
:
space-between
;
}
.review-item-head-item
{
display
:
flex
;
}
.review-item-head-item
.joshine-review-nickname
{
margin-right
:
10px
;
}
.ave-rate
+
*
{
margin
:
0
!important
;
}
</style>
<div
class=
"block review-list joshine-clearfix"
id=
"customer-reviews"
>
<div
class=
"joshine-review-container joshine-clearfix joshine-hidden-md joshine-hidden-sm joshine-hidden-xs"
>
<h1
class=
"joshine-review-title"
>
<?=
__
(
"Customer Reviews"
)
?>
...
...
@@ -38,8 +52,8 @@ $imagesBlock = $helper->getReviewImagesBlock(15, $block->getProductId());
<?=
__
(
"Average Rating"
)
?>
</div>
<div
class=
"ave-rate"
>
<div
class=
"
joshine-rating-container
"
>
<
div
class=
"joshine-rating-starts"
style=
"width:
<?=
$rating
?>
%;"
></div
>
<div
class=
"
rating-result -lg
"
>
<
span
style=
"width:
<?=
$rating
?>
%;"
></span
>
</div>
<div
class=
"ave-rate-total"
>
<?=
$block
->
getRatingSummaryValue
()
?>
</div>
</div>
...
...
@@ -60,15 +74,14 @@ $imagesBlock = $helper->getReviewImagesBlock(15, $block->getProductId());
</div>
<?php
endforeach
;
?>
</div>
<div
class=
"joshine-review-item add-new-box"
>
<a
href=
"#review-form"
title=
"Write a review"
class=
"add-new-button joshine-btn joshine-btn-dark joshine-review-add-btn"
>
<?=
__
(
"Write a review"
)
?>
</a>
<div
class=
"joshine-review-item"
>
<div
class=
"add-new-box"
>
<div
class=
"primary actions-primary"
>
<a
href=
"#review-form"
class=
"action submit primary joshine-review-add-btn"
style=
"background-color: #000; margin-left: 25%;"
><span>
<?=
$block
->
escapeHtml
(
__
(
'Write a review'
))
?>
</span></a>
</div>
</div>
</div>
</div>
<!-- 筛选框 -->
<?=
$helper
->
getToolBarHtML
()
?>
<div
class=
"joshine-review-list joshine-clearfix"
>
<?php
if
(
count
(
$_items
)
>
0
)
:
?>
...
...
@@ -88,21 +101,20 @@ $imagesBlock = $helper->getReviewImagesBlock(15, $block->getProductId());
<div
class=
"joshine-review-des-title joshine-font-size-default joshine-font-c-deepin"
>
<?=
$block
->
escapeHtml
(
$review
->
getTitle
())
?>
</div>
<div
class=
"
joshine-rating-container joshine-rating-small
"
>
<div
class=
"
rating-result
"
>
<?php
if
(
count
(
$review
->
getRatingVotes
()))
:
?>
<?php
foreach
(
$review
->
getRatingVotes
()
as
$_vote
)
:
?>
<
div
class=
"joshine-rating-starts"
style=
"width:
<?=
$block
->
escapeHtml
(
$_vote
->
getPercent
())
?>
%;"
></div
>
<
span
style=
"width:
<?=
$block
->
escapeHtml
(
$_vote
->
getPercent
())
?>
%;"
></span
>
<?php
endforeach
;
?>
<?php
endif
;
?>
</div>
<div
class=
"joshine-review-des"
>
<div
class=
"joshine-review-des joshine-font-c-darkgray"
>
<?=
$block
->
escapeHtml
(
$review
->
getDetail
());
?>
</div>
<div
class=
"
joshine-foot-mark rate-fi
t"
>
<div
class=
"
rate-fit joshine-font-c-darkgray joshine-font-tex
t"
>
<div
class=
"rate-fit-item"
>
<?php
$fitsValue
=
$review
->
getSizeFits
();
?>
<span><strong
class=
"joshine-font-w-bolder"
>
<?=
__
(
"Size Fits"
)
?>
:
</strong>
<?=
$helper
->
translateSizeFits
(
$fitsValue
);
?>
</span>
<span><strong>
<?=
__
(
"Size Fits"
)
?>
:
</strong>
<?=
$helper
->
translateSizeFits
(
$fitsValue
);
?>
</span>
</div>
</div>
</div>
...
...
@@ -132,67 +144,54 @@ $imagesBlock = $helper->getReviewImagesBlock(15, $block->getProductId());
</div>
<div
class=
"joshine-review-container-mobile joshine-hidden-lg"
>
<h
4
class=
"joshine-review-title joshine-font-w-bolder"
>
<h
5
class=
"joshine-review-title joshine-font-w-bolder"
>
<?=
__
(
"Customer Reviews"
)
?>
</h
4
>
</h
5
>
<div
class=
"joshine-review"
>
<div
class=
"joshine-review-averate joshine-bg-silver joshine-clearfix"
>
<div
class=
"joshine-review-averate joshine-bg-silver joshine-clearfix"
style=
"margin-bottom: 1em;"
>
<div
class=
"joshine-review-item joshine-review-rating-box"
>
<div
class=
"name"
>
<?=
__
(
"Average Rating"
)
?>
</div>
<div
class=
"ave-rate row"
>
<div
class=
"joshine-rating-container joshine-col-xs-8"
>
<div
class=
"joshine-rating-starts"
style=
"width:
<?=
$rating
?>
%;"
></div>
</div>
<h2
class=
"ave-rate-total"
style=
"margin-top: 0; margin-bottom: .35em; margin-left: .4em"
>
<?=
$block
->
getRatingSummaryValue
()
?>
</h2>
</div>
</div>
<div
class=
"joshine-review-item"
>
<div
class=
"name"
>
<?=
__
(
"Did the item fit well?"
)
?>
</div>
<?php
foreach
(
$block
->
getDetailedSummary
()
as
$key
=>
$detail
)
:
?>
<div
class=
"fit-item"
>
<span
class=
"fit-name joshine-font-mini"
>
<?=
$t
[
$key
]
?>
</span>
<div
class=
"joshine-process"
>
<div
class=
"joshine-process-active"
style=
"width:
<?=
/* @noEscape */
$count
?
round
(
$detail
/
$count
*
100
)
:
0
?>
%;"
></div>
</div>
</div>
<?php
endforeach
;
?>
<div
style=
"display: flex; justify-content: space-between;"
>
<div
class=
"ave-rate"
>
<div
class=
"rating-result -lg"
>
<span
style=
"width:
<?=
$rating
?>
%;"
></span>
</div>
<h4
class=
"ave-rate-total"
style=
"margin:0;"
>
<?=
$block
->
getRatingSummaryValue
()
?>
</h4>
</div>
<div
class=
"joshine-review-item add-new-box"
>
<a
href=
"#review-form"
title=
"Write a review"
class=
"add-new-button joshine-btn joshine-btn-dark joshine-review-add-btn"
>
<?=
__
(
"Write a review"
)
?>
</a>
</div>
</div>
</div>
</div>
<div
class=
"joshine-review-list joshine-clearfix"
>
<?php
if
(
count
(
$_items
)
>
0
)
:
?>
<?php
foreach
(
$_items
as
$review
)
:
?>
<div
class=
"joshine-review-list-item row joshine-clearfix"
>
<div
class=
"row"
>
<div
class=
"review-item-head"
>
<div
class=
"review-item-head-item"
>
<span
class=
"joshine-review-nickname"
style=
"font-size: .9em;"
>
<?=
$block
->
escapeHtml
(
$review
->
getNickname
())
?>
</span>
<span
class=
"joshine-review-date joshine-font-c-darkgray joshine-font-mini-plus"
>
<?=
$block
->
escapeHtml
(
$block
->
formatDate
(
$review
->
getCreatedAt
(),
$format
))
?>
</span>
</div>
<div
class=
"row"
>
<div
class=
"joshine-rating-container joshine-rating-small joshine-col-xs-8"
>
<div
class=
"rating-result"
>
<?php
if
(
count
(
$review
->
getRatingVotes
()))
:
?>
<?php
foreach
(
$review
->
getRatingVotes
()
as
$_vote
)
:
?>
<div
class=
"joshine-rating-starts"
style=
"width:
<?=
$block
->
escapeHtml
(
$_vote
->
getPercent
())
?>
%;"
></div
>
<span
style=
"width:
<?=
$block
->
escapeHtml
(
$_vote
->
getPercent
())
?>
%;"
></span
>
<?php
endforeach
;
?>
<?php
endif
;
?>
</div>
<div
class=
"joshine-pull-right"
>
</div>
<div
class=
"joshine-flex"
>
<span
class=
"joshine-review-date joshine-font-c-darkgray joshine-font-mini-plus"
>
<?=
$block
->
escapeHtml
(
$block
->
formatDate
(
$review
->
getCreatedAt
(),
$format
))
?>
</span>
<div
class=
"joshine-review-helpful joshine-font-c-darkgray joshine-font-text"
>
<span
class=
"joshine-like
<?=
$block
->
getPlusVotedClass
(
$review
->
getId
());
?>
"
data-review-id=
"
<?=
$review
->
getId
();
?>
"
>
<input
name=
"form_key"
type=
"hidden"
value=
"
<?=
/* @noEscape */
$block
->
getFormKey
();
?>
"
/>
...
...
@@ -201,23 +200,19 @@ $imagesBlock = $helper->getReviewImagesBlock(15, $block->getProductId());
</div>
</div>
</div>
<div
class=
"row joshine-foot-mark"
>
<?php
$fitsValue
=
$review
->
getSizeFits
();
?>
<span><strong
class=
"joshine-font-w-bolder"
>
<?=
__
(
"Size Fits"
)
?>
:
</strong>
<?=
$helper
->
translateSizeFits
(
$fitsValue
);
?>
</span>
</div>
<div
class=
"row joshine-font-w-bolder"
style=
"font-size: .9em;"
>
<?=
$block
->
escapeHtml
(
$review
->
getTitle
());
?>
</div>
<div
class=
"row joshine-font-c-darkgray"
style=
"font-size: .8em;"
>
<div
class=
"row joshine-font-c-darkgray joshine-font-text"
>
<?=
$block
->
escapeHtml
(
$review
->
getDetail
());
?>
</div>
<div
class=
"row joshine-review-pics"
>
<div
class=
"row joshine-review-pics"
style=
"margin: .5em .5em .5em 0;"
>
<?=
/* @noEscape */
$helper
->
getReviewImagesHtml
(
$review
->
getId
(),
$block
->
getProductId
())
?>
</div>
<div
class=
"row joshine-font-c-darkgray joshine-font-text"
>
<?php
$fitsValue
=
$review
->
getSizeFits
();
?>
<span><strong>
<?=
__
(
"Size Fits"
)
?>
:
</strong>
<?=
$helper
->
translateSizeFits
(
$fitsValue
);
?>
</span>
</div>
</div>
<hr>
<?php
endforeach
;
?>
...
...
app/code/Joshine/Script/Console/Command/ReviewsImporter.php
View file @
5c3589ce
...
...
@@ -14,6 +14,7 @@ use Magento\Framework\Exception\NoSuchEntityException;
use
Magento\Framework\File\Csv
;
use
Magento\Framework\ObjectManager\ObjectManager
;
use
Magento\Setup\Exception
;
use
Magento\Store\Model\App\Emulation
;
use
Symfony\Component\Console\Command\Command
;
use
Symfony\Component\Console\Input\InputInterface
;
use
Symfony\Component\Console\Input\InputOption
;
...
...
@@ -166,12 +167,12 @@ class ReviewsImporter extends Command
return
;
}
$store
I
d
=
$input
->
getOption
(
'store_id'
);
if
(
!
$store
I
d
)
{
$store
_i
d
=
$input
->
getOption
(
'store_id'
);
if
(
!
$store
_i
d
)
{
$output
->
writeln
(
$this
->
errorWrapper
(
"store_id没填"
));
return
;
}
$this
->
storeId
=
$store
I
d
;
$this
->
storeId
=
$store
_i
d
;
$this
->
importCsvFile
(
$path
);
}
catch
(
\Exception
$e
)
{
$output
->
writeln
(
$this
->
errorWrapper
(
$e
->
getMessage
()));
...
...
@@ -192,6 +193,7 @@ class ReviewsImporter extends Command
private
function
insertDB
(
$data
)
{
$objectManager
=
\Magento\Framework\App\ObjectManager
::
getInstance
();
$reviewFactory
=
$objectManager
->
get
(
"Magento\Review\Model\ReviewFactory"
);
$ratingFactory
=
$objectManager
->
get
(
"Magento\Review\Model\RatingFactory"
);
...
...
@@ -319,21 +321,15 @@ class ReviewsImporter extends Command
$review
[
'size_fits'
]
=
trim
(
$row
[
6
]);
$review
[
'date'
]
=
trim
(
$row
[
7
]);
if
(
empty
(
trim
(
$review
[
"sku"
]))
||
empty
(
trim
(
$review
[
"detail"
])
||
empty
(
trim
(
$review
[
"detail"
])
)
||
empty
(
trim
(
$review
[
'nickname'
]))
||
empty
(
$review
[
'date'
])
||
empty
(
$review
[
'title'
])
||
empty
(
$review
[
'title'
]
||
empty
(
$review
[
'size_fits'
])
||
empty
(
$review
[
'ratings'
])
)
)
{
throw
new
\Exception
(
"表格数据有空:
{
$row
[
"name"
]
}
"
);
}
if
(
!
is_integer
(
$review
[
'size_fits'
]))
{
$review
[
'size_fits'
]
=
3
;
}
if
(
!
is_integer
(
$review
[
'ratings'
]))
{
$review
[
'ratings'
]
=
5
;
throw
new
\Exception
(
"表格数据有空!"
);
}
$data
[]
=
$review
;
}
...
...
app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml
View file @
5c3589ce
...
...
@@ -176,7 +176,7 @@
</block>
</container>
<block
class=
"Magento\Checkout\Block\Cart\Coupon"
name=
"checkout.cart.coupon"
as=
"coupon"
template=
"Magento_Checkout::cart/coupon.phtml"
after=
"checkout.cart.summary.title"
/>
<block
class=
"Magento\Checkout\Block\Cart"
name=
"checkout.cart.methods.bottom"
template=
"Magento_Checkout::cart/methods
-new
.phtml"
>
<block
class=
"Magento\Checkout\Block\Cart"
name=
"checkout.cart.methods.bottom"
template=
"Magento_Checkout::cart/methods.phtml"
>
<container
name=
"checkout.cart.methods"
as=
"methods"
label=
"Payment Methods After Checkout Button"
>
<block
class=
"Magento\Checkout\Block\Onepage\Link"
name=
"checkout.cart.methods.onepage.bottom"
template=
"Magento_Checkout::onepage/link.phtml"
/>
<block
class=
"Magento\Checkout\Block\QuoteShortcutButtons"
name=
"checkout.cart.shortcut.buttons"
/>
...
...
app/code/Magento/Checkout/view/frontend/templates/cart/form.phtml
View file @
5c3589ce
...
...
@@ -7,130 +7,9 @@
// phpcs:disable Magento2.Templates.ThisInTemplate
/** @var $block \Magento\Checkout\Block\Cart\Grid */
$objectManager
=
\Magento\Framework\App\ObjectManager
::
getInstance
();
$_cart
=
$objectManager
->
get
(
'\Magento\Checkout\Model\Cart'
);
$items
=
[];
$priceSum
=
0
;
$_items
=
$block
->
getItems
();
if
(
count
(
$_items
)
>
0
)
{
foreach
(
$_items
as
$key
=>
$value
)
{
$_item
[
'google_business_vertical'
]
=
'retail'
;
$_item
[
'id'
]
=
$value
->
getSku
();
$items
[]
=
$_item
;
$priceSum
+=
$value
->
getPrice
()
*
$value
->
getQty
();
}
}
$subtotal
=
$_cart
->
getSubtotal
();
$_shipping
=
$objectManager
->
get
(
'\Magento\Checkout\Block\Cart\Shipping'
);
$free_shipping_subtotal
=
$_shipping
->
getNoFormatFreeShippingSubtotal
();
$is_free_shipping
=
false
;
$difference_price
=
0
;
if
(
$subtotal
>=
$free_shipping_subtotal
)
{
$is_free_shipping
=
true
;
}
else
{
$difference_price
=
$free_shipping_subtotal
-
$subtotal
;
}
$mobileDetect
=
$objectManager
->
get
(
\Joshine\Common\Lib\MobileDetect\MobileDetect
::
class
);
?>
<style>
.free_message
{
margin-left
:
.7rem
;
text-align
:
left
;
}
.free_message.tddiv
{
margin-left
:
1.3rem
;
}
.free-shipping-area
.cart-icon
{
float
:
left
;
}
.free-shipping-area
.content-wrap
{
float
:
left
;
}
.free-shipping-area
{
width
:
100%
!important
;
order
:
-3
;
padding
:
15px
;
background-color
:
#FFFFFF
;
color
:
#000
;
}
@media
(
min-width
:
768px
){
.free-shipping-area
{
padding
:
10px
10px
10px
20px
;
}
.area-blk-notitle
{
display
:
none
;
}
}
@media
(
max-width
:
768px
){
.free-shipping-area
{
padding
:
0px
;
}
.free-shipping-area
.content-wrap
{
padding
:
10px
0px
;
background-color
:
#f2f2f2
;
width
:
100%
;
}
.area-blk
{
display
:
none
;
}
.area-fix
{
position
:
fixed
;
left
:
0
;
z-index
:
1
;
border-top
:
1px
solid
#fff
;
}
.cart.table-wrapper
{
border-top
:
1px
solid
#ddd
;
}
}
</style>
<?php
$mergedCells
=
(
$this
->
helper
(
Magento\Tax\Helper\Data
::
class
)
->
displayCartBothPrices
()
?
2
:
1
);
?>
<?=
$block
->
getChildHtml
(
'form_before'
)
?>
<?php
if
(
!
$is_free_shipping
)
:
?>
<div
class=
"free-shipping-area area-blk"
>
<img
alt=
""
class=
"cart-icon"
src=
"/media/wysiwyg/free-shipping-cart.png"
>
<div
class=
"content-wrap"
>
<div
class=
"free_message"
>
<div
class=
"msg-title"
>
<p
style=
"font-weight: bold;"
>
<?=
$block
->
escapeHtml
(
__
(
'Shipping Fee'
))
?>
</p>
</div>
<div
class=
"msg-content"
>
<?=
$block
->
escapeHtml
(
__
(
'Spend'
))
?>
<span
style=
"color:#EB001B;font-size: 16px;font-weight: bold;"
>
<?=
$block
->
escapeHtml
(
$this
->
helper
(
Magento\Checkout\Helper\Data
::
class
)
->
formatPrice
(
$difference_price
),
[
'span'
]
)
?>
</span>
<?=
$block
->
escapeHtml
(
__
(
'more and get'
))
?>
<span
style=
"font-weight: bold;"
>
<?=
$block
->
escapeHtml
(
__
(
'FREE SHIPPING'
))
?>
</span>
!
</div>
</div>
</div>
</div>
<?php
endif
?>
<?php
if
(
!
$is_free_shipping
)
:
?>
<div
class=
"free-shipping-area area-blk-notitle"
>
<div
class=
"content-wrap"
>
<div
class=
"free_message"
>
<div
class=
"msg-content"
>
<?=
$block
->
escapeHtml
(
__
(
'Spend'
))
?>
<span
style=
"color:#EB001B;font-size: 18px;"
>
<?=
$block
->
escapeHtml
(
$this
->
helper
(
Magento\Checkout\Helper\Data
::
class
)
->
formatPrice
(
$difference_price
),
[
'span'
]
)
?>
</span>
<?=
$block
->
escapeHtml
(
__
(
' more and get'
))
?>
<span
style=
"font-weight: bold;"
>
<?=
$block
->
escapeHtml
(
__
(
'FREE SHIPPING'
))
?>
</span>
</div>
</div>
</div>
</div>
<?php
endif
?>
<?php
if
(
!
$mobileDetect
->
isMobile
())
:
?>
<form
action=
"
<?=
$block
->
escapeUrl
(
$block
->
getUrl
(
'checkout/cart/updatePost'
))
?>
"
method=
"post"
id=
"form-validate"
...
...
@@ -140,7 +19,6 @@ $mobileDetect = $objectManager->get(\Joshine\Common\Lib\MobileDetect\MobileDetec
}'
class=
"form form-cart"
>
<?=
$block
->
getBlockHtml
(
'formkey'
)
?>
<div
class=
"cart table-wrapper
<?=
$mergedCells
==
2
?
' detailed'
:
''
?>
"
>
<?php
if
(
$block
->
getPagerHtml
())
:
?>
<div
class=
"cart-products-toolbar cart-products-toolbar-top toolbar"
...
...
@@ -152,13 +30,14 @@ $mobileDetect = $objectManager->get(\Joshine\Common\Lib\MobileDetect\MobileDetec
data-mage-init=
'{"shoppingCart":{"emptyCartButton": ".action.clear",
"updateCartActionContainer": "#update_cart_action_container"}}'
>
<caption
class=
"table-caption"
>
<?=
$block
->
escapeHtml
(
__
(
'Shopping Cart Items'
))
?>
</caption>
<thead>
<td
colspan=
"4"
><div
class=
"item-summary"
>
<?=
$block
->
escapeHtml
(
__
(
'Item Summary'
))
?>
</div></td></thead>
<thead>
<tr>
<t
d
class=
"col item first"
scope=
"col"
><span>
<?=
$block
->
escapeHtml
(
__
(
'Item'
))
?>
</span></td
>
<t
d
class=
"col price"
scope=
"col"
><span>
<?=
$block
->
escapeHtml
(
__
(
'Price'
))
?>
</span></td
>
<t
d
class=
"col qty"
scope=
"col"
><span>
<?=
$block
->
escapeHtml
(
__
(
'Qty'
))
?>
</span></td
>
<t
d
class=
"col subtotal"
scope=
"col"
><span>
<?=
$block
->
escapeHtml
(
__
(
'Subtotal'
))
?>
</span></td
>
<t
h
class=
"col item"
scope=
"col"
><span>
<?=
$block
->
escapeHtml
(
__
(
'Item'
))
?>
</span></th
>
<t
h
class=
"col price"
scope=
"col"
><span>
<?=
$block
->
escapeHtml
(
__
(
'Price'
))
?>
</span></th
>
<t
h
class=
"col qty"
scope=
"col"
><span>
<?=
$block
->
escapeHtml
(
__
(
'Qty'
))
?>
</span></th
>
<t
h
class=
"col subtotal"
scope=
"col"
><span>
<?=
$block
->
escapeHtml
(
__
(
'Subtotal'
))
?>
</span></th
>
</tr>
</thead>
<?php
foreach
(
$block
->
getItems
()
as
$_item
)
:
?>
<?=
$block
->
getItemHtml
(
$_item
)
?>
<?php
endforeach
?>
...
...
@@ -187,7 +66,6 @@ $mobileDetect = $objectManager->get(\Joshine\Common\Lib\MobileDetect\MobileDetec
<span>
<?=
$block
->
escapeHtml
(
__
(
'Clear Shopping Cart'
))
?>
</span>
</button>
<?php
endif
?>
<!--
<button
type=
"submit"
name=
"update_cart_action"
data-cart-item-update=
""
...
...
@@ -196,110 +74,8 @@ $mobileDetect = $objectManager->get(\Joshine\Common\Lib\MobileDetect\MobileDetec
class=
"action update"
>
<span>
<?=
$block
->
escapeHtml
(
__
(
'Update Shopping Cart'
))
?>
</span>
</button>
-->
<input
type=
"hidden"
value=
""
id=
"update_cart_action_container"
data-cart-item-update=
""
/>
</div>
</form>
<?php
else
:
?>
<form
action=
"
<?=
$block
->
escapeUrl
(
$block
->
getUrl
(
'checkout/cart/updatePost'
))
?>
"
method=
"post"
id=
"form-validate"
data-mage-init=
'{"Magento_Checkout/js/action/update-shopping-cart":
{"validationURL" : "
<?=
$block
->
escapeUrl
(
$block
->
getUrl
(
'checkout/cart/updateItemQty'
))
?>
",
"updateCartActionContainer": "#update_cart_action_container"}
}'
class=
"form form-cart"
>
<?=
$block
->
getBlockHtml
(
'formkey'
)
?>
<div
class=
"cart table-wrapper
<?=
$mergedCells
==
2
?
' detailed'
:
''
?>
"
>
<?php
if
(
$block
->
getPagerHtml
())
:
?>
<div
class=
"cart-products-toolbar cart-products-toolbar-top toolbar"
data-attribute=
"cart-products-toolbar-top"
>
<?=
$block
->
getPagerHtml
()
?>
</div>
<?php
endif
?>
<?php
foreach
(
$block
->
getItems
()
as
$_item
)
:
?>
<?=
$block
->
getItemHtml
(
$_item
)
?>
<?php
endforeach
?>
<?php
if
(
$block
->
getPagerHtml
())
:
?>
<div
class=
"cart-products-toolbar cart-products-toolbar-bottom toolbar"
data-attribute=
"cart-products-toolbar-bottom"
>
<?=
$block
->
getPagerHtml
()
?>
</div>
<?php
endif
?>
</div>
</form>
<?php
endif
?>
<script>
require
([
'jquery'
],
function
(
$
)
{
$
(
'.add-qty'
).
click
(
function
(){
var
input
=
$
(
this
).
prev
().
find
(
'.input-text'
);
if
(
input
.
val
())
{
var
current
=
parseInt
(
input
.
val
());
input
.
val
(
current
+
1
);
// submit
$
(
"#form-validate"
).
submit
();
}
else
{
return
false
;
}
});
$
(
'.lower-qty'
).
click
(
function
(){
var
input
=
$
(
this
).
next
().
find
(
'.input-text'
);
if
(
input
.
val
()
>
1
)
{
var
current
=
parseInt
(
input
.
val
());
input
.
val
(
current
-
1
);
// submit
$
(
"#form-validate"
).
submit
();
}
else
{
return
false
;
}
});
var
isMobile
=
window
.
matchMedia
(
"(pointer:coarse)"
).
matches
;
if
(
isMobile
)
{
var
fixHeight
=
$
(
'.area-blk-notitle'
).
height
();
$
(
window
).
scroll
(
function
()
{
$
(
window
).
scroll
(
function
()
{
if
(
$
(
'.area-blk-notitle'
).
length
<
1
){
return
false
;
}
var
scrollTop
=
$
(
document
).
scrollTop
();
var
fixTop
=
$
(
'.area-blk-notitle'
).
offset
().
top
;
var
tableTop
=
$
(
'#shopping-cart-table'
).
offset
().
top
;
var
tableHeight
=
$
(
'#shopping-cart-table'
).
height
();
var
headerHeight
=
$
(
'.page-header'
).
height
();
if
(
scrollTop
>=
fixTop
-
headerHeight
)
{
if
(
scrollTop
<
tableTop
+
tableHeight
-
fixHeight
)
{
$
(
'.area-blk-notitle .content-wrap'
).
addClass
(
"area-fix"
);
$
(
'.area-blk-notitle .content-wrap'
).
css
({
"top"
:
headerHeight
});
}
else
{
$
(
'.area-blk-notitle .content-wrap'
).
removeClass
(
"area-fix"
);
}
}
else
{
$
(
'.area-blk-notitle .content-wrap'
).
removeClass
(
"area-fix"
);
}
});
});
}
});
</script>
<script>
dataLayer
=
[];
dataLayer
.
push
({
'event'
:
'add_to_cart'
,
'value'
:
<?=
$priceSum
?>
,
'items'
:
<?=
json_encode
(
$items
,
true
)
?>
});
</script>
<?=
$block
->
getChildHtml
(
'checkout.cart.order.actions'
)
?>
<?=
$block
->
getChildHtml
(
'shopping.cart.table.after'
)
?>
app/code/Magento/Checkout/view/frontend/templates/cart/methods-new.phtml
View file @
5c3589ce
...
...
@@ -105,7 +105,7 @@ $subtotalStr = $block->escapeHtml(
</div>
</div>
</div>
<!--
<style>
#we-accept{
text-align: center;
...
...
@@ -122,6 +122,7 @@ $subtotalStr = $block->escapeHtml(
<div class="title">
<?=
__
(
'We Accept'
)
?>
</div>
<img src="/media/wysiwyg/we_accept.png" alt="">
</div>
-->
</div>
<?php
endif
;
?>
<script>
...
...
app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js
View file @
5c3589ce
...
...
@@ -78,6 +78,7 @@ define([
return
Component
.
extend
({
shoppingCartUrl
:
window
.
checkout
.
shoppingCartUrl
,
checkoutUrl
:
window
.
checkout
.
checkoutUrl
,
maxItemsToDisplay
:
window
.
checkout
.
maxItemsToDisplay
,
cart
:
{},
...
...
app/design/frontend/Joshine/breeze/Magento_Catalog/layout/catalog_product_view.xml
View file @
5c3589ce
...
...
@@ -13,11 +13,12 @@
<body>
<referenceBlock
name=
"product.info.description"
remove=
"true"
/>
<referenceBlock
name=
"product.attributes"
remove=
"true"
/>
<referenceBlock
name=
"catalog.product.related"
remove=
"true"
/>
<referenceContainer
name=
"content"
>
<block
class=
"Magento\Catalog\Block\Product\View"
name=
"product.recently_viewed.collector"
template=
"Magento_Catalog::product/view/recently_viewed/collector.phtml"
after=
"product.info.details"
/>
</referenceContainer>
<referenceContainer
name=
"content.aside"
>
<block
class=
"Magento\Cms\Block\Block"
name=
"checkout.cart.empty.recently"
before=
"
catalog.product.related
"
>
<block
class=
"Magento\Cms\Block\Block"
name=
"checkout.cart.empty.recently"
before=
"
product.info.upsell
"
>
<arguments>
<argument
name=
"block_id"
xsi:type=
"string"
>
recently_viewed
</argument>
</arguments>
...
...
app/design/frontend/Joshine/breeze/Magento_Catalog/templates/product/free_shipping.phtml
View file @
5c3589ce
...
...
@@ -6,7 +6,7 @@
?>
<div
class=
"product-intro__freeshipping product-intro__bg-none"
>
<div
class=
"product-intro__freeshipping-abt action"
data-trigger=
"trigger-shipping"
>
<div
class=
"product-intro__freeshipping-icon shipping "
><i
class=
"svgicon svgicon-gd-shipping"
></i>
<p>
Fast Delivery
</p>
<span
class=
"svgicon svgicon-gd-more-grey product-intro__freeshipping-more"
></span>
</div>
<div
class=
"product-intro__freeshipping-icon shipping
joshine-clearfix
"
><i
class=
"svgicon svgicon-gd-shipping"
></i>
<p>
Fast Delivery
</p>
<span
class=
"svgicon svgicon-gd-more-grey product-intro__freeshipping-more"
></span>
</div>
<div
class=
"free-wrapper"
>
<p>
Estimated to be delivered on
<span
id=
"deliveredTime"
>
11/25/2021 - 12/03/2021
</span>
.
</p>
</div></div>
<div
data-bind=
"mageInit: {
...
...
@@ -130,7 +130,7 @@
</div>
</div>
<div
class=
"product-intro__freeshipping-item full-line paddingTop-0 paddingBottom-0 action"
data-trigger=
"trigger2"
>
<div
class=
"product-intro__freeshipping-icon"
>
<div
class=
"product-intro__freeshipping-icon
joshine-clearfix
"
>
<i
class=
"svgicon svgicon-gd-freereturn"
></i><p>
Free Return
&
Exchange
</p>
<span
class=
"svgicon svgicon-gd-more-grey product-intro__freeshipping-more"
></span>
</div>
<div
class=
"product-intro__freeshipping-desc"
>
Learn More
</div>
...
...
@@ -199,6 +199,13 @@
</script>
<style>
.product-intro__freeshipping-icon
{
display
:
flex
;
flex-wrap
:
nowrap
;
align-items
:
center
;
}
.product-intro__freeshipping-icon
.svgicon
{
width
:
15px
;
height
:
15px
;
...
...
@@ -219,22 +226,17 @@
clear
:
both
;
}
.free-wrapper
p
{
padding-left
:
40px
;
font-size
:
13px
;
}
.product-intro__freeshipping-desc
{
padding-left
:
40px
;
font-size
:
13px
;
padding-left
:
40px
;
}
.product-intro__freeshipping-icon.shipping
p
,
.product-intro__freeshipping-icon
p
{
display
:
inline-block
;
line-height
:
15px
;
padding
:
0
10px
;
float
:
left
;
padding-left
:
15px
;
.product-intro__freeshipping-desc
{
padding-left
:
40px
;
font-size
:
.8rem
!important
;
}
.product-intro__freeshipping-icon.shipping
p
,
.product-intro__freeshipping-icon
p
{
display
:
inline-block
;
line-height
:
15px
;
line-height
:
.9rem
;
padding
:
0
10px
;
float
:
left
;
padding-left
:
15px
;
}
...
...
app/design/frontend/Joshine/breeze/Magento_Catalog/templates/product/view/addto.phtml
View file @
5c3589ce
...
...
@@ -60,7 +60,7 @@
<div
style=
"width: 100%"
class=
"product-view-freeshipping"
>
<div
class=
"product-intro__freeshipping product-intro__bg-none"
>
<div
class=
"product-intro__freeshipping-abt action"
id=
"freeshipping-button"
>
<div
class=
"product-intro__freeshipping-icon shipping
"
><i
class=
"svgicon svgicon-gd-shipping
"
></i>
<p>
<?=
__
(
"Fast Delivery"
);
?>
</p>
<span
class=
"svgicon svgicon-gd-more-grey product-intro__freeshipping-more"
></span>
<div
class=
"product-intro__freeshipping-icon shipping
joshine-clearfix "
><i
class=
"svgicon svgicon-gd-shipping"
style=
"position: relative;top: 4px;
"
></i>
<p>
<?=
__
(
"Fast Delivery"
);
?>
</p>
<span
class=
"svgicon svgicon-gd-more-grey product-intro__freeshipping-more"
></span>
</div>
<div
class=
"free-wrapper"
>
...
...
@@ -68,7 +68,7 @@
</div>
<div
class=
"product-intro__freeshipping-item full-line paddingTop-0 paddingBottom-0 action"
id=
"free-return-button"
>
<div
class=
"product-intro__freeshipping-icon"
>
<div
class=
"product-intro__freeshipping-icon
joshine-clearfix
"
>
<i
class=
"svgicon svgicon-gd-freereturn"
></i><p>
<?=
__
(
"Free Return & Exchange"
)
?>
:
</p>
<span
class=
"svgicon svgicon-gd-more-grey product-intro__freeshipping-more"
></span>
</div>
<div
class=
"product-intro__freeshipping-desc"
>
<?=
__
(
"Learn More"
)
?>
</div>
...
...
@@ -91,6 +91,13 @@
});
</script>
<style>
.product-intro__freeshipping-icon
{
display
:
flex
;
flex-wrap
:
nowrap
;
align-items
:
center
;
}
.product-intro__freeshipping-icon
.svgicon
{
width
:
15px
;
height
:
15px
;
...
...
@@ -108,30 +115,27 @@
margin-bottom
:
10px
;
padding-bottom
:
10px
;
}
.free-wrapper
>
*
{
font-size
:
.8rem
;
}
.free-wrapper
,
.product-intro__freeshipping-desc
{
clear
:
both
;
}
.free-wrapper
p
{
padding-left
:
40px
;
font-size
:
13px
;
font-size
:
12px
;
color
:
#767676
;
padding-left
:
40px
;
}
.product-intro__freeshipping-desc
{
padding-left
:
40px
;
font-size
:
13px
;
font-size
:
.8rem
!important
;
padding-left
:
40px
;
}
.product-intro__freeshipping-icon.shipping
p
,
.product-intro__freeshipping-icon
p
{
display
:
inline-block
;
line-height
:
15px
;
padding
:
0
10px
;
float
:
left
;
padding-left
:
15px
;
}
.product-intro__freeshipping-icon.shipping
p
,
.product-intro__freeshipping-icon
p
{
display
:
inline-block
;
line-height
:
15px
;
padding
:
0
10px
;
float
:
left
;
padding-left
:
15px
;
}
.product-intro__freeshipping-item
>
*
{
font-size
:
1rem
;
}
.svgicon-gd-more-grey
{
width
:
16px
;
...
...
@@ -176,8 +180,7 @@
.joshine-desction
.desction-left
{
width
:
90%
;
flot
:
left
;
font-weight
:
600
;
color
:
#000
;
font-size
:
1rem
;
}
.joshine-desction
.desction-right
{
width
:
10%
;
...
...
@@ -185,7 +188,6 @@
text-align
:
end
;
font-size
:
larger
;
color
:
#000
;
font-weight
:
600
;
}
.joshine-desction
.desction-info
{
font-size
:
small
;
...
...
@@ -203,6 +205,38 @@
}
.joshine-description-mobile
{
display
:
flex
;
display
:
-webkit-box
;
display
:
-ms-flexbox
;
-webkit-box-pack
:
justify
;
justify-content
:
space-between
;
position
:
relative
;
height
:
2rem
;
line-height
:
1.9rem
;
text-transform
:
capitalize
;
font-size
:
14px
;
width
:
100%
;
text-align
:
left
;
}
.description-enter
{
padding-right
:
1.25rem
;
}
.joshine-ui-icon-toggle
{
content
:
' '
;
position
:
absolute
;
right
:
0.125rem
;
top
:
50%
;
margin-top
:
-0.75rem
;
width
:
1rem
;
height
:
1rem
;
-webkit-mask-size
:
1rem
1rem
;
background-color
:
currentColor
;
-webkit-mask
:
url
(
'
data
:
image
/
svg
+
xml
,
<
svg
xmlns
=
"http://www.w3.org/2000/svg"
fill
=
"none"
viewBox
=
"0 0 24 24"
stroke
=
"currentColor"
><
path
stroke-linecap
=
"round"
stroke-linejoin
=
"round"
stroke-width
=
"2"
d
=
"M9 5l7 7-7 7"
/
><
/
svg
>'
)
no-repeat
50%
50%
;
}
</style>
<div
class=
"product-view-description"
>
...
...
@@ -220,7 +254,7 @@ $description = $this->helper(Magento\Catalog\Helper\Output::class)->productAttri
);
if
(
$description
)
:
?>
<div
class=
"joshine-desction"
>
<div
class=
"joshine-desction
joshine-hidden-sm joshine-hidden-xs
"
>
<div
id=
"accordion"
data-mage-init=
'{
"accordion":{
"active": [0],
...
...
@@ -241,11 +275,23 @@ if ($description) :
</div>
</div>
</div>
<div
class=
"joshine-description-mobile joshine-hidden-md joshine-hidden-lg"
style=
"border-bottom: 1px solid #e5e5e5; margin-top: 1em;"
id=
"description-button"
>
<div
class=
"description-enter"
>
<?=
__
(
"Description"
)
?>
</div>
<div
class=
"description-text"
style=
"display: flex; color: #767676;font-size: 12px;justify-content: center;align-items: center;"
>
<div
class=
"description-text-left"
>
</div>
<span
class=
"joshine-ui-icon-toggle"
></span>
</div>
</div>
<?php
endif
;
if
(
$short_description
)
:
?>
<div
class=
"joshine-desction"
>
<div
class=
"joshine-desction
joshine-hidden-sm joshine-hidden-xs
"
>
<div
id=
"accordion"
data-mage-init=
'{
"accordion":{
"active": [0],
...
...
@@ -266,6 +312,15 @@ if ($short_description) :
</div>
</div>
</div>
<div
class=
"joshine-description-mobile joshine-hidden-md joshine-hidden-lg"
id=
"short-description-button"
>
<div
class=
"description-enter"
>
<?=
__
(
"Material"
)
?>
</div>
<div
class=
"description-text"
style=
"display: flex; color: #767676;font-size: 12px;justify-content: center;align-items: center;"
>
<span
class=
"joshine-ui-icon-toggle"
></span>
</div>
</div>
<?php
endif
;
?>
</div>
...
...
app/design/frontend/Joshine/breeze/Magento_Catalog/templates/product/view/addtocart.phtml
View file @
5c3589ce
...
...
@@ -66,6 +66,15 @@
break
;
}
}
$short_description
=
$this
->
helper
(
Magento\Catalog\Helper\Output
::
class
)
->
productAttribute
(
$block
->
getShortDescription
(),
$block
->
getProduct
()
->
getShortDescription
(),
'short_description'
);
$description
=
$this
->
helper
(
Magento\Catalog\Helper\Output
::
class
)
->
productAttribute
(
$block
->
getShortDescription
(),
$block
->
getProduct
()
->
getDescription
(),
'description'
);
?>
</style>
...
...
@@ -87,6 +96,7 @@
$
(
'#free-return-button'
).
click
(
function
(
data
)
{
$
(
"#free-return"
).
show
();
$
(
"#free-return"
).
siblings
().
hide
();
if
(
isMobile
()){
$
(
".lis"
).
slideToggle
(
"slow"
);
}
else
{
...
...
@@ -96,6 +106,29 @@
});
$
(
'#freeshipping-button'
).
click
(
function
(
data
)
{
$
(
"#freeshipping"
).
show
();
$
(
"#freeshipping"
).
siblings
().
hide
();
if
(
isMobile
()){
$
(
".lis"
).
slideToggle
(
"slow"
);
}
else
{
$
(
"#areaMask"
).
fadeIn
();
$
(
"#areaLayer"
).
animate
({
"right"
:
0
});
}
});
$
(
'#description-button'
).
click
(
function
(
data
)
{
$
(
"#description-content"
).
show
();
$
(
"#description-content"
).
siblings
().
hide
();
if
(
isMobile
()){
$
(
".lis"
).
slideToggle
(
"slow"
);
}
else
{
$
(
"#description-content"
).
fadeIn
();
$
(
"#description-content"
).
animate
({
"right"
:
0
});
}
});
$
(
'#short-description-button'
).
click
(
function
(
data
)
{
$
(
"#short-description-content"
).
show
();
$
(
"#short-description-content"
).
siblings
().
hide
();
if
(
isMobile
()){
$
(
".lis"
).
slideToggle
(
"slow"
);
}
else
{
...
...
@@ -112,6 +145,8 @@
$
(
"#free-return"
).
hide
();
$
(
"#size-chart"
).
hide
();
$
(
"#freeshipping"
).
hide
();
$
(
"#short-description-content"
).
hide
();
$
(
"#description-content"
).
hide
();
}
/*close*/
...
...
@@ -161,6 +196,12 @@
<?php
echo
$block
->
getLayout
()
->
createBlock
(
'Magento\Cms\Block\Block'
)
->
setBlockId
(
'product-intro-fast-delivery'
)
->
toHtml
();
?>
</div>
<div
class=
"description-content"
id=
"description-content"
style=
"display: none;"
>
<?php
echo
$description
;
?>
</div>
<div
class=
"short-description-content"
id=
"short-description-content"
style=
"display: none;"
>
<?php
echo
$short_description
;
?>
</div>
</div>
<ul
id=
"areaList"
class=
"area-list"
style=
"margin-bottom: 500px;"
></ul>
</article>
...
...
@@ -171,9 +212,9 @@
#product-intro__freeshipping-more-3
{
display
:
revert
;
color
:
#2d68a
;
font-size
:
large
;
float
:
right
;
margin-top
:
0px
;
font-size
:
.9em
;
text-decoration
:
underline
;
}
@media
(
min-width
:
1024px
){
...
...
app/design/frontend/Joshine/breeze/Magento_Catalog/web/css/gallery.css
View file @
5c3589ce
...
...
@@ -379,8 +379,8 @@
}
.fotorama__active
.fotorama__dot
{
background-color
:
#
ff5501
;
border-color
:
#
ff5501
background-color
:
#
000
;
border-color
:
#
000
;
}
.fotorama__nav__frame.fotorama__active
.fotorama__nav__frame
{
...
...
app/design/frontend/Joshine/breeze/Magento_Checkout/layout/checkout_cart_index.xml
View file @
5c3589ce
...
...
@@ -8,51 +8,31 @@
<page
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
layout=
"1column"
xsi:noNamespaceSchemaLocation=
"urn:magento:framework:View/Layout/etc/page_configuration.xsd"
>
<update
handle=
"checkout_cart_item_renderers"
/>
<body>
<referenceContainer
name=
"page.bottom.container"
remove=
"true"
/>
<referenceBlock
name=
"checkout.cart.addtocart"
remove=
"true"
/>
<referenceContainer
name=
"footer-container"
remove=
"true"
/>
<referenceContainer
name=
"nav.main.box"
remove=
"true"
/>
<referenceBlock
name=
"catalog.topnav"
remove=
"true"
/>
<referenceBlock
name=
"top.search"
remove=
"true"
/>
<referenceBlock
name=
"header.search.bar"
remove=
"true"
/>
<referenceBlock
name=
"header.account"
remove=
"true"
/>
<referenceBlock
name=
"header.wishlist"
remove=
"true"
/>
<referenceBlock
name=
"minicart"
remove=
"true"
/>
<referenceBlock
name=
"checkout.cart.crosssell"
remove=
"true"
/>
<referenceContainer
name=
"header.container"
>
<block
class=
"Magento\Cms\Block\Block"
name=
"cart.payment.top"
>
<arguments>
<argument
name=
"block_id"
xsi:type=
"string"
>
cart_payment_top
</argument>
</arguments>
</block>
</referenceContainer>
<referenceContainer
name=
"columns.top"
>
<block
class=
"Magento\Cms\Block\Block"
name=
"progress.bar"
before=
"-"
>
<arguments>
<argument
name=
"block_id"
xsi:type=
"string"
>
progress_bar
</argument>
</arguments>
</block>
</referenceContainer>
<referenceContainer
name=
"content"
>
<block
class=
"Magento\Framework\View\Element\Template"
name=
"checkout.cart.footer"
template=
"Magento_Checkout::footer.phtml"
/>
<referenceBlock
name=
"checkout.cart.summary.title"
remove=
"true"
/>
<!-- -->
<!-- <referenceBlock name="checkout.cart.totals">-->
<!-- <arguments>-->
<!-- <argument name="jsLayout" xsi:type="array">-->
<!-- <item name="components" xsi:type="array">-->
<!-- <item name="block-totals" xsi:type="array">-->
<!-- <item name="children" xsi:type="array">-->
<!-- <item name="shpping-get" xsi:type="array">-->
<!-- <item name="component" xsi:type="string">Magento_Checkout/js/view/address-get</item>-->
<!-- </item>-->
<!-- </item>-->
<!-- </item>-->
<!-- </item>-->
<!-- </argument>-->
<!-- </arguments>-->
<!-- </referenceBlock>-->
<referenceContainer
name=
"checkout.cart.totals.container"
>
<block
class=
"Magento\Checkout\Block\Cart\Totals"
name=
"checkout.cart.totals"
template=
"Magento_Checkout::cart/totals.phtml"
/>
</referenceContainer>
<referenceBlock
name=
"checkout.cart.totals"
>
<arguments>
<argument
name=
"jsLayout"
xsi:type=
"array"
>
<item
name=
"components"
xsi:type=
"array"
>
<item
name=
"block-totals"
xsi:type=
"array"
>
<item
name=
"children"
xsi:type=
"array"
>
<item
name=
"shpping-get"
xsi:type=
"array"
>
<item
name=
"component"
xsi:type=
"string"
>
Magento_Checkout/js/view/address-get
</item>
</item>
</item>
</item>
</item>
</argument>
</arguments>
</referenceBlock>
<referenceContainer
name=
"checkout.cart.noitems"
>
<block
class=
"Magento\Cms\Block\Block"
name=
"checkout.cart.empty.recently"
>
<arguments>
...
...
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/cart/coupon.phtml
View file @
5c3589ce
...
...
@@ -13,10 +13,6 @@ $hasCouponCode = (bool) strlen($block->getCouponCode());
?>
<style>
.checkout-cart-index
.cart-container
.block.discount.active
{
border-bottom
:
1px
solid
#ddd
;
}
.checkout-cart-index
.cart-container
.block.discount.active
.content
{
padding
:
0px
1rem
;
}
...
...
@@ -37,13 +33,13 @@ $hasCouponCode = (bool) strlen($block->getCouponCode());
>
-->
<div
class=
"block discount"
id=
"block-discount"
data-mage-init=
'{"collapsible":{"active":"true", "openedState": "active", "saveState": false}}'
>
id=
"block-discount"
>
<!--
<div class="title" data-role="title" aria-controls="block-summary" role="tab" aria-selected="true" aria-expanded="true" tabindex="0">
<strong id="block-shipping-coupon" role="heading" aria-level="2">
<?=
__
(
"Coupon Code"
)
?>
</strong>
</div>
<div
class=
"content"
data-role=
"content"
aria-labelledby=
"block-discount-heading"
style=
"display: block;"
>
-->
<div
class=
"content"
style=
"display: block;"
>
<form
id=
"discount-coupon-form"
action=
"
<?=
$block
->
escapeUrl
(
$block
->
getUrl
(
'checkout/cart/couponPost'
))
?>
"
method=
"post"
...
...
@@ -53,8 +49,7 @@ $hasCouponCode = (bool) strlen($block->getCouponCode());
"cancelButton": "button.action.cancel"}}'
>
<div
class=
"fieldset coupon
<?=
$hasCouponCode
?
' applied'
:
''
?>
"
>
<input
type=
"hidden"
name=
"remove"
id=
"remove-coupon"
value=
"0"
/>
<div
class=
"field"
style=
"width: 50%;"
>
<label
for=
"coupon_code"
class=
"label"
><span>
<?=
$block
->
escapeHtml
(
__
(
'Enter discount code'
))
?>
</span></label>
<div
class=
"field"
style=
"width: 70%;"
>
<div
class=
"control"
style=
"float: left;margin-top: 0px;width: 100%;"
>
<input
type=
"text"
class=
"input-text"
...
...
@@ -68,16 +63,16 @@ $hasCouponCode = (bool) strlen($block->getCouponCode());
/>
</div>
</div>
<div
class=
"actions-toolbar"
style=
"clear: none;"
>
<div
class=
"actions-toolbar"
style=
"clear: none;
margin-top: 1.25rem;margin-bottom: 0px;
"
>
<?php
if
(
!
$hasCouponCode
)
:?>
<
div
class
="
primary
">
<button class="
action
apply
primary
" style="
padding
:
0.5
rem
1
rem
;
width
:
100
%
;
background
-
color
:
#
444
;" type="button" value="<?= $block->escapeHtmlAttr(__('Apply Discount')) ?>">
<button class="
action
apply
primary
" style="
padding
:
0.5
rem
1
rem
;
width
:
100
%
;
background
-
color
:
#
999
;" type="button" value="<?= $block->escapeHtmlAttr(__('Apply Discount')) ?>">
<
span
><?=
$block
->
escapeHtml
(
__
(
'Apply Discount'
))
?>
</span>
</button>
</div>
<?php
else
:?>
<
div
class
="
primary
">
<button type="
button
" class="
action
cancel
primary
" style="
padding
:
0.5
rem
1
rem
;
width
:
100
%
;
background
-
color
:
#
444
;" value="<?= $block->escapeHtmlAttr(__('Cancel Coupon')) ?>"><span><?= $block->escapeHtml(__('Cancel Coupon')) ?></span></button>
<button type="
button
" class="
action
cancel
primary
" style="
padding
:
0.5
rem
1
rem
;
width
:
100
%
;
background
-
color
:
#
999
;" value="<?= $block->escapeHtmlAttr(__('Cancel Coupon')) ?>"><span><?= $block->escapeHtml(__('Cancel Coupon')) ?></span></button>
</
div
>
<?
php
endif
;
?>
</div>
...
...
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/cart/form.phtml
0 → 100644
View file @
5c3589ce
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
// phpcs:disable Magento2.Templates.ThisInTemplate
/** @var $block \Magento\Checkout\Block\Cart\Grid */
$objectManager
=
\Magento\Framework\App\ObjectManager
::
getInstance
();
$_cart
=
$objectManager
->
get
(
'\Magento\Checkout\Model\Cart'
);
$items
=
[];
$priceSum
=
0
;
$_items
=
$block
->
getItems
();
if
(
count
(
$_items
)
>
0
)
{
foreach
(
$_items
as
$key
=>
$value
)
{
$_item
[
'google_business_vertical'
]
=
'retail'
;
$_item
[
'id'
]
=
$value
->
getSku
();
$items
[]
=
$_item
;
$priceSum
+=
$value
->
getPrice
()
*
$value
->
getQty
();
}
}
$subtotal
=
$_cart
->
getSubtotal
();
$_shipping
=
$objectManager
->
get
(
'\Magento\Checkout\Block\Cart\Shipping'
);
$free_shipping_subtotal
=
$_shipping
->
getNoFormatFreeShippingSubtotal
();
$is_free_shipping
=
false
;
$difference_price
=
0
;
if
(
$subtotal
>=
$free_shipping_subtotal
)
{
$is_free_shipping
=
true
;
}
else
{
$difference_price
=
$free_shipping_subtotal
-
$subtotal
;
}
$mobileDetect
=
$objectManager
->
get
(
\Joshine\Common\Lib\MobileDetect\MobileDetect
::
class
);
?>
<?php
$mergedCells
=
(
$this
->
helper
(
Magento\Tax\Helper\Data
::
class
)
->
displayCartBothPrices
()
?
2
:
1
);
?>
<?=
$block
->
getChildHtml
(
'form_before'
)
?>
<div
class=
"cart-top"
>
<h1
class=
"cart-title"
>
Shopping Cart
</h1>
<?php
if
(
!
$is_free_shipping
)
:
?>
<div
class=
"msg-content"
>
<?=
$block
->
escapeHtml
(
__
(
'Spend'
))
?>
<?=
$block
->
escapeHtml
(
$this
->
helper
(
Magento\Checkout\Helper\Data
::
class
)
->
formatPrice
(
$difference_price
),
[
'span'
]
)
?>
<?=
$block
->
escapeHtml
(
__
(
'more and get free shipping!'
))
?>
</div>
<?php
endif
?>
</div>
<form
action=
"
<?=
$block
->
escapeUrl
(
$block
->
getUrl
(
'checkout/cart/updatePost'
))
?>
"
method=
"post"
id=
"form-validate"
data-mage-init=
'{"Magento_Checkout/js/action/update-shopping-cart":
{"validationURL" : "
<?=
$block
->
escapeUrl
(
$block
->
getUrl
(
'checkout/cart/updateItemQty'
))
?>
",
"updateCartActionContainer": "#update_cart_action_container"}
}'
class=
"form form-cart"
>
<?=
$block
->
getBlockHtml
(
'formkey'
)
?>
<div
class=
"cart table-wrapper
<?=
$mergedCells
==
2
?
' detailed'
:
''
?>
"
>
<?php
if
(
$block
->
getPagerHtml
())
:
?>
<div
class=
"cart-products-toolbar cart-products-toolbar-top toolbar"
data-attribute=
"cart-products-toolbar-top"
>
<?=
$block
->
getPagerHtml
()
?>
</div>
<?php
endif
?>
<?php
foreach
(
$block
->
getItems
()
as
$_item
)
:
?>
<?=
$block
->
getItemHtml
(
$_item
)
?>
<?php
endforeach
?>
<?php
if
(
$block
->
getPagerHtml
())
:
?>
<div
class=
"cart-products-toolbar cart-products-toolbar-bottom toolbar"
data-attribute=
"cart-products-toolbar-bottom"
>
<?=
$block
->
getPagerHtml
()
?>
</div>
<?php
endif
?>
</div>
</form>
<script>
require
([
'jquery'
],
function
(
$
)
{
$
(
'.add-qty'
).
click
(
function
(){
var
input
=
$
(
this
).
prev
().
find
(
'.input-text'
);
if
(
input
.
val
())
{
var
current
=
parseInt
(
input
.
val
());
input
.
val
(
current
+
1
);
// submit
$
(
"#form-validate"
).
submit
();
}
else
{
return
false
;
}
});
$
(
'.lower-qty'
).
click
(
function
(){
var
input
=
$
(
this
).
next
().
find
(
'.input-text'
);
if
(
input
.
val
()
>
1
)
{
var
current
=
parseInt
(
input
.
val
());
input
.
val
(
current
-
1
);
// submit
$
(
"#form-validate"
).
submit
();
}
else
{
return
false
;
}
});
var
isMobile
=
window
.
matchMedia
(
"(pointer:coarse)"
).
matches
;
if
(
isMobile
)
{
var
fixHeight
=
$
(
'.area-blk-notitle'
).
height
();
$
(
window
).
scroll
(
function
()
{
$
(
window
).
scroll
(
function
()
{
if
(
$
(
'.area-blk-notitle'
).
length
<
1
){
return
false
;
}
var
scrollTop
=
$
(
document
).
scrollTop
();
var
fixTop
=
$
(
'.area-blk-notitle'
).
offset
().
top
;
var
tableTop
=
$
(
'#shopping-cart-table'
).
offset
().
top
;
var
tableHeight
=
$
(
'#shopping-cart-table'
).
height
();
var
headerHeight
=
$
(
'.page-header'
).
height
();
if
(
scrollTop
>=
fixTop
-
headerHeight
)
{
if
(
scrollTop
<
tableTop
+
tableHeight
-
fixHeight
)
{
$
(
'.area-blk-notitle .content-wrap'
).
addClass
(
"area-fix"
);
$
(
'.area-blk-notitle .content-wrap'
).
css
({
"top"
:
headerHeight
});
}
else
{
$
(
'.area-blk-notitle .content-wrap'
).
removeClass
(
"area-fix"
);
}
}
else
{
$
(
'.area-blk-notitle .content-wrap'
).
removeClass
(
"area-fix"
);
}
});
});
}
});
</script>
<script>
dataLayer
=
[];
dataLayer
.
push
({
'event'
:
'add_to_cart'
,
'value'
:
<?=
$priceSum
?>
,
'items'
:
<?=
json_encode
(
$items
,
true
)
?>
});
</script>
<?=
$block
->
getChildHtml
(
'shopping.cart.table.after'
)
?>
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/cart/item/default.phtml
View file @
5c3589ce
...
...
@@ -19,280 +19,6 @@ $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$mobileDetect
=
$objectManager
->
get
(
\Joshine\Common\Lib\MobileDetect\MobileDetect
::
class
);
$priceBlock
=
$objectManager
->
get
(
\Magento\Catalog\Block\Product\AbstractProduct
::
class
);
?>
<style>
.item-options-line
span
{
display
:
inline-block
;
}
.item-options-line
span
:first-child
{
width
:
30%
;
}
@media
(
max-width
:
1024px
){
.cart-container
.cart.table-wrapper
.item-options
{
min-width
:
100px
;
}
}
.is_mobile
.item-info
{
display
:
table
;
table-layout
:
fixed
;
margin
:
15px
0
;
width
:
100%
;
}
.is_mobile
.item-info
{
display
:
table
;
table-layout
:
fixed
;
margin
:
15px
0
;
width
:
100%
;
border-bottom
:
1px
solid
#ddd
;
}
.item-info-left
{
width
:
90px
;
min-width
:
90px
;
text-align
:
center
;
display
:
table-cell
;
vertical-align
:
middle
;
padding-bottom
:
10px
;
}
.item-info-left
.item-image
{
position
:
relative
;
margin-left
:
auto
;
margin-right
:
auto
;
}
.item-info-right
{
padding-left
:
25px
;
display
:
table-cell
;
padding-bottom
:
10px
;
}
.item-info-right
.item-name
{
width
:
100%
;
font-size
:
12px
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
font-weight
:
400
;
font-style
:
normal
;
color
:
#5c5c5c
;
-webkit-transition
:
color
.2s
ease-in-out
;
transition
:
color
.2s
ease-in-out
;
}
.item-info-right
.item-options-meta
{
font-size
:
10px
;
font-family
:
Futura
,
sans-serif
;
font-weight
:
400
;
font-style
:
normal
;
-webkit-transition
:
color
.2s
ease-in-out
;
transition
:
color
.2s
ease-in-out
;
}
.item-info-right
.item-price
{
font-size
:
10px
;
font-family
:
Futura
,
sans-serif
;
font-weight
:
400
;
font-style
:
normal
;
-webkit-transition
:
color
.2s
ease-in-out
;
transition
:
color
.2s
ease-in-out
;
}
.item-info-right
.item-price
.price-box.price-final_price
{
float
:
none
;
}
.item-info-right
.item-price
.product-info-promotion-span
,
.item-info-right
.item-price
.price-label
{
display
:
none
;
}
.item-info-right
.item-price
.no-display
{
display
:
inline-block
!important
;
}
.item-info-right
.item-handle
{
text-align
:
center
;
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
;
-ms-flex-wrap
:
wrap
;
flex-wrap
:
wrap
;
font-family
:
Futura
,
sans-serif
;
font-weight
:
400
;
font-style
:
normal
;
-webkit-transition
:
color
.2s
ease-in-out
;
transition
:
color
.2s
ease-in-out
;
font-size
:
12px
;
}
.item-info-right
.item-quantity
{
display
:
-webkit-inline-box
;
display
:
-ms-inline-flexbox
;
display
:
inline-flex
;
-webkit-box-align
:
center
;
-ms-flex-align
:
center
;
align-items
:
center
;
border
:
1px
solid
#e7e7e7
;
white-space
:
nowrap
;
}
.checkout-cart-index
.item-info-right
.new-qty
.input-text
{
border
:
none
;
width
:
1rem
;
padding
:
0
;
font-size
:
12px
;
}
.checkout-cart-index
.item-info-right
.qty-change
{
padding
:
2px
15px
;
}
.checkout-cart-index
.item-info-right
.actions-toolbar
{
margin-top
:
0px
;
margin-bottom
:
0px
;
}
.checkout-cart-index
.item-info-right
.action-delete
span
{
color
:
#0a0a0a
;
}
</style>
<?php
if
(
!
$mobileDetect
->
isMobile
())
:
?>
<tbody
class=
"cart item"
>
<tr
class=
"item-info"
>
<td
data-th=
"
<?=
$block
->
escapeHtml
(
__
(
'Item'
))
?>
"
class=
"col item"
>
<?php
if
(
$block
->
hasProductUrl
())
:?>
<
a
href
=
"<?=
$block->escapeUrl
(
$block->getProductUrl
()) ?>"
title
=
"<?=
$block->escapeHtml
(
$block->getProductName
()) ?>"
tabindex
=
"-1"
class
="
product
-
item
-
photo
">
<?php else :?>
<span class="
product
-
item
-
photo
">
<?php endif;?>
<?=
$block->getImage
(
$block->getProductForThumbnail
(), 'cart_page_product_thumbnail')->toHtml() ?>
<?php if (
$block->hasProductUrl
()) :?>
</a>
<?php else :?>
</span>
<?php endif; ?>
<div class="
product
-
item
-
details
">
<strong class="
product
-
item
-
name
">
<?php if (
$block->hasProductUrl
()) :?>
<a href="
<?=
$block
->
escapeUrl
(
$block
->
getProductUrl
())
?>
">
<?=
$block
->
escapeHtml
(
$block
->
getProductName
())
?>
</a>
<?php
else
:?>
<?=
$block
->
escapeHtml
(
$block
->
getProductName
())
?>
<?php
endif
;
?>
</strong>
<?php
if
(
$_options
=
$block
->
getOptionList
())
:?>
<
div
class
="
item
-
options
" >
<?php foreach (
$_options
as
$_option
) :?>
<div class="
item
-
options
-
line
">
<?php
$_formatedOptionValue
=
$block->getFormatedOptionValue
(
$_option
) ?>
<span style="
margin
-
top
:
0
px
;
"><?=
$block->escapeHtml
(
$_option['label']
) ?></span>
<?php
$objectManager
= \Magento\Framework\App\ObjectManager::getInstance();
$resource
=
$objectManager->get
('Magento\Framework\App\ResourceConnection');
$connection
=
$resource->getConnection
();
?>
<span>
<?php if (
$_option['label']
!= 'Size'){ ?>
<?php
$tableName
=
$resource->getTableName
('eav_attribute_option_value');
$sql
= "
Select
*
FROM
" .
$tableName
."
where
store_id
=
0
AND
option_id
=
".
$_option['option_value']
;
$result
=
$connection->fetchRow
(
$sql
);
?>
<?=
$block->escapeHtml
(
$result['value']
) ?>
<?php }else{
$tableName
=
$resource->getTableName
('eav_attribute_option_swatch');
$sql
= "
Select
*
FROM
" .
$tableName
."
where
store_id
=
0
AND
option_id
=
".
$_option['option_value']
;
$result
=
$connection->fetchRow
(
$sql
);
echo
$result['value']
;
} ?>
</span>
</div>
<?php endforeach; ?>
</div>
<?php endif;?>
<?php if (
$messages
=
$block->getMessages
()) :?>
<?php foreach (
$messages
as
$message
) :?>
<div class= "
cart
item
message
<?=
$block
->
escapeHtmlAttr
(
$message
[
'type'
])
?>
">
<div>
<?=
$block
->
escapeHtml
(
$message
[
'text'
])
?>
</div>
</div>
<?php
endforeach
;
?>
<?php
endif
;
?>
<?php
$addInfoBlock
=
$block
->
getProductAdditionalInformationBlock
();
?>
<?php
if
(
$addInfoBlock
)
:?>
<?=
$addInfoBlock
->
setItem
(
$_item
)
->
toHtml
()
?>
<?php
endif
;
?>
</div>
</td>
<?php
if
(
$canApplyMsrp
)
:?>
<
td
class
="
col
msrp
" data-th="
<?=
$block
->
escapeHtml
(
__
(
'Price'
))
?>
">
<span
class=
"pricing msrp"
>
<span
class=
"msrp notice"
>
<?=
$block
->
escapeHtml
(
__
(
'See price before order confirmation.'
))
?>
</span>
<?php
$helpLinkId
=
'cart-msrp-help-'
.
$_item
->
getId
();
?>
<a
href=
"#"
class=
"action help map"
id=
"
<?=
(
$block
->
escapeHtmlAttr
(
$helpLinkId
))
?>
"
data-mage-init=
'{"addToCart":{
"helpLinkId": "#
<?=
$block
->
escapeJs
(
$block
->
escapeHtml
(
$helpLinkId
))
?>
",
"productName": "
<?=
$block
->
escapeJs
(
$block
->
escapeHtml
(
$product
->
getName
()))
?>
",
"showAddToCart": false
}
}'
>
<span>
<?=
$block
->
escapeHtml
(
__
(
"What's this?"
))
?>
</span>
</a>
</span>
</td>
<?php
else
:?>
<
td
class
="
col
price
" data-th="
<?=
$block
->
escapeHtml
(
__
(
'Price'
))
?>
">
<?=
$block
->
getUnitPriceHtml
(
$_item
)
?>
</td>
<?php
endif
;
?>
<td
class=
"col qty"
data-th=
"
<?=
$block
->
escapeHtml
(
__
(
'Qty'
))
?>
"
>
<?php
if
(
$block
->
escapeHtmlAttr
(
$block
->
getQty
())
>
1
)
:?>
<
strong
class
="
lower
-
qty
qty
-
change
">-</strong>
<?php else :?>
<strong class="
lower
-
qty
qty
-
change
no
-
enabled
">-</strong>
<?php endif; ?>
<div class="
field
qty
new
-
qty
">
<div class="
control
qty
">
<label for="
cart
-<?=
$block
->
escapeHtmlAttr
(
$_item
->
getId
())
?>
-qty">
<span
class=
"label"
>
<?=
$block
->
escapeHtml
(
__
(
'Qty'
))
?>
</span>
<input
id=
"cart-
<?=
$block
->
escapeHtmlAttr
(
$_item
->
getId
())
?>
-qty"
name=
"cart[
<?=
$block
->
escapeHtmlAttr
(
$_item
->
getId
())
?>
][qty]"
data-cart-item-id=
"
<?=
$block
->
escapeHtmlAttr
(
$_item
->
getSku
())
?>
"
value=
"
<?=
$block
->
escapeHtmlAttr
(
$block
->
getQty
())
?>
"
type=
"number"
size=
"4"
step=
"any"
title=
"
<?=
$block
->
escapeHtmlAttr
(
__
(
'Qty'
))
?>
"
class=
"input-text qty"
data-validate=
"{required:true,'validate-greater-than-zero':true}"
data-role=
"cart-item-qty"
readonly=
"readonly"
/>
</label>
</div>
</div>
<strong
class=
"add-qty qty-change"
>
+
</strong>
</td>
<td
class=
"col subtotal"
data-th=
"
<?=
$block
->
escapeHtml
(
__
(
'Subtotal'
))
?>
"
>
<?php
if
(
$canApplyMsrp
)
:?>
<
span
class
="
cart
msrp
subtotal
">--</span>
<?php else :?>
<?=
$block->getRowTotalHtml
(
$_item
) ?>
<?php endif; ?>
</td>
</tr>
<tr class="
item
-
actions
">
<td colspan="
4
">
<div class="
actions
-
toolbar
">
<?= /* @noEscape */
$block->getActions
(
$_item
) ?>
</div>
</td>
</tr>
</tbody>
<?php else: ?>
<div
class=
"cart item is_mobile"
>
<div
class=
"item-info"
>
...
...
@@ -327,45 +53,25 @@ $priceBlock = $objectManager->get(\Magento\Catalog\Block\Product\AbstractProduct
<!----------------------------item option start--------------------------------->
<?php
if
(
$_options
=
$block
->
getOptionList
())
:?>
<
div
class
="
item
-
options
-
meta
">
<?php
$countOpt
= count(
$_options
);
?>
<?php foreach (
$_options
as
$key
=>
$_option
) :?>
<?php foreach (
$_options
as
$_option
) :?>
<span class="
item
-
options
-
line
">
<?php
$objectManager
= \Magento\Framework\App\ObjectManager::getInstance();
$resource
=
$objectManager->get
('Magento\Framework\App\ResourceConnection');
$connection
=
$resource->getConnection
();
?>
<?php if (
$_option['label']
!= 'Size'){ ?>
<?php
$tableName
=
$resource->getTableName
('eav_attribute_option_value');
$sql
= "
Select
*
FROM
" .
$tableName
."
where
store_id
=
0
AND
option_id
=
".
$_option['option_value']
;
$result
=
$connection->fetchRow
(
$sql
);
?>
<?=
$block->escapeHtml
(
$result['value']
) ?>
<?php }else{
$tableName
=
$resource->getTableName
('eav_attribute_option_swatch');
$sql
= "
Select
*
FROM
" .
$tableName
."
where
store_id
=
0
AND
option_id
=
".
$_option['option_value']
;
$result
=
$connection->fetchRow
(
$sql
);
echo
$result['value']
;
} ?>
</span>
<span><?php if (
$countOpt
- 1 !=
$key
) :?>/<?php endif; ?></span>
<?php
$_formatedOptionValue
=
$block->getFormatedOptionValue
(
$_option
) ?>
<strong style="
font
-
weight
:
600
;
margin
-
right
:
10
px
;
"><?=
$block->escapeHtml
(
$_option['label']
) ?>:</strong>
<?php if (isset(
$_formatedOptionValue['full_view']
)) :?>
<?=
$block->escapeHtml
(
$_formatedOptionValue['full_view']
) ?>
<?php else :?>
<?=
$block->escapeHtml
(
$_formatedOptionValue['value']
, ['span', 'a']) ?>
<?php endif; ?>
</span><br />
<?php endforeach; ?>
</div>
<?php endif;?>
<!----------------------------item option end----------------------------------->
<!----------------------------item price start---------------------------------->
<div class="
item
-
price
">
<?=
$priceBlock->getProductPrice
(
$product
);?>
</div>
<!----------------------------item price end------------------------------------>
<div style="
max
-
width
:
100
%
;
width
:
100
%
;
height
:
40
px
;
">
<!----------------------------item handle start--------------------------------->
<div class="
item
-
handle
">
<div class="
item
-
handle
" style="
width
:
16
%
;
float
:
left
;
position
:
inherit
;
font
-
size
:
16
px
;
">
<div class="
item
-
quantity
">
<?php if (
$block->escapeHtmlAttr
(
$block->getQty
()) > 1) :?>
<strong class="
lower
-
qty
qty
-
change
">-</strong>
...
...
@@ -386,21 +92,30 @@ $priceBlock = $objectManager->get(\Magento\Catalog\Block\Product\AbstractProduct
class=
"input-text qty"
data-validate=
"{required:true,'validate-greater-than-zero':true}"
data-role=
"cart-item-qty"
readonly=
"readonly"
/>
</label>
</div>
</div>
<strong
class=
"add-qty qty-change"
>
+
</strong>
</div
>
</div><br
/
>
<div
class=
"item-actions"
>
<div
class=
"actions-toolbar"
>
<div
class=
"actions-toolbar"
style=
"text-decoration: underline;"
>
<?=
/* @noEscape */
$block
->
getActions
(
$_item
)
?>
</div>
</div>
</div>
<!----------------------------item handle end----------------------------------->
<!----------------------------item option end----------------------------------->
<div
style=
"float: right;padding-right: 15%;width: 40%;font-size: 20px;"
>
<?php
if
(
$canApplyMsrp
)
:?>
<
span
class
="
cart
msrp
subtotal
">--</span>
<?php else :?>
<?=
$block->getRowTotalHtml
(
$_item
) ?>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
<?php
endif
;
?>
\ No newline at end of file
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/cart/methods.phtml
0 → 100644
View file @
5c3589ce
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
?>
<?php
/** @var $block \Magento\Checkout\Block\Cart */
?>
<?php
if
(
!
$block
->
hasError
())
:?>
<?
php
$methods
=
$block
->
getMethods
(
'methods'
)
?:
$block
->
getMethods
(
'top_methods'
)
?>
<ul
class=
"checkout methods items checkout-methods-items"
>
<?php
foreach
(
$methods
as
$code
=>
$method
)
:
?>
<?php
$methodHtml
=
$block
->
getMethodHtml
(
$method
);
?>
<?php
if
(
trim
(
$methodHtml
)
!==
''
)
:?>
<?
php
if
(
trim
(
$method
)
===
'checkout.cart.shortcut.buttons'
)
:?>
<
li
class
="
item
" style="
order
:
0
;
"><?= /* @noEscape */
$methodHtml
?></li>
<?php else : ?>
<li class="
item
" style="
order
:
1
;
"><?= /* @noEscape */
$methodHtml
?></li>
<?php endif; ?>
<?php endif; ?>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<?php if (
$block->getContinueShoppingUrl
()): ?>
<div class="
continue
-
content
" style="
height
:
40
px
;
">
<button class="
action
continue
" style="
width
:
100
%
;
" onclick="
window
.
location
.
href
=
'<?= $block->escapeUrl($block->getContinueShoppingUrl()) ?>'
">Continue shopping</button>
</div>
<?php endif; ?>
<div class="
shipping
-
msg
" style="
text
-
align
:
center
;
margin
:
1
rem
0
px
;
">Taxes and shipping fee will be calculated at checkout
</div>
<script>
require(['jquery'], function ($) {
var isMobile = window.matchMedia("
(
pointer
:
coarse
)
").matches;
if (isMobile) {
$(window).scroll(function () {
var positionUl = $('.cart-container .checkout-methods-items li:first-child')
if (window.outerHeight + $(document).scrollTop() < $(positionUl).parent().offset().top + 50) {
$(positionUl).removeClass("
button
-
static
");
} else {
$(positionUl).addClass("
button
-
static
");
}
});
}
});
</script>
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/cart/minicart.phtml
View file @
5c3589ce
...
...
@@ -7,7 +7,6 @@
/** @var $block \Magento\Checkout\Block\Cart\Sidebar */
/** @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer */
?>
<div
data-block=
"minicart"
class=
"minicart-wrapper"
>
<a
class=
"action showcart"
href=
"
<?=
$block
->
escapeUrl
(
$block
->
getShoppingCartUrl
())
?>
"
data-bind=
"scope: 'minicart_content'"
>
...
...
@@ -35,6 +34,7 @@
"
triggerClass
":"
active
",
"
parentClass
":"
active
",
"
buttons
":[]}}'>
<div id="
minicart
-
content
-
wrapper
" data-bind="
scope
:
'minicart_content'
">
<!-- ko template: getTemplate() --><!-- /ko -->
</div>
...
...
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/cart/totals.phtml
0 → 100644
View file @
5c3589ce
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
?>
<?php
/**
* Shopping cart totals template
* @var $block \Magento\Checkout\Block\Cart\Totals
*/
$code
=
$block
->
getQuote
()
->
getCouponCode
();
$subtotal
=
0
;
if
(
$code
==
null
)
{
$subtotal
=
$block
->
getQuote
()
->
getSubtotalWithDiscount
();
}
else
{
$subtotal
=
$block
->
getQuote
()
->
getBaseSubtotalWithDiscount
();
}
//获取商品总价格
$total
=
$block
->
getQuote
()
->
getSubtotal
();
$discount
=
0
;
if
(
$total
>
$subtotal
)
{
$discount
=
$total
-
$subtotal
;
$discountStr
=
$block
->
escapeHtml
(
$this
->
helper
(
Magento\Checkout\Helper\Data
::
class
)
->
formatPrice
(
$discount
),
[
'span'
]
);
}
$subtotalStr
=
$block
->
escapeHtml
(
$this
->
helper
(
Magento\Checkout\Helper\Data
::
class
)
->
formatPrice
(
$subtotal
),
[
'span'
]
);
?>
<div
id=
"cart-totals"
class=
"cart-totals"
data-bind=
"scope:'block-totals'"
>
<?php
if
(
$discount
>
0
)
:
?>
<div
class=
"discount-area"
>
<div
class=
"discount-title"
>
discount
</div>
<div
class=
"discount-price"
>
-
<?=
$discountStr
?>
</div>
</div>
<?php
endif
;
?>
<div
class=
"total-area"
>
<div
class=
"total-title"
>
Total
</div>
<div
class=
"total-price"
>
<?=
$subtotalStr
?>
</div>
</div>
</div>
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/onepage/link.phtml
View file @
5c3589ce
...
...
@@ -15,7 +15,7 @@ use Magento\Framework\Escaper;
<?php
if
(
$block
->
isPossibleOnepageCheckout
())
:
?>
<button
type=
"button"
data-role=
"proceed-to-checkout"
title=
"
<?=
$escaper
->
escapeHtmlAttr
(
__
(
'Checkout
Now
'
))
?>
"
title=
"
<?=
$escaper
->
escapeHtmlAttr
(
__
(
'Checkout'
))
?>
"
data-mage-init=
'{
"Magento_Checkout/js/proceed-to-checkout":{
"checkoutUrl":"
<?=
$escaper
->
escapeJs
(
$block
->
getCheckoutUrl
())
?>
"
...
...
@@ -24,8 +24,12 @@ use Magento\Framework\Escaper;
class=
"action primary checkout
<?=
(
$block
->
isDisabled
())
?
' disabled'
:
''
?>
"
<?php
if
(
$block
->
isDisabled
())
:
?>
disabled=
"disabled"
<?php
endif
;
?>
style=
" background: #0000; height: 40px;font-size: 22px;text-transform: uppercase;font-weight: 400;"
>
<span
data-v-20221108=
""
class=
"secure"
><img
data-v-b14bd780=
""
alt=
""
src=
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAA3CAYAAAClxaIBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjMyODNDODA2MkIwNTExRUNCNUFCRkFGMzY4RjkyOTdCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjMyODNDODA3MkIwNTExRUNCNUFCRkFGMzY4RjkyOTdCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzI4M0M4MDQyQjA1MTFFQ0I1QUJGQUYzNjhGOTI5N0IiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzI4M0M4MDUyQjA1MTFFQ0I1QUJGQUYzNjhGOTI5N0IiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7niMRCAAAEKklEQVR42tSaW0gVQRjHt01SwiyTJKuHiugiEVIUVhBlPRRBN7ppUCT2EGVB0A2SoB6iJ596iPJBLJPM7B5SdDXNyjIxy0iLIsEoNYuu1vb/8DuwnM7OzszZPR7/8FNxZ3b2f+ab2ZlvTj/LsgyPlQhWgvlgNkgAXaAS3ABnQIenLZIJj0gGB8EHSyy6fgCM9KptL24yCOwFbZaaPnG9xN40EQ+2gxYrPL0DO/l+Ws/ST2NMDAM5YBMY42Fkt4BCUADeq1RUMTELrAVZIMnwT1/AKTZU5YWJiWAxWAOmG5HXA1AKroM6WRNxIJ1ZAqaCWKP3RQ9ZDS6AGnAf/LCbSMPvuWAeSAXjjOhXM2jk984tMvEUf0wx+q7qTX6b9mV9Nu2x1Uf1g0z8jsYQAY9AJq+/RPpp8rwcbQYaeEovAfEu5btMz1eU4RugN/Y62/9GuNRpj8GPzigx8Bjs5hebXaNc6nWQidYoMbCReyLUWk2k92TiXRQYoPB54XB9iEv9t6bqitGHMbBdYIBkCq79okgyOZxae8nAYd62Cgeu4NqbQE+08lo+0gbOgWKJsq9dTHSQib/gVYRNvAT7JctWOQx40nN7vNVFeI+QqVj+l8O1WruJ2giGUR7oVqgzQ7BIrbGnbAaCdstfPQVHFBIA48FVrhdKTYGyMezoG7taqPnpdvMsskC02gRbJO+5A2xw2efcCzUH39U0cAtM40brBeXyJe9ZIGGAdDNUBjBNMTQucpfb75HvUL5cMoTOC8LHru8gySl51ijx8NVghcND0Nh6EqLOOAkD1yQNkM7Z6wa/0ktdQqcMzARnHcrQ2CoPCqtKiffQNZCssNcvESWUJwvcD1WYWWptveCWnqxQ6AFSJ+d/HXuigfM7obReYcAXcm9cAV8F5S6D4YrZlqL/dqMhPplMwXh4CHIke4PGToLgepFiDwQ0SSYrPgC8kZiZkl1MjBVcy9c0UKGS2t8qcUOahVZrpOKzNQ2QMlRMxEqc+AR65ZCCgbQwDNzmKVzpkGWbwovvpISBATxOdJUOTFUT/UGzgpHzLibKwzBwTHRv0f71D8iVnPZoihwNrjpc3wPGai7fKS+2S5z4dw+DYsU11eWg+qlhjANLZvKQMTEYdCgaKQtaE+nqksyEESOTOgeb+RxNNrRIR/kwJFkzjGg3ly13jiQ/PR63IqtFfpxjm7zsiITy/DzHTuHMiG6IyIjCNkulgs5hfBqvdON8MEBb5DmqlUyNhqgnlvlgoMnoOTM3ImGCVKGYAHMTpVEzdE+tzDAapi3iKg8MPDN6ztG1k9pmmA9AX8CiQ/w2zfp32EB4ZyQefXGKshn1itPoSSuKvrRlX/UWShrY52G7npoIkMvJrVD6CJZ43aYfJogJ4HSQgRMgxY/2dF52KloOlnKy7YJfjfwTYAD0328CQiS8EQAAAABJRU5ErkJggg=="
></span>
<span>
<?=
$escaper
->
escapeHtml
(
__
(
'Checkout Now'
))
?>
</span>
<?php
endif
;
?>
style=
"background: #7E6452; height: 40px;font-size: 16px;font-weight: 400;"
>
<!--
<span data-v-20221108="" class="secure">
<img data-v-b14bd780="" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAA3CAYAAAClxaIBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjMyODNDODA2MkIwNTExRUNCNUFCRkFGMzY4RjkyOTdCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjMyODNDODA3MkIwNTExRUNCNUFCRkFGMzY4RjkyOTdCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzI4M0M4MDQyQjA1MTFFQ0I1QUJGQUYzNjhGOTI5N0IiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzI4M0M4MDUyQjA1MTFFQ0I1QUJGQUYzNjhGOTI5N0IiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7niMRCAAAEKklEQVR42tSaW0gVQRjHt01SwiyTJKuHiugiEVIUVhBlPRRBN7ppUCT2EGVB0A2SoB6iJ596iPJBLJPM7B5SdDXNyjIxy0iLIsEoNYuu1vb/8DuwnM7OzszZPR7/8FNxZ3b2f+ab2ZlvTj/LsgyPlQhWgvlgNkgAXaAS3ABnQIenLZIJj0gGB8EHSyy6fgCM9KptL24yCOwFbZaaPnG9xN40EQ+2gxYrPL0DO/l+Ws/ST2NMDAM5YBMY42Fkt4BCUADeq1RUMTELrAVZIMnwT1/AKTZU5YWJiWAxWAOmG5HXA1AKroM6WRNxIJ1ZAqaCWKP3RQ9ZDS6AGnAf/LCbSMPvuWAeSAXjjOhXM2jk984tMvEUf0wx+q7qTX6b9mV9Nu2x1Uf1g0z8jsYQAY9AJq+/RPpp8rwcbQYaeEovAfEu5btMz1eU4RugN/Y62/9GuNRpj8GPzigx8Bjs5hebXaNc6nWQidYoMbCReyLUWk2k92TiXRQYoPB54XB9iEv9t6bqitGHMbBdYIBkCq79okgyOZxae8nAYd62Cgeu4NqbQE+08lo+0gbOgWKJsq9dTHSQib/gVYRNvAT7JctWOQx40nN7vNVFeI+QqVj+l8O1WruJ2giGUR7oVqgzQ7BIrbGnbAaCdstfPQVHFBIA48FVrhdKTYGyMezoG7taqPnpdvMsskC02gRbJO+5A2xw2efcCzUH39U0cAtM40brBeXyJe9ZIGGAdDNUBjBNMTQucpfb75HvUL5cMoTOC8LHru8gySl51ijx8NVghcND0Nh6EqLOOAkD1yQNkM7Z6wa/0ktdQqcMzARnHcrQ2CoPCqtKiffQNZCssNcvESWUJwvcD1WYWWptveCWnqxQ6AFSJ+d/HXuigfM7obReYcAXcm9cAV8F5S6D4YrZlqL/dqMhPplMwXh4CHIke4PGToLgepFiDwQ0SSYrPgC8kZiZkl1MjBVcy9c0UKGS2t8qcUOahVZrpOKzNQ2QMlRMxEqc+AR65ZCCgbQwDNzmKVzpkGWbwovvpISBATxOdJUOTFUT/UGzgpHzLibKwzBwTHRv0f71D8iVnPZoihwNrjpc3wPGai7fKS+2S5z4dw+DYsU11eWg+qlhjANLZvKQMTEYdCgaKQtaE+nqksyEESOTOgeb+RxNNrRIR/kwJFkzjGg3ly13jiQ/PR63IqtFfpxjm7zsiITy/DzHTuHMiG6IyIjCNkulgs5hfBqvdON8MEBb5DmqlUyNhqgnlvlgoMnoOTM3ImGCVKGYAHMTpVEzdE+tzDAapi3iKg8MPDN6ztG1k9pmmA9AX8CiQ/w2zfp32EB4ZyQefXGKshn1itPoSSuKvrRlX/UWShrY52G7npoIkMvJrVD6CJZ43aYfJogJ4HSQgRMgxY/2dF52KloOlnKy7YJfjfwTYAD0328CQiS8EQAAAABJRU5ErkJggg==">
</span>
-->
<span>
<?=
$escaper
->
escapeHtml
(
__
(
'Checkout'
))
?>
</span>
</button>
<?php
endif
?>
app/design/frontend/Joshine/breeze/Magento_Checkout/web/template/minicart/content.html
View file @
5c3589ce
...
...
@@ -4,17 +4,18 @@
* See COPYING.txt for license details.
*/
-->
<div
class=
"block-title"
>
<if
args=
"getCartParam('summary_count')"
>
<div
class=
"block-title"
>
<strong>
<span
class=
"qty empty"
text=
"getCartParam('summary_count')"
data-bind=
"css: { empty: !!getCartParam('summary_count') == false },
attr: { title: $t('Items in Cart') }"
>
<span
class=
"trade-cart-banner--product-title--icon"
>
<svg
aria-hidden=
"true"
focusable=
"false"
role=
"presentation"
width=
"18"
height=
"13"
viewBox=
"0 0 18 13"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
fill=
"currentColor"
fill-rule=
"evenodd"
d=
"M6.23 9.1L2.078 5.2 0 7.15 6.23 13 18 1.95 15.923 0z"
></path>
</svg>
</span>
Added to your cart
</strong>
</div>
</div>
</if>
<div
class=
"block-content"
>
<button
type=
"button"
id=
"btn-minicart-close"
...
...
@@ -44,13 +45,6 @@
<div
class=
"items-total"
style=
"display: block;font-size: inherit;font-family: 'Outfit-Regular';"
>
<span
class=
"count"
if=
"maxItemsToDisplay < getCartLineItemsCount()"
text=
"maxItemsToDisplay"
></span>
<translate
args=
"'of'"
if=
"maxItemsToDisplay < getCartLineItemsCount()"
></translate>
<span
class=
"count"
text=
"getCartParam('summary_count')"
></span>
<!-- ko if: (getCartParam('summary_count') > 1) -->
<span
translate=
"'Items in Cart'"
></span>
<!--/ko-->
<!-- ko if: (getCartParam('summary_count') === 1) -->
<span
translate=
"'Item in Cart'"
></span>
<!--/ko-->
<each
args=
"getRegion('subtotalContainer')"
render=
""
></each>
</div>
...
...
@@ -61,22 +55,28 @@
<if
args=
"getCartParam('cart_empty_message')"
>
<p
class=
"minicart empty text"
text=
"getCartParam('cart_empty_message')"
></p>
<div
class=
"actions"
>
<div
class=
"secondary"
>
<a
class=
"action viewcart"
data-bind=
"attr: {href: shoppingCartUrl}"
>
<div
class=
"secondary"
>
<span
translate=
"'View and Edit Cart'"
></span>
</a>
</div>
</a>
</div>
</if>
</ifnot>
<div
class=
"actions"
if=
"getCartParam('summary_count')"
>
<div
class=
"secondary"
style=
"background: #ffa800;width: 100%;color: #fff;font-size: 18px;height: 35px;"
>
<div
class=
"actions minidiv"
if=
"getCartParam('summary_count')"
>
<a
class=
"action viewcart"
data-bind=
"attr: {href: shoppingCartUrl}"
style=
"vertical-align: sub;color: #ffff;"
>
<span
translate=
"'View and Edit Cart'"
></span>
<div
class=
"secondary"
style=
"background-color: #FAF3FA;width: 100%;color: #7E6452;font-size: 16px;height: 40px;line-height: 40px;border: 1px solid #7E6452;"
>
<span
class=
"exin"
translate=
"'View and Edit Cart'"
></span><span
class=
"exin"
>
(
<span
class=
"count"
text=
"getCartParam('summary_count')"
></span>
)
</span>
</div>
</a>
</div>
<div
class=
"actions minidiv"
if=
"getCartParam('summary_count')"
>
<a
class=
"action checkoutbtn"
data-bind=
"attr: {href: checkoutUrl}"
style=
"vertical-align: sub;color: #ffff;"
>
<div
class=
"secondary"
style=
"background-color: #7E6452;width: 100%;font-size: 16px;height: 40px;line-height: 40px;"
>
<span
class=
"exin"
>
checkout
</span>
</div>
</a>
</div>
<div
id=
"minicart-widgets"
class=
"minicart-widgets"
if=
"regionHasElements('promotion')"
>
<each
args=
"getRegion('promotion')"
render=
""
></each>
</div>
...
...
app/design/frontend/Joshine/breeze/Magento_Checkout/web/template/minicart/item/default.html
View file @
5c3589ce
...
...
@@ -30,9 +30,30 @@
<span
data-bind=
"html: $parent.getProductNameUnsanitizedHtml(product_name)"
></span>
<!-- /ko -->
</strong>
<!-- ko if: options.length -->
<div
class=
"product options"
>
<div
data-role=
"content"
class=
"content"
>
<dl
class=
"product options list"
>
<!-- ko foreach: { data: options, as: 'option' } -->
<dt
class=
"label"
>
<!-- ko text: option.label --><!-- /ko -->
</dt>
<dd
class=
"values"
>
<!-- ko if: Array.isArray(option.value) -->
<span
data-bind=
"html: $parents[1].getOptionValueUnsanitizedHtml(option.value.join('<br/>'))"
></span>
<!-- /ko -->
<!-- ko if: (!Array.isArray(option.value) && ['file', 'html'].includes(option.option_type)) -->
<span
data-bind=
"html: $parents[1].getOptionValueUnsanitizedHtml(option.value)"
></span>
<!-- /ko -->
<!-- ko if: (!Array.isArray(option.value) && !['file', 'html'].includes(option.option_type)) -->
<span
data-bind=
"text: option.value"
></span>
<!-- /ko -->
</dd>
<!-- /ko -->
</dl>
</div>
</div>
<!-- /ko -->
<div
class=
"product-item-pricing"
>
<div
class=
"product-item-pricing"
style=
"font-size: 18px;"
>
<div
class=
"details-qty qty"
>
<span
class=
"qty-wrapper"
data-bind=
"html: qty"
></span>
*
<!-- ko if: canApplyMsrp -->
...
...
@@ -49,7 +70,7 @@
<!-- /ko -->
<!-- /ko -->
</div>
<!--
<div class="product actions">
<div class="secondary">
<a href="#" data-bind="attr: {'data-cart-item': item_id, title: $t('Remove item')}"
...
...
@@ -58,6 +79,7 @@
</a>
</div>
</div>
-->
</div>
</div>
<div
class=
"message notice"
if=
"$data.message"
>
...
...
app/design/frontend/Joshine/breeze/Magento_Checkout/web/template/minicart/subtotal.html
View file @
5c3589ce
...
...
@@ -4,11 +4,14 @@
* See COPYING.txt for license details.
*/
-->
<div
class=
"subtotal"
style=
"width: 47%;float: right;"
>
<span
class=
"label"
>
<!-- ko i18n: 'Cart Subtotal' --><!-- /ko -->
<div
class=
"subtotal"
>
<span
class=
"label"
style=
"
font-size: 18px;
color: gray;
"
>
<!-- ko i18n: 'Cart subtotal' --><!-- /ko -->
</span>
:
<!-- ko foreach: elems -->
<!-- ko template: getTemplate() --><!-- /ko -->
<!-- /ko -->
...
...
app/design/frontend/Joshine/breeze/Magento_Checkout/web/template/summary/cart-items.html
View file @
5c3589ce
...
...
@@ -27,7 +27,7 @@
<div
class=
"actions-toolbar"
if=
"maxCartItemsToDisplay < getCartLineItemsCount()"
>
<div
class=
"secondary"
>
<a
class=
"action viewcart"
data-bind=
"attr: {href: cartUrl}"
>
<span
data-bind=
"i18n: 'View and Edit Cart'"
></span>
<span
data-bind=
"i18n: 'View and Edit Cart'
i18n: 'View and Edit Cart'
"
></span>
</a>
</div>
</div>
...
...
app/design/frontend/Joshine/breeze/Magento_Paypal/templates/express/shortcut.phtml
View file @
5c3589ce
...
...
@@ -26,8 +26,24 @@ if ($block->getIsInCatalogProduct()) {
$isInCatalogProduct
=
$block
->
getIsInCatalogProduct
();
}
?>
<?php
if
(
strpos
(
$block
->
escapeUrl
(
$block
->
getImageUrl
()),
'checkout-logo-medium'
)
!==
false
){
$imgsrc
=
$block
->
getViewFileUrl
(
'Magento_Paypal::images/paypal-color.svg'
);
$class
=
'checkout-logo-medium'
;
$classFirst
=
''
;
}
else
{
$imgsrc
=
$block
->
getViewFileUrl
(
'Magento_Paypal::images/paypal-credit.png'
);
$class
=
'paypal-credit displayno'
;
$classFirst
=
'displayno'
;
}
?>
<div
data-label=
"
<?=
$block
->
escapeHtml
(
__
(
'or'
))
?>
"
class=
"paypal checkout
<?=
/* @noEscape */
$labelPosition
?>
paypal-logo
class=
"paypal checkout
<?=
/* @noEscape */
$labelPosition
?>
<?=
/* @noEscape */
$classFirst
?>
paypal-logo
<?=
/* @noEscape */
$shortcutHtmlId
?>
"
data-mage-init=
'{
"paypalCheckout": {
...
...
@@ -36,15 +52,6 @@ if ($block->getIsInCatalogProduct()) {
}
}'
>
<?php
if
(
strpos
(
$block
->
escapeUrl
(
$block
->
getImageUrl
()),
'checkout-logo-medium'
)
!==
false
){
$imgsrc
=
$block
->
getViewFileUrl
(
'Magento_Paypal::images/paypal-color.svg'
);
$class
=
'checkout-logo-medium'
;
}
else
{
$imgsrc
=
$block
->
getViewFileUrl
(
'Magento_Paypal::images/paypal-credit.png'
);
$class
=
'paypal-credit displayno'
;
}
?>
<div
class=
"
<?=
$class
?>
"
>
<input
type=
"image"
data-action=
"checkout-form-submit"
data-checkout-url=
"
<?=
$block
->
escapeUrl
(
$block
->
getCheckoutUrl
())
?>
"
...
...
@@ -57,6 +64,6 @@ if ($block->getIsInCatalogProduct()) {
<img
src=
"
<?=
$block
->
escapeHtml
(
$linkImage
[
'src'
])
?>
"
/>
</a>
<?php
endif
;
?>
<div
class=
"checkout-txt"
>
Checkout
</div>
<div
class=
"checkout-txt"
style=
"display:contents;"
>
</div>
</div>
</div>
app/design/frontend/Joshine/breeze/Magento_Search/templates/form.mini.phtml
View file @
5c3589ce
...
...
@@ -61,19 +61,3 @@ $quickSearchUrl = $allowedSuggestion ? $escaper->escapeUrl($helper->getSuggestUr
</form>
</div>
</div>
<script>
require
([
'jquery'
],
function
(
$
)
{
$
(
"#search"
).
on
(
"focus"
,
function
()
{
$
(
this
).
css
(
"width"
,
"500px"
).
css
(
"font-size"
,
"20px"
);
});
$
(
'#search'
).
on
(
'blur'
,
function
(){
if
(
!
$
(
this
).
val
()){
$
(
this
).
attr
(
"style"
,
""
);
}
});
});
</script>
app/design/frontend/Joshine/breeze/Magento_Swatches/web/js/swatch-renderer.js
View file @
5c3589ce
...
...
@@ -451,8 +451,8 @@ define([
if
(
item
.
id
==
137
)
{
// Create new control
var
sizeContent
=
'<div class="swatch-attribute-selected-option-size-content" style="display:block;">'
+
'<div
style="font-size:.32rem;color:#999999;"
>'
+
$
.
mage
.
__
(
"Product Size Describe"
)
+
'</div>'
+
'<span
style="color:#0a0a0a;"
class="'
+
classes
.
attributeSelectedOptionLabelClass
+
'">'
+
item
.
options
[
0
].
label
+
'</span></div>'
;
'<div>'
+
$
.
mage
.
__
(
"Product Size Describe"
)
+
'</div>'
+
'<span class="'
+
classes
.
attributeSelectedOptionLabelClass
+
'">'
+
item
.
options
[
0
].
label
+
'</span></div>'
;
container
.
append
(
'<div class="'
+
classes
.
attributeClass
+
' '
+
item
.
code
+
'" '
+
...
...
app/design/frontend/Joshine/breeze/etc/view.xml
View file @
5c3589ce
...
...
@@ -12,8 +12,8 @@
<height>
375
</height>
</image>
<image
id=
"cart_page_product_thumbnail"
type=
"small_image"
>
<width>
96
</width>
<height>
1
20
</height>
<width>
150
</width>
<height>
1
99
</height>
</image>
<image
id=
"category_page_grid"
type=
"small_image"
>
<width>
400
</width>
...
...
@@ -272,7 +272,7 @@
</vars>
<!-- Bundles are always generated by Magento regardless of config value -->
<vars
module=
"Js_Bundle"
>
<var
name=
"bundle_size"
>
2
MB
</var>
<var
name=
"bundle_size"
>
1
MB
</var>
</vars>
<exclude>
<item
type=
"file"
>
Lib::chartjs/Chart.min.js
</item>
...
...
app/design/frontend/Joshine/breeze/web/css/_custom.less
View file @
5c3589ce
...
...
@@ -647,6 +647,14 @@ p.shopbycate-title {
.top-content-home{
width: 100%;
}
.top-content-home:after {
clear: both;
content: ' ';
display: block;
font-size: 0;
height: 0;
visibility: hidden;
}
.banner-4-cate{
width: 25%;
float: left;
...
...
@@ -680,6 +688,11 @@ p.shopbycate-title {
.page-footer .footer_menu a,
.container-before-footer.clearfix a:visited {color:#000;}
.container-before-footer .row {
display: flex;
flex-wrap: wrap;
align-items: end;
}
.select-element.section-before-footer.clearfix {
text-align: center;
...
...
@@ -710,6 +723,7 @@ p.shopbycate-title {
.baozhang_before_footer img {opacity: 0.7;}
.checkout-cart-index input[type="number"]::-webkit-inner-spin-button,
.checkout-cart-index input[type="number"]::-webkit-outer-spin-button {
-webkit-appearance: none;
...
...
@@ -729,7 +743,11 @@ p.shopbycate-title {
font-size: 18px;
font-weight: bold;
cursor:pointer;
color: #0000ff;
color: #000000;
}
.checkout-cart-index #maincontent{
background-color:#FFFFFF;
border-top:1px solid #ddd;
}
.checkout-cart-index #maincontent .columns #block-shipping{
margin-top:0;
...
...
@@ -752,6 +770,10 @@ p.shopbycate-title {
height: 40px;
display: inline-block;
}
.checkout-cart-index .checkout.checkout-methods-items div,.checkout-cart-index .checkout-logo-medium input{
height:40px;
width:100%;
}
@media (min-width: 1024px){
.cart.item .item-info td.col.item {
width: 50%;
...
...
@@ -773,11 +795,9 @@ p.shopbycate-title {
background: url("../images/icons-pc.png");
background-position-x: -160px;
}
.checkout-cart-index .checkout.checkout-methods-items div{
height:auto;
}
.checkout-cart-index #cart-totals {
padding-bottom:
2rem
;
padding-bottom:
0
;
}
.checkout-cart-index #cart-totals .table-wrapper table tr {
border-bottom:none;
...
...
@@ -832,7 +852,11 @@ p.shopbycate-title {
.checkout-cart-index .cart-container .checkout-methods-items .checkout-now button{
height: 50px;
}
.checkout-cart-index #maincontent,.checkout-onepage-success #maincontent{
.checkout-cart-index .cart-container .checkout-methods-items{
padding:0px 1rem;
}
.checkout-onepage-success #maincontent{
background-color: #f4f4f4;
border-top:1px solid #ddd;
}
...
...
@@ -864,24 +888,9 @@ p.shopbycate-title {
padding: 18px 15px;
border-bottom: 1px solid #ddd;
}
.checkout-cart-index .column.main .block .title
{
border-bottom: 1px solid #ddd;
}
.checkout-cart-index .column.main .block .title {
padding: 0.6rem 1rem;
}
.checkout-cart-index .cart-container .cart-summary > .title,
.checkout-cart-index .column.main .block .title,
.checkout-cart-index .cart-container .cart-summary #block-summary,
.checkout-cart-index .cart-container #cart-totals,
.checkout-cart-index .cart-container #block-discount,
.checkout-cart-index .checkout-methods-items .item
{
background-color: #ffffff;
}
.block-minicart .subtotal {
margin-right: 1rem;
}
...
...
@@ -893,14 +902,34 @@ p.shopbycate-title {
animation-play-state: paused;
top: 45%;
left: 45%;
}
.checkout-cart-index .checkout-methods-items {
background-color: #fff;
}
.free-over{
font-size: 16px;
color: #000;
}
}
.checkout-cart-index .total-area,.checkout-cart-index .discount-area {
display: flex;
font-weight: 400;
justify-content: space-between;
width: 100%;
padding: 2px 0px;
font-size: 20px;
}
.amount.price-container {
font-size: 20px;
margin-left: 10px;
}
div#cart-totals{
margin-bottom: 20px;
}
.discount-area{
color:#fa320f;
}
.recently-viewed .product-info-promotion-span{
position: absolute;
...
...
@@ -910,10 +939,25 @@ p.shopbycate-title {
}
.checkout-cart-index .cart-container .cart-summary {
gap: 0px;
background-color: rgba(0,0,0,.03);
padding-bottom: 1rem;
}
.checkout-cart-index #discount-coupon-form .fieldset{
margin-bottom:0px;
}
.checkout-cart-index #block-discount .content{
padding:0px 1rem;
}
@media (max-width: 768px){
.checkout-cart-index .cart-container .cart-summary {
margin:0;
background-color: #ffffff;
}
.checkout-cart-index #block-discount .content{
padding:0;
}
.checkout-cart-index #discount-coupon-form .actions-toolbar{
font-size: 14px;
}
.checkout-index-index .method-content .method-msg{
padding: 5px 0 5px 2.2rem;
...
...
@@ -947,6 +991,9 @@ p.shopbycate-title {
padding: 0px!important;
gap: 0.5rem;
}
.checkout-cart-index .button-static{
margin-bottom:0rem!important;
}
.checkout-now.button-static .now-grand-total{
display: none;
}
...
...
@@ -954,10 +1001,10 @@ p.shopbycate-title {
border: none;
}
.checkout-cart-index .cart-container .checkout-methods-items{
margin-top:
2rem
;
margin-top:
0
;
}
.checkout-cart-index .cart-container .checkout-methods-items .checkout-now{
z-index:
1
;
z-index:
2
;
gap: 0rem;
margin-bottom: 0px;padding: 0px 10px 10px;
}
...
...
@@ -1018,6 +1065,7 @@ p.shopbycate-title {
position: absolute;
right: 7%;
}
@media (max-width: 768px){
.checkout-index-index .product-item-details .product-item-inner .subtotal {
right: 13.5%;
...
...
@@ -1062,7 +1110,7 @@ p.shopbycate-title {
}
}
.checkout-index-index .page-footer
,.checkout-cart-index .page-footer
{
.checkout-index-index .page-footer{
background-color: #FFFFFF;
}
.checkout-onepage-success #maincontent{
...
...
@@ -1177,7 +1225,7 @@ p.shopbycate-title {
}
}
@media(max-width: 768px){
.checkout-index-index .page-footer
,.checkout-cart-index .page-footer
{
.checkout-index-index .page-footer{
padding-top:0;
margin-top:10px;
}
...
...
@@ -1188,14 +1236,22 @@ p.shopbycate-title {
{
border-left: none;
}
}
.checkout-cart-index .checkout-logo-medium {
margin-bottom:0px;
}
.checkout-cart-index .shipping-msg {
font-size:14px;
}
}
@media(min-width: 790px){
.baozhang_before_footer{
margin-top: 30px;
}
.baozhang_before_footer .image_first {margin-top: 10px;}
.checkout-cart-index .continue-content{
padding:0px 1rem;
}
}
@media(max-width:789px){
.col-md-3.col-xs-12.social_block {
...
...
@@ -1207,13 +1263,9 @@ p.shopbycate-title {
margin-top: 1px;
padding-top: 40px
}
.container-before-footer.clearfix a {
font-size: 70%;
}
.cms-index-index .box-blog{padding-bottom:0;}
.baozhang_before_footer{width: 33.333%;float: left;height: 80px;}
.baozhang_before_footer .image_first {margin-top: 10px;}
.baozhang_before_footer{width: 33.333%;}
.select-element.section-before-footer.clearfix{ padding: 20px 10px;}
.select-element.section-before-footer.clearfix p{height:60px;font-size: 14px;text-transform: lowercase;}
...
...
@@ -2066,16 +2118,310 @@ footer{
opacity: 0;
visibility: hidden;
}
#minicart-content-wrapper .product-item-details a{
/***********************************minicart edit start*********************************************************/
.minicart-wrapper .mage-dropdown-dialog{
width:30rem;
}
.block.block-minicart{
margin:20px;
}
#minicart-content-wrapper .product-item-details a {
width: 100%;
color: #000000;
font-size: 16px;
line-height: 1.6rem;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
display: -webkit-box;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-word;
font-weight: 400;
}
#minicart-content-wrapper{
font-family: 'Poppins';
}
.page-header .block .block-title{
font-size: 19px;
font-family: 'Montserrat';
}
.minicart-items .product-item-photo, .minicart-items .product-image-container {
width: 100px!important;
margin-right: 15px!important;
}
#mini-cart li.product-item > div.product .product-item-details{
max-width: 260px;
}
.minicart-items-wrapper #mini-cart{
max-height: 160px;
height: 100%;
overflow: hidden;
}
.minicart-items li.product-item > div.product {
height: 160px;
}
.minicart-items li.product-item > div.product > :nth-child(1) {
max-width: 100%!important;
}
.exin{
display: inline-block;
color: #333333;
font-size: 10px;
line-height: 15px;
}
.action.viewcart .secondary:hover{
box-shadow: 0px 0px 1px 1px #7F6452;
}
#mini-cart .product-item-details .product.options.list .label{
float:left;
margin-top:0;
margin-right:5px;
}
#mini-cart .product-item-details .product.options.list .values{
color:#888;
font-family: inherit;
display: flex;
}
/***********************************minicart edit end*********************************************************/
/***********************************cart style start**********************************************************/
.free_message{
margin-left: .7rem;
text-align: left;
}
.free_message.tddiv{
margin-left: 1.3rem;
}
.free-shipping-area .cart-icon{
float: left;
}
.free-shipping-area .content-wrap{
float: left;
}
.free-shipping-area{
width:100%!important;
order:-3;
padding: 15px;
background-color: #FFFFFF;
color:#000;
}
@media(min-width:768px){
.free-shipping-area{
padding: 10px 10px 10px 20px;
}
.area-blk-notitle{
display:none;
}
.cart-title{
margin-top:50px;
color: #444;
width: 100%!important;
text-align: center;
font-weight: normal;
font-family: "Montserrat";
font-size: 48px;
}
}
@media(max-width:768px){
.free-shipping-area{
padding: 0px;
}
.free-shipping-area .content-wrap{
padding: 10px 0px;background-color: #f2f2f2;
width:100%;
}
.area-blk{
display:none;
}
.area-fix {
position: fixed;
left: 0;
z-index: 1;
border-top: 1px solid #fff;
}
.cart-title{
margin-top: 1rem;
color: #444;
width: 100%!important;
text-align: center;
font-weight: normal;
font-size: 26px;
}
}
.cart-top{
order: -4;
text-align: center;
width:100%!important;
}
.msg-content{
margin: 2rem 0px;
color: #AB3F3F;
}
.item-options-line span{
display: inline-block;
}
.item-options-line span:first-child{
width:30%;
}
@media (max-width: 1024px){
.cart-container .cart.table-wrapper .item-options {
min-width: 100px;
}
}
.is_mobile .item-info{
display: table;
font-family: "Poppins";
table-layout: fixed;
margin: 15px 0;
width: 100%;
}
.is_mobile .item-info{
display: table;
table-layout: fixed;
margin:3rem 0;
width: 100%;
}
.item-info-left{
width: 150px;
min-width: 150px;
text-align: center;
display: table-cell;
vertical-align: middle;
padding-bottom: 10px;
}
.item-info-left .item-image{
position: relative;
margin-left: auto;
margin-right: auto;
}
.item-info-right{
padding-left: 25px;
display: table-cell;
padding-bottom: 10px;
}
.item-info-right .item-name{
width: 100%;
font-size: 16px;
font-weight: 400;
font-style: normal;
color: #000000;
-webkit-transition: color .2s ease-in-out;
transition: color .2s ease-in-out;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
display: -webkit-box;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-word;
}
.item-info-right .item-options-meta{
font-size: 16px;
font-weight: 400;
font-style: normal;
-webkit-transition: color .2s ease-in-out;
transition: color .2s ease-in-out;
margin-top: 1rem;
}
.item-info-right .item-price{
margin-top: 1rem;
font-size: 10px;
font-weight: 400;
font-style: normal;
-webkit-transition: color .2s ease-in-out;
transition: color .2s ease-in-out;
}
.checkout-cart-index .price-final_price .price{
font-size: 20px;
color:#000000;
}
.item-info-right .item-price .price-box.price-final_price{
float: none;
}
.item-info-right .item-price .product-info-promotion-span,.item-info-right .item-price .price-label{
display:none;
}
.item-info-right .item-price .no-display{
display:inline-block!important;
}
.item-info-right .item-handle{
text-align: center;
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;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
font-family: Futura,sans-serif;
font-weight: 400;
font-style: normal;
-webkit-transition: color .2s ease-in-out;
transition: color .2s ease-in-out;
font-size: 12px;
}
.item-info-right .item-quantity{
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
border: 1px solid #e7e7e7;
white-space: nowrap;
}
.checkout-cart-index .item-info-right .new-qty .input-text {
border:none;
width:1rem;
padding:0;
font-size: 12px;
}
.checkout-cart-index .item-info-right .qty-change {
padding:2px 15px;
}
.checkout-cart-index .item-info-right .actions-toolbar {
margin-top: 0px;
margin-bottom: 0px;
}
.checkout-cart-index .item-info-right .action-delete span{
color:#0a0a0a;
}
@media (min-width:768px) {
.item-info-right .item-name {
width: 80%;
font-size: 18px;
margin-bottom: 1rem
}
.item-info-right .item-options-meta {
font-size: 18px;
margin-bottom: 1rem;
}
.price-final_price .price{
font-size: 18px;
}
}
.is_mobile .item-info:first-child{
margin:0px 0px 3rem 0;
}
.item-info-right,.item-info-left{
padding-bottom:0px;
position:relative;
}
.item-handle{
width: 80%;
position: absolute;
bottom: 0;
}
.checkout-cart-index .item-actions .action-delete{
display: inline-block;
text-align: left;
width: 100%;
}
/***********************************cart style end**********************************************************/
@media (min-width: 992px) {
.product-item:hover .product-item-info .image0,
.product-list-item:hover .product-item-info .image0 {
...
...
@@ -2260,18 +2606,12 @@ button.action.submit.primary {
text-overflow: ellipsis;
white-space: nowrap;
margin-bottom: revert;
font-size: larger;
}
.swatch-attribute {
margin-bottom: 1.5rem !important;
}
#product-intro__freeshipping-more-3{
display: inline-block;
color: #2d68a8;
font-size: 12px;
line-height: 1;
margin-top: -10px;
}
...
...
@@ -2352,7 +2692,7 @@ button.action.submit.primary {
}
}
.product-info-main .swatch-option.color
, .swatch-option.image
{
.product-info-main .swatch-option.color{
margin-right: 10px !important;
}
...
...
@@ -2370,11 +2710,10 @@ button.action.submit.primary {
line-height:10px!important;
min-width: 70px;
text-align: center;
font-size:
15px
;
font-size:
.9rem
;
background: none!important;
border:1px solid rgba(23, 23, 23, 0.3);
border-radius: 15px;
margin-right: 10px;
}
.swatch-option.text.selected{
...
...
@@ -2382,26 +2721,21 @@ button.action.submit.primary {
}
.swatch-attribute.size .swatch-attribute-selected-option{
font-size: 12px;
color: rgba(23, 23, 23, 0.6) !important;
font-size: .8rem;
}
.swatch-attribute-selected-option-size-content{
margin-top: 0.53333rem;
padding:
0.26667rem
;
padding:
10px
;
background-color: #f8f8f8!important;
display: none;
}
.fieldset .swatch-attribute-options.clearfix{margin-top: 20px !important;}
@media (max-width: 768px){
.swatch-attribute-selected-option-size-content span.swatch-attribute-selected-option{
margin-left: 0!important;
line-height:0.53333rem;
font-size: 12px;
text-transform:capitalize;
color: #0a0a0a;
}
}
...
...
@@ -2603,7 +2937,6 @@ button.action.submit.primary {
@media (max-width: 1024px){
.select-element.section-before-footer.clearfix p {
font-weight: 200;
font-size: 12px;
color: #000000;
text-transform: none;
}
...
...
@@ -2752,11 +3085,14 @@ strong.subtitle.empty{
.block-minicart .subtotal{
display: flex;
justify-content:
space-between
;
font-weight:
500
;
font-size: 1
8
px;
justify-content:
left
;
font-weight:
normal
;
font-size: 1
6
px;
margin:0px;
}
.block-minicart .amount.price-container{
margin-right: 1rem;
}
.minicart-items .price-container{
font-size: 12px;
}
...
...
@@ -2939,7 +3275,7 @@ tr.grand.totals {
}
.flash-sale-info .product-name{
font-size: 1
2
px;
font-size: 1
4
px;
}
.flash-sale-info .price{
font-size: 16px;
...
...
@@ -2974,7 +3310,7 @@ tr.grand.totals {
}
.product-info-wrapper .page-title span.base{
font-size: 1
5px
;
font-size: 1
rem
;
}
.product-info-stock-sku{
...
...
@@ -2987,7 +3323,7 @@ tr.grand.totals {
align-items: center;
gap: 0.5rem;
border-bottom: 1px solid lightgrey;
font-size:
12px
;
font-size:
.8em
;
}
.swatch-option.selected:before{
...
...
@@ -3187,7 +3523,7 @@ strong#block-related-heading,strong#block-upsell-heading{ font-weight: 600; colo
@media (min-width: 1024px) {
.gallery-placeholder .fotorama__stage__shaft {
height: 1000px
!important
;
height: 1000px;
width: 800px !important;
max-width:none!important;
}
...
...
@@ -3196,7 +3532,7 @@ strong#block-related-heading,strong#block-upsell-heading{ font-weight: 600; colo
max-height: 1000px;
max-width: 880px;
width: 880px!important;
height: 1000px
!important
;
height: 1000px;
}
#sparsh-mfp-quickview .fotorama__stage__shaft{
...
...
@@ -3205,8 +3541,8 @@ strong#block-related-heading,strong#block-upsell-heading{ font-weight: 600; colo
}
.gallery-placeholder .fotorama__nav {
max-height: 1000px
!important
;
height: 1000px
!important
;
max-height: 1000px;
height: 1000px;
}
...
...
app/design/frontend/Joshine/breeze/web/css/_joshine_utils.less
View file @
5c3589ce
...
...
@@ -22,6 +22,16 @@
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyMnYxOEgweiIvPjxwYXRoIGQ9Ik05LjUgMGwyLjI0MyA2Ljg3NUgxOWwtNS44NzEgNC4yNUwxNS4zNyAxOCA5LjUgMTMuNzUgMy42MjkgMThsMi4yNDItNi44NzVMMCA2Ljg3NWg3LjI1N0w5LjUgMHoiIGZpbGw9IiNFRDlEMDAiLz48L3N2Zz4=);
}
.rating-result::before, .rating-result > span::before {
left: -5px;
}
.rating-result.-lg {
width: 9rem;
&::before, & > span::before {
-webkit-mask-size: 1.8rem 1.8rem;
}
}
/*点赞图标*/
.joshine-like {
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyMHYxOEgweiIvPjxwYXRoIGQ9Ik0zLjg5NiA3LjI4NkguNTU2QS41NTQuNTU0IDAgMCAwIDAgNy44NDh2OC45ODVjMCAuMzE0LjI0NS41NjEuNTU3LjU2MWgzLjM0YS41NTMuNTUzIDAgMCAwIC41NTYtLjU2MVY3Ljg0OGEuNTUzLjU1MyAwIDAgMC0uNTU3LS41NjJ6TTIwIDguMzVjMC0uOTE1LS42MjMtMS44NC0xLjgxMy0xLjg0aC01LjM5MmMuNzctMS4zOTEuOTk3LTMuMzQ3LjQ2Mi00Ljc3OEMxMi44NjMuNjggMTIuMTEuMDY2IDExLjEzOS4wMDRsLS4wMTYtLjAwMkExLjE3IDEuMTcgMCAwIDAgOS44ODkgMS4wOEM5Ljc1MSAyLjUgOS4xMzQgNS4wMSA4LjI1MSA1LjljLS43NDQuNzUtMS4zOCAxLjA2NS0yLjQzNiAxLjU4Ni0uMTUyLjA3NS0uMzIuMTU3LS40OTYuMjQ2YTEuNCAxLjQgMCAwIDEgLjAwNS4xMTd2OC44OTNsLjM3Ny4xM0M3LjQ0MyAxNy40NzggOC45NDggMTggMTEuMjQ4IDE4aDQuMzZjMS4xOSAwIDEuODEyLS45MjYgMS44MTItMS44NDFhMiAyIDAgMCAwLS4xNjMtLjc5MyAxLjcxOCAxLjcxOCAwIDAgMCAxLS41NTljLjI5Mi0uMzM0LjQ1My0uNzc5LjQ1My0xLjI1MSAwLS4yNy0uMDU1LS41NDMtLjE2My0uNzkyLjk1Ni0uMTY2IDEuNDUzLS45OTMgMS40NTMtMS44MSAwLS40NzUtLjE2OC0uOTUzLS40OTQtMS4zMDIuMzI2LS4zNS40OTQtLjgyNy40OTQtMS4zMDJ6IiBmaWxsPSIjQzRDNEM0Ii8+PC9zdmc+);
...
...
@@ -180,6 +190,9 @@ fieldset[disabled] a.joshine-btn {
.joshine-inline-block {
display: inline-block;
}
.joshine-flex{
display: flex;
}
.joshine-pagination {
display: flex;
...
...
@@ -362,3 +375,28 @@ fieldset[disabled] a.joshine-btn {
z-index: 12;
cursor: url('@{baseDir}images/favicon-next.ico'), auto;
}
.cursor-zoom-in:hover {
cursor: url('@{baseDir}images/cursor-zoom-in.svg'), auto;
}
.joshine-ui-icon-show {
content: ' ';
width: 1.5rem;
height: 1.5rem;
-webkit-mask-size: 1rem 1rem;
background-color: currentColor;
-webkit-mask: url('@{baseDir}images/cursor-zoom-in.svg'), auto;
}
.joshine-ui-icon-toggle{
content: ' ';
position: absolute;
right: 0.125rem;
top: 50%;
margin-top: -0.75rem;
width: 1rem;
height: 1.5rem;
-webkit-mask-size: 1rem 1rem;
background-color: currentColor;
-webkit-mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" /></svg>') no-repeat 50% 50%;
}
\ No newline at end of file
app/design/frontend/Joshine/breeze/web/css/_theme.less
View file @
5c3589ce
...
...
@@ -12,3 +12,67 @@
font-weight: normal;
font-style: normal;
}
/* devanagari */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
src: url('../fonts/devanagari-poppins.woff2') format('woff2');
unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FF;
}
/* latin-ext */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
src: url('../fonts/latin-ext-popoins.woff2') format('woff2');
unicode-range: U+0100-02AF, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
src: url('../fonts/latin-popoins.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 400;
src: url('../fonts/cyrillic-ext-montserrat.woff2') format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 400;
src: url('../fonts/cyrillic-montserrat.woff2') format('woff2');
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 400;
src: url('../fonts/vietnamese-montserrat.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 400;
src: url('../fonts/latin-ext-montserrat.woff2') format('woff2');
unicode-range: U+0100-02AF, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 400;
src: url('../fonts/latin-montserrat.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
app/design/frontend/Joshine/breeze/web/fonts/cyrillic-ext-montserrat.woff2
0 → 100644
View file @
5c3589ce
File added
app/design/frontend/Joshine/breeze/web/fonts/cyrillic-montserrat.woff2
0 → 100644
View file @
5c3589ce
File added
app/design/frontend/Joshine/breeze/web/fonts/devanagari-poppins.woff2
0 → 100644
View file @
5c3589ce
File added
app/design/frontend/Joshine/breeze/web/fonts/latin-ext-montserrat.woff2
0 → 100644
View file @
5c3589ce
File added
app/design/frontend/Joshine/breeze/web/fonts/latin-ext-popoins.woff2
0 → 100644
View file @
5c3589ce
File added
app/design/frontend/Joshine/breeze/web/fonts/latin-montserrat.woff2
0 → 100644
View file @
5c3589ce
File added
app/design/frontend/Joshine/breeze/web/fonts/latin-popoins.woff2
0 → 100644
View file @
5c3589ce
File added
app/design/frontend/Joshine/breeze/web/fonts/vietnamese-montserrat.woff2
0 → 100644
View file @
5c3589ce
File added
app/design/frontend/Joshine/breeze/web/images/cursor-zoom-in.svg
0 → 100644
View file @
5c3589ce
<svg
width=
"35"
height=
"35"
viewBox=
"0 0 35 35"
xmlns=
"http://www.w3.org/2000/svg"
>
<g
fill=
"none"
fill-rule=
"nonzero"
>
<circle
fill=
"#ffffff"
cx=
"17.5"
cy=
"17.5"
r=
"17.5"
/>
<path
fill=
"#5c5c5c"
d=
"M24 18h-6v6h-1v-6h-6v-1h6v-6h1v6h6"
/>
</g>
</svg>
\ No newline at end of file
lib/web/mage/gallery/gallery.html
View file @
5c3589ce
...
...
@@ -11,7 +11,7 @@
<div
class=
"fotorama__arr fotorama__arr--prev"
tabindex=
"0"
role=
"button"
aria-label=
"Previous"
data-gallery-role=
"arrow"
>
<div
class=
"fotorama__arr__arr"
></div>
</div>
<div
class=
"fotorama__stage__shaft"
tabindex=
"0"
data-gallery-role=
"stage-shaft"
>
<div
class=
"fotorama__stage__shaft
cursor-zoom-in
"
tabindex=
"0"
data-gallery-role=
"stage-shaft"
>
</div>
<div
class=
"fotorama__arr fotorama__arr--next fotorama__arr--disabled"
tabindex=
"-1"
role=
"button"
aria-label=
"Next"
data-gallery-role=
"arrow"
>
...
...
pub/.htaccess
View file @
5c3589ce
...
...
@@ -135,8 +135,12 @@
RewriteRule
.* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
############################################
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks
RewriteRule
^static/version[^/]+/(.*)$ static/$1 [L]
RewriteCond
%{REQUEST_FILENAME} !-f
RewriteRule
^static/(version[^/]+/)?(.*)$ static.php?resource=$2 [L]
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks
RewriteCond
%{REQUEST_METHOD} ^TRAC[EK]
RewriteRule
.* - [L,R=405]
...
...
@@ -161,7 +165,6 @@
</
IfModule
>
############################################
## Prevent character encoding issues from server overrides
## If you still have problems, use the second line instead
...
...
pub/health_check.php
View file @
5c3589ce
<?php
http_response_code
(
200
);
// phpcs:ignore Magento2.Security.LanguageConstruct
exit
(
1
);
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
...
...
vendor/swissup/theme-frontend-breeze-blank/web/css/abstracts/variables/_base.less
View file @
5c3589ce
...
...
@@ -4,7 +4,7 @@
@selection__color: false;
@selection__background: false;
@font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
@font-sans:
Outfit-Regular, sans-serif,
ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
@font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
@font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment