42pcs 1/4 in. Drive Sockets & Ratchet Tool Set
42pcs 1/4 in. Drive Sockets & Ratchet Tool Set
${function() {
const variantData = data.variant || {"id":"e1dd0b8c-6b4f-4766-aab8-ad60966ea050","product_id":"0891e05f-399d-4444-8db2-adc98e2e8cca","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"TOOLS-00127","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":49.99,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"49.99","retail_price":"0","available":true,"url":"\/products\/tools-00127?variant=e1dd0b8c-6b4f-4766-aab8-ad60966ea050","available_quantity":999999999,"options":[],"off_ratio":"0","flashsale_info":{"variant_id":"e1dd0b8c-6b4f-4766-aab8-ad60966ea050","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"49.99","compare_at_price":"","discount_price":"49.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"0","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0};
const saveType = null;
const productSaveLabel = null;
return `
-
${ variantData.off_ratio }%
`; }()}
${function(){
return `
${data.starNum}/${data.starTotal}
`;
}()}
${function(){
return `
${data.showStarText === 'true' ? `
${data.starNum}/${data.starTotal}
` : ''}
`;
}()}
const TAG = 'spz-custom-revue-star';
class SPZCustomRevueStar extends SPZ.BaseElement {
constructor(element) {
super(element);
}
static deferredMount() {
return false;
}
buildCallback = () => {
this.action_ = SPZServices.actionServiceForDoc(this.element);
this.templates_ = SPZServices.templatesForDoc(this.element);
this.xhr_ = SPZServices.xhrFor(this.win);
this.starNum = this.element.getAttribute('starNum');
this.starTotal = this.element.getAttribute('starTotal');
this.showStarText = this.element.getAttribute('showStarText');
this.starColor = this.element.getAttribute('color');
this.interact = this.element.getAttribute('interact');
this.starSize = this.element.getAttribute('starSize') || 14;
}
mountCallback = () => {
this.doRender_({
starTotal: this.starTotal,
totalArray: Array.from({ length: Number(this.starTotal) }, (v, k) => k + 1),
starNum: this.starNum,
showStarText: this.showStarText,
starColor: this.starColor,
starSize: this.starSize
}).then(() => {
if (this.interact) {
this.addEventListeners_();
}
});
}
addEventListeners_ = () => {
const stars = document.querySelectorAll('.revue-star__star');
stars.forEach(star => {
star.addEventListener('click', event => {
const starEl = star.closest('.revue-star__star');
const starIndex = Number(starEl.dataset.index);
let isHalf = event.offsetX < star.offsetWidth / 2;
// rtl
if (document.documentElement.getAttribute('dir') === 'rtl') {
isHalf = event.offsetX > star.offsetWidth / 2;
}
const starValue = isHalf ? starIndex - 0.5 : starIndex;
this.starClickHandler_({ value: starValue });
});
});
}
renderStar = () => {
const isRtl = document.documentElement.getAttribute('dir') === 'rtl';
const stars = this.element.querySelectorAll('.revue-star__star');
stars.forEach((star, i) => {
const starIndex = i + 1;
const starEl = star.querySelector('svg:nth-child(2)');
const isHalf = this.starNum % 1 > 0 && Math.ceil(this.starNum) === starIndex;
const isSolid = starIndex <= Math.ceil(this.starNum);
starEl.style.display = isSolid ? 'block' : 'none';
if (isHalf) {
if (isRtl) {
// RTL布局下,如果是半星,显示星星的右半边
starEl.style.clipPath = `polygon(50% 0, 100% 0, 100% 100%, 50% 100%)`;
} else {
// LTR布局下,如果是半星,显示星星的左半边
starEl.style.clipPath = `polygon(0 0, 50% 0, 50% 100%, 0 100%)`;
}
} else {
starEl.style.clipPath = `polygon(0 0, 100% 0, 100% 100%, 0 100%)`
}
});
const showCountEle = this.element.querySelector('#revue-star-show-count');
showCountEle && SPZ.whenApiDefined(showCountEle).then((api) => {
api.render({ starNum: this.starNum, starTotal: this.starTotal });
});
}
doRender_ = (data) => {
return this.templates_
.findAndRenderTemplate(this.element, { starSize: this.starSize, ...data }, null)
.then((el) => {
const children = this.element.querySelector('*:not(template)');
children && SPZCore.Dom.removeElement(children);
this.element.appendChild(el);
})
.then(() => {
this.starNum = data.starNum;
this.renderStar();
});
}
starClickHandler_ = (event) => {
this.starNum = event.value;
this.renderStar();
this.triggerEvent_('change', { value: event.value });
}
triggerEvent_(name, data) {
const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {});
this.action_.trigger(this.element, name, event);
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.CONTAINER;
}
}
SPZ.defineElement(TAG, SPZCustomRevueStar)
()
try {
const productId = window.SHOPLAZZA.meta.page.resource_id;
const productType = `default`;
const getProductReviews = (star_least) =>
fetch('/api/comment/count-star-multi',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
product_id: [productId],
star_least: star_least || 1,
}),
}).then(res => res.json());
try {
const section = document.querySelector('#revue-product-star');
if(productType === "gift_card" && section) {
section.style.display = 'none';
}
} catch(e) {
console.log(e);
window.addEventListener('load', () => {
try {
const section = document.querySelector('#revue-product-star');
if(productType=== "gift_card" && section) {
section.style.display = 'none';
}
} catch(e) {
console.log(e)
}
})
}
const getReviewsConfig = async () => {
let data = {};
const url = new URL(window.location.href);
const preview_theme_id = url.searchParams.get('preview_theme_id');
const commentConfig = await fetch('/api/comment-config', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
}
}).then(res => res.json());
data = commentConfig.data;
const themeConfig = await fetch(`/api/comment-config?theme_id=${preview_theme_id || ''}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
}
}).then(res => res.json());
if (themeConfig?.data && themeConfig.data.star_color) {
data.star_color = themeConfig.data.star_color;
}
if (preview_theme_id) {
data.star_least = window.apps_global && apps_global.reviews && apps_global.reviews.preview_star_least;
} else if (themeConfig?.data && themeConfig.data.product_settings) {
data.star_least = themeConfig.data.product_settings.star_least;
}
return data;
};
if (productId && window.SHOPLAZZA.meta.page.template_type == 1) {
getReviewsConfig().then(async res => {
const config = res;
let review = await getProductReviews(config.star_least);
review = review.data[productId];
if (!config.open_status || (!review.comment_avg_star && !config.show_no_comment_star)) return;
const render = async () => {
const section = document.querySelector('#revue-product-star');
const starComponent = document.querySelector('#revue-product-star-component');
const count = document.querySelector('#revue-product-star-count');
count.innerText = review.published_count;
const api = await SPZ.whenApiDefined(starComponent);
api.doRender_({
starNum: review.comment_avg_star,
starTotal: 5,
showStarText: false,
starColor: config.star_color,
totalArray: Array.from({ length: 5 }, (v, k) => k + 1)
});
section.style.opacity = 1;
}
render();
document.addEventListener('dj.editor.update', render);
});
}
} catch (e) {console.warn(e)};
${function() {
const minInventory = parseInt('7');
const maxInventory = parseInt('10');
const randomInventory = Math.round(Math.random() * (maxInventory - minInventory)) + minInventory;
const customText = "Only {stock} item(s) left in stock!".replace(/\{stock\}/g, '' + randomInventory + '');
const barWidth = (randomInventory / maxInventory) * 100 + '%';
return `
`;
}()}
Product was out of stock.
Enjoy free shipping on every order, delivered to your doorstep no matter where you are in the world.
Shop with confidence with our hassle-free returns policy, ensuring you love what you buy.
Designed with the planet in mind, all our products are committed to sustainable practices.
Your payment information is always protected with our advanced, encrypted checkout security.
Description:
This 42 piece mechanic's tool set includes an easy to carry case, along with the essential tools that you need to start home maintenance, auto repairs, and light duty projects. This high quality mechanic's tool set includes the most used automotive and mechanic's joint, spinner handle and hex adaptor. Constructed of durable drop forged steel, this mechanic's tool set is built to last. Includes a custom storage case to keep tools organized and protected.
Specifics and Features:
Great starter tool set comes with the right components to cover a variety of common household needs
Sokets are made of high-quality heat treated chrome-vanadium steel
Ratchet with rubberized slip-resistant handle for comfortable use.
The compact case is made of ABS plastic keeps everything, clean organized and easy to use
Makes and excellent gift for home, office, apartment or dormitoryMaterial: Chrome Vanadium Steel / ABS Plastic / RubberStyle: 42-Pc Socket SetFitment Type: Performance/CustomFinish: ChromeColor: Metallic / Gray / OrangeType: Socket Set
Package Included:
1 X Carrying Case
1 X 1/4" Hex Adaptor
1 X 1/4" DR.universal joint
1 X 1/4" DR.spinner Handle
1 X 1/4" Extension Bar 2"
1 X 1/4" Extension Bar 4"
1 X 1/4" DR.Sliding T Handle 4"
1 X 1/4" DR.Flexible spinner Handle 6"
1 X 1/4" DR.72 Ratchet Handle 72 Teeth Rubber Handle 5.5"
3 X 1/4" DR.Pozi Bits Socket 37mm: PZ1, PZ2, PZ3
3 X 1/4" DR.Philips Bits Socket 37mm: PH1, PH2, PH3
3 X 1/4" DR.Philips Bits Socket 37mm: SL4, SL5.5, SL7
6 X 1/4" DR.Hex Bits Scoket 37mm: H3, H4, H5, H6, H7, H8
6 X 1/4" DR.Torque Bits Sockets 37mm: T10, T15, T20, T25, T30, T40
13 X 1/4" DR.Socket: 5/32, 11/64, 3/16, 7/32, 9/32, 1/4, 5/16, 11/32, 3/8, 7/16, 1/2, 17/32, 9/16
Vendor by :
Tool Sets(汽摩)
Sku :
TOOLS-00127
Inventory :
999999999
${function(){
const variantData = data.variant || {"id":"e1dd0b8c-6b4f-4766-aab8-ad60966ea050","product_id":"0891e05f-399d-4444-8db2-adc98e2e8cca","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"TOOLS-00127","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":49.99,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"49.99","retail_price":"0","available":true,"url":"\/products\/tools-00127?variant=e1dd0b8c-6b4f-4766-aab8-ad60966ea050","available_quantity":999999999,"options":[],"off_ratio":"0","flashsale_info":{"variant_id":"e1dd0b8c-6b4f-4766-aab8-ad60966ea050","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"49.99","compare_at_price":"","discount_price":"49.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"0","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0};
return `
Vendor by :
${data.product && data.product.vendor}
Weight :
${variantData && variantData.weight}${variantData && variantData.weight_unit}
Barcode :
${variantData && variantData.barcode}
Sku :
${variantData && variantData.sku}
Inventory :
${variantData && variantData.available_quantity}
` }()}