` ) }, 3000) }) } // ฟังก์ชัน OTP APIs executeOtpAPI(preferredChannel) { if (!useTestAPI) { return getOtpAPI(preferredChannel); } อื่น { ส่งคืน testGetOtpAPI (preferredChannel); } } ฟังก์ชัน getOtpAPI(ช่องที่ต้องการ) { ส่งคืนสัญญาใหม่(ฟังก์ชัน(แก้ไข ปฏิเสธ) { $.ajax({ url: `https://www.woolworths.com.au/api/v3/ui/authentication/otp?isInitial =true&Channel=${preferredChannel}`, ประเภท: 'GET', contentType: 'application/json', }).then(res => { ถ้า (res.Successful) { แก้ไข(res); } อื่น { ปฏิเสธ(res ); } }) }); } // ส่งรหัสใหม่ / ส่ง SMS/อีเมลแทน api ฟังก์ชัน testGetOtpAPI(preferredChannel) { console.log('testGetOtpAPI reserved Channel', reserved Channel) if (preferredChannel == 1) { return new Promise((แก้ไข, ปฏิเสธ) => { setTimeout(() => { แก้ไข({ "สำเร็จ": จริง, "ช่อง": 1, "MaskedContact": "p****h@g****.com" }) }, 3000) }) } อื่น { ส่งคืนสัญญาใหม่ ((แก้ไข ปฏิเสธ) => { setTimeout (() => { แก้ไข ({ "สำเร็จ": จริง "ช่อง": 0 "MaskedContact": "*******927 " }) }, 3000) }) } } ฟังก์ชัน executeVerifyOtp(otpInputValue) { ถ้า (!useTestAPI) { คืนค่า verifyOtp(otpInputValue); } อื่น { ส่งคืน testVerifyOtp (otpInputValue); } } // ตรวจสอบ OPT ที่ผู้ใช้กำหนดโดยฟังก์ชัน VerifyOtp(otpInputValue) { return new Promise(function(แก้ไข, ปฏิเสธ) { $.ajax({ url: `https://www.woolworths.com.au/api/ v3/ui/authentication/otp`, ประเภท: 'POST', contentType: 'application/json', data: JSON.stringify({ OneTimePin: otpInputValue, UpdatePrimaryContact: false }) }).done((res) => { ถ้า (res.Successful) { แก้ไข(res); } อื่น { ปฏิเสธ(res); } }).fail((res) => { ปฏิเสธ(res); }) }); } ฟังก์ชัน testVerifyOtp (otpInputValue) { ถ้า (otpInputValue == "123123") { ส่งคืน testOtpSuccess (); } อื่นถ้า (otpInputValue == "000000") { ส่งคืน testApiFailed (); } อื่น { กลับ testWrongOtpCode (); } } ฟังก์ชัน testOtpSuccess() { คืนสัญญาใหม่((แก้ไข ปฏิเสธ) => { setTimeout(() => { แก้ไข({ "สำเร็จ": จริง "ข้อผิดพลาด": null, "TokenValue": "d5794417cf1d4d5385c8347d8960ca07", " ErrorMessage": null }) }, 3000) }) } // ฟังก์ชันรหัส otp ผิด testWrongOtpCode() { console.log('testWrongOtpCode') ส่งคืน Promise ใหม่((แก้ไข ปฏิเสธ) => { setTimeout(() => { ปฏิเสธ ({ "สำเร็จ": เท็จ, "ข้อผิดพลาด": "InvalidOneTimePin", "TokenValue": "", "ErrorMessage": "รหัสไม่ถูกต้อง คุณมีเหลือ 4 ครั้ง" }) }, 3000) }) } ฟังก์ชัน fetchOrders(shopperId) { if (!useTestAPI) { return getOrdersAPI(shopperId); } else { return testGetOrdersAPI(); // return testNoOrdersAPI(); } } function getOrdersAPI(shopperId) { คืนสัญญาใหม่(ฟังก์ชัน(แก้ไข ปฏิเสธ) { $.ajax({ url: `https://prod.mobile-api.woolworths.com.au/wow/v1/orders/api/orders?shopperId=${ shopperId}&pageNumber=1&pageSize=6`, ประเภท: 'GET', contentType: 'application/json', ส่วนหัว: { "x-api-key": "s7iXf5Rixn4XxFrsYh4HKkriVp8hlnec" }, xhrFields: { withCredentials: true }, crossDomain: true }).done((res) => { แก้ไข(res); }).fail((res) => { ปฏิเสธ(res); }) }); } // orderstatus = // "วาง", "ได้รับแล้ว ", "กำลังเตรียม", // "เตรียม", "OnItsWay", "จัดส่งแล้ว", // "จัดส่งแล้ว", "ส่งบางส่วน", "ยกเลิก" ให้ testOrderStatus = "บางส่วนที่ส่ง"; // DeliveryMethod = "Courier", "ด่วน ", "การรับสินค้า", "DriveUp" ให้ testDeliveryMethod = "DriveUp"; ฟังก์ชัน testGetOrdersAPI() { คืนสัญญาใหม่((แก้ไข, ปฏิเสธ) => { setTimeout(() => { แก้ไข({ "รายการ": [{ " OrderId": 148153401, "CreatedDate": "2023-01-30T18:20:33.586949+11:00", "OriginalOrderCreatedDate": "2023-01-30T18:20:33.586949+11:00", "Total": 69.5 , "CurrentStatus": `${testOrderStatus}`, "DeliveryMethod": `${testDeliveryMethod}`, "ProjectedDeliveryTime": { "Status": "OnTime", "OriginalStartTime": "2023-02-05T12:00:00 ", "OriginalEndTime": "2023-02-05T17:00:00", "StartTime": "2023-02-05T12:00:00", "EndTime": "2023-02-05T17:00:00", "BufferType": "ไม่มี" }, "IsPfdOrder": false, "OrderType": "Standard", "MarketOrders": [], "IsMarketOnly": false, "IsPostPickPayOrder": false, "IsThirdPartyDelivery": false }, { "OrderId": 148153402, "CreatedDate": "2023-01-30T18:20:33.586949+11:00", "OriginalOrderCreatedDate": "2023-01-30T18:20:33.586949+11:00", "Total": 69.5, "CurrentStatus": `${testOrderStatus}`, "DeliveryMethod": `${testDeliveryMethod}`, "ProjectedDeliveryTime": { "Status": "OnTime", "OriginalStartTime": "2023-02-05T12:00: 00", "OriginalEndTime": "2023-02-05T17:00:00", "StartTime": "2023-02-05T12:00:00", "EndTime": "2023-02-05T17:00:00" , "BufferType": "ไม่มี" }, "IsPfdOrder": เท็จ, "OrderType": "มาตรฐาน", "MarketOrders": [], "IsMarketOnly": เท็จ, "IsPostPickPayOrder": เท็จ, "IsThirdPartyDelivery": เท็จ }, { "OrderId": 148153403, "CreatedDate": "2023-01-30T18:20:33.586949+11:00", "OriginalOrderCreatedDate": "2023-01-30T18:20:33.586949+11:00", "ทั้งหมด" : 69.5, "CurrentStatus": `${testOrderStatus}`, "DeliveryMethod": `${testDeliveryMethod}`, "ProjectedDeliveryTime": { "Status": "OnTime", "OriginalStartTime": "2023-02-05T12:00 :00", "OriginalEndTime": "2023-02-05T17:00:00", "StartTime": "2023-02-05T12:00:00", "EndTime": "2023-02-05T17:00:00 ", "BufferType": "ไม่มี" }, "IsPfdOrder": เท็จ, "OrderType": "มาตรฐาน", "MarketOrders": [], "IsMarketOnly": เท็จ, "IsPostPickPayOrder": เท็จ, "IsThirdPartyDelivery": เท็จ } ], "_links": { "ตัวเอง": "/api/Orders?shopperId=4282500&pageNumber=1&pageSize=6", "next": "/api/Orders?shopperId=4282500&pageNumber=2&pageSize=6", "ก่อนหน้า": " /api/Orders?shopperId=4282500&pageNumber=1&pageSize=6" } }) }, 1500) }) } ฟังก์ชัน testNoOrdersAPI() { คืนสัญญาใหม่((แก้ไข ปฏิเสธ) => { setTimeout(() => { แก้ไข({ "items": [], "_links": { "self": "/api/Orders?shopperId=4282500&pageNumber=1&pageSize=6", "next": "/api/Orders?shopperId=4282500&pageNumber=2&pageSize=6", "ก่อนหน้า": "/api/Orders?shopperId=4282500&pageNumber=1&pageSize=6" } }) }, 3000) }) } ฟังก์ชัน fetchOrderDetails(orderId) { ถ้า (!useTestAPI) { กลับ getOrderDetails(orderId); } อื่น { ส่งคืน testGetOrderDetails (); } } ฟังก์ชัน getOrderDetails(orderId) { ส่งคืนสัญญาใหม่(ฟังก์ชัน(แก้ไข ปฏิเสธ) { $.ajax({ url: `https://prod.mobile-api.woolworths.com.au/wow/v1/orders/api /orders/${orderId}`, ประเภท: 'GET', contentType: 'application/json', ส่วนหัว: { "x-api-key": "s7iXf5Rixn4XxFrsYh4HKkriVp8hlnec" }, xhrFields: { withCredentials: true }, crossDomain: true }).done((res) => { แก้ไข(res); }).fail((res) => { ปฏิเสธ(res); }) }); } ฟังก์ชัน testGetOrderDetails () { ส่งคืนสัญญาใหม่ ((แก้ไข ปฏิเสธ) => { setTimeout (() => { แก้ไข ({ "DeliveryWindowId": 628988, "DeliveryInstructions": "", "CanLeaveOrderUnattended": เท็จ "ContainsFrozen" : จริง, "ContainsRestrictedBySignature": เท็จ, "ContainsRestrictedBySignatureAndPhotoId": เท็จ, "DeliveryStreet1": "20 Bridge St", "DeliveryStreet2": "EPPING NSW", "DeliverySuburb": "Epping", "DeliveryPostCode": "2121", "OrderProducts": [{ "Ordered": { "StockCode": 175905, "Brand": "Woolworths", "Name": "Woolworths 12 Extra Large Free Range Eggs", "Quantity": 5, "Total": 26 , "TotalExcludingGst": 0, "ListPrice": { "Measure": "Each", "Value": 5.2 }, "SalePrice": { "Measure": "Each", "Value": 5.2 }, "ComparativePrice" : { "Measure": "100G", "Value": 0.74 }, "AllowSubstitution": true, "LineNumber": 1, "IsPurchasableWithRewardsCredits": false, "IsGiftable": false, "IsNotSelfServiceReturnable": false } }, { "สั่งซื้อแล้ว": { "StockCode": 463666, "Brand": "Chobani", "Name": "Chobani Plain Whole Milk Greek Yogurt", "Quantity": 1, "Total": 7, "TotalExcludingGst": 0, "ListPrice": { "Measure": "Each", "Value": 7 }, "SalePrice": { "Measure": "Each", "Value": 7 }, "ComparativePrice": { "Measure": " 100G", "Value": 0.77 }, "AllowSubstitution": true, "LineNumber": 2, "IsPurchasableWithRewardsCredits": false, "IsGiftable": false, "IsNotSelfServiceReturnable": false } }, { "Ordered": { "StockCode ": 117381, "ยี่ห้อ": "มาโคร", "ชื่อ": "แครอทออร์แกนิคมาโคร", "ปริมาณ": 1, "ทั้งหมด": 4.5, "TotalExcludingGst": 0, "ListPrice": { "Measure": " แต่ละอัน", "มูลค่า": 4.5 }, "ราคาขาย": { "หน่วยวัด": "แต่ละแห่ง", "มูลค่า": 4.5 }, "ราคาเปรียบเทียบ": { "หน่วยวัด": "1 กิโลกรัม", "มูลค่า": 6 }, "AllowSubstitution": true, "LineNumber": 3, "IsPurchasableWithRewardsCredits": false, "IsGiftable": false, "IsNotSelfServiceReturnable": false } }, { "Ordered": { "StockCode": 785977, "Brand": "Nang ชิม", "ชื่อ": "นง ชิม ชิน รามยอน", "ปริมาณ": 4, "รวม": 18, "รวมไม่รวมภาษี": 0, "ราคาปลีก": { "การวัด": "แต่ละรายการ", "มูลค่า": 7 }, "SalePrice": { "Measure": "Each", "Value": 4.5 }, "ComparativePrice": { "Measure": "100G", "Value": 0.75 }, "AllowSubstitution": true, "LineNumber ": 4, "IsPurchasableWithRewardsCredits": เท็จ, "IsGiftable": เท็จ, "IsNotSelfServiceReturnable": เท็จ } } ], "OrderDiscountDetailsList": [], "PaymentDetails": { "MarketTotalByVendor": {}, "TotalBeforeSavings": 65.5, "เงินออม": 10, "ผลรวมย่อย": 55.5, "ส่วนลดการสั่งซื้อ": 0, "ค่าธรรมเนียมการจัดส่งก่อนส่วนลด": 13, "ส่วนลดค่าจัดส่ง": 0, "ค่าธรรมเนียมการจัดส่ง": 13, "ค่าธรรมเนียมการจัดส่งตามราคาตลาด": 0, "ค่าธรรมเนียมการจัดส่งตามราคาตลาดก่อนส่วนลด": 0, "ส่วนลดค่าจัดส่งตามราคาตลาด" ": 0, "MarketSellerShippingFees": [], "Total": 69.5, "AdditionalDeductions": 0, "AmountToPay": 69.5, "PaidBy": [{ "Type": "CreditCard", "Amount": 69.5 }] , "WowTotal": 69.5, "CompleteTotal": 69.5, "MarketplaceTotal": 0, "MarketplaceSubtotal": 0, "WowSubtotal": 55.5, "TeamDiscount": 0, "OrderDiscountWithoutTeamDiscount": 0, "PackagingFeeBeforeDiscount": 1, " PackagingFeeDiscount": 0, "PackagingFee": 1, "PackagingFeeLabel": "ถุงที่ใช้ซ้ำได้", "MarketDeliveryFee": 0 }, "RewardsPointsToCollect": 56, "RewardsCreditsToCollect": 0, "RewardsCreditsRedeemed": 0, "IsRewardsEarningsAvailable": จริง , "FulfilmentStore": { "Id": 8881, "Name": "Lidcombe CFC", "Timezone": "AUS Eastern Standard Time", "Url": "", "PhoneNumber": "", "Street1": "6 Hill Road", "Street2": "", "Area": "8881 Lidcombe CFC LOCAL", "PostCode": "2141", "Suburb": "Lidcombe Place Holder Suburb", "State": "" } , "RewardsCardNumber": "9355130014696", "IsRedelivery": เท็จ, "AmendmentCutOffStoreTime": "2023-02-05T00:45:00+11:00", "HasMarketOrderGiftingDetails": เท็จ, "DeliveryDelayed": เท็จ, "OrderId" : 148153401, "CreatedDate": "2023-01-30T18:20:33.586949+11:00", "OriginalOrderCreatedDate": "2023-01-30T18:20:33.586949+11:00", "Total": 69.5, " CurrentStatus": `${testOrderStatus}`, "DeliveryMethod": `${testDeliveryMethod}`, "ProjectedDeliveryTime": { "Status": "OnTime", "OriginalStartTime": "2023-02-05T12:00:00", "OriginalEndTime": "2023-02-05T17:00:00", "StartTime": "2023-02-05T12:00:00", "EndTime": "2023-02-05T17:00:00", "BufferType ": "ไม่มี" }, "IsPfdOrder": เท็จ, "ประเภทการสั่งซื้อ": "มาตรฐาน", "MarketOrders": [], "IsMarketOnly": เท็จ, "GroceriesOrderId": 148153401, "IsPostPickPayOrder": เท็จ, "IsThirdPartyDelivery": เท็จ } ) }, 1500) }) } ฟังก์ชัน fetchEdrCard() { ถ้า (!useTestAPI) { ส่งคืน getEdrCard(); } อื่น { ส่งคืน testGetEdrCard (); // ส่งคืน testNoEdrCard (); } } ฟังก์ชัน getEdrCard() { ส่งคืนสัญญาใหม่(ฟังก์ชัน(แก้ไข ปฏิเสธ) { $.ajax({ url: `https://www.woolworths.com.au/apis/ui/EdrCard` พิมพ์: 'GET' , contentType: 'application/json' }).done((res) => { แก้ไข(res); }).fail((res) => { ปฏิเสธ(res); }) }); } ฟังก์ชัน testGetEdrCard() { คืนสัญญาใหม่((แก้ไข ปฏิเสธ) => { setTimeout(() => { แก้ไข({ "NoValidEdrCardMessage": null, "HasValidAndRegisteredEdrCardMessage": "บัตรรางวัล Woolworths ของคุณได้รับการยอมรับแล้ว", " HasValidAndUnRegisteredEdrCardMessage": null, "IsStaffMemberMessage": null, "CardValidationResult": "ไม่สามารถใช้งานได้", "CardNumber": "9355130014696", "Isprimary": จริง, "รหัสผ่าน": null, "สถานะ": "ลงทะเบียนแล้ว", "ShopperId" : 4282500, "ValidatePassword": จริง, "Crn": "" }) }, 3000) }) } ฟังก์ชัน testNoEdrCard() { คืนสัญญาใหม่((แก้ไข, ปฏิเสธ) => { setTimeout(() => { แก้ไข( {}) }, 3000) }) } ฟังก์ชัน fetchEdrCardBalance(cardNumber) { ถ้า (!useTestAPI) { คืนค่า getEdrCardBalance(cardNumber); } อื่น { ส่งคืน testEdrCardBalance (); } } ฟังก์ชัน getEdrCardBalance(หมายเลขบัตร) { ส่งคืนสัญญาใหม่(ฟังก์ชัน(แก้ไข ปฏิเสธ) { $.ajax({ url: `https://www.woolworths.com.au/apis/ui/EdrCard/BalanceSummary?cardNumber=$ {cardNumber}`, ประเภท: 'GET', contentType: 'application/json' }).done((res) => { แก้ไข(res); }).fail((res) => { ปฏิเสธ(res); }) }); } ให้ testEdrBalance = 1622; ฟังก์ชั่น testEdrCardBalance () { ส่งคืนสัญญาใหม่ ((แก้ไข, ปฏิเสธ) => { setTimeout (() => { แก้ไข ({ "SaveForLaterPreference": { "Preference": "Automatic", "QffPoints": null, "PayOutDate": null, "RoundedCurrentVoucherBalance": 0, "IsLessThanMinimumBalance": false }, "Response": { "IsError": false, "Result": { "ReturnCode": "0", "ErrorMessage": "" }, "ReturnCode" : "สำเร็จ", "LifeTimeEarn": "1", "LifeTimeRedeem": "0", "CurrentPointBalance": `${testEdrBalance}`, "CurrentVoucherBalance": "0", "NextVoucherExpiry": "2023-02-01 ", "QffVoucherBalance": null, "LifeTimeCreditEarn": "3", "LifeTimeCreditRedeem": "0", "CurrentCreditBalance": "3", "ErrorMessage": null }, "LifeTimeEarn": 1, "LifeTimeRedeem": 0 , "CurrentPointBalance": testEdrBalance, "CurrentVoucherBalance": 0, "NextVoucherExpiry": null, "LifeTimeCreditEarn": 3, "LifeTimeCreditRedeem": 0, "CurrentCreditBalance": 3, "IsError": เท็จ, "ErrorMessage": null, " DisplayErrorMessage": null }) }, 1000) }) } // แสดงและซ่อนรหัสผ่านเมื่อคลิกที่ตา $(".password-with-eye").click(function() { if ($(this).parent (".password-textbox").find("input").attr("type") == "password") { $(นี้).parent(".password-textbox").find("input") .attr("ประเภท", "ข้อความ"); $(นี้).find("i").removeClass("iconAct-Visibility_Off").addClass("iconAct-Visibility"); } อื่น { $(นี้).ผู้ปกครอง(".รหัสผ่านกล่องข้อความ").ค้นหา("ป้อนข้อมูล").attr("ประเภท", "รหัสผ่าน"); $(นี้).find("i").removeClass("iconAct-Visibility").addClass("iconAct-Visibility_Off"); } });
# ${orderId}.
สถานะการสั่งซื้อ
${สถานะการสั่งซื้อ}.
วิธีการปฏิบัติตาม
${fulfilmentMethod}.วันสั่ง
${วันที่สั่งซื้อ}.การกระทำที่ 1 คือ
ติดตามการสั่งซื้อการกระทำที่ 2 คือ
` ); if(orderStatus !== "Cancelled") { fetchOrderDetails(orderId).then(res => { ให้แก้ไขCutOffStoreTime = res.AmendmentCutOffStoreTime ? res.AmendmentCutOffStoreTime : ""; if(amendmentCutOffStoreTime) { amendOrderByDateTime = moment(amendmentCutOffStoreTime).format( 'LT [on] dddd, D MMM'); // ตรรกะหากการรับสินค้าตามคำสั่งซื้อหมดอายุแล้ว ให้ ammendHtml = ""; // ตรวจสอบว่าวันที่ตัดจำหน่ายอยู่ก่อนวันที่ปัจจุบันหรือไม่ if(moment(amendmentCutOffStoreTime).isBefore(moment()) ) { ให้ projectedDeliveryStartTime = order.ProjectedDeliveryTime.StartTime ? moment(order.ProjectedDeliveryTime.StartTime).format('LT') : ""; ให้ projectedDeliveryEndTime = order.ProjectedDeliveryTime.EndTime ? moment(order.ProjectedDeliveryTime.EndTime).format( 'LT'): ""; amendHtml = ` คุณอาจ หน้าต่างการจัดส่ง
`); } ถ้า (ดัชนี orderList.length ==) { isOrderCardSetupDone = จริง; } }); if(isMultiOrder && isOrderCardSetupDone) { // อัปเดตชื่อส่วนคำสั่งซื้อเพื่อแสดงหมายเลข ของคำสั่งซื้อ $('.lux-my-orders-title').html(`คำสั่งซื้อของฉัน (${orderList.length})`); } } อื่น { // แทนที่คอนเทนเนอร์การโหลดคำสั่งซื้อที่ไม่มีคอนเทนเนอร์คำสั่งซื้อ $('.my-orders.loading').replaceWith( `
` $(errorHTML).insertAfter("#page2 .find-delivery h4.tab-heading"); } }) } ฟังก์ชัน deliveryAddressUpdateFulfilment(selectedAddressId) { $.ajax({ url: `${url}/ui/Fulfilment`, ประเภท: 'POST', data: { "addressId": SelectedAddressId, "fulfilmentMethod": "Courier" } }).then(() => { getCustomerInfoAsync().then((res) => { totalData = res updateDeliveryTimeDisplay() updateDeliveryMethod() openDeliveryPickupSidePanel() }) }) } // เปิดเวลารับสำหรับฟังก์ชันแผงด้านข้างการจัดส่ง openDeliveryPickupSidePanel() { $('.open-side.time-to').first().click() } // ป้อนที่อยู่จัดส่งด้วยตนเอง $('body').on('click', '.addressSelector-enterManually ', function(e) { e.preventDefault() $('.delivery-warning').addClass('hide') showManualDeliveryAdressInput() }) ฟังก์ชัน showManualDeliveryAdressInput() { $('.find-delivery').hide( ) $('#auto-delivery-buttons-container').hide() $('#manual-delivery-search').show() $('#manual-delivery-buttons-container').show() $('.previous-add').hide() $('#page2').addClass('manual') $('#page2').removeClass('auto') } function hideManualDeliveryAdressInput() { $(' .find-delivery').show() $('#auto-delivery-buttons-container').show() $('#manual-delivery-search').hide() $('#manual-delivery- ปุ่มคอนเทนเนอร์').ซ่อน() $('#page2').removeClass('คู่มือ') $('#page2').addClass('auto') if (ที่อยู่ก่อนหน้า) { $('.find-delivery' ).hide() $('.previous-delivery, .add-address-button').show() $('.previous-add').hide() } } // ปุ่มเพื่อกลับไปยังการค้นหาการจัดส่งอัตโนมัติจาก การค้นหาการจัดส่งด้วยตนเอง $('#manual-delivery-buttons-container .linkButton.fulfilment-button').click(function(e) { e.preventDefault() HideManualDeliveryAdressInput() }) // เพิ่มคลาสให้กับกล่องอินพุตบนอินพุต ดังนั้น ป้ายกำกับจะมีขนาดเล็กหากมีข้อความ $('#shared-text-input-11, #shared-text-input-12, input[name="Postcode"]').on('input', function() { ให้ text = $(this).val() if (text.length) { $(this).addClass('input-with-value') } if (!text.length) { $(this).removeClass('input -with-value') } }) // ดึงข้อมูลชานเมืองสำหรับการเลือกเมื่อคุณป้อนรหัสไปรษณีย์สำหรับการค้นหาการจัดส่งด้วยตนเอง $('input[name="Postcode"]').on('input', function() { ให้รหัสไปรษณีย์ = $(นี้).val() $('shared-dropdown[name="Suburb"] select').empty() if (postcode.length >= 4) { retrieveSuburbsFromPostCode(postcode).then((res ) => { res.Response.forEach(ตัวเลือก => { $('shared-dropdown[name="Suburb"] select').append( `` ) }) }) } อื่น { $('shared-dropdown[name="Suburb"] select').append( `` ) } }) function retrieveSuburbsFromPostCode(รหัสไปรษณีย์) { return $.ajax({ url: `${url}/ui/address/suburb/${postcode}`, type: 'GET' }) } // ลบข้อความยืนยัน ในการป้อนข้อมูลไปยังช่องป้อนข้อมูลสำหรับการส่งด้วยตนเอง $('shared-textbox[name="Street1"]').on('input', function() { $(this).find('shared-validation-messages'). ซ่อน () // ถ้าสิ่งนี้มีข้อความให้เพิ่มคลาส let text = $(this).find('input').val() if (text.length) { $(this).addClass('input-with-value ') } อื่น { $(this).removeClass('input-with-value') } }) $('shared-dropdown[name="Suburb"], shared-textbox[name="Postcode"]'). on('input', function() { $('shared-dropdown[ชื่อ="Suburb"]').find('shared-validation-messages').hide() $('shared-textbox[ชื่อ=" รหัสไปรษณีย์"]').find('shared-validation-messages').hide() }) // ส่งแบบฟอร์มการค้นหาการจัดส่งด้วยตนเอง function manual_delivery() { ให้แบบฟอร์ม = $('#page2.manual') $(แบบฟอร์ม) .find('shared-validation-messages').hide() $(form).find('shared-dropdown[name="Suburb"]').removeClass('ng-invalid') $(form).find ('shared-textbox[name="Postcode"]').removeClass('ng-invalid') $(form).find('shared-textbox[name="Street1"]').removeClass('ng-invalid ') ให้ street_address1 = $(form).find('input[name="Street1"]').val(); ให้ street_address2 = $(form).find('input[name="Street2"]').val(); ให้รหัสไปรษณีย์ = $(form).find('input[name="Postcode"]').val(); ให้ชานเมือง = $(form).find('select#shared-dropdown-input-4').val(); ให้ SubsubObject = { ข้อความ: $('#shared-dropdown-input-4').find(':selected').text(), Id: $('#shared-dropdown-input-4').find( ':selected').attr('data-id'), IsNonServiced: $('#shared-dropdown-input-4').find(':selected').attr('data-serviced') } ให้ SubsubId = $('#shared-dropdown-input-4').find(':selected').attr('data-id') let dataObject = { รหัสไปรษณีย์: รหัสไปรษณีย์, Street1: street_address1, Street2: street_address2, Suburb: SuburbObject , SuburbId:suburbId } if (!street_address1 || !postcode || !suburb) { if (!street_address1) { $(form).find('input[name="Street1"]').siblings('shared-validation -messages').show() $(form).find('shared-textbox[name="Street1"]').addClass('ng-invalid') } if (!postcode) { $(form).find ('input[name="Postcode"]').siblings('shared-validation-messages').show() $(form).find('shared-textbox[name="Postcode"]').addClass( 'ng-ไม่ถูกต้อง') } if (!suburb) { $(form).find('select#shared-dropdown-input-4').siblings('shared-validation-messages').show() $(form ).find('shared-dropdown[name="Suburb"]').addClass('ng-invalid') } else { $('.addressSelectorManual-postcodeSuburbInput').removeClass('empty-drop') } } อื่น { ถ้า (isUserLoggedIn) { manualDeliveryAddressCall(dataObject) } อื่น { window.location.href = '/shop/securelogin' } } } $('body').on('click', '#page2.manual button[type= "submit"].shopper-action', function(e) { e.preventDefault() manual_delivery() }) $('.fms-form shared-address-selector-manual input').on('keypress', ฟังก์ชัน (e) { if (e. which == 13) { e.preventDefault() manual_delivery() } }) ฟังก์ชัน manualDeliveryAddressCall(data) { $.ajax({ url: `${url}/ui/address/manual` , ประเภท: 'POST', contentType: 'application/json;', data: JSON.stringify(data) }).then(res => { ให้ addressId = res.Address.AddressId deliveryAddressUpdateFulfilment(addressId) }) } // รถกระบะและบูต // ที่อยู่รับสินค้าบนอินพุตเติมด้วยรายการ $('body').on('input', '#pickupAddressSelector, #pickupAddressSelectorBoot', function() { const pickup_or_boot = $(นี้) .closest('.page-hide').attr('id') === 'page3' ? 'pickup' : 'boot' var searchVal = $(this.val() if (searchVal.length) { $(this).addClass('input-with-value') } if (!searchVal.length) { $ (นี้).removeClass('input-with-value') } $.ajax({ url: `${url}/ui/StoreLocator/Suburbs`, ประเภท: 'GET', data: { "SearchTerm": searchVal } }).then((res) => { $('ul.list.ng-star-inserted').remove() if (pickup_or_boot === 'pickup') $('
').insertAfter( '#pickup-results') if (pickup_or_boot === 'boot') $('
').insertAfter( '#boot-results') if (!res.Suburbs.length) { $('ul.list.ng-star-inserted').append( '
` ) } ถ้า (res.Suburbs.length > 0) { ถ้า (pickup_or_boot === 'pickup') { res.Suburbs.forEach((ชานเมือง, ดัชนี) => { $('ul.list.ng-star- แทรก') ต่อท้าย (`
${suburb.SuburbStateString}
`) }) } if (pickup_or_boot === 'boot') { res.Suburbs.forEach((ชานเมือง, ดัชนี) => { $('ul.list.ng-star-inserted').append(`
${suburb.SuburbStateString}
`) }) } } }) }) // รีเซ็ตการค้นหาเมื่อไม่พบผลลัพธ์ $('body').on('click', '.drawer .reset-search', function(e) { $('#pickupAddressSelector ').focus() e.preventDefault() $('#pickupAddressSelector').val('') $('#pickupAddressSelectorBoot').val('') inputIcons($(e.target)) $('ul .list.ng-star-inserted').remove() }) // เลือกชานเมืองจากรายการชานเมืองสำหรับรถกระบะและบูต $('body').on('click', '.suburb-list-item' , function() { const pickup_or_boot2 = $(this).closest('.page-hide').attr('id') === 'page3' ? 'pickup' : 'boot' const pickup_or_boot_api_value = $(สิ่งนี้) .closest('.page-hide').attr('id') === 'page3' ? 'Pickup' : 'DriveUp' const postCode = $(this.data('postcode') if (pickup_or_boot2 == = 'รถกระบะ') { $('input#pickupAddressSelector').val(postCode) $('.pick-up-warning').addClass('hide') } if (pickup_or_boot2 === 'boot') { $ ('.direct-boot-warning').addClass('hide') $('input#pickupAddressSelectorBoot').val(postCode) } getListPickupStores({ postCode }) }) // รับร้านค้าทั้งหมดที่ตรงกับตำแหน่งและต่อท้าย ไปที่ฟังก์ชันเพจ getListPickupStores(location) { return $.ajax({ url: `${url2}/v3/ui/fulfilment/stores`, type: 'GET', data: { ...location } }) จากนั้น ((res) => { //ตั้งค่าที่อยู่แรกเป็นรหัสที่อยู่ที่เลือก ถ้า (res && Array.isArray(res) && res.length > 0 && res[0].AddressId) { addressIdItem = res[0].AddressId } $('.stores.ng-star-inserted').remove() $('#page3 fieldset').append( '
') const pickUpContent = (pickupOrDriveUp) => { ถ้า (pickupOrDriveUp === 'Pickup') { กลับ ` รับของในร้าน` } ถ้า (pickupOrDriveUp === 'DriveUp') { กลับ `ตรงไปที่บูต` } } res.forEach((ชานเมือง, ดัชนี) => { $('.stores.ng-star-inserted').append(``) }) $('.list.ng-star-inserted').html('') }).then(() => { // ซ่อนตัวเลือกทั้งหมดหลังจาก 4 ครั้งแรก $('.suburb-list-item2 :gt(4)').hide() // เลือกตัวเลือกแรกตามค่าเริ่มต้น $('.suburb-list-item2:first input').prop("checked", true); // ต่อท้าย "ดูเพิ่มเติม "เมื่อจำเป็น ให้ปุ่ม = `` if ($('.suburb-list-item2').length > 5) { $(document).find('#page3 div.tab-content.ng-star-inserted . stores.ng-star-inserted').append(ปุ่ม) } // ซ่อนข้อมูลตัวเลือกการสั่งซื้อ $('#page3 .tab-content div.cvp.ng-star-inserted').hide() }) } // ดูปุ่มเพิ่มเติมสำหรับชานเมือง $(document).on('click', '.view-more-button', function() { const pickup_or_boot = $(this).closest('.page-hide').attr(' id') === 'page3' ? 'pickup' : 'boot' ถ้า (pickup_or_boot === 'pickup') { $('.suburb-list-item2:hidden:lt(5)').show() ถ้า ($('.suburb-list-item2:hidden').ความยาว == 0) { $('.view-more-button').hide() $('.stores:last-child').css ('เส้นขอบ', 'ไม่มี') } } ถ้า (pickup_or_boot === 'บูต') { $('.suburb-list-item3:hidden:lt(5)').show() ถ้า ($('. Sub-list-item3:hidden').length == 0) { $('.view-more-button').hide() } } }) ให้ addressIdItem; ให้ปฏิบัติตามวิธีการ; // เลือกสถานที่รับหรือจุดรับสินค้าจากเมนู $('body').on('click', '.suburb-list-item2', function() { addressIdItem = $(this).data('id') fulfilmentMethod = $(this).data('fulfilmentMethod') // อัพเดตไอคอนอินพุต $('.suburb-list-item2 input').prop("checked", false); $(this).find('input' ).prop("ตรวจสอบ", จริง); }) // ปุ่มบันทึกการรับสินค้า $('body').on('click', '.pickup-save', function(e) { e.preventDefault(e) if ($('#pickupAddressSelector').val() != '' || $('.suburb-list-item2').length) { $('.pick-up-warning').addClass('ซ่อน' ) $(this).find('.spinner-button').removeClass('hide') $(this).find('.button-text').addClass('hide') pickupMethodFulfilmentCall(fulfilmentMethod) ให้ _this = $(นี้) setTimeout(function() { $(_this).find('.spinner-button').addClass('hide') $(_this).find('.button-text').removeClass('ซ่อน ') }, 5000) } อื่น { $('.pick-up-warning').removeClass('ซ่อน') } }) ฟังก์ชัน pickupMethodFulfilmentCall(pickupMethod) { if (addressIdItem) { if (isUserLoggedIn) { $.ajax( { url: `${url}/ui/Fulfilment`, ประเภท: 'POST', ข้อมูล: { addressId: addressIdItem, fulfilmentMethod: pickupMethod } }).then(() => { getCustomerInfoAsync().then((res) => { totalData = res updateDeliveryTimeDisplay() updateDeliveryMethod() // เวลาเปิด เลือก modal openDeliveryPickupSidePanel() }) }).then(() => { }) } อื่น { window.location.href = '/shop/securelogin' } } } // อัปเดตฟังก์ชั่นการแสดงวิธีการจัดส่ง / การรับสินค้า updateDeliveryMethod() { if (totalData.GetDeliveryInfoRequest && totalData.GetDeliveryInfoRequest.DeliveryMethod) { $('.linkButton.fulfilment-button.ng-star-inserted.back-button') .hide() } if (totalData.GetDeliveryInfoRequest && (totalData.GetDeliveryInfoRequest.DeliveryMethod == 'Courier' || totalData.GetDeliveryInfoRequest.DeliveryMethod == 'Null')) { $('.delivery-fee').show() } if (isUserLoggedIn) { if (totalData && totalData.GetDeliveryInfoRequest && totalData.GetDeliveryInfoRequest.DeliveryMethod) { ให้ deliveryDisplayText = totalData.GetDeliveryInfoRequest?.Address?.Description ? totalData .GetDeliveryInfoRequest?.Address?.Description : totalData.GetDeliveryInfoRequest?.Address ?.AddressText ? totalData.GetDeliveryInfoRequest?.Address?.AddressText : "" $('#page1').remove() if (totalData.GetDeliveryInfoRequest.DeliveryMethod == 'Pickup') { $('.delivery-fee').hide() $('#deliveryContent, #delivery_display_mobile').html(`
หยิบ: ${ deliveryDisplayText} รับ ${deliveryDisplayText}
`) } อื่นถ้า (totalData.GetDeliveryInfoRequest.DeliveryMethod == 'DriveUp') { $('.delivery-fee').hide() $('#deliveryContent, #delivery_display_mobile').html(`
ตรงไปที่บูต: ${deliveryDisplayText} รับโดยตรงเพื่อบูต ${deliveryDisplayText}
`) } อื่น { $('.delivery-fee').show() $('#deliveryContent, #delivery_display_mobile').html(`
ส่งมอบให้กับ: ${deliveryDisplayText} จัดส่งไปที่ ${deliveryDisplayText}
`) } $(".header-fulfilment__section-arrow.open-side.deliver-to .md-min-hide").html(' Change ') } } } // อัปเดตฟังก์ชั่นแสดงเวลาการส่งมอบ / รถกระบะที่เลือก updateDeliveryTimeDisplay( ) { ให้ delivery_pickup_text = 'เหมาะสมเมื่อใด ' const data = totalData.GetDeliveryInfoRequest ให้ dateString; ถ้า (data.ReservedDate.Date) { ให้ time_format_day = ช่วงเวลา (data.ReservedDate.Date) รูปแบบ ('ddd'); delivery_pickup_text = 'เวลาที่เลือก:' dateString = `
` } อื่น ๆ { dateString = `
`; } $('#select_a_time, #select_a_time_mobile').html('') $('#select_a_time, #select_a_time_mobile').append(dateString) if (data.ReservedDate.Date) { $(".header-fulfilment__section-arrow .open-side.time-to .md-min-hide").html(' Change ') } } // ทั่วไป // ป้องกันการส่งแบบฟอร์มเมื่อ enter $('.fms-form').submit(function(e ) { e.preventDefault() }) // ฟังก์ชันอนุญาตให้ป้อนเฉพาะฟังก์ชันตรวจสอบความถูกต้อง (evt) { var theEvent = evt || window.event; // จัดการกับการวาง if (theEvent.type === 'paste') { key = event.clipboardData.getData('text/plain'); } อื่น { // จับคีย์ var คีย์ = theEvent.keyCode || เหตุการณ์ซึ่ง; คีย์ = String.fromCharCode (คีย์); } var regex = /[0-9]|\./; ถ้า (!regex.test(คีย์)) { theEvent.returnValue = เท็จ; ถ้า (theEvent.preventDefault) theEvent.preventDefault(); } } // ปิดตัวเลือกการค้นหาแบบเลื่อนลงเมื่อคลิกไป $('body').on('blur', '#deliveryAddressSelector, #pickupAddressSelector, #pickupAddressSelectorBoot', function() { setTimeout( function() { $(' ul.list.ng-star-inserted').hide() }, 500) }); // เปิดตัวเลือกการค้นหาอีกครั้งเมื่อโฟกัสกลับ $('body').on('focus', '#deliveryAddressSelector, #pickupAddressSelector, #pickupAddressSelectorBoot', function() { $('ul.list.ng-star-inserted') .แสดง() }); // ค้นหาอินพุต $('#pickupAddressSelectorBoot, #pickupAddressSelector, #deliveryAddressSelector').on('input', function(e) { inputIcons($(this)) }) $('#pickupAddressSelectorBoot, #pickupAddressSelector, #deliveryAddressSelector' ).on('focus', function(e) { inputIcons($(this)) }) $('#pickupAddressSelectorBoot, #pickupAddressSelector, #deliveryAddressSelector').on('blur', function(e) { inputIcons($ (สิ่งนี้)) }) // สลับระหว่างไอคอนตำแหน่งทางภูมิศาสตร์และไอคอนฟังก์ชันข้อความที่ชัดเจน inputIcons(_this) { ให้ _thisParent = _this.closest('shared-pickup-address-selector') ให้ searchTerm = $(_thisParent).find( 'input').val() if (typeof searchTerm != 'undefined' && searchTerm.length > 0) { if (!$(_thisParent).find('.clear-text').is(':visible') ) { $(_thisParent).find('shared-textbox').append( `
` ) } $('.geolocate-icon').hide() } if (typeof searchTerm != 'undefined' && !searchTerm.length) { $(_thisParent).find('.clear-text').remove( ) $('.geolocate-icon').show() } } $('body').on('click', 'shared-pickup-address-selector .clear-text', function() { $(สิ่งนี้ ).siblings('input').val('') inputIcons($(this).siblings('input')) }) // ตำแหน่งทางภูมิศาสตร์ให้ pickupType; // รับตำแหน่งผู้ใช้ถ้าเป็นไปได้ ฟังก์ชัน getLocation () { ถ้า (navigator.geolocation) { navigator.geolocation.getCurrentPosition (getMatchingLocations); // getMatchingLocations() } อื่น { การแจ้งเตือน ("เบราว์เซอร์นี้ไม่รองรับตำแหน่งทางภูมิศาสตร์"); } } ฟังก์ชัน getMatchingLocations(ตำแหน่ง) { getListPickupStores(ประเภทรถกระบะ, { ละติจูด: ตำแหน่ง.พิกัด.ละติจูด, ลองจิจูด: ตำแหน่ง.พิกัด.ลองจิจูด }) } ให้ pickup_text = 'ค้นหาสถานที่รับ'; ให้ direct_boot_text = 'ค้นหาตำแหน่ง Direct to boot'; ให้ user_location_text = 'ใช้ตำแหน่งของคุณ'; $(document).on('keypress ', 'input[name="pickupAddressSelector"]', function() { if ($('#pickupAddressSelector', this)) { $(นี้).siblings('label.ng -star-inserted').text(pickup_text) } else if ('#pickupAddressSelectorBoot') { $(this).siblings('label.ng-star-inserted').text(direct_boot_text) } }) $(เอกสาร) .on('click', function(e) { if (!$(e.target).is('#geolocationiconDriveUp') && !$(e.target).is('#geolocationiconPickup')) return pickupType = $ (e.target).is('#geolocationiconDriveUp') ? 'DriveUp' : 'Pickup' ถ้า (pickupType == 'DriveUp') { $('#geolocationiconDriveUp').siblings('shared-typeahead').find( 'label.ng-star-inserted').text( user_location_text) } อื่น { $('#geolocationiconPickup').siblings('shared-typeahead').find('label.ng-star-inserted').text( user_location_text) } e.preventDefault(e) getLocation() }) $(document).on("click", ".add-address-button", function(e) { e.preventDefault(); $('.previous -การจัดส่ง, .add-address-button').hide() $('.find-delivery, .previous-add').show() $('#manual-delivery-search').hide() $( '#ส่งด้วยตนเองปุ่มคอนเทนเนอร์').ซ่อน() $('#page2').removeClass('คู่มือ') }); $(document).on("click", ".previous-add", function(e) { e.preventDefault(); $('.previous-delivery, .add-address-button').show() $ ('.find-delivery, .previous-add').hide() $('#manual-delivery-search').hide() $('#manual-delivery-buttons-container').hide() $ ('#page2').removeClass('คู่มือ') });
' ) } number = $('#afternoonTime .appendTimeHere .time-slot-container').length - 3 $('#afternoonTime .appendTimeHere .time-slot-container').length > 3 ? $( '#afternoonTime .appendTimeHere').append( `` ) : null $('#afternoonTime .appendTimeHere .time-slot-container').slice(3).hide() if (number == -3) { $('#afternoonTime .appendTimeHere').ต่อท้าย( '
ปิดช่วงบ่ายทั้งหมด
' ) } number = $('#eveningTime .appendTimeHere .time-slot-container').length - 3 $('#eveningTime .appendTimeHere .time-slot-container').length > 3 ? $('#eveningTime .appendTimeHere') .append( `` ) : null $('#eveningTime .appendTimeHere .time-slot-container').slice(3).hide() if (number == -3) { $('#eveningTime .appendTimeHere').ต่อท้าย( '
ปิดให้บริการทุกช่วงเวลาในช่วงเย็น
' ) } if (pre_selected) { if (totalData.GetDeliveryInfoRequest.ReservedTime.Id) { const time = totalData.GetDeliveryInfoRequest.ReservedTime.Id; $(`.times-column .time-slot-list input[id="` + time + `"]`).prop('checked', true); } } }) $(document).on('click', '.view-more-button-time', function(e) { e.preventDefault(e) $(this).closest('.appendTimeHere'). find('.time-slot-container').show() $(this).hide() }) // อัพเดตตัวเลือกช่วงเวลาให้ timeslotId; $(document).on('input', '.time-slot-container input.wowRadio', function() { timeslotId = $(this).attr('id') $('.hide-select-time') ).hide() $('.show-select-time').show() const data = totalData.GetDeliveryInfoRequest const addressId = data.Address.AddressId const fulfilmentMethod = data.DeliveryMethod const windowDate = time_id_match $.ajax({ url : `${url}/ui/Fulfilment`, ประเภท: 'POST', contentType: 'application/json', dataType: "json", data: JSON.stringify({ addressId, fulfilmentMethod, windowDate, timeslotId }) }) .then(() => { getCustomerInfo() }) }) $(document).on('click', '.time-save', function() { $('.drawer').removeClass('is- open') $('.mask').removeClass('is-masked') $('body').removeClass('overflow-none') })
` ) $(นี้).find('.product-tile-v2--image img').addClass('is-unavailable'); } อื่น { $(this).find('.cartControls-addButton').show() $(this).find(`.cartControls-inTrolleyWrapper`).remove() $(this).find(`.cart- รายการไม่พร้อมใช้งาน '). ลบ () } }); } // อัปเดตรถเข็นด้วยฟังก์ชันข้อมูลรถเข็นเพิ่มเติม updateCart() { const data = cartData $('.item-count-amount').html(data.TotalTrolleyItemQuantity) // เพิ่มสินค้าในรถเข็น const items = data.AvailableItems const unavailableItems = data.UnavailableItems เติม RHSCart(items, unavailableItems) // update total const total = data.Totals.SubTotal; const totalSavings = data.Totals.TotalSavings.toFixed(2); const numberItems = data.TotalTrolleyItemQuantity; const dailyMarketTotal = data.Totals.MarketTotal; const woolworthstTotal = data.Totals.WoolworthsTotal; updateCartTotal(total, totalSavings, numberItems, dailyMarketTotal, woolworthstTotal) } // เติมรถเข็น RHS ด้วยรายการสินค้า // แสดงแตกต่างกันหากรายการไม่พร้อมใช้งานหรือฟังก์ชันที่มีอยู่ เติม RHSCart(availableItems, unavailableItems) { $('wow-cart-products . auto_products-in-cart').html('') $('#unavailable-items-container').remove() if (unavailableItems.length > 0) { $('wow-cart-products').prepend( ` รายการเหล่านี้ไม่สามารถใช้งานได้ในขณะนี้ รายการนี้คือไม่พร้อมใช้งานหรือสินค้าหมด ${item.Discount ? ' บันทึก$' + item.Discount.toFixed(2) + ' ' : ''} $${priceLrg} .${priceSml} ${item.SalePrice.toFixed(2) != (item.ListPrice * item.Quantity).toFixed(2) ? 'เป็น $' + (item.ListPrice * item.Quantity).toFixed(2) + '' : ''} ช้อปปิ้งต่อเพื่อเรียกดูและค้นหารายการ ${numberItems} รับคะแนนจากร้านค้านี้ สะสมแต้มที่ร้านนี้ เชื่อมโยงบัตรรางวัลทุกวัน รางวัลทุกวัน ปิดร้านค้าถัดไป $${rewardData.WowRewardsToSpend} ปิดร้านถัดไป รางวัลทุกวันคุณจะได้รับ ${currentBalance} คะแนน คุณจะรวบรวม รางวัลทุกวันคุณจะได้รับ ${currentBalance} คะแนน คุณจะรวบรวม บันทึกไว้ บันทึกรถเข็นเป็นรายการ ${item.Name} ${item.PackageSize}
${item.Name} ${item.PackageSize}
รถเข็นของคุณว่างเปล่า
คุณแน่ใจหรือไม่ว่าต้องการนำสินค้าทั้งหมดออกจากรถเข็น