` ) }, 3000) }) } // OTP API's functioneren executeOtpAPI(preferredChannel) { if (!useTestAPI) { return getOtpAPI(preferredChannel); } anders { return testGetOtpAPI(preferredChannel); } } functie getOtpAPI(preferredChannel) { return new Promise(functie(oplossen, afwijzen) { $.ajax({ url: `https://www.woolworths.com.au/api/v3/ui/authentication/otp?isInitial =true&Channel=${preferredChannel}`, type: 'GET', contentType: 'application/json', }).then(res => { if (res.Successful) { solve(res); } else { afwijzen(res ); } }) }); } // stuur nieuwe code / stuur in plaats daarvan sms/e-mail api-functie testGetOtpAPI(preferredChannel) { console.log('testGetOtpAPI preferentChannel', preferentChannel) if (preferredChannel == 1) { return new Promise((resolve, weiger) => { setTimeout(() => {solving({ "Succesvol": true, "Kanaal": 1, "MaskedContact": "p****h@g****.com" }) }, 3000) }) } else { return new Promise((oplossen, afwijzen) => { setTimeout(() => { solve({ "Succesvol": waar, "Kanaal": 0, "MaskedContact": "*******927 " }) }, 3000) }) } } functie executeVerifyOtp(otpInputValue) { if (!useTestAPI) { return verificatieOtp(otpInputValue); } anders { return testVerifyOtp(otpInputValue); } } // Controleer de OPT geleverd door de gebruikersfunctie verificatieOtp(otpInputValue) { return new Promise(function(resolve, weiger) { $.ajax({ url: `https://www.woolworths.com.au/api/ v3/ui/authentication/otp`, type: 'POST', contentType: 'application/json', data: JSON.stringify({ OneTimePin: otpInputValue, UpdatePrimaryContact: false }) }).done((res) => { if (res.Succesvol) { oplossing(res); } else { afwijzing(res); } }).fail((res) => { afwijzing(res); }) }); } functie testVerifyOtp(otpInputValue) { if (otpInputValue == "123123") { return testOtpSuccess(); } else if (otpInputValue == "000000") { return testApiFailed(); } anders { return testWrongOtpCode(); } } function testOtpSuccess() { return new Promise((oplossen, afwijzen) => { setTimeout(() => {solving({ "Succesvol": true, "Error": null, "TokenValue": "d5794417cf1d4d5385c8347d8960ca07", " ErrorMessage": null }) }, 3000) }) } // verkeerde otp-codefunctie testWrongOtpCode() { console.log('testWrongOtpCode') return new Promise((oplossen, weigeren) => { setTimeout(() => { weigeren({ "Successful": false, "Error": "InvalidOneTimePin", "TokenValue": "", "ErrorMessage": "Onjuiste code. U heeftNog 4 poging(en) over." }) }, 3000) }) } function fetchOrders(shopperId) { if (!useTestAPI) { return getOrdersAPI(shopperId); } else { return testGetOrdersAPI(); // return testNoOrdersAPI(); } } function getOrdersAPI(shopperId) { return new Promise(function(resolve, afwijzen) { $.ajax({ url: `https://prod.mobile-api.woolworths.com.au/wow/v1/orders/api/orders?shopperId=${ shopperId}&pageNumber=1&pageSize=6`, type: 'GET', contentType: 'application/json', headers: { "x-api-key": "s7iXf5Rixn4XxFrsYh4HKkriVp8hlnec" }, xhrFields: { withCredentials: true }, crossDomain: true }).done((res) => { solve(res); }).fail((res) => { afwijzen(res); }) }); } // orderstatus = // "Geplaatst", "Ontvangen ", "Bezig met voorbereiden", // "Voorbereid", "OnItsWay", "Bezorgd", // "Verzonden", "Gedeeltelijk verzonden", "Geannuleerd" let testOrderStatus = "Gedeeltelijk verzonden"; // DeliveryMethod = "Koerier", "Express ", "Pickup", "DriveUp" let testDeliveryMethod = "DriveUp"; function testGetOrdersAPI() { return new Promise((oplossen, afwijzen) => { setTimeout(() => { solve({ "items": [{ " OrderId": 148153401, "CreatedDate": "2023-01-30T18:20:33.586949+11:00", "OriginalOrderCreatedDate": "2023-01-30T18:20:33.586949+11:00", "Totaal": 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": "None" }, "IsPfdOrder": false, "OrderType": "Standaard", "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", "Totaal": 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": "Geen" }, "IsPfdOrder": false, "OrderType": "Standaard", "MarketOrders": [], "IsMarketOnly": false, "IsPostPickPayOrder": false, "IsThirdPartyDelivery": false }, { "OrderId": 148153403, "CreatedDate": "2023-01-30T18:20:33.586949+11:00", "OriginalOrderCreatedDate": "2023-01-30T18:20:33.586949+11:00", "Totaal" : 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": "Geen" }, "IsPfdOrder": false, "OrderType": "Standaard", "MarketOrders": [], "IsMarketOnly": false, "IsPostPickPayOrder": false, "IsThirdPartyDelivery": false } ], "_links": { "self": "/api/Orders?shopperId=4282500&pageNumber=1&pageSize=6", "next": "/api/Orders?shopperId=4282500&pageNumber=2&pageSize=6", "previous": " /api/Orders?shopperId=4282500&pageNumber=1&pageSize=6" } }) }, 1500) }) } functie testNoOrdersAPI() { return new Promise((oplossen, afwijzen) => { setTimeout(() => { oplossen({ "items": [], "_links": { "self": "/api/Orders?shopperId=4282500&pageNumber=1&pageSize=6", "next": "/api/Orders?shopperId=4282500&pageNumber=2&pageSize=6", "previous": "/api/Orders?shopperId=4282500&pageNumber=1&pageSize=6" } }) }, 3000) }) } function fetchOrderDetails(orderId) { if (!useTestAPI) { return getOrderDetails(orderId); } anders { return testGetOrderDetails(); } } function getOrderDetails(orderId) { return new Promise(function(oplossen, afwijzen) { $.ajax({ url: `https://prod.mobile-api.woolworths.com.au/wow/v1/orders/api /orders/${orderId}`, type: 'GET', contentType: 'application/json', headers: { "x-api-key": "s7iXf5Rixn4XxFrsYh4HKkriVp8hlnec" }, xhrFields: { withCredentials: true }, crossDomain: true }).done((res) => { oplossen(res); }).fail((res) => { afwijzen(res); }) }); } function testGetOrderDetails() { return new Promise((oplossen, afwijzen) => { setTimeout(() => {solving({ "DeliveryWindowId": 628988, "DeliveryInstructions": "", "CanLeaveOrderUnattended": false, "ContainsFrozen" : true, "ContainsRestrictedBySignature": false, "ContainsRestrictedBySignatureAndPhotoId": false, "DeliveryStreet1": "20 Bridge St", "DeliveryStreet2": "EPPING NSW", "DeliverySuburb": "Epping", "DeliveryPostCode": "2121", "OrderProducts": [{ "Besteld": { "StockCode": 175905, "Brand": "Woolworths", "Name": "Woolworths 12 extra grote scharreleieren", "Aantal": 5, "Totaal": 26 , "TotalExcludeGst": 0, "ListPrice": { "Meting": "Elk", "Waarde": 5,2 }, "SalePrice": { "Meting": "Elk", "Waarde": 5,2 }, "ComparativePrice" : { "Meting": "100G", "Waarde": 0,74 }, "AllowSubstitution": true, "LineNumber": 1, "IsPurchasableWithRewardsCredits": false, "IsGiftable": false, "IsNotSelfServiceReturnable": false } }, { "Besteld": { "StockCode": 463666, "Merk": "Chobani", "Naam": "Chobani Volle Melk Griekse Yoghurt", "Aantal": 1, "Totaal": 7, "TotaalExclusiefGst": 0, "ListPrice": { "Meting": "Elk", "Waarde": 7 }, "SalePrice": { "Meting": "Elk", "Waarde": 7 }, "ComparativePrice": { "Meting": " 100G", "Value": 0,77 }, "AllowSubstitution": true, "LineNumber": 2, "IsPurchasableWithRewardsCredits": false, "IsGiftable": false, "IsNotSelfServiceReturnable": false } }, { "Ordered": { "StockCode ": 117381, "Merk": "Macro", "Naam": "Macro Biologische Wortelen", "Aantal": 1, "Totaal": 4,5, "TotaalExclusiefGst": 0, "ListPrice": { "Measure": " Per stuk", "Waarde": 4,5 }, "SalePrice": { "Meetwaarde": "Elk", "Waarde": 4,5 }, "ComparativePrice": { "Meetwaarde": "1KG", "Waarde": 6 }, "AllowSubstitution": true, "LineNumber": 3, "IsPurchasableWithRewardsCredits": false, "IsGiftable": false, "IsNotSelfServiceReturnable": false } }, { "Ordered": { "StockCode": 785977, "Brand": "Nong Shim", "Name": "Nong Shim Shin Ramyun", "Aantal": 4, "Totaal": 18, "TotaalExclusiefGst": 0, "ListPrice": { "Meetwaarde": "Elk", "Waarde": 7 }, "SalePrice": { "Meting": "Elk", "Waarde": 4,5 }, "ComparativePrice": { "Meting": "100G", "Waarde": 0,75 }, "AllowSubstitution": true, "LineNumber ": 4, "IsPurchasableWithRewardsCredits": false, "IsGiftable": false, "IsNotSelfServiceReturnable": false } } ], "OrderDiscountDetailsList": [], "PaymentDetails": { "MarketTotalByVendor": {}, "TotalBeforeSavings": 65.5, "Besparingen": 10, "Subtotaal": 55,5, "OrderDiscount": 0, "DeliveryFeeBeforeDiscount": 13, "DeliveryFeeDiscount": 0, "DeliveryFee": 13, "MarketShippingFee": 0, "MarketShippingFeeBeforeDiscount": 0, "MarketShippingFeeDiscount ": 0, "MarketSellerShippingFees": [], "Totaal": 69,5, "AdditionalDeductions": 0, "AmountToPay": 69,5, "PaidBy": [{ "Type": "CreditCard", "Bedrag": 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": "Herbruikbare tassen", "MarketDeliveryFee": 0 }, "RewardsPointsToCollect": 56, "RewardsCreditsToCollect": 0, "RewardsCreditsRedeemed": 0, "IsRewardsEarningsAvailable": true , "FulfilmentStore": { "Id": 8881, "Name": "Lidcombe CFC", "Timezone": "AUS Eastern Standard Time", "Url": "", "PhoneNumber": "", "Street1": "6 Hill Road", "Street2": "", "Gebied": "8881 Lidcombe CFC LOCAL", "PostCode": "2141", "Suburb": "Lidcombe Place Holder Suburb", "State": "" } , "RewardsCardNumber": "9355130014696", "IsRedelivery": false, "AmendmentCutOffStoreTime": "2023-02-05T00:45:00+11:00", "HasMarketOrderGiftingDetails": false, "DeliveryDelayed": false, "OrderId" : 148153401, "CreatedDate": "2023-01-30T18:20:33.586949+11:00", "OriginalOrderCreatedDate": "2023-01-30T18:20:33.586949+11:00", "Totaal": 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 ": "None" }, "IsPfdOrder": false, "OrderType": "Standaard", "MarketOrders": [], "IsMarketOnly": false, "GroceriesOrderId": 148153401, "IsPostPickPayOrder": false, "IsThirdPartyDelivery": false } ) }, 1500) }) } function fetchEdrCard() { if (!useTestAPI) { return getEdrCard(); } anders { return testGetEdrCard(); // retourneer testNoEdrCard(); } } function getEdrCard() { return new Promise(function(oplossen, afwijzen) { $.ajax({ url: `https://www.woolworths.com.au/apis/ui/EdrCard`, type: 'GET' , contentType: 'application/json' }).done((res) => {resolut(res); }).fail((res) => { afwijzen(res); }) }); } function testGetEdrCard() { return new Promise((resolve, weiger) => { setTimeout(() => {solving({ "NoValidEdrCardMessage": null, "HasValidAndRegisteredEdrCardMessage": "Uw Woolworths Rewards-kaarten zijn geaccepteerd.", " HasValidAndUnRegisteredEdrCardMessage": null, "IsStaffMemberMessage": null, "CardValidationResult": "NotApplicable", "CardNumber": "9355130014696", "Isprimary": true, "Password": null, "Status": "Geregistreerd", "ShopperId" : 4282500, "ValidatePassword": true, "Crn": "" }) }, 3000) }) } functie testNoEdrCard() { return new Promise((oplossen, weigeren) => { setTimeout(() => {resolve( {}) }, 3000) }) } function fetchEdrCardBalance(cardNumber) { if (!useTestAPI) { return getEdrCardBalance(cardNumber); } anders { return testEdrCardBalance(); } } function getEdrCardBalance(cardNumber) { return new Promise(function(oplossen, afwijzen) { $.ajax({ url: `https://www.woolworths.com.au/apis/ui/EdrCard/BalanceSummary?cardNumber=$ {cardNumber}`, type: 'GET', contentType: 'application/json' }).done((res) => {solving(res); }).fail((res) => { afwijzen(res); }) }); } laat testEdrBalance = 1622; function testEdrCardBalance() { return new Promise((oplossen, afwijzen) => { setTimeout(() => {solving({ "SaveForLaterPreference": { "Preference": "Automatic", "QffPoints": null, "PayOutDate": null, "RoundedCurrentVoucherBalance": 0, "IsLessThanMinimumBalance": false }, "Response": { "IsError": false, "Resultaat": { "ReturnCode": "0", "ErrorMessage": "" }, "ReturnCode" : "Succes", "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": false, "ErrorMessage": null, " DisplayErrorMessage": null }) }, 1000) }) } // wachtwoord tonen en verbergen wanneer op het oog wordt geklikt $(".password-with-eye").click(function() { if ($(this).parent (".password-textbox").find("input").attr("type") == "wachtwoord") { $(dit).parent(".password-textbox").find("input") .attr("type", "tekst"); $(dit).find("i").removeClass("iconAct-Visibility_Off").addClass("iconAct-Visibility"); } else { $(dit).parent(".password-textbox").find("input").attr("type", "wachtwoord"); $(dit).find("i").removeClass("iconAct-Visibility").addClass("iconAct-Visibility_Off"); } });
# ${orderId}.
Bestelstatus
${bestellingStatus}.
Vervullingsmethode
${fulfilmentMethode}.Besteldatum
${orderDatum}.Actie 1 is
Order volgenActie 2 is
`); if(orderStatus !== "Geannuleerd") { fetchOrderDetails(orderId).then(res => { let AmendmentCutOffStoreTime = res.AmendmentCutOffStoreTime ? res.AmendmentCutOffStoreTime : ""; if(amendmentCutOffStoreTime) { editOrderByDateTime = moment(amendmentCutOffStoreTime).format( 'LT [on] dddd, D MMM'); // logica als het ophalen van de bestelling is verlopen, let ammendHtml = ""; // controleer of de sluitingsdatum vóór de huidige datum ligt if(moment(amendmentCutOffStoreTime).isBefore(moment()) ) { let projectedDeliveryStartTime = order.ProjectedDeliveryTime.StartTime ? moment(order.ProjectedDeliveryTime.StartTime).format('LT') : ""; let projectedDeliveryEndTime = order.ProjectedDeliveryTime.EndTime ? moment(order.ProjectedDeliveryTime.EndTime).format( 'LT'): ""; wijzigenHtml = ` Je kan Leveringsvenster
`); } if(orderList.length == index) { isOrderCardSetupDone = true; } }); if(isMultiOrder && isOrderCardSetupDone) {// update de titel van de sectie bestellingen om nr. weer te geven. aantal bestellingen $('.lux-my-orders-title').html(`Mijn bestellingen (${orderList.length})`); } } else { // vervang de container voor het laden van bestellingen door de container zonder bestellingen $('.my-orders.loading').replaceWith( `
` $(errorHTML).insertAfter("#pagina2 .find-delivery h4.tab-heading"); } }) } function deliveryAddressUpdateFulfilment(selectedAddressId) { $.ajax({ url: `${url}/ui/Fulfilment`, type: 'POST', data: { "addressId":selectedAddressId, "fulfilmentMethod": "Courier" } }).then() => { getCustomerInfoAsync().then((res) => { totalData = res updateDeliveryTimeDisplay() updateDeliveryMethod() openDeliveryPickupSidePanel() }) }) } // open picktijd voor leveringszijpaneelfunctie openDeliveryPickupSidePanel() { $('.open-side.time-to').first().click() } // handmatige invoer van het bezorgadres $('body').on('click', '.addressSelector-enterManually ', function(e) { e.preventDefault() $('.delivery-warning').addClass('hide') showManualDeliveryAdressInput() }) function 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') } functie hideManualDeliveryAdressInput() { $(' .find-delivery').show() $('#auto-delivery-buttons-container').show() $('#manual-delivery-search').hide() $('#manual-delivery- buttons-container').hide() $('#pagina2').removeClass('manual') $('#page2').addClass('auto') if (vorige adressen) { $('.find-delivery' ).hide() $('.previous-delivery, .add-address-button').show() $('.previous-add').hide() } } // knop om terug te keren naar zoeken naar automatische bezorging vanaf zoeken naar handmatige levering $('#manual-delivery-buttons-container .linkButton.fulfilment-button').click(function(e) { e.preventDefault() hideManualDeliveryAdressInput() }) // voeg klasse toe aan invoervakken bij invoer so labels blijven klein als ze tekst hebben $('#shared-text-input-11, #shared-text-input-12, input[name="Postcode"]').on('input', function() { let text = $(dit).val() if (text.length) { $(this).addClass('invoer-met-waarde') } if (!text.length) { $(dit).removeClass('invoer -with-value') } }) // haal de buitenwijken op voor de selectie wanneer u een postcode invoert voor handmatig zoeken naar bezorging $('input[name="Postcode"]').on('input', function() { let postcode = $(this).val() $('shared-dropdown[name="Voorstad"] select').empty() if (postcode.length >= 4) { retrieveSuburbsFromPostCode(postcode).then((res ) => { res.Response.forEach(option => { $('shared-dropdown[name="Voorstad"] select').append( `` ) }) }) } else { $('shared-dropdown[name="Voorstad"] select').append( `` ) } }) function retrieveSuburbsFromPostCode(postcode) { return $.ajax({ url: `${url}/ui/address/suburb/${postcode}`, type: 'GET' }) } // verwijder validatieberichten on input naar invoervelden voor handmatige levering $('shared-textbox[name="Street1"]').on('input', function() { $(this).find('shared-validation-messages'). hide() // als dit tekst bevat, voeg dan klasse toe let text = $(this).find('input').val() if (text.length) { $(this).addClass('input-with-value ') } else { $(this).removeClass('input-with-value') } }) $('shared-dropdown[name="Suburb"], shared-textbox[name="Postcode"]'). on('input', function() { $('shared-dropdown[name='Voorstad']').find('shared-validation-messages').hide() $('shared-textbox[name=' Postcode"]').find('shared-validation-messages').hide() }) // zoekformulierfunctie voor handmatige levering indienen manual_delivery() { let form = $('#page2.manual') $(form) .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 ') let street_address1 = $(form).find('input[name="Straat1"]').val(); let street_address2 = $(form).find('input[naam="Straat2"]').val(); let postcode = $(form).find('input[name="Postcode"]').val(); laat buitenwijk = $(form).find('select#shared-dropdown-input-4').val(); let suburbObject = { Tekst: $('#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') } let suburbId = $('#shared-dropdown-input-4').find(':selected').attr('data-id') let dataObject = { Postcode: postcode, Straat1: straat_adres1, Straat2: straat_adres2, Buitenwijk: suburbObject , SuburbId: suburbId } if (!street_address1 || !postcode || !suburb) { if (!street_address1) { $(form).find('input[name="Street1"]').siblings('shared-validatie -messages').show() $(form).find('shared-textbox[name="Street1"]').addClass('ng-invalid') } if (!postcode) { $(form).find ('input[name="Postcode"]').siblings('shared-validatie-messages').show() $(form).find('shared-textbox[name="Postcode"]').addClass( 'ng-invalid') } if (!suburb) { $(form).find('select#shared-dropdown-input-4').siblings('shared-validatie-messages').show() $(form ).find('shared-dropdown[name="Suburb"]').addClass('ng-invalid') } else { $('.addressSelectorManual-postcodeSuburbInput').removeClass('lege-drop') } } else { if (isUserLoggedIn) { manualDeliveryAddressCall(dataObject) } else { 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', function (e) { if (e. Which == 13) { e.preventDefault() manual_delivery() } }) function manualDeliveryAddressCall(data) { $.ajax({ url: `${url}/ui/address/manual` , type: 'POST', contentType: 'application/json;', data: JSON.stringify(data) }).then(res => { let adresId = res.Address.AddressId deliveryAddressUpdateFulfilment(addressId) }) } // ophalen en opstarten // ophaaladres bij invoer vullen met lijstitems $('body').on('input', '#pickupAddressSelector, #pickupAddressSelectorBoot', function() { const pickup_or_boot = $(this) .closest('.pagina-hide').attr('id') === 'pagina3' ? 'pickup': 'boot' var searchVal = $(this).val() if (searchVal.length) { $(this).addClass('input-with-value') } if (!searchVal.length) { $ (this).removeClass('input-with-value') } $.ajax({ url: `${url}/ui/StoreLocator/Suburbs`, type: '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( `
` ) } if (res.Suburbs.length > 0) { if (pickup_or_boot === 'pickup') { res.Suburbs.forEach((voorstad, index) => { $('ul.list.ng-star- ingevoegd').append(`
${suburb.SuburbStateString}
`) }) } if (pickup_or_boot === 'boot') { res.Suburbs.forEach((voorstad, index) => { $('ul.list.ng-star-inserted').append(`
${suburb.SuburbStateString}
`) }) } } }) }) // zoekopdracht opnieuw instellen wanneer geen resultaten gevonden $('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() }) // een buitenwijk selecteren uit de lijst met buitenwijken om op te halen en op te starten $('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 = $(this) .closest('.page-hide').attr('id') === 'page3'? 'Pickup': 'DriveUp' const postCode = $(this).data('postcode') if (pickup_or_boot2 == = 'pickup') { $('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 }) }) // haal alle winkels op die overeenkomen met een locatie en voeg deze toe ze naar de paginafunctie getListPickupStores(location) { return $.ajax({ url: `${url2}/v3/ui/fulfilment/stores`, type: 'GET', data: { ...location } }). then((res) => {//stel het eerste adres in als geselecteerde adres-ID if (res && Array.isArray(res) && res.length > 0 && res[0].AddressId) { adresIdItem = res[0].AddressId } $('.stores.ng-star-inserted').remove() $('#page3 fieldset').append( '
') const pickUpContent = (pickupOrDriveUp) => { if (pickupOrDriveUp === 'Pickup') { return ` Ophalen in de winkel` } if (pickupOrDriveUp === 'DriveUp') { return `Direct opstarten` } } res.forEach((voorstad, index) => { $('.stores.ng-star-inserted').append(``) }) $('.list.ng-star-inserted').html('') }).then(() => {// verberg alle opties na de eerste 4 $('.suburb-list-item2 :gt(4)').hide() // selecteer standaard de eerste optie $('.suburb-list-item2:first input').prop("checked", true); // voeg "meer bekijken" toe button" indien nodig laat button = `` if ($('.suburb-list-item2').length > 5) { $(document).find('#page3 div.tab-content.ng-star-inserted . stores.ng-star-inserted').append( button) } // verberg bestelopties info $('#page3 .tab-content div.cvp.ng-star-inserted').hide() }) } // knop meer bekijken voor buitenwijken $(document).on('click', '.view-more-button', function() { const pickup_or_boot = $(this).closest('.page-hide').attr(' id') === 'page3' ? 'pickup': 'boot' if (pickup_or_boot === 'pickup') { $('.suburb-list-item2:hidden:lt(5)').show() if ($('.suburb-list-item2:hidden').length == 0) { $('.view-more-button').hide() $('.stores:last-child').css ('border', 'none') } } if (pickup_or_boot === 'boot') { $('.suburb-list-item3:hidden:lt(5)').show() if ($('. suburb-list-item3:hidden').length == 0) { $('.view-more-button').hide() } } }) let adresIdItem; laat vervullingMethode; // selecteer een ophaal- of opritlocatie uit het menu $('body').on('click', '.suburb-list-item2', function() { adresIdItem = $(this).data('id') fulfilmentMethod = $(this).data('fulfilmentMethod') // invoerpictogrammen bijwerken $('.suburb-list-item2 input').prop("checked", false); $(this).find('input' ).prop("checked", true); }) // pick-up save-knop $('body').on('click', '.pickup-save', function(e) { e.preventDefault(e) if ($('#pickupAddressSelector').val() != '' || $('.suburb-list-item2').length) { $('.pick-up-warning').addClass('hide' ) $(this).find('.spinner-button').removeClass('hide') $(this).find('.button-text').addClass('hide') pickupMethodFulfilmentCall(fulfilmentMethod) let _this = $(this) setTimeout(function() { $(_this).find('.spinner-button').addClass('hide') $(_this).find('.button-text').removeClass('hide ') }, 5000) } else { $('.pick-up-warning').removeClass('hide') } }) function pickupMethodFulfilmentCall(pickupMethod) { if (addressIdItem) { if (isUserLoggedIn) { $.ajax( { url: `${url}/ui/Fulfilment`, type: 'POST', data: { adresId: adresIdItem, fulfilmentMethod: pickupMethod } }).then(() => { getCustomerInfoAsync().then((res) => { totalData = res updateDeliveryTimeDisplay() updateDeliveryMethod() // open tijd selecteer modaal openDeliveryPickupSidePanel() }) }).then(() => { }) } else { window.location.href = '/shop/securelogin' } } } // update weergavefunctie bezorg-/ophaalmethode updateDeliveryMethod() { if (totalData.GetDeliveryInfoRequest && totalData.GetDeliveryInfoRequest.DeliveryMethod) { $('.linkButton.fulfilment-button.ng-star-inserted.back-button') .hide() } if (totalData.GetDeliveryInfoRequest && (totalData.GetDeliveryInfoRequest.DeliveryMethod == 'Koerier' || totalData.GetDeliveryInfoRequest.DeliveryMethod == 'Null')) { $('.delivery-fee').show() } if (isUserLoggedIn) { if (totalData && totalData.GetDeliveryInfoRequest && totalData.GetDeliveryInfoRequest.DeliveryMethod) { let deliveryDisplayText = totalData.GetDeliveryInfoRequest?.Adres?.Beschrijving ? totalData .GetDeliveryInfoRequest?.Address?.Description: totalData.GetDeliveryInfoRequest?.Address ?.AddressText ? totalData.GetDeliveryInfoRequest?.Address?.AddressText : "" $('#page1').remove() if (totalData.GetDeliveryInfoRequest.DeliveryMethod == 'Ophalen') { $('.delivery-fee').hide() $('#deliveryContent, #delivery_display_mobile').html(`
Ophalen: ${ deliveryDisplayText} Ophalen ${deliveryDisplayText}
`) } else if (totalData.GetDeliveryInfoRequest.DeliveryMethod == 'DriveUp') { $('.delivery-fee').hide() $('#deliveryContent, #delivery_display_mobile').html(`
Direct opstarten: ${deliveryDisplayText} Direct ophalen om op te starten ${deliveryDisplayText}
`) } else { $('.delivery-fee').show() $('#deliveryContent, #delivery_display_mobile').html(`
Leveren aan: ${deliveryDisplayText} Levering aan ${deliveryDisplayText}
`) } $(".header-fulfilment__section-arrow.open-side.deliver-to .md-min-hide").html(' Wijzigen ') } } } // update levering / afhalen gekozen tijdweergavefunctie updateDeliveryTimeDisplay( ) { let delivery_pickup_text = 'Wanneer past? ' const data = totalData.GetDeliveryInfoRequest let dateString; if (data.ReservedDate.Date) { let time_format_day = moment(data.ReservedDate.Date).format('ddd'); delivery_pickup_text = 'Gekozen tijd: ' dateString = `
` } anders { dateString = `
Selecteer een tijd Bekijk beschikbare tijden Kies Tijd van bezorging. Beschikbare artikelen kunnen veranderen
`; } $('#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(' Wijzigen ') } } // algemeen // voorkomen dat formulieren worden ingediend bij enter $('.fms-form').submit(function(e ) { e.preventDefault() }) // functie om alleen getalinvoerfunctie validate(evt) toe te staan { var theEvent = evt || venster.gebeurtenis; // Behandel plakken if (theEvent.type === 'paste') {key = event.clipboardData.getData('text/plain'); } else { // Behandel toetsaanslag var key = theEvent.keyCode || de gebeurtenis.welke; sleutel = String.fromCharCode(sleutel); } var regex = /[0-9]|\./; if (!regex.test(sleutel)) { theEvent.returnValue = false; if (theEvent.preventDefault) theEvent.preventDefault(); } } // sluit de vervolgkeuzelijst met zoekopties wanneer u er vanaf klikt $('body').on('blur', '#deliveryAddressSelector, #pickupAddressSelector, #pickupAddressSelectorBoot', function() { setTimeout( function() { $(' ul.list.ng-star-inserted').hide() }, 500) }); // zoekopties opnieuw openen wanneer focus terug $('body').on('focus', '#deliveryAddressSelector, #pickupAddressSelector, #pickupAddressSelectorBoot', function() { $('ul.list.ng-star-inserted') .show() }); // zoekinvoer $('#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($ (this)) }) // schakel tussen het geolocatiepictogram en de duidelijke tekstpictogramfunctie inputIcons(_this) { let _thisParent = _this.closest('shared-pickup-address-selector') let searchTerm = $(_thisParent).find( 'input').val() if (typeof zoekTerm != 'ongedefinieerd' && zoekTerm.lengte > 0) { if (!$(_thisParent).find('.clear-text').is(':visible') ) { $(_thisParent).find('shared-textbox').append( `
` ) } $('.geolocate-icon').hide() } if (typevan zoekTerm != 'ongedefinieerd' && !searchTerm.length) { $(_thisParent).find('.clear-text').remove( ) $('.geolocate-icon').show() } } $('body').on('klik', 'shared-pickup-address-selector .clear-text', function() { $(this ).siblings('input').val('') inputIcons($(this).siblings('input')) }) // geolocatie let pickupType; // haal de gebruikerslocatie op, indien mogelijk, functie getLocation() {if (navigator.geolocation) {navigator.geolocation.getCurrentPosition(getMatchingLocations); // getMatchingLocations() } else { alert("Geolocatie wordt niet ondersteund door deze browser."); } } function getMatchingLocations(position) { getListPickupStores(pickupType, { latitude: position.coords.latitude, longitude: position.coords.longitude }) } let pickup_text = 'Zoeken naar ophaallocatie'; let direct_boot_text = 'Zoek naar een directe opstartlocatie'; let user_location_text = 'Uw locatie gebruiken'; $(document).on('keypress ', 'input[name='pickupAddressSelector']', function() { if ($('#pickupAddressSelector', this)) { $(this).siblings('label.ng -star-inserted').text(pickup_text) } else if ('#pickupAddressSelectorBoot') { $(this).siblings('label.ng-star-inserted').text(direct_boot_text) } }) $(document) .on('klik', function(e) { if (!$(e.target).is('#geolocationiconDriveUp') && !$(e.target).is('#geolocationiconPickup')) return pickupType = $ (e.target).is('#geolocationiconDriveUp') ? 'DriveUp': 'Ophalen' if (pickupType == 'DriveUp') { $('#geolocationiconDriveUp').siblings('shared-typeahead').find( 'label.ng-star-inserted').text(user_location_text) } else { $('#geolocationiconPickup').siblings('shared-typeahead').find('label.ng-star-inserted').text( user_location_text) } e.preventDefault(e) getLocation() }) $(document).on("klik", ".add-address-button", function(e) { e.preventDefault(); $('.previous -levering, .add-address-button').hide() $('.find-delivery, .previous-add').show() $('#manual-delivery-search').hide() $( '#manual-delivery-buttons-container').hide() $('#page2').removeClass('manual') }); $(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() $ ('#pagina2').removeClass('handleiding') });
' ) } getal = $('#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 (getal == -3) { $('#afternoonTime.appendTimeHere').append( '
Alle middaguren zijn gesloten
' ) } getal = $('#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 (getal == -3) { $('#eveningTime.appendTimeHere').append( '
Alle avonduren zijn gesloten
' ) } if (pre_selected) { if (totalData.GetDeliveryInfoRequest.ReservedTime.Id) { const tijd = totalData.GetDeliveryInfoRequest.ReservedTime.Id; $(`.times-column .time-slot-list input[id="` + tijd + `"]`).prop('gecontroleerd', true); } } }) $(document).on('klik', '.view-more-button-time ', function(e) { e.preventDefault(e) $(this).closest('.appendTimeHere'). find('.time-slot-container').show() $(this).hide() }) // update tijdslotkeuze let 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 adresId = data.Address.AddressId const fulfilmentMethod = data.DeliveryMethod const windowDate = time_id_match $.ajax({ url : `${url}/ui/Fulfilment`, type: 'POST', contentType: 'application/json', dataType: "json", data: JSON.stringify({ adresId, fulfilmentMethod, windowDate, timeslotId }) }) .then(() => { getCustomerInfo() }) }) $(document).on('klik', '.time-save', function() { $('.drawer').removeClass('is- open') $('.mask').removeClass('is-gemaskeerd') $('body').removeClass('overflow-none') })
` ) $(this).find('.product-tile-v2--image img').addClass('is-niet beschikbaar'); } else { $(this).find('.cartControls-addButton').show() $(this).find(`.cartControls-inTrolleyWrapper`).remove() $(this).find(`.cart- item-niet beschikbaar`).remove() } }); } // update winkelwagen met extra functie voor het vullen van winkelwagengegevens updateCart() { const data = cartData $('.item-count-amount').html(data.TotalTrolleyItemQuantity) // voeg items toe aan winkelwagen const items = data.AvailableItems const niet beschikbaarItems = data.UnavailableItems populateRHSCart(items, onbeschikbaarItems) // update totaal const totaal = data.Totals.SubTotal; const totalSavings = data.Totals.TotalSavings.toFixed(2); const numberItems = data.TotalTrolleyItemQuantity; const alledaagseMarketTotal = data.Totals.MarketTotal; const wolworthstTotal = data.Totals.WoolworthsTotal; updateCartTotal(total, totalSavings, numberItems, everydayMarketTotal, WoolworthstTotal) } // vul de RHS-winkelwagen met de productitems // toon anders als items niet beschikbaar zijn of beschikbare functie populateRHSCart(availableItems, onbeschikbaarItems) { $('wow-cart-products . auto_products-in-cart').html('') $('#unavailable-items-container').remove() if (unavailableItems.length > 0) { $('wow-cart-products').prepend( ` Deze artikelen zijn momenteel niet beschikbaar Dit artikel isNiet beschikbaarof niet op voorraad ${item.Korting ? ' REDDEN$' + item.Discount.toFixed(2) + ' ': ''} $${priceLrg} .${priceSml} ${item.SalePrice.toFixed(2) != (item.ListPrice * item.Quantity).toFixed(2) ? 'Was $' + (item.ListPrice * item.Quantity).toFixed(2) + '': ''} Ga door met winkelen om te bladeren en naar items te zoeken. ${aantalItems} Verdien punten in deze winkel Verzamel punten in deze winkel Koppel de Everyday Rewards-kaart Everyday Rewards, bij de volgende winkel volgende winkel Dagelijkse beloningen die u verdient Jij verzamelt Dagelijkse beloningen die u verdient Jij verzamelt Opgeslagen Bewaar winkelwagen als lijst ${item.Name} ${item.PackageSize}
${item.Name} ${item.PackageSize}
Uw winkelwagen is leeg
$${rewardData.WowRewardsToSpend}
${currentBalance} punten
${currentBalance} punten
Weet u zeker dat u alle producten uit de winkelwagen wilt verwijderen?