Skip to content

Commit ed906ea

Browse files
authored
Merge pull request #919 from tblivet/feat/add-stock-on-cart-and-listing
Add stock informations on cart page
2 parents 6e04318 + 2258cf8 commit ed906ea

File tree

4 files changed

+66
-25
lines changed

4 files changed

+66
-25
lines changed

src/scss/prestashop/components/cart/_cart-product-line.scss

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,18 @@ $component-name: product-line;
4242
}
4343

4444
&__item {
45+
&-availability-icon {
46+
flex-shrink: 0;
47+
font-size: 0.875rem;
48+
}
49+
50+
&-availability-message {
51+
display: inline-flex;
52+
gap: 0.25rem;
53+
align-items: center;
54+
font-size: 0.75rem;
55+
}
56+
4557
&-price {
4658
width: 100%;
4759
font-weight: 600;
@@ -73,6 +85,17 @@ $component-name: product-line;
7385
align-items: center;
7486
}
7587

88+
&--small-info {
89+
font-size: 0.75rem;
90+
color: var(--bs-tertiary-color);
91+
}
92+
93+
&--availability {
94+
display: flex;
95+
flex-direction: column;
96+
gap: 0.125rem;
97+
}
98+
7699
&--prices {
77100
display: flex;
78101
flex-wrap: wrap;

src/scss/prestashop/pages/_product.scss

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,7 @@ $component-name: product;
123123
&__availability {
124124
display: flex;
125125
flex-direction: column;
126-
127-
&:has(+ .#{$component-name}__delivery-infos) {
128-
margin-block-end: 0.25rem;
129-
}
126+
gap: 0.25rem;
130127
}
131128

132129
&__availability-status {
@@ -203,7 +200,6 @@ $component-name: product;
203200
&__actions,
204201
&__variants,
205202
&__availability,
206-
&__delivery-infos,
207203
&__add-to-cart-container,
208204
&__minimal-quantity,
209205
&__customization,
@@ -296,7 +292,6 @@ $component-name: product;
296292
&__actions,
297293
&__variants,
298294
&__availability,
299-
&__delivery-infos,
300295
&__add-to-cart-container,
301296
&__minimal-quantity,
302297
&__customization,

templates/catalog/_partials/product-add-to-cart.tpl

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@
55
{if !$configuration.is_catalog}
66
<div class="product__add-to-cart-container product-add-to-cart js-product-add-to-cart">
77
{block name='product_availability'}
8-
{if $product.show_availability && $product.availability_message}
9-
<div
10-
id="product-availability"
11-
class="product__availability js-product-availability"
12-
>
8+
<div
9+
id="product-availability"
10+
class="product__availability js-product-availability"
11+
{if empty($product.availability_message) && empty($product.delivery_information)}
12+
hidden
13+
{/if}
14+
>
15+
{if !empty($product.availability_message)}
1316
{** First, we prepare the icons and colors we want to use *}
1417
{if $product.availability == 'in_stock'}
1518
{assign 'availability_icon' 'E5CA'}
@@ -38,23 +41,14 @@
3841
{/if}
3942
</div>
4043
</div>
41-
</div>
42-
{/if}
44+
{/if}
4345

44-
{block name='product_delivery_times'}
45-
{if !$product.is_virtual}
46-
{if $product.additional_delivery_times == 1 && $product.delivery_information}
46+
{block name='product_delivery_times'}
47+
{if !empty($product.delivery_information)}
4748
<div class="product__delivery-infos">{$product.delivery_information}</div>
48-
{elseif $product.additional_delivery_times == 2}
49-
{if $product.quantity > 0 && $product.delivery_in_stock}
50-
<div class="product__delivery-infos">{$product.delivery_in_stock}</div>
51-
{* Out of stock message should not be displayed if customer can't order the product. *}
52-
{elseif $product.quantity <= 0 && $product.add_to_cart_url && $product.delivery_out_stock}
53-
<div class="product__delivery-infos">{$product.delivery_out_stock}</div>
54-
{/if}
5549
{/if}
56-
{/if}
57-
{/block}
50+
{/block}
51+
</div>
5852
{/block}
5953

6054
{block name='product_quantity'}

templates/checkout/_partials/cart-detailed-product-line.tpl

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,35 @@
9191
</div>
9292
{/foreach}
9393

94+
{if !empty($product.availability_message)}
95+
{if $product.availability == 'in_stock'}
96+
{assign 'availability_icon' 'E5CA'}
97+
{assign 'availability_class' 'text-success'}
98+
{elseif $product.availability == 'available'}
99+
{assign 'availability_icon' 'E002'}
100+
{assign 'availability_class' 'text-warning'}
101+
{elseif $product.availability == 'last_remaining_items'}
102+
{assign 'availability_icon' 'E002'}
103+
{assign 'availability_class' 'text-warning'}
104+
{else}
105+
{assign 'availability_icon' 'E14B'}
106+
{assign 'availability_class' 'text-danger'}
107+
{/if}
108+
109+
<div class="product-line__item product-line__item--availability">
110+
<div class="product-line__item-availability-message {$availability_class}">
111+
<i class="product-line__item-availability-icon material-icons rtl-no-flip">&#x{$availability_icon};</i>
112+
{$product.availability_message}
113+
</div>
114+
</div>
115+
{/if}
116+
117+
{if !empty($product.delivery_information)}
118+
<div class="product-line__item product-line__item--small-info">
119+
{$product.delivery_information}
120+
</div>
121+
{/if}
122+
94123
{hook h='displayCartExtraProductInfo' product=$product}
95124

96125
<div class="product-line__item product-line__item--prices">

0 commit comments

Comments
 (0)