Home
Slsy 11 in-1 Combo Game Table Set - 2x4ft Multi Game Table,Air Hockey, Pool, Table Tennis,Chess, Shuffle-Board, Checkers, Bowling, Kids Adults Gifts for Home, Arcade, Game Room
Slsy 11 in-1 Combo Game Table Set - 2x4ft Multi Game Table,Air Hockey, Pool, Table Tennis,Chess, Shuffle-Board, Checkers, Bowling, Kids Adults Gifts for Home, Arcade, Game Room
Slsy 11 in-1 Combo Game Table Set - 2x4ft Multi Game Table,Air Hockey, Pool, Table Tennis,Chess, Shuffle-Board, Checkers, Bowling, Kids Adults Gifts for Home, Arcade, Game Room
${function() {
const variantData = data.variant || {"id":"010fbd29-c699-42c5-b2a7-75f4ec0c4c4e","product_id":"c2d104c6-be24-48ec-a6cc-9188c1e4db40","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"I1600249-11IN1","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":119,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"119","retail_price":"0","available":true,"url":"\/products\/slsy-11-in-1-combo-game-table-set-2x4ft-multi-game-table-air-hockey-pool-table-tennis-chess-shuffle-board-checkers-bowling-kids-adults-gifts-for-home-arcade-game-room?variant=010fbd29-c699-42c5-b2a7-75f4ec0c4c4e","available_quantity":999999999,"options":[],"off_ratio":"0","flashsale_info":{"variant_id":"010fbd29-c699-42c5-b2a7-75f4ec0c4c4e","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":"119","compare_at_price":"","discount_price":"119","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.
11 options for friendly competition provide hours of fun for the entire family!Hours of fun for family and friends makes for friendly competition through a variety of games. With this table, you'll have multiple game options for every day of the week! All accessories for every surface are included, with over 50 accessories that come with this set for endless fun - everything needed to enjoy various games. Gather everyone and choose between foosball, air hockey, ping pong, and so much more! Plus, there's more to choose from, with other options that include billards, chess, checkers, cards, bowling, backgammon, and a shuffle bowl game. A stable, space-saving design embodies quality construction, crafted with easy interchanging boards that hold up as you stack them atop each other to save space. Fun and good times are a given with this table in your game room!
【FUN FOR FAMILY & FRIENDS】: 11 options for friendly competition provide hours of fun for the entire family! Let children battle it out in shuffleboard, or watch grandpa dominate a game of billiards
【VERSATILE 10-IN-1 TABLE】: Interchangeable table top lets you play slide hockey, foosball, billiards, shuffleboard, table tennis, chess, cards, checkers, bowling, and backgammon (Billiards and table tennis are not regulation size)
【SPACE-SAVING DESIGN】: All surfaces can be stacked between the billiard base and foosball table, making it ideal for placement in a child's bedroom or a bonus game room
【STABLE BUILD】: Easy-to-interchange boards rest on 4 strong legs, with each standing on non-slip footing to help prevent sliding and ensure stability
【ALL ACCESSORIES INCLUDED】: This set comes complete with over 50 accessories, so enjoyable competition is at your fingertips in a variety of ways!; OVERALL DIMENSIONS: 40"(L) x 22.5"(W) x 31.5"(H)
Vendor by :
Slsy
Sku :
I1600249-11IN1
Inventory :
999999999
${function(){
const variantData = data.variant || {"id":"010fbd29-c699-42c5-b2a7-75f4ec0c4c4e","product_id":"c2d104c6-be24-48ec-a6cc-9188c1e4db40","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"I1600249-11IN1","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":119,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"119","retail_price":"0","available":true,"url":"\/products\/slsy-11-in-1-combo-game-table-set-2x4ft-multi-game-table-air-hockey-pool-table-tennis-chess-shuffle-board-checkers-bowling-kids-adults-gifts-for-home-arcade-game-room?variant=010fbd29-c699-42c5-b2a7-75f4ec0c4c4e","available_quantity":999999999,"options":[],"off_ratio":"0","flashsale_info":{"variant_id":"010fbd29-c699-42c5-b2a7-75f4ec0c4c4e","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":"119","compare_at_price":"","discount_price":"119","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}
` }()}