Your cart is empty
Continue shopping
Have an account?
Log in to check out faster.
Your cart
Estimated total
$0.00 USD
Taxes, discounts and shipping calculated at checkout.
1 / of 19
MacGREGOR
Regular price $3,294.13 USD
Regular price $3,467.50 USD Sale price $3,294.13 USD
Unit price / per
Sale Sold out
Condition: New - Open box
Free Shipping
1 in stock
Couldn't load pickup availability
- Secure Payment
- Express Free Shipping
- Easy Return
MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus Condition: New Unused surplus valve block Shelf wear only on the body Refer to all photos Refer to all photos Original product images uploaded You will get what is shown in the images Shipping: We Shipp through DHL express expedited or Fedex Express Packages are usually shipped within 48 hours of payment receipt (Excluding Saturday/Sunday) International buyers, whatever the custom duty or charges if any will be borne by the buyer. As different countries charge Different Custom Duty. Buyer is responsible for Paying all the charges. Please check with your country's customs office to determine what these additional costs will be prior to buying. Combined shipping is done at the seller's discretion. If you purchase more than one item from us, They may arrive in separate packages. Return: All items are sold as it is. We accept returns only if the item was not as described in the listing. Buyer must return the item exactly as received within 7 days and will be responsible for all additional shipping Feedback: Your Valuable Feedback is important to us. Your Positive Feedback increases our credibility and encourages us to better ourselves and provide the best services each time. If you are not happy with us for any reason, you may communicate with us before leaving a negative feedback and we assure you to provide a solution to amicably solve your issue. ContACt us: Note: Import duties, taxes, and other customs charges are not included in the item price. These charges are the buyer's responsibility. Check with your Country Custom office to determine what additional costs will be prior to buying.
We try our best to be the Best we can and Improve with each transaction.
We do our best to present accurate, detailed information about every item we sell
You may Contact us for any Questions or Doubtsby sending us a message
We assure an immediate reply to your questions during working hours.
×
Please wait...
Make An Offer
MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus
MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus
$3,294.13
×
Offerly Support
Don't fret! This pop up only shows up in Shopify Editor Mode. Offerly could not find your add to cart button! This can happen for one of the following reasons:
- 1. This product is sold out.
- To solve this please navigate to a different product!
2. Your Theme is custom or uses different text for the "Add to Cart" button.
- If this is the case, please contact Support@OfferlyApp.com and we will add support for your theme!
Default Title
`); var productTitleText = [...document.getElementById('modalProductTitle').children].map(child => child.textContent.trim()).join(' / '); var productCollections = [{"id":477740499262,"handle":"all-products","title":"All Products","updated_at":"2024-08-20T17:26:45+05:30","body_html":"","published_at":"2024-08-02T21:53:31+05:30","sort_order":"best-selling","template_suffix":"","disjunctive":true,"rules":[{"column":"variant_inventory","relation":"less_than","condition":"1000"}],"published_scope":"web"},{"id":477740564798,"handle":"hydraulic","title":"Hydraulic","updated_at":"2024-08-19T20:59:46+05:30","body_html":"","published_at":"2024-08-02T21:54:43+05:30","sort_order":"best-selling","template_suffix":"","disjunctive":false,"rules":[{"column":"tag","relation":"equals","condition":"Hydraulic"}],"published_scope":"web"}]; var collectionsString = ''; productCollections.map((collection) => { collectionsString += collection.id + ','; }); var showButtonInformation = {productSelectorType: 'None', selectedProducts: ''} var autoResponseDelay = 1; var delayAutoMessage = false; var quantityInput = document.querySelector('#productQuantity') || document.querySelector('input[name="quantity"]:not(.offerInput)') || document.querySelector('.product-form__quantity'); if (quantityInput && 88562008382 != 69336465675) { var offerQuantityDiv = document.getElementById('offerQuanitityInput'); offerQuantityDiv.style.display = 'block'; quantityInput.addEventListener('input', function (event) { updateQuantity(event.target.value); }); } if (quantityInput && 88562008382 == 9177890913 && !isVisibleElement(quantityInput.parentElement)) { var offerQuantityDiv = document.getElementById('offerQuanitityInput'); offerQuantityDiv.style.display = 'none'; } var hideQuantityInput = [69336465675,61879943221,69664833775,86812131607,50712314049,51222872236,49644142759]; if (quantityInput && hideQuantityInput.includes(88562008382)) { var offerQuantityDiv = document.getElementById('offerQuanitityInput'); offerQuantityDiv.style.display = 'none'; } var modalProductDescription = document.getElementById('modalProductDescription'); // if modalProductDescription is over 400 characters truncate it if (modalProductDescription && modalProductDescription.textContent.length > 200) { modalProductDescription.textContent = modalProductDescription.textContent.substring(0, 200) + '...'; } mountOfferlyModalAtEndOfBody(); populateUserInformation(); fixColorOfTexts(); hidePriceForStores(); document.getElementById('offerlyCloseButton').onclick = function () { closeOfferlyModal(); }; document.getElementById('offerAmountInput').addEventListener('input', validateOfferAmount); document.getElementById('submitOfferButton').onclick = function(){ submitOffer(); }; document.getElementById('offerQuanitityInput').addEventListener('input', validateOfferAmount); document.addEventListener('DOMContentLoaded', function () { function usePushState(handler) { //modern themes use pushstate to track variant changes without reload function track(fn, handler, before) { return function interceptor() { if (before) { handler.apply(this, arguments); return fn.apply(this, arguments); } else { var result = fn.apply(this, arguments); handler.apply(this, arguments); return result; } }; } var currentVariantId = null; function variantHandler() { var selectedVariantId = window.location.search.replace(/.*variant=(\d+).*/, '$1'); if (!selectedVariantId) return; if (selectedVariantId != currentVariantId) { currentVariantId = selectedVariantId; handler(selectedVariantId); } } window.history.pushState = track(history.pushState, variantHandler); window.history.replaceState = track(history.replaceState, variantHandler); window.addEventListener('popstate', variantHandler); } usePushState(function (variantId) { productVariantId = variantId; updateModalInformation(variantId); var shouldShowButton = showButton(); var addToCartButton = findAddToCartButton(); if (shouldShowButton && !document.getElementById('offerButton') && addToCartButton) { addOfferButton(); } if(!shouldShowButton && document.getElementById('offerButton')){ var offerButton = document.getElementById('offerButton'); if (offerButton){ offerButton.remove(); } } if (shouldShowButton && !addToCartButton) { var offerButton = document.getElementById('offerButton'); if (offerButton){ offerButton.remove(); } } }); }); document.addEventListener('keydown', function (event) { if (event.key === 'Escape') { // Use "Escape" for modern browsers var modal = document.getElementById('OfferlyModalDiv'); if (modal.style.display === 'flex') { modal.style.display = 'none'; } var supportModal = document.getElementById('OfferlySupportDiv'); if (supportModal.style.display === 'flex') { supportModal.style.display = 'none'; } } }); window.onclick = function (event) { if (event.target == modal) { modal.style.display = 'none'; if (Shopify.designMode) { localStorage.setItem('offerButtonClicked', 'false'); } } }; window.addEventListener('resize', function() { var offerButton = document.getElementById('offerButton'); var addToCartButton = findAddToCartButton(); if (offerButton && addToCartButton) { updateOfferButton(offerButton, addToCartButton); } }); fetch(`/apps/offerly-proxy/app/acceptOffers/?${new URLSearchParams({ collections: collectionsString, product: productVariantId })}`, { method: 'GET' }) .then((response) => response.json()) .then((data) => { showButtonInformation = data; autoResponseDelay = showButtonInformation.automatedResponseDelay; delayAutoMessage = showButtonInformation.delayAutomatedResponse; var shouldShowButton = showButton(); if (shouldShowButton) { addOfferButton(); } if (showButtonInformation.autoOpenModal && shouldShowButton ){ if (showButtonInformation.startTimerWhenInactive){ inactivityAlertOfferly(showButtonInformation.autoOpenModalDelay * 1000); } else { setTimeout(function () { openModal(true); }, showButtonInformation.autoOpenModalDelay * 1000); } } }) .catch((error) => { // Handle any errors console.error(error) }); function mountOfferlyModalAtEndOfBody() { var modal = document.getElementById('OfferlyModalDiv'); if (modal) { document.body.appendChild(modal); } } function updateLabelsForStores(){ var storesForUpdatingLabels = [50712314049,59154694339] //if store not in storesForUpdatingLabels if (storesForUpdatingLabels.includes(88562008382) ) { var offerNameLabel = document.querySelector('label.offerly-text.offerly-input-label[for="offerName"]'); var offerNameInput = document.querySelector('input.offerInput.offerly-text[name="customerName"]'); var offerAmountLabel = document.querySelector('label.offerly-text.offerly-input-label[for="offerAmount"]'); var offerAmountInput = document.querySelector('input.offerInput.offerly-text[name="offerAmount"]'); var additionalInformationLabel = document.querySelector('label.offerly-text.offerly-input-label[for="additionalInformation"]'); var additionalInformationInput = document.querySelector('textarea.offerInput.offerly-text[name="additionalTextField"]'); var phoneInput = document.querySelector('input.offerInput.offerly-text[name="customerPhone"]'); var offerlyHeaderStoreLogo = document.getElementById('offerlyHeaderStoreLogo'); var header = document.getElementById('offerlyModalHeader'); var modalProductTitle = document.getElementById('productTitleOfferModal'); var modalPrice = document.getElementById('modalPrice'); var modalProductDescription = document.getElementById('modalProductDescription'); var offerDescriptionDiv = document.getElementById('offerDescriptionDiv'); if(88562008382 == 50712314049){ offerNameLabel.innerHTML = 'Full Name'; offerNameInput.placeholder = 'Please enter your full name'; offerAmountLabel.innerHTML = 'Your Offer'; offerAmountInput.placeholder = 'Offer price excludes shipping'; additionalInformationLabel.innerHTML = 'Location'; phoneInput.placeholder = 'Phone number with country code'; //change additionalInformation Input to a dropdown with countries var countrySelect = document.createElement('select'); //make the background a dark color //change the placeholder to country countrySelect.id = 'OfferInput'; var placeholderOption = document.createElement('option'); placeholderOption.style.backgroundColor = '#313739'; placeholderOption.value = ''; placeholderOption.text = 'Country'; placeholderOption.disabled = true; countrySelect.appendChild(placeholderOption); //add it to where additionalInformationInput is additionalInformationInput.parentNode.insertBefore(countrySelect, additionalInformationInput); additionalInformationInput.remove(); //add options to the select var countries = ['Afghanistan', 'Albania', 'Algeria', 'Andorra', 'Angola', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Australia', 'Austria', 'Azerbaijan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Brazil', 'Brunei', 'Bulgaria', 'Burkina Faso', 'Burundi', "Côte d'Ivoire", 'Cabo Verde', 'Cambodia', 'Cameroon', 'Canada', 'Central African Republic', 'Chad', 'Chile', 'China', 'Colombia', 'Comoros', 'Congo (Congo-Brazzaville)', 'Costa Rica', 'Croatia', 'Cuba', 'Cyprus', 'Czechia (Czech Republic)', 'Democratic Republic of the Congo', 'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic', 'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Eswatini (fmr. "Swaziland")', 'Ethiopia', 'Fiji', 'Finland', 'France', 'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Greece', 'Grenada', 'Guatemala', 'Guinea', 'Guinea-Bissau', 'Guyana', 'Haiti', 'Holy See', 'Honduras', 'Hong Kong' , 'Hungary', 'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Israel', 'Italy', 'Jamaica', 'Japan', 'Jordan', 'Kazakhstan', 'Kenya', 'Kiribati', 'Kuwait', 'Kyrgyzstan', 'Laos', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libya', 'Liechtenstein', 'Lithuania', 'Luxembourg', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Mauritania', 'Mauritius', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Morocco', 'Mozambique', 'Myanmar (formerly Burma)', 'Namibia', 'Nauru', 'Nepal', 'Netherlands', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'North Korea', 'North Macedonia', 'Norway', 'Oman', 'Pakistan', 'Palau', 'Palestine State', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Poland', 'Portugal', 'Qatar', 'Romania', 'Russia', 'Rwanda', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Korea', 'South Sudan', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Sweden', 'Switzerland', 'Syria', 'Tajikistan', 'Tanzania', 'Thailand', 'Timor-Leste', 'Togo', 'Tonga', 'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Tuvalu', 'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States of America', 'Uruguay', 'Uzbekistan', 'Vanuatu', 'Venezuela', 'Vietnam', 'Yemen', 'Zambia', 'Zimbabwe']; countries.sort(); for (var i = 0; i < countries.length; i++) { var option = document.createElement('option'); option.style.backgroundColor = '#313739'; option.value = countries[i]; option.text = countries[i]; countrySelect.appendChild(option); } countrySelect.name = 'additionalTextField'; countrySelect.classList.add('offerInput'); countrySelect.classList.add('offerly-text'); //make inital value empty countrySelect.value = ''; var offerQuanitityInput = document.getElementById('offerQuanitityInput'); var additionalInformationInput = document.getElementById('additionalInformationInput'); //rearange the order of the inputs make sure #offerAmountInput is after #additionalInformationInput offerQuanitityInput.parentNode.insertBefore(additionalInformationInput, offerQuanitityInput); //make header display none header.style.display = 'none'; offerlyHeaderStoreLogo.src = 'https://cdn.shopify.com/s/files/1/0507/1231/4049/files/smallwhitelogo.png?v=1716447954'; offerlyHeaderStoreLogo.style.display = 'flex'; //move submitOfferButton to be whole bottom var submitOfferButton = document.getElementById('submitOfferButton'); //remove it from the dom submitOfferButton.remove(); //add it as the last item in offerly-modal-content-group document.querySelector('.offerly-modal-content').appendChild(submitOfferButton); } if(88562008382 == 59154694339){ // get offerly-modal-content-group and alignItems to center var offerlyModalContentGroup = document.querySelector('.offerly-modal-content-group'); offerlyModalContentGroup.style.alignItems = 'center'; // get rightSide and set width to 100% var rightSide = document.getElementById('rightSide'); // take id offerlyModalHeader and move it to the right side var productTitle = document.getElementById('modalProductTitle'); rightSide.prepend(productTitle); rightSide.style.flex = '1 1 215px'; var image = document.getElementById('offerImage'); image.style.paddingBottom = '0px'; var productTitleOfferModal = document.getElementById('productTitleOfferModal'); productTitleOfferModal.style.paddingBottom = '0px'; // get description and set display to block offerDescriptionDiv.style.display = 'block'; offerDescriptionDiv.style.width = '100%'; modalProductDescription.style.fontSize = '18px'; modalPrice.style.fontSize = '18px'; } } } function addOfferButton() { var addToCartButton = findAddToCartButton(); if (!addToCartButton) { console.log('No add to cart button found'); return } var offerButton = document.createElement('button'); offerButton.id = 'offerButton'; var submitOfferButton = document.getElementById('submitOfferButton'); var modalAddToCartButton = document.getElementById('modalAddToCartButton'); offerButton.innerHTML = 'make an offer' == 'make an offer' ? 'Make An Offer' : 'Make An Offer'; updateOfferButton(offerButton, addToCartButton); updateOfferButton(submitOfferButton, addToCartButton); updateOfferButton(modalAddToCartButton, addToCartButton); offerButton.addEventListener('click', function (event) { event.preventDefault(); event.stopPropagation(); openModal(); }); if (88562008382 == 73665609995) { var modalHeader = document.getElementById('offerlyModalHeader'); modalHeader.innerHTML = 'Send Enquiry'; submitOfferButton.innerHTML = 'Enquire'; } mixpanel.track("Button Added", { shop: `shop.aminco.co`, productTitle: `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`, } ); updateLabelsForStores() var flexWrapShop = [74034315537, 20281681, 77076005182, 58405322835, 75196203307, 61769482425, 27527348276, 57320276143, 27394244673 ]; if (flexWrapShop.includes(88562008382)){ addToCartButton.parentNode.style.flexWrap = 'wrap'; } if ( 88562008382 == 20281681 || 88562008382 == 77076005182 || 88562008382 == 58405322835 || 88562008382 == 75196203307 || 88562008382 == 61769482425 || 88562008382 == 27527348276 || 88562008382 == 57320276143 ){ addToCartButton.style.marginBottom = '16px'; } if ( 88562008382 == 68129849588 ){ addToCartButton.parentNode.style.flexWrap = 'wrap'; addToCartButton.parentNode.style.display = 'flex'; addToCartButton.parentNode.style.flexDirection = 'column'; } var useParentNodeShopIds = [ 9238556, 65386643635, 1502598, 58408730675, 13638089, 18581729, 81888772409, 55008591957, 52291043514, 29522460808, 58351059100, 8722284, 65605828783, 80557900122, 85798322485]; if (useParentNodeShopIds.includes(88562008382)) { addToCartButton.parentNode.insertAdjacentElement("afterend", offerButton); return; } if ( 88562008382 == 73305882890 || 88562008382 == 49644142759) { addToCartButton.parentNode.parentNode.insertAdjacentElement("afterend", offerButton) return; } if ( 88562008382 == 49574117544 || 88562008382 == 67113091311) { addToCartButton.parentNode.parentNode.parentNode.parentNode.insertAdjacentElement("afterend", offerButton) return; } if ( 88562008382 == 9177890913) { addToCartButton.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.insertAdjacentElement("beforeend", offerButton) return; } if ( 88562008382 == 69664833775 || 88562008382 == 65273659647 || 88562008382 == 87724163412) { addToCartButton.parentNode.insertBefore(offerButton, addToCartButton); return } if ( 88562008382 == 50712314049) { // find the button on the page that says "thinking of selling?" var thinkingOfSellingButton = [...document.querySelectorAll('.button.button--xl.button--outline.w-full')]; // go through thinkingOfSellingButton and find the one that says "thinking of selling?" var sellingButton = thinkingOfSellingButton.find((button) => button.textContent.trim().toLowerCase().includes('thinking of selling?')); sellingButton ? sellingButton.parentNode.insertBefore(offerButton, sellingButton.nextSibling) : addToCartButton.parentNode.insertBefore(offerButton, addToCartButton.nextSibling); return } addToCartButton.parentNode.insertBefore(offerButton, addToCartButton.nextSibling); } function updateOfferButton(button, addToCartButton) { //get computed style from add to cart button if (!addToCartButton) { return; } var addToCartButtonStyle = window.getComputedStyle(addToCartButton); button.classList.add('offerButton'); button.style.backgroundColor = '#012a68'; button.style.color = '#FFFFFF'; button.style.borderRadius = 'px'; button.style.setProperty('width', '100%', 'important'); button.style.height = addToCartButtonStyle.height; button.style.margin = addToCartButtonStyle.margin; button.style.padding = addToCartButtonStyle.padding; button.style.fontFamily = addToCartButtonStyle.fontFamily; button.style.fontSize = addToCartButtonStyle.fontSize; button.style.fontWeight = addToCartButtonStyle.fontWeight; button.style.letterSpacing = addToCartButtonStyle.letterSpacing; button.style.borderRadius = addToCartButtonStyle.borderRadius; button.style.border = addToCartButtonStyle.border; button.style.lineHeight = addToCartButtonStyle.lineHeight; button.style.cursor = 'pointer'; button.style.zIndex = 'auto'; button.style.textTransform = addToCartButtonStyle.textTransform; button.style.textAlign = addToCartButtonStyle.textAlign; // if addToCartButton is all caps then make the offer button all caps if (addToCartButton.textContent === addToCartButton.textContent.toUpperCase()) { button.style.textTransform = 'uppercase'; } // remove all spaces from the word and check if only the first letter is uppercase if (addToCartButton.textContent.replace(/\s/g, '').charAt(0) === addToCartButton.textContent.replace(/\s/g, '').charAt(0).toUpperCase() && addToCartButton.textContent.replace(/\s/g, '').slice(1) === addToCartButton.textContent.replace(/\s/g, '').slice(1).toLowerCase()){ //captialize only the first letter of the first word button.textContent = button.textContent.charAt(0).toUpperCase() + button.textContent.slice(1).toLowerCase(); } var add10pxMarginTop = [59190870204, 55717462192, 19884211, 61020012786, 19703995, 9177890913, 63635554481, 78885716262, 18581729, 57483493549, 55218503785, 73305882890, 4411654217, 74848502074, 16867965, 49574117544, 64379584700, 54885220561, 61775872347, 2440329, 53819474108, 233242649, 72843067733, 49644142759, 26670334031, 76660179259, 55590715717, 73939091772, 5708365834, 59154694339, 83330335009, 29999070, 64795246644, 72810922327, 50319622293, 51553501368, 52950827161, 42973823127]; if ( add10pxMarginTop.includes(88562008382) ) { button.style.marginTop = '10px'; } var add10pxMarginBottom = [69664833775, 67113091311, 55008591957, 80557900122 ]; if ( add10pxMarginBottom.includes(88562008382) ) { button.style.marginBottom = '10px'; } var noMarginBottom = [20281681, 77076005182, 58405322835, 75196203307, 61769482425, 27527348276, 57320276143]; if ( noMarginBottom.includes(88562008382) ) { button.style.marginBottom = '0px'; } var add5pxMarginTop = [61879943221]; if ( add5pxMarginTop.includes(88562008382) ) { button.style.marginTop = '5px'; } var margin0px = [85798322485] if (margin0px.includes(88562008382)) { button.style.margin = '0px'; } if ( 88562008382 == 3014819906) { button.style.width = '230px'; } var sameWidthButton = [55218503785, 20281681, 77076005182, 58405322835, 29999070, 56208556218, 61769482425, 27527348276, 57320276143 ]; if ( sameWidthButton.includes(88562008382) ) { button.style.width = addToCartButtonStyle.width; } if ( 88562008382 == 29999070 ) { button.style.padding = '0px'; } if (88562008382 == 75196203307){ button.style.width = 'fit-content'; } if ( 88562008382 == 68129849588) { button.style.gridColumn = 'span 2'; } if ( 88562008382 == 8722284) { button.style.margin = '0px'; button.style.marginTop = '10px'; } if ( 88562008382 == 2252701765){ button.style.width = '90%'; button.style.height = ''; } if ( 88562008382 == 55717462192) { button.style.maxHeight = button.style.height; button.style.flex = 'none' } if ( 88562008382 == 50712314049) { //add the class button to the button var thinkingOfSellingButton = [...document.querySelectorAll('.button.button--xl.button--outline.w-full')]; // go through thinkingOfSellingButton and find the one that says "thinking of selling?" var sellingButton = thinkingOfSellingButton.find((button) => button.textContent.trim().toLowerCase().includes('thinking of selling?')); if (!sellingButton) { button.style.marginTop = '24px'; } button.classList.add('button'); button.classList.add('button--outline'); } var submitButtonShopIds = [20281681, 77076005182, 58405322835, 75196203307, 29999070, 56208556218, 61769482425, 27527348276, 57320276143]; if (submitButtonShopIds.includes(88562008382) && button.id == 'submitOfferButton') { button.style.width = '100%'; button.style.margin = '0px'; } var maxWidthButton =[55590715717, 13484519, 27394244673 ] if ( maxWidthButton.includes(88562008382) && button.id == 'offerButton') { button.style.maxWidth = addToCartButtonStyle.width; } if ( 88562008382 == 27254259764 && button.id == 'offerButton') { button.style.fontSize = 'inherit'; button.style.width = 'fit-content'; button.classList.add('btn'); } if ( 88562008382 == 87724163412){ button.style.maxHeight = '44px'; button.style.height = '44px'; button.style.textTransform = 'uppercase'; button.style.textAlign = 'center'; button.style.fontSize = '14px'; } if ( 88562008382 == 12125098 && button.id == 'offerButton'){ button.style.padding = ''; button.style.paddingBottom = '4px'; button.style.maxWidth = '200px'; button.style.marginLeft='10px'; } if ( 88562008382 == 59154694339 && button.id == 'offerButton') { button.addEventListener('mouseover', () => { button.style.boxShadow = '0 0 10px rgb(42 49 70)'; }); button.addEventListener('mouseout', () => { button.style.boxShadow = ''; }); button.classList.add('glow-button'); } var copyButtonClasses = [19884211] if (copyButtonClasses.includes(88562008382) && button.id == 'offerButton') { // get the classes from addToCartButton and add them to the offerButton var classes = addToCartButton.classList; for (var i = 0; i < classes.length; i++) { button.classList.add(classes[i]); } } } function findAddToCartButton() { var addToCartButton = [...document.querySelectorAll('button:not(#modalAddToCartButton)')].find((button) => (button.textContent.trim().toLowerCase().includes('add to cart') || button.textContent.trim().toLowerCase().includes('pre order') || button.textContent.trim().toLowerCase().includes('pre-order') || button.textContent.trim().toLowerCase().includes('receive a stock alert') || button.textContent.trim().toLowerCase().includes('purchase') || button.textContent.trim().toLowerCase().includes('kosárba') || button.textContent.trim().toLowerCase().includes('add to bag') || button.textContent.trim().toLowerCase().includes('add to shopping cart') || button.textContent.trim().toLowerCase().includes('add to shopping bag') || button.textContent.trim().toLowerCase().includes('add to basket') || button.textContent.trim().toLowerCase().includes('ajouter au panier') || button.textContent.trim().toLowerCase().includes('añadir al carrito') || button.textContent.trim().toLowerCase().includes('in den warenkorb') || button.textContent.trim().toLowerCase().includes('aggiungi al carrello') || button.textContent.trim().toLowerCase().includes('adicionar ao carrinho') || button.textContent.trim().toLowerCase().includes('legg til i handlekurven') || button.textContent.trim().toLowerCase().includes('lägg i varukorgen') || button.textContent.trim().toLowerCase().includes('tilføj til kurv') || button.textContent.trim().toLowerCase().includes('aggiungi alla borsa') || button.textContent.trim().toLowerCase().includes('ajouter au sac') || button.textContent.trim().toLowerCase().includes('añadir a la bolsa') || button.textContent.trim().toLowerCase().includes('der tasche hinzufügen') || button.textContent.trim().toLowerCase().includes('zum warenkorb') || button.textContent.trim().toLowerCase().includes('aggiungi al cesto') || button.textContent.trim().toLowerCase().includes('ajouter à la corbeille') || button.textContent.trim().toLowerCase().includes('in winkelwagen') || button.textContent.trim().toLowerCase().includes('aan winkelwagen toevoegen') || button.textContent.trim().toLowerCase().includes('legg i handlekurv') || button.textContent.trim().toLowerCase().includes('lisää ostoskoriin') || button.textContent.trim().toLowerCase().includes('adauga in cos') || button.textContent.trim().toLowerCase().includes('sepete ekle') || button.textContent.trim().toLowerCase().includes('enquire') || button.textContent.trim().toLowerCase().includes('acquire') || button.textContent.trim().toLowerCase().includes('do kosza') || button.textContent.trim().toLowerCase().includes('gooods') || button.textContent.trim().toLowerCase().includes('select size') || button.textContent.trim().toLowerCase().includes('einkaufswagen') || button.textContent.trim().toLowerCase().includes('įdėti į krepšelį') || button.textContent.trim().toLowerCase().includes('hozzáadás kosárhoz') || button.textContent.trim().toLowerCase().includes('dodaj do koszyka') || button.textContent.trim().toLowerCase().includes('agregar al carrito')) && !button.textContent.trim().toLowerCase().includes('terms of purchase') ); if (88562008382 == 49574117544) { addToCartButton = document.querySelector('.product-form__submit.button.button--secondary.an-horizontal-shaking.button-text-change'); } if ( 88562008382 == 25109954659 || 88562008382 == 20375995) { addToCartButton = document.getElementById("addToCart"); } if ( 88562008382 == 67113091311) { if (!addToCartButton) { addToCartButton = document.querySelector('button[value="Add to cart"]'); } } if ( 88562008382 == 83549651224) { addToCartButton = document.querySelector('input[type="submit"][name="button"][value="Add to Cart"].btn-secondary'); } if ( 88562008382 == 65386643635) { addToCartButton = document.querySelector(".btn_sp.addtocart_btn.product-form__cart-submit"); } if ( 88562008382 == 78885716262) { addToCartButton = document.querySelectorAll('button[data-aid="product-form-submit-button"][data-name="product-submit"]')[1]; } if ( 88562008382 == 13638089 || 88562008382 == 86882484502 ) { addToCartButton = document.getElementById('AddToCart'); } if ( 88562008382 == 82779046162) { var potentialAddToCartButton = document.getElementById('AddToCart'); if (potentialAddToCartButton && !potentialAddToCartButton.textContent.toLowerCase().includes('ausverkauft')) { addToCartButton = potentialAddToCartButton; } } if ( 88562008382 == 3014819906 ) { addToCartButton = document.querySelector('input.add-to-cart[type="submit"]'); } if ( 88562008382 == 2252701765 ){ addToCartButton = document.querySelector('input[value="Purchase"]'); } if ( 88562008382 == 64379584700 ) { addToCartButton = document.querySelector('.btn.btn-primary.btn-lg.paira-add-to-cart.add-to-cart.margin-top-0.pull-left.display-in-b'); } if ( 88562008382 == 53819474108 ) { addToCartButton = document.querySelector('[data-js-trigger-id="add-to-cart"]'); } if ( 88562008382 == 87724163412 ){ addToCartButton = document.getElementById('dynamic-buttons-form') } if ( 88562008382 == 13484519 ) { addToCartButton = document.querySelector('.btn.btn-lg.btn-addtocart.addtocart-js'); } if (!addToCartButton) { if (Shopify.designMode && showButton()) { var supportModal = document.getElementById('OfferlySupportDiv'); supportModal.style.display = 'flex'; mixpanel.track("Support Modal Opened", { admin: true, shop: `shop.aminco.co`, productTitle: `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`, } ); } return null; } return addToCartButton; } function isVisibleElement(element) { computedStyle = window.getComputedStyle(element); return computedStyle.display !== 'none' && computedStyle.visibility !== 'hidden'; } function openModal(autoOpened = false) { var modal = document.getElementById('OfferlyModalDiv'); modal.style.display = 'flex'; modal.style.animationName = 'animateopacity'; modal.style.animationDuration = '1s'; offerlyModalOpenedOnce = true; if (Shopify.designMode) { localStorage.setItem('offerButtonClicked', 'true'); } if (autoOpened) { mixpanel.track("Modal Auto-Opened", { shop: `shop.aminco.co`, productTitle: `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`, } ); } else { mixpanel.track("Modal Opened", { shop: `shop.aminco.co`, productTitle: `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`, } ); } var botContainer = document.getElementById('smart-bot-container'); var smileliteContainer = document.getElementById('smile-ui-lite-container'); if (botContainer) { botContainer.style.zIndex = '2147483645'; } if (smileliteContainer) { smileliteContainer.style.zIndex = '2147483645'; } } function updateModalProductTitle(title) { var productTitle = document.getElementById('modalProductTitle'); var productMobileTitle = document.getElementById('mobileModalProductTitle'); if (title.includes('Default Title')){ productTitle.innerHTML = `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus
`; productMobileTitle.innerHTML = `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus
`; return `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`; } else{ productTitle.innerHTML = title; productMobileTitle.innerHTML = title; return title; } } function updateModalInformation(selectedVariant){ var productVariants = [{"id":50221962428734,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"EB-195761603505","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus","public_title":null,"options":["Default Title"],"price":329413,"weight":0,"compare_at_price":346750,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]}] var productTitleBase = `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`; var productTitleDOM = document.getElementById('modalProductTitle'); var productMobileTitleDOM = document.getElementById('mobileModalProductTitle'); var productPriceDOM = document.getElementById('modalPrice'); var currency = `$`; var image = document.getElementById('offerImage'); var mobileImage = document.getElementById('productImageMobile'); productVariants.forEach(function (variant) { if (variant.id == selectedVariant){ var variantTitle = variant.title; var variantTitleArray = variantTitle.split(' / '); var newVariantTitle = ''; variantTitleArray.forEach(function (title, index){ newVariantTitle += `${title}
`; }); let newTitle = `${productTitleBase}
` + newVariantTitle; productTitleDOM.innerHTML = newTitle; productPriceDOM.innerHTML = currency + variant.price / 100.0; productTitle = updateModalProductTitle(newTitle); productTitleText = [...document.getElementById('modalProductTitle').children].map(child => child.textContent.trim()).join(' / '); priceMaxNumber = parseFloat(variant.price / 100.0).toFixed(2); if (variant?.featured_image?.src) { image.src = variant?.featured_image?.src; mobileImage.src = variant?.featured_image?.src; prodOfferImageSrc = variant?.featured_image?.src; } validateOfferAmount(); selectedSKU = variant.sku; } }); } function updateQuantity(quantity) { var offerQuantity = document.querySelector('#OfferInput[name="quantity"]'); offerQuantity.value = quantity; validateOfferAmount(); } function hidePriceForStores(){ var storesForHidingPrice = [8722284] if (storesForHidingPrice.includes(88562008382) ) { var modalPrice = document.getElementById('modalPrice'); modalPrice.style.display = 'none'; } } function validateOfferAmount() { const offerInput = document.querySelector('input[name="offerAmount"]'); const priceDOM = document.getElementById('modalPrice') const currency = `$`; const offer = offerInput.value; const offerRegex = /^\d+(\.\d{1,2})?$/; const useTotalAmount = true; const inputQuantity = document.querySelector('input[name="quantity"].offerInput'); const quantity = inputQuantity ? inputQuantity.value : 1; updatedPriceMaxNumber = useTotalAmount ? priceMaxNumber * quantity : priceMaxNumber; priceDOM.innerHTML = currency + formatPrice(updatedPriceMaxNumber); var issue; if (!offerRegex.test(offer)) { issue = 'Invalid Offer. Numbers and decimals only.' offerInput.setCustomValidity('Please enter only numbers and a decimal point'); } else if (parseFloat(offer) >= updatedPriceMaxNumber) { issue = 'Offer Cannot Exceed Price' offerInput.setCustomValidity('Please enter an offer less than the price'); } else if (parseFloat(offer) <= 0) { issue = 'Offer Must Be Above Zero' offerInput.setCustomValidity('Please enter an offer greater than 0'); } else { offerInput.setCustomValidity(''); } // update element with id modalPrice to inclue a percentage off const modalPrice = document.getElementById('modalPrice'); const percentageOff = (1 - (parseFloat(offer) / updatedPriceMaxNumber)) * 100; const priceTwoDecimal = formatPrice(updatedPriceMaxNumber); if (offer !== '' && offerRegex.test(offer) && parseFloat(offer) < updatedPriceMaxNumber && parseFloat(offer) > 0){ modalPrice.innerHTML = '$' + '' + '$' + formatPrice(offer) + ' (' + percentageOff.toFixed(2) + '% off)'; } else if (offer !== ''){ modalPrice.innerHTML = '$' + priceTwoDecimal + '
' + issue; } else { modalPrice.innerHTML = '$' + priceTwoDecimal + '
'; } } function formatPrice(price) { //if price is a string, convert it to a number price = parseFloat(price).toFixed(2); price = (price.endsWith('.00') ? parseInt(price, 10) : price).toString(); // add commas to the price if it is greater than 999 and remove nubmers after decimal if (price > 999) { return price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } else { return price; } } function showSpinner(){ var rightSide = document.getElementById('rightSide'); var leftSide = document.getElementById('leftSide'); rightSide.style.display = 'none'; leftSide.style.display = 'none'; var offerlySpinner = document.getElementById('offerlySpinner'); offerlySpinner.style.display = 'flex'; } function hideSpinner(){ var rightSide = document.getElementById('rightSide'); var leftSide = document.getElementById('leftSide'); var offerlySpinner = document.getElementById('offerlySpinner'); offerlySpinner.style.display = 'none'; rightSide.style.display = 'flex'; leftSide.style.display = 'flex'; } function updateModalState(header, content, buttonText, onClick, offerData){ var modal = document.getElementById('OfferlyModalDiv'); var modalHeader = document.getElementById('offerlyModalHeader'); var inputFields = document.getElementById('offerInputFields'); var rightSide = document.getElementById('rightSide'); var modalMessage = document.getElementById('modalTextInformation'); var submitOfferButton = document.getElementById('submitOfferButton'); var offerlyHeaderStoreLogo = document.getElementById('offerlyHeaderStoreLogo'); offerlyHeaderStoreLogo.style.display = 'none'; modalHeader.style.display = 'flex'; modalMessage.textContent = content; inputFields.style.display = 'none'; rightSide.style.display = 'none'; modalHeader.innerHTML = header; submitOfferButton.textContent = buttonText; submitOfferButton.onclick = function(){ mixpanel.track("Modal Button Clicked", { shop: `shop.aminco.co`, productTitle: `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`, buttonText: buttonText, } ); onClick() }; if (offerData?.discountCode && offerData?.showAddToCart) { submitOfferButton.style.display = 'none'; var modalAddToCartButton = document.getElementById('modalAddToCartButton'); updateOfferButton(modalAddToCartButton, findAddToCartButton()); var modalAddToCartButton = document.getElementById('modalAddToCartButton'); modalAddToCartButton.style.display = 'block'; modalAddToCartButton.onclick = function() { mixpanel.track("Modal Button Clicked", { shop: `shop.aminco.co`, productTitle: `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`, buttonText: 'Add to Cart', }); let formData = { 'items': [{ 'id': offerData.productVariantId, 'quantity': offerData.quantity, 'discount_code': offerData.discountCode, }] }; fetch(window.Shopify.routes.root + 'cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(response => //print the response to the console response.json() ) .then(data => { // get dicsountCodes from local storage var discountCodes = JSON.parse(localStorage.getItem('OfferlyCodes')) || {}; discountArray = []; for (const [key, value] of Object.entries(discountCodes)) { discountArray.push(value); } fetch(`/checkout?discount=${discountArray.join(',')}`) .then(response => response.json()) .then(data => { //navigate to the cart page window.location.href = '/cart'; }) .catch((error) => { console.error('Error:', error); window.location.href = '/cart'; }); }) .catch((error) => { console.error('Error:', error); window.location.href = '/cart'; }); }; } } function closeOfferlyModal(){ var modal = document.getElementById('OfferlyModalDiv'); modal.style.display = 'none'; mixpanel.track("Modal Closed", { shop: `shop.aminco.co`, productTitle: `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`, } ); if (Shopify.designMode) { localStorage.setItem('offerButtonClicked', 'false'); } } function backAndClearAmount(){ var offerInput = document.querySelector('input[name="offerAmount"]'); offerInput.value = ''; var modalMessage = document.getElementById('modalTextInformation'); modalMessage.textContent = ''; var inputFields = document.getElementById('offerInputFields'); var rightSide = document.getElementById('rightSide'); rightSide.style.display = 'flex'; inputFields.style.display = 'block'; var modalHeader = document.getElementById('offerlyModalHeader'); modalHeader.innerHTML = 'Make An Offer'; var submitOfferButton = document.getElementById('submitOfferButton'); var offerlyHeaderStoreLogo = document.getElementById('offerlyHeaderStoreLogo'); if (88562008382 == 50712314049) { modalHeader.display = 'none'; offerlyHeaderStoreLogo.style.display = 'flex'; } submitOfferButton.innerHTML = `Send Offer`; submitOfferButton.onclick = function(){ submitOffer(); }; } function checkoutButton(url){ window.location.href = url } function inactivityAlertOfferly(maxInactivityTime) { let timeOfferly; // Function to reset the timer const resetOfferlyTimer = () => { if (timeOfferly) { clearTimeout(timeOfferly); } if (!offerlyModalOpenedOnce) { // Only set the timer if modal hasn't been opened timeOfferly = setTimeout(showInactivityAlertOfferly, maxInactivityTime); } }; // Function to show an alert when the user has been inactive function showInactivityAlertOfferly() { var modal = document.getElementById('OfferlyModalDiv'); if (modal.style.display != 'flex' && !offerlyModalOpenedOnce) { clearTimeout(timeOfferly); // Clear the timeout to stop polling openModal(); } } // Events that reset the timer window.onload = resetOfferlyTimer; document.onmousemove = resetOfferlyTimer; document.onkeypress = resetOfferlyTimer; document.onclick = resetOfferlyTimer; document.onscroll = resetOfferlyTimer; }; if (Shopify.designMode) { var modal = document.getElementById('OfferlyModalDiv'); // get local storage value var offerButtonClicked = localStorage.getItem('offerButtonClicked'); if (modal && offerButtonClicked === 'true') { // if you have clicked the button to open the modal once keep it open. modal.style.display = 'flex'; } } function populateUserInformation() { // if the user is logged in populate user information var customerName = document.querySelector('input[name="customerName"]'); var customerEmail = document.querySelector('input[name="customerEmail"]'); var customerNameValue = `` var customerEmailValue = `` if (customerName && customerNameValue) { customerName.value = customerNameValue; } if (customerEmail && customerEmailValue) { customerEmail.value = customerEmailValue; } } function showButton(){ let showButton = false; switch (showButtonInformation.productSelectorType) { case 'all': showButton = true; break; case 'collections': collectionsString = collectionsString.slice(0, -1); collectionsString.split(',').forEach((collection) => { if (showButtonInformation.selectedProducts.includes(collection) && collection.length > 0) { showButton = true; } }); break; case 'products': if (showButtonInformation.selectedProducts.includes(productVariantId)) { showButton = true; } break; case 'none': showButton = false; break; default: showButton = false; } var soldOut = [...document.querySelectorAll('button')].find((button) => button.textContent.trim().toLowerCase().includes('sold out') ) var ignoreSoldOut = [67113091311, 78280556873, 58405322835, 20281681, 61769482425, 27527348276, 57320276143]; if (soldOut && !ignoreSoldOut.includes(88562008382)) { showButton = false; } //if showButton is false delete the modal from the page // if (!showButton){ // var modal = document.getElementById('OfferlyModalDiv'); // if (modal){ // modal.remove(); // } // } //exclude this collection if ( 88562008382 == 86812131607 ){ var collectionsToExclude = ['477039395095']; collectionsString = collectionsString.slice(0, -1); collectionsString.split(',').forEach((collection) => { if (collectionsToExclude.includes(collection) && collection.length > 0) { showButton = false; } }); } return showButton; } function validateEmail(email) { var re = /\S+@\S+\.\S+/; return re.test(email); } function fixColorOfTexts(){ var labels = document.querySelectorAll('.offerly-input-label'); var Title = document.getElementById('offerlyModalHeader'); var modalPrice = document.getElementById('modalPrice'); var productTitle = document.getElementById('productTitleOfferModal'); var titleColor = rgbToHex(window.getComputedStyle(Title).color); var productTitleColor = rgbToHex(window.getComputedStyle(productTitle).color); var priceColor = rgbToHex(window.getComputedStyle(modalPrice).color); var modalColor = rgbToHex(window.getComputedStyle(document.querySelector('.offerly-modal-content')).backgroundColor); //if the color of the title and the background of the modal are the same //change the color of the title to black if (titleColor === modalColor){ Title.style.color = 'black'; } //if the color of the price and the background of the modal are the same //change the color of the price to black if (priceColor === modalColor){ modalPrice.style.color = 'black'; } //if the color of the product title and the background of the modal are the same //change the color of the product title to black if (productTitleColor === modalColor){ productTitle.style.color = 'black'; } //if the color of the labels and the background of the modal are the same //change the color of the labels to black labels.forEach(function(label){ var labelColor = rgbToHex(window.getComputedStyle(label).color); //get modal background color by the class offerly-modal-content //compare the color of the label and the background of the modal //if they are similar change the color of the label to black if (labelColor === modalColor){ // if the color is white change it to black if (labelColor === '#ffffff'){ label.style.color = 'black'; } else { label.style.color = 'white'; } } }); }; function rgbToHex(rgb) { // This regex splits the RGB values into an array let arr = rgb.match(/\d+/g); // Convert each RGB value to a two-digit hexadecimal value // if there is an opacity value, ignore it let hex = arr.map((val, index) => { if (index < 3) { return ('0' + parseInt(val).toString(16)).slice(-2); } }).join(''); return '#' + hex; } function submitOffer(){ //validate productVaraintID if (productVariantId.toString().match(/[^0-9]/g)){ var productVariants = [{"id":50221962428734,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"EB-195761603505","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus","public_title":null,"options":["Default Title"],"price":329413,"weight":0,"compare_at_price":346750,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]}] productVariants.forEach(function (variant) { if (productTitleText.includes(variant.title) || productTitleText.includes(variant.name)){ productVariantId = variant.id; } }); } var inputs = document.querySelectorAll('.offerInput'); var data = {}; var isValid = true; inputs.forEach(function (input) { if (input.style.display === 'none'){ return; } else if (input.name == 'termsCheckboxName' && !input.checked && true) { isValid = false; input.classList.add('offerInputError'); } else if (input.value.trim() === '' && input.name=='additionalTextField' && false) { isValid = false; input.classList.add('offerInputError'); } else if (input.value.trim() === '' && input.name=='customerPhone' && false) { isValid = false; input.classList.add('offerInputError'); } else if (input.value.trim() === '' && input.name!='additionalTextField' && input.name!='customerPhone') { isValid = false; input.classList.add('offerInputError'); } else if (input.name === 'offerAmount' && parseFloat(input.value) >= updatedPriceMaxNumber) { isValid = false; input.classList.add('offerInputError'); } else if (input.name === 'offerAmount' && parseFloat(input.value) <= 0) { isValid = false; input.classList.add('offerInputError'); } else if(input.name == 'offerAmount' && !input.value.match(/^\d+(\.\d{1,2})?$/)){ isValid = false; input.classList.add('offerInputError'); } else if (input.name == 'customerEmail' && !validateEmail(input.value)) { isValid = false; input.classList.add('offerInputError'); } else { input.classList.remove('offerInputError'); } data[input.name] = input.value; }); delete data['termsCheckboxName']; data['quantity'] = data['quantity'] ? parseInt(data['quantity']) : 1; data['productVariantId'] = productVariantId.toString(); data['productPriceMax'] = priceMaxNumber; data['productTitle'] = productTitleText; data['offerAmount'] = true ? (parseFloat(data['offerAmount']) / parseInt(data['quantity'])).toFixed(2) : data['offerAmount'] ; data['productLink'] = "/products/macgregor-cranes-part-no-1098378-hydraulic-valve-block-complete-new-surplus" + "?variant=" + productVariantId; data['currency'] = currency; data['currencySymbol'] = currencySymbol data['variantSKU'] = selectedSKU?.toString(); data['productID'] = productID?.toString(); data['productVendor'] = productVendor?.toString(); data['imageSrc'] = prodOfferImageSrc ? prodOfferImageSrc : document.getElementById('offerImage')?.src; var additionalTextInput = document.querySelector('textarea[name="additionalTextField"]'); if (additionalTextInput) { data['additionalTextField'] = additionalTextInput.value; } if (!isValid) { return; } mixpanel.track("Offer Submitted", { shop: `shop.aminco.co`, productTitle: `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`, offerAmount: data['offerAmount'], } ); //disable the button var submitOfferButton = document.getElementById('submitOfferButton'); submitOfferButton.disabled = true; fetch('/apps/offerly-proxy/app/acceptOffers?', { method: 'POST', body: JSON.stringify(data), }) .then((response) => response.json()) .then((data) => { //enable the button submitOfferButton.disabled = false; var delayForAutoResponse = delayAutoMessage ? autoResponseDelay : 0; if (data.offerStatus === 'Pending'){ if (88562008382 == 50712314049 ){ updateModalState("Thank you for contacting Lougher", "A member of our sales team will get back to you shortly.", "Close", closeOfferlyModal); } if (88562008382 == 58351059100){ updateModalState("Thank you for your offer!", "You should see a response within 2-10 minutes. If you do not see an email from us after a few hours, please check your junk/spam folder.", "Close", closeOfferlyModal); } else{ updateModalState("Thank You!", "We will get back to you shortly.", "Close", closeOfferlyModal); } mixpanel.track("Offer Pending", { shop: `shop.aminco.co`, productTitle: `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`, offerAmount: data['offerAmount'], }); } if (data.offerStatus === 'Auto-Declined'){ mixpanel.track("Offer Auto-Declined", { shop: `shop.aminco.co`, productTitle: `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`, offerAmount: data['offerAmount'], }); showSpinner(); setTimeout(function(){ hideSpinner(); updateModalState("Try Again!", "Your offer was too low. Please try again!", "Try Again", backAndClearAmount ); }, delayForAutoResponse * 1000); } if (data.offerStatus === 'Auto-Accepted'){ mixpanel.track("Offer Auto-Accepted", { shop: `shop.aminco.co`, productTitle: `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`, offerAmount: data['offerAmount'], }); //get the discount code from the local storage var storedCodes = localStorage.getItem('OfferlyCodes'); var storedCodesObject = storedCodes ? JSON.parse(storedCodes) : {}; //update the discount code for the productVariantId storedCodesObject[data.productVariantId] = data?.discountCode; //store the discount code in the local storage as a tuple of productVarinatId and discountCode but make it queryable by the 'OfferlyCodes' //also make sure to replace the discount code if it already exists for that productVariantId localStorage.setItem('OfferlyCodes', JSON.stringify(storedCodesObject)); showSpinner(); setTimeout(function(){ hideSpinner(); updateModalState("Congratulations!", "Great news! Your offer was accepted. Click below to proceed to checkout with your discount applied!", "Checkout", function(){checkoutButton(data.checkoutLink)} , data ) }, delayForAutoResponse * 1000); } if (data.offerStatus === 'Auto-Countered'){ mixpanel.track("Offer Auto-Countered", { shop: `shop.aminco.co`, productTitle: `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`, offerAmount: data['offerAmount'], }); //get the discount code from the local storage var storedCodes = localStorage.getItem('OfferlyCodes'); var storedCodesObject = storedCodes ? JSON.parse(storedCodes) : {}; //update the discount code for the productVariantId storedCodesObject[data.productVariantId] = data?.discountCode; //store the discount code in the local storage as a tuple of productVarinatId and discountCode but make it queryable by the 'OfferlyCodes' //also make sure to replace the discount code if it already exists for that productVariantId localStorage.setItem('OfferlyCodes', JSON.stringify(storedCodesObject)); // wait 10 seconds before updating modal showSpinner(); setTimeout(function(){ hideSpinner(); updateModalState("Countered!", `Your offer was countered to ${data.currencySymbol}${parseFloat(data.counterAmount).toFixed(2)} ${data.currency}. Click below to proceed to checkout with your discount applied!`, "Checkout", function(){checkoutButton(data.checkoutLink)}, data) }, delayForAutoResponse * 1000); } }) .catch((error) => { // Handle any errors console.error(error); mixpanel.track("Offer Error", { shop: `shop.aminco.co`, productTitle: `MacGREGOR Cranes Part No.: 1098378 Hydraulic valve block complete - New Surplus`, offerAmount: data['offerAmount'], } ); updateModalState("Error Occurred!", "An error occurred while submitting your offer. Please try again.", "Try Again", backAndClearAmount); }); }