www.harfington.com
Open in
urlscan Pro
23.227.38.74
Public Scan
Submitted URL: http://www.harfington.com/
Effective URL: https://www.harfington.com/
Submission: On December 11 via api from US — Scanned from CA
Effective URL: https://www.harfington.com/
Submission: On December 11 via api from US — Scanned from CA
Form analysis
13 forms found in the DOMPOST /localization
<form action="/localization" method="POST"><input name="_method" type="hidden" value="PUT"><input name="source" type="hidden" value="geolocation_recommendation"><input name="return_to" type="hidden" value="/"><input name="country_code" type="hidden"
value="CA"><button class="recommendation-modal__close-button" type="submit"><svg aria-label="Dismiss" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" style="height: 1em; width: 1em;">
<path d="M11.414 10l6.293-6.293a.999.999 0 1 0-1.414-1.414L10 8.586 3.707 2.293a.999.999 0 1 0-1.414 1.414L8.586 10l-6.293 6.293a.999.999 0 1 0 1.414 1.414L10 11.414l6.293 6.293a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414L11.414 10z"
fill="#333333"></path>
</svg></button></form>
POST /localization
<form action="/localization" method="POST" class="recommendation-modal__form"><input name="_method" type="hidden" value="PUT"><input name="source" type="hidden" value="geolocation_recommendation"><input name="return_to" type="hidden" value="/"><input
name="country_code" type="hidden" value="CA"><button class="recommendation-modal__button" type="submit" style="background-color: rgb(14, 85, 51); color: rgb(255, 255, 255);">Continue</button></form>
POST /cart
<form id="CartDrawerForm" action="/cart" method="post" novalidate="" class="drawer__contents">
<div class="drawer__fixed-header">
<div class="drawer__header appear-animation appear-delay-1">
<div class="h2 drawer__title">Cart </div>
<div class="drawer__close">
<button type="button" class="drawer__close-button js-drawer-close ">
<svg class="icon" aria-hidden="true" style="width: 20px; height: 20px;">
<use xlink:href="#pc-close"></use>
</svg>
<span class="icon__fallback-text">Close cart</span>
</button>
</div>
</div>
</div>
<div class="drawer__inner">
<div class="drawer__scrollable">
<div data-products="" class="appear-animation appear-delay-2">
<div class="cart__items" data-count="0" data-cart-subtotal="0">
</div>
</div>
</div>
<div class="drawer__footer appear-animation appear-delay-4">
<div class="drawer-shipping">
<svg class="icon" style="width: 32px; height: 32px;">
<use xlink:href="#m-shipping"></use>
</svg>
<div data-shipping="">Buy <span> $10.00</span> more to enjoy <strong>Free Standard Shipping!</strong></div>
</div>
<div class="drawer__footer-inner">
<div data-discounts="">
<div class="cart__discounts cart__item-sub cart__item-row hide">
<div>Discounts</div>
<div>
</div>
</div>
</div>
<div class="cart__item-sub cart__item-row">
<div class="ajaxcart__subtotal">Subtotal</div>
<div data-subtotal="">$0.00</div>
</div>
<div class="cart__item-row text-center hidden">
<small> Shipping, taxes, and discount codes calculated at checkout.<br>
</small>
</div>
<div class="cart__checkout-wrapper">
<button type="submit" name="checkout" style="display: none;" data-terms-required="false" class="btn cart__checkout right-checkout"> Check out </button>
<button type="button" name="checkout" onclick="openLogin()" data-terms-required="false" class="btn cart__checkout"> Check out </button>
</div>
<div class="cart__coupon-text"> Apply a Coupon Code on the next step. </div>
</div>
</div>
</div>
<div class="drawer__cart-empty appear-animation appear-delay-2">
<div class="drawer__scrollable"> Your cart is currently empty. </div>
</div>
</form>
GET /search
<form action="/search" method="get" role="search" id="HeaderSearchForm" class="site-header__search-form js-recent-hot-search-form js-search-header recent-hot-search-form-fake" autocomplete="off">
<input type="hidden" name="type" value="product,article,page,collection">
<input type="hidden" name="options[prefix]" value="last">
<input type="search" style="border: 0;font-size: 0.24rem !important;font-family: 'OpenSans';border-radius: 4px 0 0 4px;color: #222;" name="q" placeholder="Enter keyword, item, model or part #" value="" class="site-header__search-input"
aria-label="What are you looking for?" autocomplete="off">
</form>
GET https://www.harfington.com/search
<form action="https://www.harfington.com/search" method="get" role="search" id="HeaderSearchForm" class="site-header__search-form js-recent-hot-search-form">
<input type="hidden" name="type" value="product,article,page,collection">
<input type="hidden" name="options[prefix]" value="last">
<button type="button" id="SearchClose" class="js-search-header-close text-link site-header__search-btn site-header__search-btn--close">
<svg class="icon svg-icon icon-close" onclick="searchCloseBtn()" aria-hidden="true" focusable="false" role="presentation">
<use xlink:href="#m-return"></use>
</svg>
<span class="icon__fallback-text">"Close (esc)"</span>
</button>
<div class="site-header__search-box">
<input type="search" name="q" value="" class="site-header__search-input" aria-label="What are you looking for?" autocomplete="off"><button class="recent-hot-search-clear" type="button">
<svg class="icon svg-icon">
<use xlink:href="#pc-sign-close"></use>
</svg>
</button>
<div class="recent-hot-search-placeholder" style="opacity: 1;">
<p style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;width:100%;margin: 0;padding: 0;"> Enter the keyword, get DIY & repair parts </p>
</div>
<div class="recent-hot-search recent-hot-search--m">
<div class="recent-hot-search-item recent-hot-search-item--recent">
<div class="recent-hot-search-header">
<svg class="icon svg-icon recent-hot-search-icon">
<use xlink:href="#a-pc-recentsearches"></use>
</svg>
<span class="recent-hot-search-title">Recent Searches</span>
<button class="recent-hot-search-trash" type="button">
<svg class="icon svg-icon">
<use xlink:href="#a-pc-searchdelete"></use>
</svg>
</button>
</div>
<div class="recent-hot-search-body recent-hot-search-body--recent"></div>
</div>
<div class="recent-hot-search-item recent-hot-search-item-hot">
<div class="recent-hot-search-header">
<svg class="icon svg-icon recent-hot-search-icon iconpark-icon">
<use href="#HotSearches"></use>
</svg>
<span class="recent-hot-search-title">Hot Searches</span>
</div>
<div class="recent-hot-search-body">
<a href="https://www.harfington.com/collections/nuts-c-300650">Barrel Nut</a><a href="https://www.harfington.com/collections/frameless-shower-door-seal-strips-c-300821">Door Sweep</a><a href="https://www.harfington.com/collections/sanding-abrasives-c-300017">Sanding Disc</a><a href="https://www.harfington.com/collections/propeller-adapters-c-300156">AAA to AA Adapter</a><a href="https://www.harfington.com/collections/brackets-c-301062">Chandelier Mounting Bracket</a><a href="https://www.harfington.com/collections/washers-c-300805">Flat Rubber Washers</a><a href="https://www.harfington.com/collections/phillips-bits-c-300874">Screwdriver Bits</a><a href="https://www.harfington.com/collections/hinges-c-300939">Stainless Steel Barrel Hinges</a><a href="https://www.harfington.com/collections/catches-c-300928">Magnetic Cabinet Catch</a><a href="https://www.harfington.com/collections/screws-bolts-c-300712">Button Head Hex Screw</a>
</div>
</div>
</div>
</div>
<button type="submit" class="text-link site-header__search-btn site-header__search-btn--submit">
<svg class="icon svg-icon icon-search" aria-hidden="true" focusable="false" role="presentation">
<use xlink:href="#m-search"></use>
</svg>
<span class="icon__fallback-text">Search</span>
</button>
</form>
GET /search
<form action="/search" method="get" role="search" id="HeaderSearchForm" class="site-header__search-form js-recent-hot-search-form js-search-header recent-hot-search-form-fake">
<input type="hidden" name="type" value="product,article,page,collection">
<input type="hidden" name="options[prefix]" value="last">
<input type="search" style="border: 0;font-size: 0.24rem !important;font-family: 'OpenSans';border-radius: 4px 0 0 4px;color: #222;" name="q" placeholder="Enter keyword, item, model or part #" value="" class="site-header__search-input"
aria-label="What are you looking for?" autocomplete="off">
</form>
GET /search
<form action="/search" method="get" role="search" id="HeaderSearchForm" class="site-header__search-form js-recent-hot-search-form">
<input type="hidden" name="type" value="product,article,page,collection">
<input type="hidden" name="options[prefix]" value="last">
<div class="site-header__search-box">
<input type="search" name="q" value="" class="site-header__search-input" aria-label="What are you looking for?" placeholder="" autocomplete="off"><button class="recent-hot-search-clear" type="button">
<svg class="icon svg-icon">
<use xlink:href="#pc-sign-close"></use>
</svg>
</button>
<div class="recent-hot-search-placeholder" style="opacity: 1;">
<p style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;width:100%;margin: 0;padding: 0;"> Enter the keyword, get DIY & repair parts </p>
</div>
<div class="recent-hot-search">
<div class="recent-hot-search-item recent-hot-search-item--recent">
<div class="recent-hot-search-header">
<svg class="icon svg-icon recent-hot-search-icon">
<use xlink:href="#a-pc-recentsearches"></use>
</svg>
<span class="recent-hot-search-title">Recent Searches</span>
<button class="recent-hot-search-trash" type="button">
<svg class="icon svg-icon">
<use xlink:href="#a-pc-searchdelete"></use>
</svg>
</button>
</div>
<div class="recent-hot-search-body recent-hot-search-body--recent"></div>
</div>
<div class="recent-hot-search-item recent-hot-search-item-hot">
<div class="recent-hot-search-header">
<svg class="icon svg-icon recent-hot-search-icon iconpark-icon">
<use href="#HotSearches"></use>
</svg>
<span class="recent-hot-search-title">Hot Searches</span>
</div>
<div class="recent-hot-search-body">
<a href="https://www.harfington.com/collections/nuts-c-300650">Barrel Nut</a><a href="https://www.harfington.com/collections/frameless-shower-door-seal-strips-c-300821">Door Sweep</a><a href="https://www.harfington.com/collections/sanding-abrasives-c-300017">Sanding Disc</a><a href="https://www.harfington.com/collections/propeller-adapters-c-300156">AAA to AA Adapter</a><a href="https://www.harfington.com/collections/brackets-c-301062">Chandelier Mounting Bracket</a><a href="https://www.harfington.com/collections/washers-c-300805">Flat Rubber Washers</a><a href="https://www.harfington.com/collections/phillips-bits-c-300874">Screwdriver Bits</a><a href="https://www.harfington.com/collections/hinges-c-300939">Stainless Steel Barrel Hinges</a><a href="https://www.harfington.com/collections/catches-c-300928">Magnetic Cabinet Catch</a><a href="https://www.harfington.com/collections/screws-bolts-c-300712">Button Head Hex Screw</a>
</div>
</div>
</div>
</div>
<button type="submit" class="text-link site-header__search-btn site-header__search-btn--submit flex-center-base">
<svg class="iconpark-icon text-24" style="margin-right: 0.02rem;">
<use href="#pcsearch"></use>
</svg>
<span>Search</span>
</button>
</form>
<form class="inquiry-form">
<div class="inquiry-form-item inquiry-form-item-validate">
<div class="inquiry-form-wrap">
<div class="inquiry-form-item-label">
<span class="inquiry-form-item-label-star">*</span>
<span class="inquiry-form-item-label-title">Your Product Needs</span>
</div>
<div class="inquiry-form-item-control">
<div class="inquiry-form-item-control-input">
<div class="inquiry-form-item-control-input-content ">
<input name="product_name" class="inquiry-input inquiry-form-control inquiry-input-empty" placeholder="Product Name / ID / Link / Features / Others" data-max-length="500" data-show-count="true" data-show-clear="true" autocomplete="off"
data-rules="[{
regexp: '^\\s*\\S.*\\s*$',
msg: 'Please enter your product needs'
}]">
</div>
<div class="inquiry-input-clear">
<svg class="icon inquiry-input-close" aria-hidden="true">
<use xlink:href="#m-sign-close"></use>
</svg>
</div>
</div>
<div class="inquiry-form-item-explain inquiry-form-item-explain-error"></div>
</div>
</div>
</div>
<div class="inquiry-form-item inquiry-form-item-validate">
<div class="inquiry-form-wrap">
<div class="inquiry-form-item-label">
<span class="inquiry-form-item-label-star">*</span>
<span class="inquiry-form-item-label-title">Quantity(Each)</span>
</div>
<div class="inquiry-form-item-control">
<div class="inquiry-form-item-control-input">
<div class="inquiry-form-item-control-input-content">
<input name="product_quantity" class="inquiry-input inquiry-form-control inquiry-input-empty" placeholder="Quantity(Each)" data-show-clear="true" autocomplete="off"
data-force="(Math.abs(parseInt(x.slice(0,8))) || '').toString().slice(0,8)" data-max-length="8" data-rules="[{
regexp: '^\\s*\\S.*\\s*$',
msg: 'Please enter a valid quantity'
}]" type="text">
</div>
<div class="inquiry-input-clear">
<svg class="icon inquiry-input-close" aria-hidden="true">
<use xlink:href="#m-sign-close"></use>
</svg>
</div>
</div>
<div class="inquiry-form-item-explain inquiry-form-item-explain-error"></div>
</div>
</div>
</div>
<div class="inquiry-form-item inquiry-form-item-validate">
<div class="inquiry-form-wrap">
<div class="inquiry-form-item-label">
<span class="inquiry-form-item-label-star">*</span>
<span class="inquiry-form-item-label-title">Email Address</span>
</div>
<div class="inquiry-form-item-control">
<div class="inquiry-form-item-control-input">
<div class="inquiry-form-item-control-input-content">
<input name="email" value="" class="inquiry-input inquiry-form-control inquiry-input-empty" placeholder="Email Address" autocomplete="off" type="text" data-show-clear="true" data-rules="[{
regexp: '^\\s*\\S.*\\s*$',
msg: 'Please enter a valid email'
}, {
regexp: '^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$',
msg: 'Please enter a valid email'
}]">
</div>
<div class="inquiry-input-clear">
<svg class="icon inquiry-input-close" aria-hidden="true">
<use xlink:href="#m-sign-close"></use>
</svg>
</div>
</div>
<div class="inquiry-form-item-explain inquiry-form-item-explain-error"></div>
</div>
</div>
</div>
<div class="inquiry-form-item inquiry-form-item-validate">
<div class="inquiry-form-wrap">
<div class="inquiry-form-item-label">
<span class="inquiry-form-item-label-title">Customer Name</span>
</div>
<div class="inquiry-form-item-control">
<div class="inquiry-form-item-control-input">
<div class="inquiry-form-item-control-input-content">
<input name="customer_name" class="inquiry-input inquiry-form-control inquiry-input-empty" placeholder="Customer Name" autocomplete="off" type="text" data-show-clear="true" data-max-length="80">
</div>
<div class="inquiry-input-clear">
<svg class="icon inquiry-input-close" aria-hidden="true">
<use xlink:href="#m-sign-close"></use>
</svg>
</div>
</div>
<div class="inquiry-form-item-explain inquiry-form-item-explain-error"></div>
</div>
</div>
</div>
<div class="inquiry-form-item inquiry-form-item-validate">
<div class="inquiry-form-item-label">
<span class="inquiry-form-item-label-title">Expected Arrival Time</span>
</div>
<div class="inquiry-form-item-control">
<div class="inquiry-form-item-control-input">
<div class="inquiry-form-item-control-input-content">
<input name="arrival_time" autocomplete="off" class="inquiry-input inquiry-form-control inquiry-input-empty" placeholder="Expected Arrival Time" data-show-clear="true" type="date">
</div>
<div class="inquiry-input-clear inquiry-input-date-clear">
<svg class="icon inquiry-input-close" aria-hidden="true">
<use xlink:href="#m-sign-close"></use>
</svg>
</div>
</div>
<div class="inquiry-form-item-explain inquiry-form-item-explain-error"></div>
</div>
</div>
<div class="inquiry-form-item">
<div class="inquiry-form-item-label">
<span class="inquiry-form-item-label-title">Customer Note</span>
</div>
<div class="inquiry-form-item-control">
<div class="inquiry-form-item-control-input">
<div class="inquiry-form-item-control-input-content">
<input name="customer_note" class="inquiry-input inquiry-form-control inquiry-input-empty" placeholder="Customer note" rows="4" autocomplete="off" data-max-length="990" data-show-count="true" data-show-clear="true">
</div>
<div class="inquiry-input-clear">
<svg class="icon inquiry-input-close" aria-hidden="true">
<use xlink:href="#m-sign-close"></use>
</svg>
</div>
</div>
<div class="inquiry-form-item-explain inquiry-form-item-explain-error"></div>
</div>
</div>
<div class="inquiry-form-item">
<div class="w-138px"></div>
<div class="inquiry-form-item-control">
<div class="inquiry-form-item-control-input">
<div class="inquiry-form-item-control-input-content">
<button class="inquiry-button inquiry-form-control" type="submit">
<span>Submit</span>
</button>
</div>
</div>
<div class="inquiry-share">
<div class="inquiry-line"> Show more about <a href="https://www.harfington.com/pages/wholesale-program?utmid=wholesale" class="line-text">Wholesale Program</a>
</div>
</div>
</div>
</div>
<input type="hidden" name="shop_id" value="">
<input type="hidden" name="eq">
</form>
POST /contact#newsletter-footer
<form method="post" action="/contact#newsletter-footer" id="newsletter-footer" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer"><input type="hidden" name="utf8" value="✓">
<div class="footer-subscribe-tips" data-tips-type="hide"></div>
<label for="Email-" class="hidden-label">Enter your email</label>
<input type="hidden" name="contact[tags]" value="prospect,newsletter">
<input type="hidden" name="contact[context]" value="footer">
<div class="footer__newsletter">
<input type="email" value="" placeholder="Email address" name="contact[email]" id="Email-" class="footer__newsletter-input" autocorrect="off" autocapitalize="off">
<button type="submit" class="footer__newsletter-btn" name="commit" aria-label="Subscribe"> Subscribe </button>
</div>
<style>
.footer-subscribe-tips[data-tips-type="hide"] {
display: none;
}
</style>
<div class="footer-find-us">
<div class="footer-find-us-title">find us on</div>
<div class="footer-find-us-icon">
<a href="https://www.facebook.com/HarfingtonOfficial" target="_blank">
<svg class="iconpark-icon icon">
<use href="#facebookblack"></use>
</svg>
</a>
<a href="https://www.instagram.com/harfington_official" target="_blank">
<svg class="iconpark-icon icon">
<use href="#insblack"></use>
</svg>
</a>
<a href="https://twitter.com/harfington_us" target="_blank">
<svg class="iconpark-icon icon">
<use href="#twitterblack"></use>
</svg>
</a>
<a href="https://www.youtube.com/channel/UCqchip6pP4nEhatcXJhwUEA" target="_blank">
<svg class="iconpark-icon icon">
<use href="#youtubeblack"></use>
</svg>
</a>
</div>
</div>
</form>
POST /contact#newsletter-footer
<form method="post" action="/contact#newsletter-footer" id="newsletter-footer" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer"><input type="hidden" name="utf8" value="✓">
<div class="footer-subscribe-tips" data-tips-type="hide"></div>
<label for="Email-" class="hidden-label">Enter your email</label>
<input type="hidden" name="contact[tags]" value="prospect,newsletter">
<input type="hidden" name="contact[context]" value="footer">
<div class="footer__newsletter">
<input type="email" value="" placeholder="Email address" name="contact[email]" id="Email-" class="footer__newsletter-input" autocorrect="off" autocapitalize="off">
<button type="submit" class="footer__newsletter-btn" name="commit" aria-label="Subscribe"> Subscribe </button>
</div>
<style>
.footer-subscribe-tips[data-tips-type="hide"] {
display: none;
}
</style>
<div class="footer-find-us">
<div class="footer-find-us-title">find us on</div>
<div class="footer-find-us-icon">
<a href="https://www.facebook.com/HarfingtonOfficial" target="_blank">
<svg class="iconpark-icon icon">
<use href="#facebookblack"></use>
</svg>
</a>
<a href="https://www.instagram.com/harfington_official" target="_blank">
<svg class="iconpark-icon icon">
<use href="#insblack"></use>
</svg>
</a>
<a href="https://twitter.com/harfington_us" target="_blank">
<svg class="iconpark-icon icon">
<use href="#twitterblack"></use>
</svg>
</a>
<a href="https://www.youtube.com/channel/UCqchip6pP4nEhatcXJhwUEA" target="_blank">
<svg class="iconpark-icon icon">
<use href="#youtubeblack"></use>
</svg>
</a>
</div>
</div>
</form>
POST /account/login
<form method="post" action="/account/login" id="customer_login" accept-charset="UTF-8" data-login-with-shop-sign-in="true"><input type="hidden" name="form_type" value="customer_login"><input type="hidden" name="utf8" value="✓">
<div class="ps-warp">
<input type="email" name="customer[email]" id="CustomerEmail" placeholder="Email" class="input-full" autocorrect="off" autocapitalize="off" autofocus="" onfocus="emailFocus('#CustomerEmail','.clear-btn1')" onblur="inputleave('.clear-btn1')"
oninput="emailFocus('#CustomerEmail','.clear-btn1')">
<div class="ps-show clear-btn1">
<img class="lazyload" data-src="https://cdn.shopify.com/s/files/1/0595/2477/6095/files/close-icon.png" alt="Clear All" onclick="isEyeOpen('#clear-eye','#CustomerEmail')">
</div>
</div>
<div class="email-invalid-login p-invalid">Email is required or invalid.</div>
<div class="ps-warp">
<input type="password" name="customer[password]" id="CustomerPassword" placeholder="Password" class="input-full">
<div class="ps-show">
<img class="lazyload" data-src="https://cdn.shopify.com/s/files/1/0595/2477/6095/files/close-eye.png" alt="Show Password" id="ps-showCustomer" onclick="hideShowPswCustomer() ">
</div>
</div>
<div class="password-invalid-login p-invalid">Please enter 6-32 characters as the password.</div>
<div class="password-invalid-login2 p-invalid">Your password cannot contain spaces.</div>
<!-- 忘记密码 -->
<div class="grid">
<div class="grid__item one-half">
</div>
<div class="text-right grid__item one-half">
<small class="label-info">
<a class="pc-block" href="#recover" id="RecoverPassword">
<!-- Forgot password? -->
Forgot_password?
</a>
<span class="phone-block" onclick="forgetPassword()">Forgot_password?</span>
</small>
</div>
</div>
<!-- 登录 -->
<div class="wrong-tip-login"></div>
<button type="submit" class="btn btn--full login-ref"> Sign In </button>
<div class="submit-hr">
<div class="sh-line"></div>
<div class="sh-text">Quick Access With</div>
<div class="sh-line"></div>
</div>
<style>
.thirdpart-login-wrap {
display: flex;
justify-content: center;
}
.thirdpart-login-wrap .facebook-new-icon,
.thirdpart-login-wrap .g-signin2,
.google-login-btn {
/* background-image: url('https://cdn.shopify.com/s/files/1/0593/8623/3013/files/s-facebook.png?v=1632637351'); */
/* background-image: url('https://cdn.shopify.com/s/files/1/0593/8623/3013/files/s-google.png?v=1632637351'); */
margin: 15px;
width: 40px !important;
height: 40px !important;
background-size: cover;
cursor: pointer;
}
.thirdpart-login-wrap .abcRioButton {
width: 100% !important;
height: 100% !important;
background-color: transparent;
box-shadow: none;
}
#no-history-login,
#history-login {
display: none;
}
.google-login-btn {
/* background-image: url('https://cdn.shopify.com/s/files/1/0593/8623/3013/files/s-google.png?v=1632637351'); */
}
.thirdpart-login-wrap .facebook-new-icon {
/* background-image: url('https://cdn.shopify.com/s/files/1/0593/8623/3013/files/s-facebook.png?v=1632637351'); */
}
.thirdpart-login-wrap .svg-m-signin {
width: 100%;
height: 100%;
}
.thirdpart-login-wrap .svg-m-signin-google {
position: absolute;
left: 0;
top: 0;
}
.thirdpart-login-btn .g-signin2 {
margin: 0 !important;
}
.thirdpart-login-wrap .abcRioButtonContentWrapper {
display: none;
}
.thirdpart-login-wrap .no-login-facebook,
.thirdpart-login-wrap .login-facebook,
.thirdpart-login-wrap .no-login-google-wrap,
.thirdpart-login-wrap .login-google {
display: none;
}
/* .thirdpart-login-wrap .g-signin2 {
background-image: url('https://cdn.shopify.com/s/files/1/0593/8623/3013/files/s-google.png?v=1632637351');
border-radius: 0;
box-shadow: none;
} */
.no-login-google-wrap {
position: relative;
width: 40px;
height: 40px;
margin: 15px;
}
.no-login-google-wrap .g-signin2 {
margin: 0 !important;
}
.thirdpart-login-wrap .g-signin2 {
/* background-image: url('https://cdn.shopify.com/s/files/1/0593/8623/3013/files/s-google.png?v=1632637351'); */
border-radius: 0;
box-shadow: none;
}
.shopify-common-dialog {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(0, 0, 0, 0.4);
z-index: 1003;
pointer-events: auto;
overflow: hidden;
transition: .3s cubic-bezier(.25, .8, .5, 1), z-index 1ms;
justify-content: center;
align-items: center;
}
.shopify-common-dialog .common-dialog-content {
position: relative;
width: 500px;
min-height: 400px;
background: #ffffff;
border-radius: 4px;
}
.shopify-common-dialog p {
margin: 0 0 24px;
color: #999999;
font-size: 14px;
}
.shopify-common-dialog .btn--full {
background: #0E5533;
color: #fff;
border-radius: 4px;
font-size: 18px;
letter-spacing: 0;
font-family: "OpenSans";
margin-bottom: 24px;
height: 48px;
line-height: 48px;
padding: 0;
}
.shopify-common-dialog .btn:not(.btn--secondary):not(.btn--tertiary):not(.btn--inverse):not(.btn--body):not(.btn--static):hover {
background: #0E5533;
}
.shopify-common-dialog .common-dialog-header {
position: relative;
padding-top: 30px;
width: 100%;
background: #ffffff;
border-radius: 4px;
}
.shopify-common-dialog .common-dialog-title {
display: flex;
justify-content: center;
width: 100%;
}
.shopify-common-dialog .common-dialog-title .m-logo {
width: 200px;
height: 45px;
}
.shopify-common-dialog .common-dialog-close {
position: absolute;
width: 20px;
height: 20px;
cursor: pointer;
top: 24px;
right: 24px;
}
.shopify-common-dialog .common-dialog-body {
display: flex;
align-items: center;
flex-direction: column;
padding: 30px 40px 30px;
width: 100%;
background: #FFFFFF;
line-height: 36px;
border-radius: 4px;
}
.shopify-common-dialog .account-name {
margin-bottom: 30px !important;
max-width: 100%;
font-size: 24px;
font-weight: 800;
color: #000000 !important;
text-align: center;
word-wrap: break-word;
word-break: break-all;
}
.shopify-common-dialog .account-tip {
margin-bottom: 9px !important;
color: #999999 !important;
font-size: 16px;
}
.shopify-common-dialog .thirdpart-login-btn {
margin-bottom: 30px;
}
.shopify-common-dialog .chose-other-tip,
.shopify-common-dialog .chose-other-btn {
margin-bottom: 0 !important;
font-size: 16px;
color: #000000 !important;
font-weight: 700;
}
.shopify-common-dialog .chose-other-tip {
margin-bottom: 18px !important;
}
.shopify-common-dialog .chose-other-btn {
font-size: 14px;
font-weight: normal;
}
.shopify-common-dialog .chose-other-btn span {
cursor: pointer;
text-decoration: underline;
}
.shopify-common-dialog .chose-other-btn .abcRioButtonContentWrapper {
display: none;
}
.shopify-common-dialog .chose-other-btn .abcRioButtonLightBlue {
display: inline-block;
background: none;
color: #000000;
box-shadow: none;
text-decoration: underline;
}
.shopify-common-dialog .chose-other-btn .abcRioButtonLightBlue::after {
content: 'Sign into a different account';
}
#thirdpart-condition {
display: none;
}
#thirdpart-condition .common-dialog-body {
line-height: .20rem;
}
#thirdpart-condition .condition-tips {
line-height: 26px;
text-align: left;
white-space: nowrap;
color: #000000 !important;
}
#thirdpart-condition .condition-list p {
margin-bottom: .20rem;
text-decoration: underline;
cursor: pointer;
color: #000000 !important;
}
#thirdpart-condition .accept {
margin-bottom: .31rem;
}
#thirdpart-condition .reject {
color: #000000;
background-color: #ffffff;
border-color: #000000;
}
@media screen and (max-width: 768px) {
.shopify-common-dialog .common-dialog-content {
width: 7rem;
}
#thirdpart-condition .condition-tips {
text-align: center;
white-space: normal;
}
}
</style>
<!-- The JS SDK Login Button -->
<div id="thirdpartLoginApp" class="dialogSign">
<!-- <fb:login-button scope="public_profile,email" onlogin="checkLoginState();"></fb:login-button> -->
<!-- 没有登录过滴 -->
<div class="thirdpart-login-wrap">
<div class="facebook-new-icon no-login-facebook" onclick="fbLogindialogSign()" style="display: block;">
<svg class="icon svg-icon svg-m-signin" aria-hidden="true" focusable="false" role="presentation">
<use xlink:href="#m-signin-facebook"></use>
</svg>
</div>
<div class="facebook-new-icon login-facebook" onclick="getHistoryLogindialogSign('facebook')" style="display: none;">
<svg class="icon svg-icon svg-m-signin" aria-hidden="true" focusable="false" role="presentation">
<use xlink:href="#m-signin-facebook"></use>
</svg>
</div>
<div class="no-login-google-wrap" style="display: block;">
<svg class="icon svg-icon svg-m-signin svg-m-signin-google" aria-hidden="true" focusable="false" role="presentation">
<use xlink:href="#m-signin-google"></use>
</svg>
<div class="g-signin2 no-login-google" data-onsuccess="googleInitdialogSign" id="google-login-btn" onclick="googleLoginClickdialogSign('first')" data-gapiscan="true" data-onload="true">
<div style="height:36px;width:120px;" class="abcRioButton abcRioButtonLightBlue">
<div class="abcRioButtonContentWrapper">
<div class="abcRioButtonIcon" style="padding:8px">
<div style="width:18px;height:18px;" class="abcRioButtonSvgImageWithFallback abcRioButtonIconImage abcRioButtonIconImage18"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="18px" height="18px" viewBox="0 0 48 48"
class="abcRioButtonSvg">
<g>
<path fill="#EA4335" d="M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"></path>
<path fill="#4285F4" d="M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"></path>
<path fill="#FBBC05" d="M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"></path>
<path fill="#34A853" d="M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"></path>
<path fill="none" d="M0 0h48v48H0z"></path>
</g>
</svg></div>
</div><span style="font-size:13px;line-height:34px;" class="abcRioButtonContents"><span id="not_signed_in7e7d8ybneze8">登录</span><span id="connected7e7d8ybneze8" style="display:none">Signed in</span></span>
</div>
</div>
</div>
</div>
<span class="google-login-btn login-google" onclick="getHistoryLogindialogSign('google')" style="display: none;">
<svg class="icon svg-icon svg-m-signin" aria-hidden="true" focusable="false" role="presentation">
<use xlink:href="#m-signin-google"></use>
</svg>
</span>
</div>
<div class="shopify-common-dialog" id="thirdpart-login">
<div class="common-dialog-content">
<div class="common-dialog-header">
<div class="common-dialog-title">
<svg class="icon svg-icon m-logo" aria-hidden="true" focusable="false" role="presentation">
<use xlink:href="#m-logo"></use>
</svg>
</div>
<div class="common-dialog-close" onclick="closeThirdpartDialogdialogSign()">
<img class="lazyload" data-src="https://cdn.shopify.com/s/files/1/0595/2477/6095/files/icon-close1.png?v=1637145036" alt="Colse">
</div>
</div>
<div class="common-dialog-body">
<p class="account-name"></p>
<p class="account-tip"></p>
<div class="thirdpart-login-btn thirdpart-login-wrap">
<div class="no-login-google-wrap google-login-history-wrap">
<svg class="icon svg-icon svg-m-signin svg-m-signin-google" aria-hidden="true" focusable="false" role="presentation">
<use xlink:href="#m-signin-google"></use>
</svg>
<div class="google-login-history g-signin2" data-onsuccess="googleInitHistorydialogSign" id="google-login-history" onclick="googleLoginClickdialogSign('history')" data-gapiscan="true" data-onload="true">
<div style="height:36px;width:120px;" class="abcRioButton abcRioButtonLightBlue">
<div class="abcRioButtonContentWrapper">
<div class="abcRioButtonIcon" style="padding:8px">
<div style="width:18px;height:18px;" class="abcRioButtonSvgImageWithFallback abcRioButtonIconImage abcRioButtonIconImage18"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="18px" height="18px" viewBox="0 0 48 48"
class="abcRioButtonSvg">
<g>
<path fill="#EA4335" d="M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"></path>
<path fill="#4285F4" d="M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"></path>
<path fill="#FBBC05" d="M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"></path>
<path fill="#34A853" d="M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"></path>
<path fill="none" d="M0 0h48v48H0z"></path>
</g>
</svg></div>
</div><span style="font-size:13px;line-height:34px;" class="abcRioButtonContents"><span id="not_signed_ingzc0buk9gef0">登录</span><span id="connectedgzc0buk9gef0" style="display:none">Signed in</span></span>
</div>
</div>
</div>
</div>
<div class="facebook-new-icon facebook-login-history" onclick="fbLogindialogSign()">
<svg class="icon svg-icon svg-m-signin" aria-hidden="true" focusable="false" role="presentation">
<use xlink:href="#m-signin-facebook"></use>
</svg>
</div>
</div>
<p class="chose-other-tip">Not you?</p>
<p class="chose-other-btn">
<span class="sign-other-facebook" onclick="changeAccountdialogSign ('facebook')">Sign into a different account</span>
<span class="sign-other-google" onclick="changeAccountdialogSign ('google')">Sign into a different account</span> or <span class="create-other-facebook" onclick="changeAccountdialogSign ('facebook')">Create a new one</span>
<span class="create-other-google" onclick="changeAccountdialogSign ('google')">Create a new one</span>
</p>
</div>
</div>
</div>
<div class="shopify-common-dialog" id="thirdpart-condition">
<div class="common-dialog-content">
<div class="common-dialog-header">
<div class="common-dialog-title">
<svg class="icon svg-icon m-logo" aria-hidden="true" focusable="false" role="presentation">
<use xlink:href="#m-logo"></use>
</svg>
</div>
<div class="common-dialog-close" onclick="closeThirdpartConditiondialogSign()">
<img class="lazyload" data-src="https://cdn.shopify.com/s/files/1/0595/2477/6095/files/icon-close1.png?v=1637145036" alt="Colse">
</div>
</div>
<div class="common-dialog-body">
<p class="condition-tips"> Update Of Terms & Conditions And Policy & Cookie Policy <br> In order to provide better service, please read and accept : </p>
<div class="condition-list">
<p onclick="setPrivacyAndTerms('privacy-policy', '.policy-layer')">Privacy & Cookie Policy</p>
<p onclick="setPrivacyAndTerms('terms-and-conditions', '.terms-layer')">Terms & Conditions</p>
</div>
<button type="button" id="facebook-accept-btn" class="btn btn--full accept" onclick="acceptLogindialogSign('facebook')"> ACCEPT </button>
<button type="button" id="google-accept-btn" class="btn btn--full accept" onclick="acceptLogindialogSign('google')"> ACCEPT </button>
<button type="button" class="btn btn--full reject" onclick="closeThirdpartConditiondialogSign()"> REJECT </button>
</div>
</div>
</div>
</div>
<meta name="google-signin-client_id" content="130824956176-mp0ainiun2hq7oh83egbbhdjt012otkf.apps.googleusercontent.com">
<script type="text/javascript" src="//www.harfington.com/cdn/shop/t/843/assets/platform.js?v=49663290864038788701689242136" gapi_processed="true"></script>
<script type="text/javascript" src="//www.harfington.com/cdn/shop/t/843/assets/sdk.js?v=98600324123362212451689242136"></script>
<script>
window.sessionStorage.removeItem('login-resp')
var thirdpartLogin = JSON.parse(window.sessionStorage.getItem('facebook_login')) || JSON.parse(window.sessionStorage.getItem('google_login'));
var auth2;
var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
function getHistoryLogindialogSign(name) {
var thirdpartLogin = JSON.parse(window.sessionStorage.getItem(name + '_login'))
if (thirdpartLogin) {
var googleHistory = document.querySelector('.dialogSign .google-login-history-wrap')
var facebookHistory = document.querySelector('.dialogSign .facebook-login-history')
var signOtherFacebok = document.querySelector('.dialogSign .sign-other-facebook')
var signOtherGoogle = document.querySelector('.dialogSign .sign-other-google')
var createOtherFacebok = document.querySelector('.dialogSign .create-other-facebook')
var createOtherGoogle = document.querySelector('.dialogSign .create-other-google')
document.querySelector('.dialogSign #thirdpart-login').style.display = "flex"
document.querySelector('.dialogSign .account-name').innerHTML = 'Welcome back,' + thirdpartLogin.email
document.querySelector('.dialogSign .account-tip').innerHTML = 'Sign in again with ' + thirdpartLogin.name + ' to continue'
if (thirdpartLogin.name === "google") {
googleHistory.style.display = 'block'
facebookHistory.style.display = 'none'
signOtherGoogle.style.display = 'inline'
createOtherGoogle.style.display = 'inline'
signOtherFacebok.style.display = 'none'
createOtherFacebok.style.display = 'none'
}
if (thirdpartLogin.name === "facebook") {
facebookHistory.style.display = 'block'
googleHistory.style.display = 'none'
signOtherFacebok.style.display = 'inline'
createOtherFacebok.style.display = 'inline'
signOtherGoogle.style.display = 'none'
createOtherGoogle.style.display = 'none'
}
}
}
function initdialogSign() {
var noLoginFacebook = document.querySelectorAll('.dialogSign .no-login-facebook')
var noLoginGoogle = document.querySelectorAll('.dialogSign .no-login-google-wrap')
var loginFacebook = document.querySelectorAll('.dialogSign .login-facebook')
var loginGoogle = document.querySelectorAll('.dialogSign .login-google')
var facebookHasLogin = JSON.parse(window.sessionStorage.getItem('facebook_login')) || false
var googleHasLogin = JSON.parse(window.sessionStorage.getItem('google_login')) || false
for (var i = 0; i < noLoginFacebook.length; i++) {
if (facebookHasLogin) {
loginFacebook[i].style.display = 'block'
noLoginFacebook[i].style.display = 'none'
} else {
loginFacebook[i].style.display = 'none'
noLoginFacebook[i].style.display = 'block'
}
if (googleHasLogin) {
loginGoogle[i].style.display = 'block'
noLoginGoogle[i].style.display = 'none'
} else {
loginGoogle[i].style.display = 'none'
noLoginGoogle[i].style.display = 'block'
}
}
}
document.addEventListener('DOMContentLoaded', function() {
initdialogSign()
}, false)
window.fbAsyncInit = function() {
FB.init({
appId: '1508910519463134',
cookie: true, // Enable cookies to allow the server to access the session.
xfbml: true, // Parse social plugins on this webpage.
version: 'v12.0' // Use this Graph API version for this call.
});
};
// fb的登录后获取token
function fbStatusChangeCallbackdialogSign(response) { // Called with the results from FB.getLoginStatus().
if (response.status === 'connected') {
// FB登录成功
if (window.loginDialogShowFromCart) {
gaReportEvent('event', 'CartLogin&RegisterPopup', 'Cart_FBLoginSuccess_event_211215')
} else if (window.LRDShowFromHomeFootEntry) {
gaReportEvent('event', 'HomePageRegisterPopup', 'FBLoginSuccess_event_220223')
} else if (window.LRDShowFromColleFootEntry) {
gaReportEvent('event', 'ProListPageRegisterPopup', 'FBLoginSuccess_event_220223')
} else {
gaReportEvent('event', 'Login&RegisterPopup', 'FBLoginSuccess_event_211208')
}
// Logged into your webpage and Facebook.
fbToShopifydialogSign(response.authResponse.accessToken)
} else { // Not logged into your webpage or we are unable to tell.
}
}
function showConditiondialogSign(platform) {
document.querySelector('.dialogSign #thirdpart-condition').style.display = 'flex'
if (platform === 'google') {
document.querySelector('.dialogSign #google-accept-btn').style.display = 'block'
document.querySelector('.dialogSign #facebook-accept-btn').style.display = 'none'
} else if (platform === 'facebook') {
document.querySelector('.dialogSign #google-accept-btn').style.display = 'none'
document.querySelector('.dialogSign #facebook-accept-btn').style.display = 'block'
}
}
// fb登出
function fbLogindialogSign() {
// 点击FB登录按钮
if (window.loginDialogShowFromCart) {
gaReportEvent('click', 'CartLogin&RegisterPopup', 'Cart_FBLoginButton_click_211215')
} else if (window.LRDShowFromHomeFootEntry) {
gaReportEvent('click', 'HomePageRegisterPopup', 'FBLoginButton_click_220223')
} else if (window.LRDShowFromColleFootEntry) {
gaReportEvent('click', 'ProListPageRegisterPopup', 'FBLoginButton_click_220223')
} else {
gaReportEvent('click', 'Login&RegisterPopup', 'FBLoginButton_click_211208')
}
FB.login(function(response) {
fbStatusChangeCallbackdialogSign(response)
}, {
scope: 'public_profile,email'
});
}
// fb登出
function fbLogoutdialogSign() {
// Person is now logged out
FB.logout(function(response) {
console.log(response);
});
}
// facebook三方登录之后同步到shopify
function fbToShopifydialogSign(token) {
thirdPartyLogindialogSign(token, 3)
// var params = {
// token,
// platform: 'harfington'
// }
// fetch(`https://key1.allegra-k.com/api/user/facebook_shopify_token`, {
// method: 'POST',
// mode: 'cors',
// headers: {
// 'Content-Type': 'application/json'
// },
// body: JSON.stringify(params)
// }).then(resp => {
// return resp.json()
// }).then(resp => {
// if (resp.code === 1) {
// if (window.localStorage.getItem(resp.data.email + '_accept-thirdpart')) {
// thirdPartMultipassdialogSign(resp, 'facebook')
// } else {
// showConditiondialogSign('facebook')
// window.sessionStorage.setItem('login-resp',JSON.stringify(resp))
// }
// }
// }).catch(err=> {
// console.log(err);
// })
}
// accept facebook
function acceptLogindialogSign(platform) {
var resp = JSON.parse(window.sessionStorage.getItem('login-resp'))
window.localStorage.setItem(resp.email + '_accept-thirdpart', 1)
thirdPartMultipassdialogSign(resp, platform)
}
function googleLoginClickdialogSign(type) {
if (type === 'first') {
firstGoogleInitdialogSign = true
} else {
firstGoogleInitHistorydialogSign = true
}
if (window.loginDialogShowFromCart) {
gaReportEvent('click', 'CartLogin&RegisterPopup', 'Cart_GGLoginButton_click_211215')
} else if (window.LRDShowFromHomeFootEntry) {
gaReportEvent('click', 'HomePageRegisterPopup', 'GGLoginButton_click_220223')
} else if (window.LRDShowFromColleFootEntry) {
gaReportEvent('click', 'ProListPageRegisterPopup', 'GGLoginButton_click_220223')
} else {
gaReportEvent('click', 'Login&RegisterPopup', 'GGLoginButton_click_211208')
}
}
// //google login
function thirdPartMultipassdialogSign({
shopify_token,
thirdparty_token,
isRegister,
email
}, name, result) {
// var toke = resp.data.token
// var email = resp.data.email
fetch(`/account/login/multipass/${shopify_token}`, {
method: 'GET',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
}
}).then(resp => {
window.sessionStorage.setItem(name + '_login', JSON.stringify({
name,
email
}))
if (resp.status === 200) {
// setMatomoEvent login
setMatomoEvent('Lead Generation', 'signin', 'account', email);
// 注册成功, 调用注册成功接口
if (isRegister) {
setMatomoEvent('Lead Generation', 'registersuccess', 'account', email);
let type = 1
if (name === 'google') {
type = 2
} else if (name === 'facebook') {
type = 3
}
const params = {
token: thirdparty_token,
type,
email
}
fetch(CENTER_API + `/api/third_register_success`, {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json',
'channel': isMobile ? 'm' : 'pc'
},
body: JSON.stringify(params)
}).then(resp => {
return resp.json()
}).then(resp => {
if (resp.code === 1) {
if (resp.data.user && resp.data.user.wholesale && resp.data.user.wholesale == 1) {
let wholesale = resp.data.user && resp.data.user.wholesale
window.localStorage.setItem("wholesale", wholesale)
}
thirdPartyLoginFinal(resp.data)
}
}).catch(error => console.log(error))
} else {
setMatomoEvent('Lead Generation', 'signinsuccess', 'account', email);
thirdPartyLoginFinal(result)
}
}
}).catch(function(err) {
console.log(err)
})
}
// 处理qa弹窗问题
function handleProductQAModal() {
if (sessionStorage.getItem('askQuestionShow') || sessionStorage.getItem('answerQuestionShow')) {
sessionStorage.setItem('isAfterLoginQA', 1)
}
}
function thirdPartyLoginFinal(result) {
handleProductQAModal()
var urlPathname = window.location.pathname
if (urlPathname == '/account/invalid_token') {
window.location.href = 'https://www.harfington.com'
return
}
let url = window.location.href.split('?')[1]
// from login page
if (urlPathname === '/account/login') {
if (url.indexOf('myaccountid') > -1 || url.indexOf('order') > -1) {
window.location.href = 'https://www.harfington.com/account'
} else {
window.location.href = document.referrer
}
} else {
// pop dialog
const sessResult = JSON.parse(sessionStorage.getItem('third_party_user_info') || '{}')
window.jumpToAccount && jumpToAccount(result || sessResult)
// let checkOut = sessionStorage.getItem('checkOut')
// var checkOutBtn
// if(checkOut=='cartCheckOut'){
// checkOutBtn = document.querySelector('#checkoutCart')
// }else if(checkOut=='rightCheckOut'){
// checkOutBtn = document.querySelector('.right-checkout')
// }
// if(checkOutBtn &&( checkOut == 'cartCheckOut'||checkOut == 'rightCheckOut')){
// checkOutBtn.click()
// window.sessionStorage.removeItem('checkOut');
// } else {
// window.location.reload()
// }
}
}
var firstGoogleInitdialogSign = false
function googleInitdialogSign(googleUser) {
console.log(firstGoogleInitdialogSign);
if (!firstGoogleInitdialogSign) {
return
}
var token = googleUser.getAuthResponse().id_token
googleLogindialogSign(token)
};
var firstGoogleInitHistorydialogSign = false
function googleInitHistorydialogSign(googleUser) {
if (!firstGoogleInitHistorydialogSign) {
return
}
var token = googleUser.getAuthResponse().id_token
googleLogindialogSign(token)
};
function googleLogindialogSign(token) {
thirdPartyLogindialogSign(token, 2)
// var params = {
// token,
// platform: 'harfington'
// };
// fetch(`https://key1.allegra-k.com/api/user/google_shopify_token`, {
// method: 'POST',
// mode: 'cors',
// headers: {
// 'Content-Type': 'application/json'
// },
// body: JSON.stringify(params)
// }).then(resp => {
// return resp.json()
// }).then(resp => {
// if (resp.code === 1) {
// // Google登录成功
//
// if (window.loginDialogShowFromCart) {
// gaReportEvent('event', 'CartLogin&RegisterPopup', 'Cart_GGLoginSuccess_event_211215')
// } else if (window.LRDShowFromHomeFootEntry) {
// gaReportEvent('event', 'HomePageRegisterPopup', 'GGLoginSuccess_event_220223')
// } else if (window.LRDShowFromColleFootEntry) {
// gaReportEvent('event', 'ProListPageRegisterPopup', 'GGLoginSuccess_event_220223')
// } else {
// gaReportEvent('event', 'Login&RegisterPopup', 'GGLoginSuccess_event_211208')
// }
//
// if (window.localStorage.getItem(resp.data.email + '_accept-thirdpart')) {
// thirdPartMultipassdialogSign(resp, 'google')
// } else {
// showConditiondialogSign('google')
// window.sessionStorage.setItem('login-resp',JSON.stringify(resp))
// }
// }
// }).catch(err=> {
// console.log(err)
// })
}
function changeAccountdialogSign(name) {
window.sessionStorage.removeItem(name + '_login')
initdialogSign()
closeThirdpartDialogdialogSign()
}
function closeThirdpartDialogdialogSign() {
document.querySelector('.dialogSign #thirdpart-login').style.display = 'none'
}
function closeThirdpartConditiondialogSign() {
window.sessionStorage.removeItem('login-resp')
document.querySelector('.dialogSign #thirdpart-condition').style.display = 'none'
}
//三方登录同步中台
function thirdPartyLogindialogSign(token, type) {
window.localStorage.removeItem("wholesale")
var params = {
token,
type,
platform: 'harfington'
};
fetch(CENTER_API + `/api/third_party`, {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json',
'channel': isMobile ? 'm' : 'pc'
},
body: JSON.stringify(params)
}).then(resp => {
return resp.json()
}).then(resp => {
if (resp.code === 1) {
const email = resp.data.email || resp.data.user.email
const res = {
shopify_token: resp.data.shopify_token,
isRegister: !resp.data.token,
thirdparty_token: token,
email
}
sessionStorage.setItem('third_party_user_info', JSON.stringify(resp.data))
if (resp.data.user && resp.data.user.wholesale && resp.data.user.wholesale == 1) {
let wholesale = resp.data.user && resp.data.user.wholesale
window.localStorage.setItem("wholesale", wholesale)
}
if (type === 2) {
// if (window.localStorage.getItem(email + '_accept-thirdpart')) {
// thirdPartMultipassdialogSign(resp, 'facebook')
// } else {
// showConditiondialogSign('facebook')
// window.sessionStorage.setItem('login-resp',JSON.stringify(resp))
// }
if (window.localStorage.getItem(email + '_accept-thirdpart')) {
thirdPartMultipassdialogSign(res, 'google', resp.data)
} else {
showConditiondialogSign('google')
window.sessionStorage.setItem('login-resp', JSON.stringify(res))
}
if (window.loginDialogShowFromCart) {
gaReportEvent('event', 'CartLogin&RegisterPopup', 'Cart_GGLoginSuccess_event_211215')
} else if (window.LRDShowFromHomeFootEntry) {
gaReportEvent('event', 'HomePageRegisterPopup', 'GGLoginSuccess_event_220223')
} else if (window.LRDShowFromColleFootEntry) {
gaReportEvent('event', 'ProListPageRegisterPopup', 'GGLoginSuccess_event_220223')
} else {
gaReportEvent('event', 'Login&RegisterPopup', 'GGLoginSuccess_event_211208')
}
} else if (type === 3) {
// fb 登录成功
if (window.localStorage.getItem(email + '_accept-thirdpart')) {
thirdPartMultipassdialogSign(res, 'facebook', resp.data)
} else {
showConditiondialogSign('facebook')
window.sessionStorage.setItem('login-resp', JSON.stringify(res))
}
}
// 新客零单
window.localStorage.setItem("newCustomer0", resp.data.user && resp.data.user.orders_count === 0 ? '1' : '')
} else {
console.log(resp.msg)
}
}).catch(error => console.log(error))
}
</script>
</form>
POST /account/recover
<form method="post" action="/account/recover" accept-charset="UTF-8"><input type="hidden" name="form_type" value="recover_customer_password"><input type="hidden" name="utf8" value="✓">
<div class="ps-warp">
<input type="text" id="resverEmail" onfocus="emailFocusbtn()" onblur="inputleave('.clear-btn3')" oninput="emailFocusbtn()" style="border: 1px solid #CCCCCC;" class="input-full recoverEmail-pc" placeholder="Email">
<!-- <input type="email" name="email" id="RecoverEmail" oninput="emailFocus('#RecoverEmail','.clear-btn3')" style="border: 1px solid #CCCCCC;" class="input-full recoverEmail-pc" autocorrect="off" placeholder="Email" autocapitalize="off"> -->
<div class="ps-show clear-btn3">
<img class="lazyload" data-src="https://cdn.shopify.com/s/files/1/0595/2477/6095/files/close-icon.png" alt="Clear All" onclick="isEyeOpen('#clear-eye','#resverEmail')">
</div>
</div>
<p class="p-invalid tips-forget-text">Email is required or invalid.</p>
<button type="button" class="btn layer-forget-btn" onclick="nextForgetPassward()"> Submit </button>
<button type="button" class="btn clear-btn" id="HideRecoverPasswordLink">Cancel</button>
</form>
POST /account
<form method="post" action="/account" id="create_customer" accept-charset="UTF-8" data-login-with-shop-sign-up="true"><input type="hidden" name="form_type" value="create_customer"><input type="hidden" name="utf8" value="✓"><!-- 优惠券 -->
<div class="coupon-banner">
<img class="s-img" data-src="https://cdn.shopify.com/s/files/1/0593/8623/3013/files/coupon-banner-c_{width}x.png" data-widths="[320, 375, 480, 540, 720, 900, 1080, 1296, 1512, 1728, 1944, 2048]" data-sizes="auto" data-parent-fit="cover" alt="">
<!-- <span class="discount">US$3 OFF</span>
<span class="c-text">For New Users !</span> -->
</div>
<!-- 邮箱 -->
<div id="cartDialogApp" class="e-warp"><input type="text" autocorrect="off" autocapitalize="off" autocomplete="off" name="customeremail" placeholder="Email" clearable="" prefix-icon="el-icon-user" onblur="inputleave2('.clear-btn2','input1')"
onfocus="emailFocus('#Email','.clear-btn2','input1')" oninput="emailFocus('#Email','.clear-btn2')" id="Email" class="input-full input-getemail layer-email" style="z-index: 20;"> <input type="text" autocorrect="off" autocapitalize="off"
autocomplete="off" name="customeremail" placeholder="Email" clearable="" prefix-icon="el-icon-user" onblur="inputleave2('.clear-btn2','input2')" onfocus="emailFocus('#Email','.clear-btn2','input2')" id="Email2" class="input-full input-getemail"
style="z-index: 19;">
<div class="ps-show clear-btn2" style="z-index: 999;"><img data-src="https://cdn.shopify.com/s/files/1/0595/2477/6095/files/close-icon.png" alt="Clear All" onclick="isEyeOpen('#clear-eye','.layer-email')" class="lazyload"></div>
<ul class="auto-tip"></ul>
</div>
<div class="email-invalid-reg p-invalid">Email is required or invalid.</div>
<!-- 密码 -->
<div class="ps-warp">
<input type="password" fuck-chrome="" name="customer[password]" id="CreatePassword" placeholder="Password" class="input-full" autocomplete="off">
<div class="ps-show">
<img class="lazyload" data-src="https://cdn.shopify.com/s/files/1/0595/2477/6095/files/close-eye.png" alt="Show Password" id="ps-showCreate" onclick="hideShowPswCreate()">
</div>
</div>
<div class="password-invalid-reg p-invalid">Please enter 6-32 characters as the password.</div>
<div class="password-invalid-reg2 p-invalid">Your password cannot contain spaces.</div>
<!-- 选择勾选 -->
<div class="select-warp">
<div class="s-list follow-cb" style="display: flex;">
<input type="checkbox" name="" id="Follow-us" class="s-checkbox">
<span class="f-text"> Follow us to receive exclusive offers and our latest news</span>
</div>
<div class="s-list policy-cb" style="display: none;">
<input type="checkbox" name="" id="Policy" class="s-checkbox">
<span class="f-text">I agree Harfington's <a onclick="setPrivacyAndTerms('privacy-policy', '.policy-layer')" href="">Terms & Conditions</a> and
<a onclick="setPrivacyAndTerms('terms-and-conditions', '.terms-layer')" href="#">Privacy Policy</a> </span>
</div>
</div>
<!-- 注册按钮 -->
<div class="wrong-tip-reg"></div>
<button type="button" name="register" class="reg-ref btn btn--full"> JOIN HARFINGTON </button>
</form>
Text Content
YOUR LOCATION IS SET TO CANADA * Shop in USD $ * Get shipping options for Canada Continue Change country/region Skip to content Cart Close cart Buy $10.00 more to enjoy Free Standard Shipping! Discounts Subtotal $0.00 Shipping, taxes, and discount codes calculated at checkout. Check out Check out Apply a Coupon Code on the next step. Your cart is currently empty. SIGN IN / REGISTER Close menu Automobiles & Motorcycles Fastening & Joining Hardware Electrical & Lighting Fabricating Pipe, Tubing, Hose & Fittings Hand Tools Power Transmission Abrading & Polishing Lab & Scientific DIY All Categories Track Your Order Shipping & Delivery Return Policy Wholesale Program Payment About Harfington Contact Us Terms & Conditions © 2023 Harfington. All Rights Reserved. Search Site navigation * Home 0 "Close (esc)" Enter the keyword, get DIY & repair parts Recent Searches Hot Searches Barrel NutDoor SweepSanding DiscAAA to AA AdapterChandelier Mounting BracketFlat Rubber WashersScrewdriver BitsStainless Steel Barrel HingesMagnetic Cabinet CatchButton Head Hex Screw Search View more ALL CATEGORIES track my order contact us Feedback Enter the keyword, get DIY & repair parts Recent Searches Hot Searches Barrel NutDoor SweepSanding DiscAAA to AA AdapterChandelier Mounting BracketFlat Rubber WashersScrewdriver BitsStainless Steel Barrel HingesMagnetic Cabinet CatchButton Head Hex Screw Search wholesale * Your Product Needs * Quantity(Each) * Email Address Customer Name Expected Arrival Time Customer Note Submit Show more about Wholesale Program sign in orders cart 0 0 AUTOMOBILES & MOTORCYCLES FASTENING & JOINING HARDWARE ELECTRICAL & LIGHTING FABRICATING PIPE, TUBING, HOSE & FITTINGS HAND TOOLS POWER TRANSMISSION ABRADING & POLISHING LAB & SCIENTIFIC DIY AUTOMOBILES & MOTORCYCLES EXTERIOR ACCESSORIES Covers INTERIOR ACCESSORIES Seat Covers & Accessories REPLACEMENT PARTS Body & Trim TOOLS & EQUIPMENT Hand Tools FASTENING & JOINING FASTENERS Plastic Expansion Tubes Screws & Bolts Fasteners Assortment Kit Cable Ties Helical & Threaded Inserts Threaded Rods & Studs Spacers & Standoffs Washers Nuts Thread Straps Pins Retaining Rings Rivets Nails Lanyards Key Stock Cable Holders Buckles SEALING Edge Trim Seal Strips Frameless Shower Door Seal Strips Gaskets Mechanical Seals Offset Toilet Flange Oil Seals O-Rings Rubber Seal Strips Sealants Silicone Seal Strips WELDING, BRAZING & SOLDERING Welding Rods ADHESIVES & TAPE Adhesive Dispensing Gun Nozzles Adhesives Tape HARDWARE DOOR & CABINET HARDWARE Brackets Blank Metal Cards Cabinet Hinges Catches Curtain Rod Finials Displaying Accessories Door Brushes Door Closers Door Holders & Stops Door Viewers Gas Spring Hinges Hooks Magnetic Latches Sliding Door Roller Suction Cup Hooks Weather stripping Window Glass Strip Seal Window Hardware Window Hinges HOUSEHOLD HARDWARE Bathroom Hardware Brackets Marble Contact Paper Storage & Accessories Top Pad Eye Strap FURNITURE HARDWARE Aluminum Disc Brackets Cam Lock Screws Casters Coat Hangers Corner Protectors Curtain Clips Curtain Weights Displaying Accessories External Retaining Rings Furniture Asscessories Furniture Feet Hangers Louvers Mats Mounting Hangers Paint Brushes & Sprayers Self Adhesive House Number Self Adhesive Mirror Sheet Wall Stickers Sings Surface Guards Tablecloth Clips Triangle Ring Buckle Wheels Wood Filler Wax Stick MACHINERY HARDWARE Ball Transfers Brackets Caps & Plugs Edge Trim Eye Bolts Grease Cups Grommets Hand Wheels Handles Knob Knurling Lathe Tools Machine Accessories Shield Covers Tool Steels T-Soltted Framing and Fittings Weight Stack Pin with Pull Ropes LOCKS Anti-theft Hook Locks Bag Locks Cabinet locks Cam Locks and Latches Drawer Locks Drawer And Cabinet Deadbolt Locks Draw Locks and Latches Door Locks Deadbolt Locks Hasps Key Holders Key Tags Padlocks Public Toilet Locks SlideBolt Locks and Latches Tubewell Mortise Locks Window Locks OFFICE HARDWARE Blank Rack Panels Computer Accessories Cards & Card Stock Filter Papers Load Cell Number Stickers Signs Staining Racks Telephone Accessories RAW MATERIAL Acrylic Sheets Acylic Sphere Acrylic Round Rods Copper Sheet Corrugated Paper Sheets EPS EVA Foam Sheets Graphite Blank Leather Straps Magnetic Strips Magnetic Stir Bar Rods Plastic Rods Poster Hanger Price Tags PVC Sheets Round DIY Tags Silicone Stirring Rods Silicone Thermal Pads Tungsten Steel Lathe Round Rods Wool Felt LUBRICATING Grease Fittings MATERIAL HANDLING Wire Rope FURNITURE ACCESSORIES Furniture Connecting Fittings Screw Cap Covers FLOOR MARKING TAPE & PAINT Marking Tape FEET Rest-On Feet APPLIANCE ACCESSORIES Lawnmower Accessories Meat Grinder Accessories ELECTRICAL & LIGHTING WIRING & CONNECTING Cord Grips Electrical Connectors Enclosures Extension Cords & Power Cords Heat-Shrink Tubing Plugs & Receptacles Wire & Cable SWITCHING & CONTROLLING Circuit Breakers Electric Thermostat Electromagnet Fuses Mechanical Thermostat Switches & Relays ELECTRONICS COMPONENTS Capacitors LED Display Digital Tubes ELECTRICAL Resistors HEATING & COOLING Air Conditioner Accessories Cooling Heating LIGHTING Lamp Pipes Light Bulbs Lighting Accessories Signal Lights for Electrical Panels MEASURING & INSPECTING AC Voltmeter AC Ammeter DC Voltmeter DC Ammeter Multimeter Accessories Sensors AUDIO ACCESSORIES Audio Cables Audio Speaker Dust Caps Audio Adapters Binding Post Speaker Terminals DC-PCB Mount Terminals D-Sub VGA Electret Condenser Microphone Electronic Buzzers Microphone Clips Microphone Holders Microphone Battery Cover Microphone Ball Head Magnetic Loudspeakers Piezo Discs POE Supply Protective Cover Speaker Box Terminals Speakers Speaker Voice Coil Speaker Terminal Clips Speaker Repair Spider Speaker Port Tubes Speaker Peg Kits Speaker Mesh Speaker Grill Cover Speaker Grill Cloth Speaker Feet Speaker Edge Rings Screw Adapter For Microphone TRS 3.5mm Audio Cables TRS 6.35mm Audio Cables Universal Telescopic Antennas VGA Extenders Volume Control POWER GENERATING Batteries Generator Accessories Power Supply Accessories FABRICATING MACHINING Drill Bits End Mills & Milling Cutters Taps Collets Lathe Tools Sawing & Cutting Reamers Drill Chuck Keys Drill Chuck Adapters Lathe Chuck Keys CLAMPING & POSITIONING Clamps PARTS CLEANING & TREATING Cleaning Scrappers Spray Nozzles PIPE, TUBING, HOSE & FITTINGS PIPE FITTINGS Connectors Pipe Plugs Plumbing Fixtures and Drains Copper Unthreaded Pipe Fittings Caps Fastener Caps Clamps Manifold Blocks Pipe Insulation Stainless Steel Unthreaded Pipe and Pipe Fittings Plastic Pipe and Pipe Fittings for Water Threaded Pipe Fittings Unthreaded Pipe Fittings Sealing Plugs Pipe Screens TUBING Soft Tubing Spiral Sleeving Metal Tubing Firm Tubing Flexible Spiral Tubing HOSE Corrugated Conduit Hose Rubber Hose Fuel Hose Water Hose Hose for Washing Machine TUBE FITTINGS Corrugated Tube Joints Clamps Tube Fittings for Copper and Brass Tubing Tube Expanders PU Hoses Tube Benders Compression Tube Fitting MISTING NOZZLES Brass Misting Nozzles Stainless Steel Nozzles Pressure Compensating Drippers Adjustable Spray Drippers PP Nozzles Spiral Cone Atomization Nozzles Flat Nozzles TUBE BENDERS Conduit and Pipe Hand Benders HOSE & TUBE CLAMPS Hose Clamps HOSE FITTINGS Brass 8mm Hose Barbs Metal Garden Hose Fittings PIPE HANGERS Hangers for Pipe,Tube,and Conduit PIPE JOINTS Water Tap HAND TOOLS SOCKETS Impact Sockets Impact Bit Sockets Socket Sets 12-Point Sockets Sockets Tube Sockets Bit Sockets Hex Nut Sockets Flex Adapter Power Sockets SCREWDRIVER BITS Phillips Bits Torx Bits Tamper-Resistant Hex Bits Ball-End Screw-Holding Hex Bits Slotted Bits MEASURING AND INSPECTING Rules Tape Measures Ring Sizer Mandrel Protractors Squares SAWS Hole Saws WRENCHES Combination Wrenches Socket Wrenches Ratcheting Combination Wrenches Angle Grinder Wrenches Extension Rod Wrenches T-Handle Keys Hex Key Wrenches L Shaped Wrenches SCRAPERS Putty Knives HANDHELD MAGNIFIERS Handheld Magnifiers SCREWDRIVERS Phillips Screwdrivers Bit Screwdrivers Flexible-Shaft Bit Screwdrivers T-Handle Screwdrivers Torx Screwdrivers TWEEZERS Tweezers Electrical-Insulating Tweezers Chip Extracting Tweezers GARDEN TOOLS Artificial Grass Mat Garden Twine STORAGE & ORGANIZATION Containers Battery Storage Case Portable Storage Carrying Bags Battery Safe Guard Bags KNIVES Scissors NUTDRIVERS Bit POWER TRANSMISSION ROTARY MOTION Bearings Shaft Couplings Gears Belts Pulleys Track Rollers Motors U-Joints Bushings Chain PNEUMATICS Quick-Disconnect Hose Couplings Hose Pneumatic Solenoid Valve Air Cylinders Mufflers Speed Control Valves Air Compressor Suction Cups Exhaust Valves Hand Slide Valves Pumps Automatic Airflow Dampers Caps Pneumatic Filter Regulators Foot Pedal Valve Air Switch LINEAR MOTION Linear Motion Shaft Springs Bearings Shock Absorbers Rod Ends Acme Threaded Rods Linear Rail Guide Support Strip Springs HYDRAULICS Liquid Level Valves ABRADING & POLISHING SANDING, FILING & GRINDING Sanding Abrasives Grinding Bits Files Brushes Flap Sanding Wheels LAB & SCIENTIFIC LAB SUPPLIES & CONSUMABLES Lab Stoppers Beakers and Test Tubes Lab Bottles & Jars Lab Joint Clips Lab Stand Clamp Holder Drop Droppers Flask Support Stand Weigh Boats Alcohol Dispenser Bottles Flow Control Clamps Lab Beaker Tongs Tube Brushes DIY RC ACCESSORIES Shaft Round Rods Motor Accessories DC Motors Carbon Fiber Bars AC Motors Propellers RC Wheels Ball Head Rod Ends Standoff Column Spacers Servo Extension Cable Servo Arms Pushrod Connector RC Boat Propeller Vanes Servo Horn Propeller Adapters Electric Motor Kits Landing Gear Wheel Stoppers Airplane Model Accessories Canopy Hatch Locks Drive Shafts RC Hinges Clevis RC Antenna Mount Robot Parts & Accessories Plastic Worm Gears Push Rod Connectors CRAFTS & SEWING Gauge Copper Wire Bells Cord Locks Key Chains Pearlescent Card Polyester Sewing Thread Crepe Paper Rolls Buckles Colored Copy Papers Mesh Cloth Elastic Cord Leathercraft Rivets Metal Roller Buckles Resin Letter Mold Eyelets Tulle Rolls Decorative Craft Tape Sewing Machines Accesorries Linen Burlap Bags Metal Purse Frames Hook Buckle Adjusters Half-Round Leather Cutter Punch Sets Fabric Patch Faux Sponge Painting Flower Crafting Parts Screw Rivets for Leather Metallic Foil WATCH ACCESSORIES Watch Band Strap Loops Watch Band Link Cotter Pins Watch Clasp Buckles Watch Straps Kits Watch Screen Protectors Watch Pin Removal Tools Watch Bezel Ring Covers 3D PRINTER ACCESSORIES 3D Printer Nozzle 3D Printer Pen Filament Refills Cooling Fin 3D Printer Timing Belts Heated Bed Springs 3D Printer Cooling Parts 3D Printer Drive Gear 3D Printer Heater Block 3D Printer Throat Tube 3D Printer Tube Fitting 3D Printer Thermistor Silicone Leveling Column MUSICAL INSTRUMENT ACCESSORIES Guitar Accessories CELL PHONE ACCESSORIES GPS Antennas Vibrating Motors LIGHTING Chandelier Accessories ELECTRIC TUMBLER Electric Tumbler Machine Tumbler Accessories Automobiles & Motorcycles Fastening & Joining Hardware Electrical & Lighting Fabricating Pipe, Tubing, Hose & Fittings Hand Tools Power Transmission Abrading & Polishing Lab & Scientific DIY Quality & Saving Comprehensive quality control and affordable prices Fast & Convenient Logistics Fast and convenient door to door delivery Safe payment Pay with the world’s most popular and securepayment methods. Professional service & Product warranty Timely assistance for a smooth shopping experience Quality Saving Fast& Convenient Logistics Safe Payment Professional Service Get in the know Stay in touch & get the best offers Enter your email Subscribe find us on INFORMATION INFORMATION * About Harfington * Privacy Policy * Terms & Conditions * All Categories * Blogs CUSTOMER CARE CUSTOMER CARE * Track Your Order * Shipping & Delivery * Return Policy * Contact Us * Wholesale Program * Website Feedback PAYMENT PAYMENT * Payment & Tax WE ACCEPT SITEMAP SITEMAP * A * B * C * D * E * F * G * H * I * J * K * L * M * N * O * P * Q * R * S * T * U * V * W * X * Y * Z GET IN THE KNOWStay in touch & get the best offers GET IN THE KNOWStay in touch & get the best offers Enter your email Subscribe find us on DOWNLOAD APP © 2023 Harfington . All Rights Reserved. © 2023 Harfington. All Rights Reserved. Powered by Shopify "Close (esc)" Inquiry submitted successfully We will reply within 24 hours during work time. If you haven’t received the reply by then, please check your spam. Thank you! OK Reset Your Password We will send you an email to reset your password. Email is required or invalid. SUBMIT A link to reset your password has been sent to Emails may experience a few minute delay lf you have not received an email, please check your junk and spam folders. lf you still don’t receive the email after requesting a password reset,wait 24 hours and try again RETURN TO SIGN IN Resent Privacy Policy Harfington Privacy Policy - What you need to know Harfington has created this privacy statement in order to demonstrate our firm commitment to privacy and data protection. The following discloses our information gathering and dissemination practices. This privacy policy has been compiled to better serve those who are concerned with how their 'Personally Identifiable Information' (PII) is being used online. PII, as described in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. * Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website. 1.1 What personal information do we collect from the people that visit our blog, website or app? When ordering or registering on our site, as appropriate, you may be asked to enter your name, email address, mailing address, phone number or other details to help you with your experience. 1.2 When do we collect information? We collect information from you when you place an order or enter information on our site. 1.3 How do we use your information? We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways: We use the information we collect in various ways, including to: * • Provide, operate, and maintain our website * • Improve, personalize, and expand our website * • Understand and analyze how you use our website * • Develop new products, services, features, and functionality * • Communicate with you, either directly or through one of our partners, including for customer service, to provide you with updates and other information relating to the website, and for marketing and promotional purposes * • Send you emails * • Find and prevent fraud Log Files Harfington follows a standard procedure of using log files. These files log visitors when they visit websites. All hosting companies do this and a part of hosting services' analytics. The information collected by log files include internet protocol (IP) addresses, browser type, Internet Service Provider (ISP), date and time stamp, referring/exit pages, and possibly the number of clicks. These are not linked to any information that is personally identifiable. The purpose of the information is for analyzing trends, administering the site, tracking users' movement on the website, and gathering demographic information. 1.4 How do we protect your information? We do not use vulnerability scanning and/or scanning to PCI standards. We only provide articles and information. We never ask for credit card numbers. We use regular Malware Scanning. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology. We implement a variety of security measures when a user places an order enters, submits, or accesses their information to maintain the safety of your personal information. All transactions are processed through a gateway provider and are not stored or processed on our servers. 1.5 Do we use 'cookies'? Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow) that enables the site's or service provider's systems to recognize your browser and capture and remember certain information. For instance, we use cookies to help us remember and process the items in your shopping cart. They are also used to help us understand your preferences based on previous or current site activity, which enables us to provide you with improved services. We also use cookies to help us compile aggregate data about site traffic and site interaction so that we can offer better site experiences and tools in the future. We use cookies to: * • Help remember and process the items in the shopping cart. * • Understand and save user's preferences for future visits. * • Keep track of advertisements. You can choose to have your computer warn you each time a cookie is being sent, or you can choose to turn off all cookies. You do this through your browser settings. Since browser is a little different, look at your browser's Help Menu to learn the correct way to modify your cookies. If users disable cookies in their browser: If you turn cookies off, some features will be disabled. Some of the features that make your site experience more efficient and may not function properly. However, you will still be able to place orders. 1.6 Third-party disclosure We do not sell, trade, or otherwise transfer to outside parties your Personally Identifiable Information. 1.7 How does our site handle Do Not Track signals? We honor Do Not Track signals and Do Not Track, plant cookies, or use advertising when a Do Not Track (DNT) browser mechanism is in place. 1.8 Does our site allow third-party behavioral tracking? It's also important to note that we allow third-party behavioral tracking. Google Google DoubleClick DART Cookie Google is one of a third-party vendor on our site. It also uses cookies, known as DART cookies, to serve ads to our site visitors based upon their visit to www.website.com and other sites on the internet. However, visitors may choose to decline the use of DART cookies by visiting the Google ad and content network Privacy Policy at the following URL – https://policies.google.com/technologies/ads Google's advertising requirements can be summed up by Google's Advertising Principles. They are put in place to provide a positive experience for users.https://support.google.com/adwordspolicy/answer/1316548?hl=en We have not enabled Google AdSense on our site but we may do so in the future. California Consumer Privacy Act (CCPA) If you are a resident of California, this section provides additional details about your rights granted by the CCPA. In the last 12 months, we collected the following categories of personal information: identifiers (such as name, contact information and device identifiers); commercial information (such as items purchased); internet or other network activity information (such as browsing behavior and other usage data); location data; inferences (such as purchasing preferences); demographic data (such as gender); electronic, visual or similar information (such as customer support call information); and other personal information (such as product feedback or payment method information). For more details about the personal information we collect, please see clauses 1.1 and 1.2 above. We collect this information for the business and commercial purposes described in clause 1.3 above. We share this information with third parties described in clause 1.9 above. Subject to certain limitations, the CCPA provides you with the right to request: - access to details on the categories or specific pieces of personal information we collect; - deletion any of your personal information; - opt out of any “sale” of your personal information that may occur; - not be discriminated against for exercising any of the above rights. If you would like to submit a request to exercise your California privacy rights under the CCPA, you may do so by emailing us at info@harfington.com. We will verify your request using information associated with your account, including your email address. Further identification may be required. California Online Privacy Protection Act CalOPPA is the first state law in the nation to require commercial websites and online services to post a privacy policy. The law's reach stretches well beyond California to require any person or company in the United States (and conceivably the world) that operates websites collecting Personally Identifiable Information from California consumers to post a conspicuous privacy policy on its website stating exactly the information being collected and those individuals or companies with whom it is being shared. - See more at: http://consumercal.org/california-online-privacy-protection-act-caloppa/#sthash.0FdRbT51.dpuf According to CalOPPA, we agree to the following: 1.Users can visit our site anonymously. 2.Once this privacy policy is created, we will add a link to it on our home page or as a minimum, on the first significant page after entering our website. 3.Our Privacy Policy link includes the word 'Privacy' and can be easily be found on the page specified above. You will be notified of any Privacy Policy changes: • On our Privacy Policy Page Can change your personal information: • By emailing us COPPA (Children Online Privacy Protection Act) When it comes to the collection of personal information from children under the age of 13 years old, the Children's Online Privacy Protection Act (COPPA) puts parents in control. The Federal Trade Commission, United States' consumer protection agency, enforces the COPPA Rule, which spells out what operators of websites and online services must do to protect children's privacy and safety online. We do not specifically market to children under the age of 13 years old. Nevada Privacy Rights This section applies only to Nevada residents. Although we do not "sell" "covered information" of Nevada "consumers" as those terms are defined by Chapter 603A of the Nevada Revised Statutes, if you are a Nevada consumer, please go to our Privacy Center and inform us that you would like us to provide you notice in the event we should do so in the future, at which point you will have an opportunity to be verified and exercise your opt-out rights under that law. You may contact us as described below. It is your responsibility to keep your notice contact information current. Social Media We operate accounts and fan pages on different social media platforms (the "Social Media" ). If you visit one of our Social Media Accounts you initiate a variety of data processing operations. Below we identify the other types of entities with whom you may interact when you visit one of our Social Media Accounts. If you do not provide us with your personal data, certain functionalities of the social networking platforms requiring such data will not be available to you or only to a limited extent. As the owner of a Social Media Account, we can usually only see information stored in your public profile on such social media platform, and only insofar as you are logged in to your profile while visiting our Social Media Account. In addition, we may process data that you provide to us when you contact us through one of our Social Media Accounts (for example: if you create a post, or send us a private message via Facebook). If you visit one of our Social Media Accounts, the operator of the respective social network also processes your data, regardless of whether you yourself have a profile in the respective social network. The individual data processing operations and their scope differ depending on the operator. In addition, the respective operator of the social network provides us with anonymous usage statistics, which we use to improve the user experience. We do not have access to the usage data that the operator of the social network collects to create these statistics. These data processing operations serve our legitimate interest in improving the user experience when visiting our profile in line with the target group. For details about the collection and storage of your data as well as the type, scope and purpose of their use by the operator of the social network, please refer to the privacy policy of the respective operator: * • The privacy policy for the social network Facebook can be viewed at https://www.facebook.com/about/privacy . * • The privacy policy for the social network Instagram can be accessed at https://help.instagram.com/519522125107875 . * • The privacy policy for the social network Twitter can be found at https://twitter.com/en/privacy . * • The privacy policy for the social network YouTube can be viewed at https://www.gstatic.com/policies/privacy/pdf/20190122/f3294e95/google_privacy_policy_en_eu.pdf . * • The privacy policy for the social network Pinterest can be viewed at https://policy.pinterest.com/en/privacy-policy . * • The privacy policy for the social network Snapchat may be accessed at https://www.snap.com/en-GB/privacy/privacy-policy . * • The privacy policy for the social network TikTok may be accessed at https://www.tiktok.com/legal/privacy-policy?lang=en&appLaunch=app#privacy-eea . You can withdraw your consent at any time with future effect and free of charge. Fair Information Practices The Fair Information Practices Principles form the backbone of privacy law in the United States and the concepts they include have played a significant role in the development of data protection laws around the globe. Understanding the Fair Information Practice Principles and how they should be implemented is critical to comply with the various privacy laws that protect personal information. In order to be in line with Fair Information Practices we will take the following responsive action, should a data breach occur: We will notify the users via in-site notification • Within 7 business days We also agree to the Individual Redress Principle which requires that individuals have the right to legally pursue enforceable rights against data collectors and processors who fail to adhere to the law. This principle requires not only that individuals have enforceable rights against data users, but also that individuals have recourse to courts or government agencies to investigate and/or prosecute non-compliance by data processors. CAN SPAM Act The CAN-SPAM Act is a law that sets the rules for commercial email, establishes requirements for commercial messages, gives recipients the right to have emails stopped from being sent to them, and spells out tough penalties for violations. We collect your email address in order to: * • Send information, respond to inquiries, and/or other requests or questions. * • Process orders and to send information and updates pertaining to orders. * • Send you additional information related to your product and/or service. * • Market to our mailing list or continue to send emails to our clients after the original transaction has occurred. To be in accordance with CANSPAM, we agree to the following: * • Not use false or misleading subjects or email addresses. * • Identify the message as an advertisement in some reasonable way. * • Include the physical address of our business or site headquarters. * • Monitor third-party email marketing services for compliance, if one is used. * • Honor opt-out/unsubscribe requests quickly. * • Allow users to unsubscribe by using the link at the bottom of each email. If at any time you would like to unsubscribe from receiving future emails, you can email us at info@harfington.com and we will promptly remove you from ALL correspondence. The EU General Data Protection Regulation 2016/679 (the "GDPR") Harfington complies with the GDPR. Any information gathered receives double opt-in consent and can be fully removed from Harfington's database upon request. Changes to Privacy Policy From time to time, Harfington may change its privacy practices due to changes in relevant and applicable legal or regulatory requirements, the business or business practices of Harfington, as part of its ongoing efforts to better serve your needs, or for any other reason which Harfington in its sole discretion may deem necessary. We encourage you to review this Policy whenever you visit our Site or use our Service to view the current Privacy Policy. Contacting Us If there are any questions regarding this privacy policy, you may contact us using the information below. www.Harfington.com Email: info@harfington.com TERMS AND CONDITIONS OVERVIEW Welcome to Harfington.com.This website is operated by Harfington.com team. Throughout the website, the terms “we”, “us” and “our” refer to Harfington.com team. Harfington.com offers this website/application, including all information, tools and services available from this site to you, the user, conditioned upon your acceptance of all terms, conditions, policies and notices stated here. By visiting our site and/ or purchasing something from us, you engage in our “Service” and agree to be bound by the following terms and conditions (“TERMS AND CONDITIONS”, “Terms”), including those additional terms, conditions and policies referenced herein and/or available by hyperlink. These TERMS AND CONDITIONS apply to all users of the site, including without limitation users who are browsers, vendors, customers, merchants, and/ or contributors of content. Please read these TERMS AND CONDITIONS carefully before accessing or using our website/application. By accessing or using any part of the site, you agree to be bound by these TERMS AND CONDITIONS. If you do not agree to all the terms and conditions of this agreement, then you may not access the website/application or use any services. If these TERMS AND CONDITIONS are considered an offer, acceptance is expressly limited to these TERMS AND CONDITIONS. Any new features or tools which are added to the current store shall also be subject to the TERMS AND CONDITIONS. You can review the most current version of the TERMS AND CONDITIONS at any time on this page. We reserve the right to update, change or replace any part of these TERMS AND CONDITIONS by posting updates and/or changes to our website/application. It is your responsibility to check this page periodically for changes. Your continued use of or access to the website/application following the posting of any changes constitutes acceptance of those changes. SECTION 1 - ONLINE STORE TERMS By agreeing to these TERMS AND CONDITIONS,you may not use our products for any illegal or unauthorized purpose nor may you, in the use of the Service, violate any laws in your jurisdiction (including but not limited to copyright laws). You must not transmit any worms or viruses or any code of a destructive nature. A breach or violation of any of the Terms will result in an immediate termination of your Services. SECTION 2 - GENERAL CONDITIONS We reserve the right to refuse service to anyone for any reason at any time. You understand that your content (not including credit card information), may be transferred unencrypted and involve (a) transmissions over various networks; and (b) changes to conform and adapt to technical requirements of connecting networks or devices. Credit card information is always encrypted during transfer over networks. You agree not to reproduce, duplicate, copy, sell, resell or exploit any portion of the Service, use of the Service, or access to the Service or any contact on the website/application through which the service is provided, without express written permission by us. The headings used in this agreement are included for convenience only and will not limit or otherwise affect these Terms. SECTION 3 - ACCURACY, COMPLETENESS AND TIMELINESS OF INFORMATION We are not responsible if information made available on this site is not accurate, complete or current. The material on this site is provided for general information only and should not be relied upon or used as the sole basis for making decisions without consulting primary, more accurate, more complete or more timely sources of information. Any reliance on the material on this site is at your own risk. This site may contain certain historical information. Historical information, necessarily, is not current and is provided for your reference only. We reserve the right to modify the contents of this site at any time, but we have no obligation to update any information on our site. You agree that it is your responsibility to monitor changes to our site. SECTION 4 - MODIFICATIONS TO THE SERVICE AND PRICES Prices for our products are subject to change without notice. We reserve the right at any time to modify or discontinue the Service (or any part or content thereof) without notice at any time. We shall not be liable to you or to any third-party for any modification, price change, suspension or discontinuance of the Service. SECTION 5 - PRODUCTS OR SERVICES (if applicable) Certain products or services may be available exclusively online through the website/application. These products or services may have limited quantities and are subject to return or exchange only according to our Return Policy. We have made every effort to display as accurately as possible the colors and images of our products that appear at the store. We cannot guarantee that your computer monitor's display of any color will be accurate. We reserve the right, but are not obligated, to limit the sales of our products or Services to any person, geographic region or jurisdiction. We may exercise this right on a case-by-case basis. We reserve the right to limit the quantities of any products or services that we offer. All descriptions of products or product pricing are subject to change at anytime without notice, at the sole discretion of us. We reserve the right to discontinue any product at any time. Any offer for any product or service made on this site is void where prohibited. We do not warrant that the quality of any products, services, information, or other material purchased or obtained by you will meet your expectations, or that any errors in the Service will be corrected. SECTION 6 - ACCURACY OF BILLING AND ACCOUNT INFORMATION We reserve the right to refuse any order you place with us. We may, in our sole discretion, limit or cancel quantities purchased per person, per household or per order. These restrictions may include orders placed by or under the same customer account, the same credit card, and/or orders that use the same billing and/or shipping address. In the event that we make a change to or cancel an order, we may attempt to notify you by contacting the e-mail and/or billing address/phone number provided at the time the order was made. We reserve the right to limit or prohibit orders that, in our sole judgment, appear to be placed by dealers, resellers or distributors. You agree to provide current, complete and accurate purchase and account information for all purchases made at our store. You agree to promptly update your account and other information, including your email address and credit card numbers and expiration dates, so that we can complete your transactions and contact you as needed. For more details, please review our Return Policy. SECTION 7 - OPTIONAL TOOLS We may provide you with access to third-party tools over which we neither monitor nor have any control nor input. You acknowledge and agree that we provide access to such tools ”as is” and “as available” without any warranties, representations or conditions of any kind and without any endorsement. We shall have no liability whatsoever arising from or relating to your use of optional third-party tools. Any use by you of optional tools offered through the site is entirely at your own risk and discretion and you should ensure that you are familiar with and approve of the terms on which tools are provided by the relevant third-party provider(s). We may also, in the future, offer new services and/or features through the website/application (including, the release of new tools and resources). Such new features and/or services shall also be subject to these TERMS AND CONDITIONS. SECTION 8 - THIRD-PARTY LINKS Certain content, products and services available via our Service may include materials from third-parties. Third-party links on this site may direct you to third-party websites that are not affiliated with us. We are not responsible for examining or evaluating the content or accuracy and we do not warrant and will not have any liability or responsibility for any third-party materials or websites, or for any other materials, products, or services of third-parties. We are not liable for any harm or damages related to the purchase or use of goods, services, resources, content, or any other transactions made in connection with any third-party websites. Please review carefully the third-party's policies and practices and make sure you understand them before you engage in any transaction. Complaints, claims, concerns, or questions regarding third-party products should be directed to the third-party. SECTION 9 - USER COMMENTS, FEEDBACK AND OTHER SUBMISSIONS If, at our request, you send certain specific submissions (for example contest entries) or without a request from us you send creative ideas, suggestions, proposals, plans, or other materials, whether online, by email, by postal mail, or otherwise (collectively, 'comments'), you agree that we may, at any time, without restriction, edit, copy, publish, distribute, translate and otherwise use in any medium any comments that you forward to us. We are and shall be under no obligation (1) to maintain any comments in confidence; (2) to pay compensation for any comments; or (3) to respond to any comments. We may, but have no obligation to, monitor, edit or remove content that we determine in our sole discretion are unlawful, offensive, threatening, libelous, defamatory, pornographic, obscene or otherwise objectionable or violates any party’s intellectual property or these TERMS AND CONDITIONS. You agree that your comments will not violate any right of any third-party, including copyright, trademark, privacy, personality or other personal or proprietary right. You further agree that your comments will not contain libelous or otherwise unlawful, abusive or obscene material, or contain any computer virus or other malware that could in any way affect the operation of the Service or any related website/application. You may not use a false e-mail address, pretend to be someone other than yourself, or otherwise mislead us or third-parties as to the origin of any comments. You are solely responsible for any comments you make and their accuracy. We take no responsibility and assume no liability for any comments posted by you or any third-party. SECTION 10 - PERSONAL INFORMATION Your submission of personal information through the store is governed by our Privacy Policy. SECTION 11 - ERRORS, INACCURACIES AND OMISSIONS Occasionally there may be information on our site or in the Service that contains typographical errors, inaccuracies or omissions that may relate to product descriptions, pricing, promotions, offers, product shipping charges, transit times and availability. We reserve the right to correct any errors, inaccuracies or omissions, and to change or update information or cancel orders if any information in the Service or on any related website/application is inaccurate at any time without prior notice (including after you have submitted your order). We undertake no obligation to update, amend or clarify information in the Service or on any related website/application, including without limitation, pricing information, except as required by law. No specified update or refresh date applied in the Service or on any related website/application, should be taken to indicate that all information in the Service or on any related website/application has been modified or updated. SECTION 12 - PROHIBITED USES In addition to other prohibitions as set forth in the TERMS AND CONDITIONS, you are prohibited from using the site or its content: (a) for any unlawful purpose; (b) to solicit others to perform or participate in any unlawful acts; (c) to violate any international or UK’s regulations, rules, laws, or local ordinances; (d) to infringe upon or violate our intellectual property rights or the intellectual property rights of others; (e) to harass, abuse, insult, harm, defame, slander, disparage, intimidate, or discriminate based on gender, sexual orientation, religion, ethnicity, race, age, national origin, or disability; (f) to submit false or misleading information; (g) to upload or transmit viruses or any other type of malicious code that will or may be used in any way that will affect the functionality or operation of the Service or of any related website/application, other websites, or the Internet; (h) to collect or track the personal information of others; (i) to spam, phish, pharm, pretext, spider, crawl, or scrape; (j) for any obscene or immoral purpose; or (k) to interfere with or circumvent the security features of the Service or any related website/application, other websites, or the Internet. We reserve the right to terminate your use of the Service or any related website/application for violating any of the prohibited uses. SECTION 13 - DISCLAIMER OF WARRANTIES; LIMITATION OF LIABILITY We do not guarantee, represent or warrant that your use of our service will be uninterrupted, timely, secure or error-free. We do not warrant that the results that may be obtained from the use of the service will be accurate or reliable. You agree that from time to time we may remove the service for indefinite periods of time or cancel the service at any time, without notice to you. You expressly agree that your use of, or inability to use, the service is at your sole risk. The service and all products and services delivered to you through the service are (except as expressly stated by us) provided 'as is' and 'as available' for your use, without any representation, warranties or conditions of any kind, either express or implied, including all implied warranties or conditions of merchantability, merchantable quality, fitness for a particular purpose, durability, title, and non-infringement. In no case shall we, our directors, officers, employees, affiliates, agents, contractors, interns, suppliers, service providers or licensors be liable for any injury, loss, claim, or any direct, indirect, incidental, punitive, special, or consequential damages of any kind, including, without limitation lost profits, lost revenue, lost savings, loss of data, replacement costs, or any similar damages, whether based in contract, tort (including negligence), strict liability or otherwise, arising from your use of any of the service or any products procured using the service, or for any other claim related in any way to your use of the service or any product, including, but not limited to, any errors or omissions in any content, or any loss or damage of any kind incurred as a result of the use of the service or any content (or product) posted, transmitted, or otherwise made available via the service, even if advised of their possibility. Because some states or jurisdictions do not allow the exclusion or the limitation of liability for consequential or incidental damages, in such states or jurisdictions, our liability shall be limited to the maximum extent permitted by law. SECTION 14 - INDEMNIFICATION You agree to indemnify, defend and hold harmless us and our parent, subsidiaries, affiliates, partners, officers, directors, agents, contractors, licensors, service providers, subcontractors, suppliers, interns and employees, harmless from any claim or demand, including reasonable attorneys’ fees, made by any third-party due to or arising out of your breach of these TERMS AND CONDITIONS or the documents they incorporate by reference, or your violation of any law or the rights of a third-party. SECTION 15 - SEVERABILITY In the event that any provision of these TERMS AND CONDITIONS is determined to be unlawful, void or unenforceable, such provision shall nonetheless be enforceable to the fullest extent permitted by applicable law, and the unenforceable portion shall be deemed to be severed from these TERMS AND CONDITIONS, such determination shall not affect the validity and enforceability of any other remaining provisions. SECTION 16 - TERMINATION The obligations and liabilities of the parties incurred prior to the termination date shall survive the termination of this agreement for all purposes. These TERMS AND CONDITIONS are effective unless and until terminated by either you or us. You may terminate these TERMS AND CONDITIONS at any time by notifying us that you no longer wish to use our Services, or when you cease using our site. If in our sole judgment you fail, or we suspect that you have failed, to comply with any term or provision of these TERMS AND CONDITIONS, we also may terminate this agreement at any time without notice and you will remain liable for all amounts due up to and including the date of termination; and/or accordingly may deny you access to our Services (or any part thereof). SECTION 17 - ENTIRE AGREEMENT The failure of us to exercise or enforce any right or provision of these TERMS AND CONDITIONS shall not constitute a waiver of such right or provision. These TERMS AND CONDITIONS and any policies or operating rules posted by us on this site or in respect to The Service constitutes the entire agreement and understanding between you and us and govern your use of the Service, superseding any prior or contemporaneous agreements, communications and proposals, whether oral or written, between you and us (including, but not limited to, any prior versions of the TERMS AND CONDITIONS). Any ambiguities in the interpretation of these TERMS AND CONDITIONS shall not be construed against the drafting party. SECTION 18 - GOVERNING LAW These TERMS AND CONDITIONS and any separate agreements whereby we provide you Services shall be governed by and construed in accordance with the laws of Ireland. SECTION 19 - CHANGES TO TERMS AND CONDITIONS You can review the most current version of the TERMS AND CONDITIONS at any time at this page. We reserve the right, at our sole discretion, to update, change or replace any part of these TERMS AND CONDITIONS by posting updates and changes to our website/application. It is your responsibility to check our website/application periodically for changes. Your continued use of or access to our website/application or the Service following the posting of any changes to these TERMS AND CONDITIONS constitutes acceptance of those changes. SECTION 20 - CONTACT INFORMATION Feel free to contact us at info@harfington.com for any query. Sign In Create An Account We’ve sent you an email with a link to update your password. We’ve sent you an email with a link to update your password. Email is required or invalid. Please enter 6-32 characters as the password. Your password cannot contain spaces. Forgot_password? Forgot_password? Sign In Quick Access With 登录Signed in 登录Signed in Not you? Sign into a different account Sign into a different account or Create a new one Create a new one Update Of Terms & Conditions And Policy & Cookie Policy In order to provide better service, please read and accept : Privacy & Cookie Policy Terms & Conditions ACCEPT ACCEPT REJECT Reset your password We will send you an email to reset your password. Email is required or invalid. Submit Cancel Email is required or invalid. Please enter 6-32 characters as the password. Your password cannot contain spaces. Follow us to receive exclusive offers and our latest news I agree Harfington's Terms & Conditions and Privacy Policy JOIN HARFINGTON Quick Access With 登录Signed in 登录Signed in Not you? Sign into a different account Sign into a different account or Create a new one Create a new one Update Of Terms & Conditions And Policy & Cookie Policy In order to provide better service, please read and accept : Privacy & Cookie Policy Terms & Conditions ACCEPT ACCEPT REJECT By registering, you agree to our Privacy & Cookie Policy and Terms & Conditions Please select 'I agree' to continue. Hello, Sign in / Register Automobiles & Motorcycles Fastening & Joining Hardware Electrical & Lighting Fabricating Pipe, Tubing, Hose & Fittings Hand Tools Power Transmission Abrading & Polishing Lab & Scientific DIY Add to Cart Successfully Continue Shopping View Cart & Checkout Customers who view this item also view