Compare commits

...

2 Commits

Author SHA1 Message Date
MarkHipe 00b4ca7a61 Merge pull request 'checkout_page_updates' (#33) from jun-branch into main
Reviewed-on: #33
2024-03-07 10:19:56 +08:00
Jun Barroga 2e505256f6 checkout_page_updates 2024-03-07 10:18:12 +08:00
5 changed files with 1085 additions and 34 deletions

View File

@ -690,7 +690,6 @@ function popupAddToCart(product, productVendor, token, email, password, customer
Unit Price: <span>${response.items[0].price}</span>
</span>
<span id="subtotal-${response._id}" class="subtotal-${response._id}">Subtotal: ${totalAmount}</span>
// raymart feb 26 2024
<div class="qty-plus-minuses" style="display:flex; overflow:visible; align-items:center; padding-top:10px;">
<div class="qty-btn" style="color:#ffaa00; font-size:35px; padding-right:5px; cursor: pointer;" onclick="qtyDecrement('${response._id}', '${response.items[0]._id}', true)">-</div>
<input style="width:100px; height:40px" id="qty-input-${response.items[0]._id}" class="qty-input" type="number" name="ec_qtybtn" value="${productData.quantity}" oninput="handleQtyInput(this, '${response._id}', '${response.items[0]._id}', true)"/>

View File

@ -556,7 +556,16 @@ if (isset($customer_data[0]["address"]) && is_array($customer_data[0]["address"]
});
</script>
<span class="ec-check-order-btn">
<a class="btn btn-primary" id="submitButton">Place Order</a>
<?php
if (empty($cartItems)) {
echo '<!-- $cartItems is empty, "Place Order" button will not be displayed -->';
} else {
echo '
<span class="ec-check-order-btn">
<a class="btn btn-primary" id="submitButton">Place Order</a>
</span>';
}
?>
</span>
</div>
</div>
@ -1017,23 +1026,57 @@ if (isset($customer_data[0]["address"]) && is_array($customer_data[0]["address"]
const randomIndex = Math.floor(Math.random() * refchar.length);
uniqueRef += refchar.charAt(randomIndex);
}
const selectedFName = document.getElementById('selectedFName').innerText;
const selectedLName = document.getElementById('selectedLName').innerText;
const selectedContact = document.getElementById('selectedContact').innerText;
const sBuilding = document.getElementById('sBuilding').innerText;
const sStreet = document.getElementById('sStreet').innerText;
const sCity = document.getElementById('sCity').innerText;
const sBarangay = document.getElementById('sBarangay').innerText;
const sProvince = document.getElementById('sProvince').innerText;
const sCountry = document.getElementById('sCountry').innerText;
if (
selectedFName.trim() === "" ||
selectedLName.trim() === "" ||
selectedContact.trim() === "" ||
sBuilding.trim() === "" ||
sStreet.trim() === "" ||
sCity.trim() === "" ||
sBarangay.trim() === "" ||
sProvince.trim() === "" ||
sCountry.trim() === ""
) {
alert("Please select address.");
return; // Stop further execution
}
newArray.forEach(async (orderId) => {
console.log(orderId)
const token = '<?php echo $_SESSION["token"] ?>';
const shippingfee = parseFloat(orderId.shipping_fee)
const orderProductId = orderId.items[0].product.product_id;
const productResponse = await fetch(`https://<?php echo $_SESSION["data_endpoint"]; ?>/api/v1/products/${orderProductId}`);
const productData = await productResponse.json();
let freeShippingCod = false;
if (productData.promo && productData.promo.length > 0 && productData.promo[0]['free-shipping'] === 'Yes') {
freeShippingCod = true;
}
const shippingFees = freeShippingCod ? 0 : shippingfee;
const patchResponse = await fetch(`https://<?php echo $_SESSION["data_endpoint"]; ?>/api/v1/orders/${orderId._id}`, {
method: "PATCH",
body: JSON.stringify({
shipping_address: {
shipping_first_name: document.getElementById('selectedFName').innerText,
shipping_last_name: document.getElementById('selectedLName').innerText,
shipping_phone: document.getElementById('selectedContact').innerText,
shipping_address_1: document.getElementById('sBuilding').innerText,
shipping_address_2: document.getElementById('sStreet').innerText,
shipping_city: document.getElementById('sCity').innerText,
shipping_barangay: document.getElementById('sBarangay').innerText,
shipping_state: document.getElementById('sProvince').innerText,
shipping_country: document.getElementById('sCountry').innerText,
shipping_first_name: selectedFName,
shipping_last_name: selectedLName,
shipping_phone: selectedContact,
shipping_address_1: sBuilding,
shipping_address_2: sStreet,
shipping_city: sCity,
shipping_barangay: sBarangay,
shipping_state: sProvince,
shipping_country: sCountry,
},
billing_address: {
billing_first_name: billingFName,
@ -1050,7 +1093,7 @@ if (isset($customer_data[0]["address"]) && is_array($customer_data[0]["address"]
status: "UNPAID",
reference_number: uniqueRef,
},
total_amount: parseFloat(orderId.total_amount) + shippingfee,
total_amount: parseFloat(orderId.total_amount) + shippingFees,
status: "TO PAY",
order_date: iso8601String,
payment_method: "Cash On Delivery",

File diff suppressed because it is too large Load Diff

View File

@ -307,6 +307,8 @@ if (!empty($_GET['minPrice']) || !empty($_GET['maxPrice']) || !empty($_GET['cate
for ($x = $startIndex; $x <= $endIndex; $x++) {
$product = $filteredProducts[$x]['product'];
$productWithoutSpecs = $product;
unset($productWithoutSpecs['specifications']);
$vendorOfProduct = getVendorbyId($product['vendor_api_id']);
// $product_image = !empty($product["product_image"]) ? $product["product_image"] : "https://upload.wikimedia.org/wikipedia/commons/thumb/6/65/No-Image-Placeholder.svg/330px-No-Image-Placeholder.svg.png";
$sale_price = isset($product['sale_price']) ? $product['sale_price'] : null;
@ -338,8 +340,8 @@ if (!empty($_GET['minPrice']) || !empty($_GET['maxPrice']) || !empty($_GET['cate
<img class="hover-image" src="<?php echo $product_image ?>" alt="Product" />
</a> -->
<div class="ec-pro-actions">
<button title="Add To Cart" onclick="popupAddToCart(`<?php echo htmlspecialchars(json_encode($forAll[$pid]), ENT_QUOTES, 'UTF-8'); ?>`,`<?php echo htmlspecialchars($vendorOfProduct, ENT_QUOTES, 'UTF-8'); ?>`, `<?php echo isset($_SESSION['token']) ? $_SESSION['token'] : ''; ?>` , `<?php echo isset($_SESSION['email']) ? $_SESSION['email'] : ''; ?>` , `<?php echo isset($_SESSION['password']) ? $_SESSION['password'] : ''; ?>` , `<?php echo htmlspecialchars(json_encode($customer_data), ENT_QUOTES, 'UTF-8'); ?>`);" class="add-to-cart"><i class="fi-rr-shopping-basket"></i> Add To Cart</button>
<a class="ec-btn-group wishlist" title="Wishlist" onclick="popupWishlist('<?php echo htmlspecialchars(json_encode($forAll[$pid]), ENT_QUOTES, 'UTF-8'); ?>', '<?php echo htmlspecialchars(json_encode($customer_data), ENT_QUOTES, 'UTF-8'); ?>');"><i class="fi-rr-heart"></i></a>
<button title="Add To Cart" onclick="popupAddToCart(`<?php echo htmlspecialchars(json_encode($productWithoutSpecs), ENT_QUOTES, 'UTF-8'); ?>`,`<?php echo htmlspecialchars($vendorOfProduct, ENT_QUOTES, 'UTF-8'); ?>`, `<?php echo isset($_SESSION['token']) ? $_SESSION['token'] : ''; ?>` , `<?php echo isset($_SESSION['email']) ? $_SESSION['email'] : ''; ?>` , `<?php echo isset($_SESSION['password']) ? $_SESSION['password'] : ''; ?>` , `<?php echo htmlspecialchars(json_encode($customer_data), ENT_QUOTES, 'UTF-8'); ?>`);" class="add-to-cart"><i class="fi-rr-shopping-basket"></i> Add To Cart</button>
<a class="ec-btn-group wishlist" title="Wishlist" onclick="popupWishlist('<?php echo htmlspecialchars(json_encode($productWithoutSpecs), ENT_QUOTES, 'UTF-8'); ?>', '<?php echo htmlspecialchars(json_encode($customer_data), ENT_QUOTES, 'UTF-8'); ?>');"><i class="fi-rr-heart"></i></a>
</div>
</div>
</div>

View File

@ -363,7 +363,9 @@ if ($_SESSION["userId"] <> "") {
<?php
if ($order['return_order']['status'] === 'To Approve') {
echo '<span class="tbl-btn">Refund Requested</span>';
} else {
} elseif ($order['return_order']['status'] === 'To Ship') {
echo '<span class="tbl-btn">For Refund</span>';
}else {
echo '<a class="btn btn-lg btn-primary" data-bs-toggle="modal" data-bs-target="#modal-refund-' . $order['_id'] . '">Return/Refund</a>';
}
?>
@ -383,7 +385,6 @@ if ($_SESSION["userId"] <> "") {
<i class="mdi mdi-close"></i>
</button>
</div>
<div class="modal-body pt-0">
<form enctype="multipart/form-data" method="POST">
<div class="form-group">
@ -406,9 +407,9 @@ if ($_SESSION["userId"] <> "") {
</form>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font/css/materialdesignicons.min.css">
<script>
var sessionToken = '<?php echo isset($_SESSION["token"]) ? $_SESSION["token"] : ""; ?>';
var email = '<?php echo isset($_SESSION["email"]) ? $_SESSION["email"] : ""; ?>';
var password = '<?php echo isset($_SESSION["password"]) ? $_SESSION["password"] : ""; ?>';
var sessionToken = `<?php echo isset($_SESSION["token"]) ? $_SESSION["token"] : ""; ?>`;
var email = `<?php echo isset($_SESSION["email"]) ? $_SESSION["email"] : ""; ?>`;
var password = `<?php echo isset($_SESSION["password"]) ? $_SESSION["password"] : ""; ?>`;
function login(username, password, callback) {
fetch("https://<?php echo $_SESSION["data_endpoint"]; ?>/api/v1/login", {
@ -476,16 +477,19 @@ if ($_SESSION["userId"] <> "") {
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('submit-button-<?php echo $order['_id']; ?>').addEventListener('click', function(event) {
login(email, password, function(token) {
event.preventDefault();
// Get the order ID and reason
var orderId = '<?php echo $order['_id']; ?>';
event.preventDefault();
var orderId = '<?php echo $order['_id']; ?>';
var reason = document.getElementById('reason-' + orderId).value;
console.log('Order ID:', orderId);
console.log('Reason:', reason);
login(email, password, function(sessionToken) {
// Get the order ID and reason
// Upload image
var fileInput = document.getElementById('image-' + orderId);
@ -519,15 +523,7 @@ if ($_SESSION["userId"] <> "") {
.then(data => {
console.log('Upload response:', data);
const filename = data.filename;
// Update the order with the returned filename and other details
// var imageUrl = 'https://api.obanana.shop/images/storage/vendor_uploads/' + data.filename;
// var orderUpdate = {
// return_order: {
// reason: reason,
// image: imageUrl,
// status: 'To Approve',
// },
// };
const payload = {
return_order: {
reason: reason,
@ -540,7 +536,7 @@ if ($_SESSION["userId"] <> "") {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token,
'Authorization': 'Bearer ' + sessionToken,
},
body: JSON.stringify(payload),
})