added item quantity

This commit is contained in:
franknstayn
2021-08-24 22:33:11 +08:00
parent f1d656de5e
commit d4519faf2b
6 changed files with 404 additions and 372 deletions

View File

@@ -29,7 +29,7 @@ class PaypalController extends Controller
public function __construct()
{
$paypal_env = "live";
$paypal_env = "sandbox";
$paypal_apiUrl = 'https://api.paypal.com'; // default
if($paypal_env == 'live'){

View File

@@ -364,7 +364,8 @@ class UserController extends Controller {
'PrivacyStatus' => $post['item_privacy'],
'ProductForm' => $post['itemForm'],
'AvailableSizes' => implode(",", $post['available_size']),
'ShippingCostId' => $shipping_cost_id
'ShippingCostId' => $shipping_cost_id,
'ProductAvailableQty' => ($post['item_quantity'] == 0) ? null : $post['item_quantity']
);

View File

@@ -3,25 +3,36 @@
<div class="row">
<div class="col-sm-6">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-default btn-number" disabled="disabled" data-type="minus" data-field="quantity">
<span class="glyphicon glyphicon-minus"></span>
</button>
</span>
<button class="btn btn-outline-secondary btn-number" disabled="disabled" data-type="minus" data-field="quantity" type="button" id="button-addon1"><i class="fa fa-minus"></i></button>
{{-- <input type="text" name="quantity" class="form-control input-number" value="1" min="1" max="100"> --}}
@if($product_array[0]->ProductAvailableQty == null)
<input type="text" name="quantity" class="form-control input-number" value="1" min="1" max="100">
@else
<input type="text" name="quantity" class="form-control input-number" value="1" min="1" max="{{ $available_qty }}">
@endif
<button class="btn btn-outline-secondary btn-number" data-type="plus" data-field="quantity" type="button" id="button-addon1"> <i class="fa fa-plus"></i> </button>
</div>
{{-- <div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-default btn-number" data-type="plus" data-field="quantity">
<span class="glyphicon glyphicon-plus"></span>
<button type="button" class="btn btn-default btn-number" disabled="disabled" data-type="minus" data-field="quantity">
<i class="fa fa-minus"></i>
</button>
</span>
</div>
@if($available_qty != null)
<span class="input-group-btn">
<button type="button" class="btn btn-default btn-number" data-type="plus" data-field="quantity">
<i class="fa fa-plus"></i>
</button>
</span>
</div> --}}
@if($available_qty !== null)
@if ($available_qty > 0)
<p>{{ $available_qty }} piece/s available</p>
@else
<p>Sold out</p>
@endif
@endif
</div>

View File

@@ -15,6 +15,7 @@
max-height: 100% !important;
padding: 5px !important;
}
.carousel-indicators {
display: inline-block !important;
height: 400px !important;
@@ -45,10 +46,12 @@
margin-top: 20px !important;
margin-bottom: 20px !important;
}
.carousel-inner {
margin-left: 0 !important;
}
}
/* width */
::-webkit-scrollbar {
width: 5px;
@@ -69,6 +72,7 @@
::-webkit-scrollbar-thumb:hover {
background: #555;
}
.item {
margin-bottom: 10px !important;
margin-left: 10px !important;
@@ -78,6 +82,7 @@
border: solid 1px #e2e2e2 !important;
text-align: center !important;
}
.item.active img {
/* border:1px solid #000000; */
opacity: 1;
@@ -103,14 +108,17 @@
border: 1px solid #000000 !important;
opacity: 1 !important;
}
.content {
position: absolute;
bottom: 0;
background: rgba(0, 0, 0, 0.5); /* Black background with transparency */
background: rgba(0, 0, 0, 0.5);
/* Black background with transparency */
color: #f1f1f1;
width: 100%;
padding: 10px;
}
.content p {
font-size: 15px;
}
@@ -120,40 +128,47 @@
position: static;
}
}
@media screen and (min-width: 1440px) {
/* .carousel-inner{
margin-left: -60px;
} */
}
@media screen and (min-width: 1200px) and (max-width: 1439px) {
.carousel-inner {
margin-left: -20px;
}
}
@media screen and (min-width: 880px) and (max-width: 1199px) {
.carousel-inner {
margin-left: 20px;
}
.content {
position: static;
}
}
@media screen and (min-width: 576px) and (max-width: 879px) {
.carousel-inner {
margin-left: 50px;
}
.content {
position: static;
}
}
</style>
<style>
.custom-chevron-left,
.custom-chevron-right {
color: grey;
}
/* end single carousel*/
.hide-bullets {
@@ -161,17 +176,22 @@
margin-left: -40px;
margin-top: 20px;
}
.spacer-top {
margin-top: 40px;
}
.roster-input {
border-radius: 0px;
border-right: none;
border-top: none;
}
.table-bordered>thead>tr>td, .table-bordered>thead>tr>th{
.table-bordered>thead>tr>td,
.table-bordered>thead>tr>th {
border-bottom-width: 0px;
}
.btn-roster-action {
/* width: 20px;
height: 20px;
@@ -181,23 +201,37 @@
.btn-group-sm>.btn {
padding: 0px 0px;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th{
.table>tbody>tr>td,
.table>tbody>tr>th,
.table>tfoot>tr>td,
.table>tfoot>tr>th,
.table>thead>tr>td,
.table>thead>tr>th {
vertical-align: unset;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th{
.table>tbody>tr>td,
.table>tbody>tr>th,
.table>tfoot>tr>td,
.table>tfoot>tr>th,
.table>thead>tr>td,
.table>thead>tr>th {
border: none;
}
.table>thead>tr>th {
border-bottom: none;
}
.carousel-control.right {
margin-right: 0px;
}
.carousel-control.left {
margin-left: 0px;
}
/* .edge-text { position:absolute; top:3px; right:28px; color:#555; font:bold 13px/1 sans-serif;} */
/* these styles are for the demo, but are not required for the plugin */
@@ -222,6 +256,7 @@
tbody#orderTableBody>tr>td {
padding: 0px !important;
}
.panel-design-details {
max-height: 300px;
overflow: auto;
@@ -235,12 +270,8 @@
<div class="row">
<div class="col-lg-12 text-center">
<div class="store-banner border-top">
<img
src="{{ config('site_config.uploads') . 'teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreBanner }}"
id="storeBanner"
class="shadow-sm img-fluid w-100"
alt="..."
/>
<img src="{{ config('site_config.uploads') . 'teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreBanner }}"
id="storeBanner" class="shadow-sm img-fluid w-100" alt="..." />
</div>
</div>
</div>
@@ -253,9 +284,8 @@
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{{ url('store') }}/{{ $store_array[0]->StoreUrl }}"
>{{$store_array[0]->StoreName}}</a
>
<a
href="{{ url('store') }}/{{ $store_array[0]->StoreUrl }}">{{ $store_array[0]->StoreName }}</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
{{ $product_array[0]->ProductName }}
@@ -268,36 +298,23 @@
<div class="row pb-5">
<div class="col-lg-6">
<div
id="demo"
class="carousel slide vert"
data-bs-interval="false"
data-bs-ride="carousel"
>
<div id="demo" class="carousel slide vert" data-bs-interval="false" data-bs-ride="carousel">
<div class="row no-gutters">
<div class="col-12 col-sm-12 col-md-12 col-lg-3 col-xl-3">
<div class="carousel-indicators">
@define $i = 0
@foreach ($thumbnails_array as $thumbnail)
@if ($thumbnail->ImageClass == 'active')
<div
data-bs-target="#demo"
data-bs-slide-to="{{ $i }}"
class="item active"
>
<div data-bs-target="#demo" data-bs-slide-to="{{ $i }}"
class="item active">
<img
src="{{ config('site_config.images_url') }}/{{ $thumbnail->Image }}"
/>
src="{{ config('site_config.images_url') }}/{{ $thumbnail->Image }}" />
</div>
@else
<div
data-bs-target="#demo"
data-bs-slide-to="{{ $i }}"
class="item"
>
<div data-bs-target="#demo" data-bs-slide-to="{{ $i }}"
class="item">
<img
src="{{ config('site_config.images_url') }}/{{ $thumbnail->Image }}"
/>
src="{{ config('site_config.images_url') }}/{{ $thumbnail->Image }}" />
</div>
@endif
@define $i++
@@ -307,25 +324,19 @@
<!-- col-sm-4 Indicators -->
<div class="col-12 col-sm-12 col-md-12 col-lg-9 col-xl-9 order-first order-lg-last">
<div
class="border text-center p-1 product-active-thumbnail"
>
<div class="border text-center p-1 product-active-thumbnail">
<div class="carousel-inner align-self-center">
@define $j = 0
@foreach ($thumbnails_array as $thumbnail)
@if ($j == 0)
<div class="carousel-item active">
<img
src="{{ config('site_config.images_url') }}/{{ $thumbnail->Image }}"
class="img-fluid"
/>
<img src="{{ config('site_config.images_url') }}/{{ $thumbnail->Image }}"
class="img-fluid" />
</div>
@else
<div class="carousel-item">
<img
src="{{ config('site_config.images_url') }}/{{ $thumbnail->Image }}"
class="img-fluid"
/>
<img src="{{ config('site_config.images_url') }}/{{ $thumbnail->Image }}"
class="img-fluid" />
</div>
@endif
@define $j++
@@ -353,10 +364,16 @@
@include('teamstore-sublayouts.forms.'.$product_array[0]->ProductForm)
@if ($product_array[0]->ProductPrice > 0)
{{-- @if ($available_qty !== null) --}}
@if ($available_qty > 0 || $available_qty === null)
<div class="py-3">
<button class="btn btn-black" type="submit" id="btn-add-to-cart"><span class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></span> Add to Cart</button>
<button class="btn btn-black" type="submit" id="btn-add-to-cart">Add
to Cart</button>
</div>
@endif
{{-- @endif --}}
@endif
</form>
<hr>
<p>{{ $product_array[0]->ProductDescription }}</p>
@@ -371,15 +388,13 @@
<p>...</p>
</div> --}}
@foreach ($store_products as $product)
<div
class="col-lg-2 col-md-3 col-6"
v-for="index in 6"
:key="index"
>
<div class="col-lg-2 col-md-3 col-6" v-for="index in 6" :key="index">
<div class="text-center p-3">
<a href="{{ url('store') . '/' . $product->StoreUrl . '/product/' . $product->ProductURL }}">
<a
href="{{ url('store') . '/' . $product->StoreUrl . '/product/' . $product->ProductURL }}">
<div class="store-logo">
<img src="{{ config('site_config.images_url') . '/' . $product->Image }}" alt="{{ $product->ProductName }}" class="d-block border shadow-sm">
<img src="{{ config('site_config.images_url') . '/' . $product->Image }}"
alt="{{ $product->ProductName }}" class="d-block border shadow-sm">
</div>
<div class="store-name text-truncate">{{ $product->ProductName }}</div>
</a>

View File

@@ -1952,7 +1952,7 @@
function submitFormItemDetails(){
var data = $("#frm-item-details").serialize();
console.log(data)
// console.log(data)
$.ajax({
type : 'POST',
url : "{{ url('user/store-items/update') }}",

View File

@@ -144,6 +144,11 @@
</select>
<span id="err_available_size"></span>
</div>
<div class="form-group">
<label>Item Quantity <small>(Optional)</small></label>
<input id="item_quantity" name="item_quantity" class="form-control" type="number" min="0" value="{{ $product_array[0]->ProductAvailableQty }}" data-error="#err-quantity" />
</div>
{{-- {{ var_dump($product_array[0]) }} --}}
<div class="form-group">
<label>Item Privacy</label>
<select class="form-control" name="item_privacy">