VIBESPARK Squat Rack Power Rack, Multi-Function Adjustable Squat Rack with Pull-up Bar & J-Hooks, Bench Press Rack for Home Gym Fitness Equipment, Power Rack Cage
VIBESPARK Squat Rack Power Rack, Multi-Function Adjustable Squat Rack with Pull-up Bar & J-Hooks, Bench Press Rack for Home Gym Fitness Equipment, Power Rack Cage
${function() {
const variantData = data.variant || {"id":"8a966980-858d-4526-9162-96b02d77b7be","product_id":"39e1ccb5-e80e-4543-9c76-405278066a4a","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"US01+AMA006021_B:J02Y201","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":139.99,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"139.99","retail_price":"0","available":true,"url":"\/products\/vibespark-squat-rack-power-rack-multi-function-adjustable-squat-rack-with-pull-up-bar-j-hooks-bench-press-rack-for-home-gym-fitness-equipment-power-rack-cage?variant=8a966980-858d-4526-9162-96b02d77b7be","available_quantity":999999999,"options":[],"off_ratio":"0","flashsale_info":{"variant_id":"8a966980-858d-4526-9162-96b02d77b7be","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":"139.99","compare_at_price":"","discount_price":"139.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.
Upgrade Your Home Gym with VIBESPARK Ultimate Power Rack ¨C Strength, Safety, and Versatility in One!
Looking for a reliable, all-in-one solution for your strength training? This Multifunctional Power Rack has you covered! Built with heavy-duty 1.5mm steel and a durable powder coating, it supports up to 800 lbs and features 13 adjustable levels for squats, bench presses, pull-ups, and more. With built-in storage for weights and barbells, it keeps your space tidy and safe. Easy to assemble and perfect for any home gym, this all-in-one power rack is your key to achieving fitness goals at home.
- All-in-One Power Rack with pull-up bar
- Thickened steel, Up to 800LBS
- Rubber feet, stable and non-slip
- Pull-up bar, options for wide, narrow, and neutral grips.
- Barbell rack, easy height adjustments for different exercises.
??Feature:
[All-in-One Power Rack]?-- This Olympic squat rack for home gym comes with a pull-up bar and is compatible with all Olympic barbells and weight benches. Perfect for both small home gyms and large training facilities, it supports a wide range of exercises¡ªsquats, bench presses, pull-ups, chin-ups, push-ups, and more¡ªto target your back, chest, legs, arms, and core.
[Weight Capacity]?-- Built with heavy-duty 1.5mm thick steel and a high-quality powder-coated finish, this power rack delivers exceptional stability and durability. Rigorously tested to support up to 800 lbs, it ensures a safe and secure workout experience every time.
[Adjustable Design]?-- Featuring 13 levels of adjustable J-hooks and safety bars, this squat rack adapts to your every move. Whether you're squatting, bench pressing, or performing other exercises, simply adjust the hooks and safety bars to fit your height and training needs.
[Storage Solutions]?-- Equipped with 2 weight plate storage posts and 2 barbell storage posts, this squat rack keeps your gym area organized and clutter-free. Say goodbye to tripping hazards and hello to a clean, efficient workout space.
[Easy Assembly, Spacious Design]?-- We¡¯ve included a detailed instruction manual and step-by-step installation video to make setup a breeze. With dimensions of 40.2"L ¡Á 49.6" W ¡Á 85.4"H, this power rack for home gym is spacious enough for multiple users, making it the perfect addition to your home gym.
?
???Specifications:
- Brand: VIBESPARK
- Color: Red
- Material: Alloy Steel
- Height-Adjustable: 13
- Weight Capacity: 800LBS
- Weight Plate Carriage: 220LBS
- Weight Pull-up Bar: 300LBS
- Weight Weight Tube: 150LBS
- Product Weight: 82.67LBS
- Item Dimensions: 40.2"L ¡Á 49.6" W ¡Á 85.4" H
- Suggested Users: ?Unisex-Adult
- Trainable Body Parts: Full-body training for shoulders, chest, legs, biceps, triceps, abs, glutes, and core strength.
??Package:
- 1 x Power?rack(the Barbell and weight plates are not included)
- 2 x Barbell Clamps
- 1 x Toolkit
- 1 x Manual
Vendor by :
VIBESPARK
Sku :
US01+AMA006021_B:J02Y201
Inventory :
999999999
${function(){
const variantData = data.variant || {"id":"8a966980-858d-4526-9162-96b02d77b7be","product_id":"39e1ccb5-e80e-4543-9c76-405278066a4a","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"US01+AMA006021_B:J02Y201","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":139.99,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"139.99","retail_price":"0","available":true,"url":"\/products\/vibespark-squat-rack-power-rack-multi-function-adjustable-squat-rack-with-pull-up-bar-j-hooks-bench-press-rack-for-home-gym-fitness-equipment-power-rack-cage?variant=8a966980-858d-4526-9162-96b02d77b7be","available_quantity":999999999,"options":[],"off_ratio":"0","flashsale_info":{"variant_id":"8a966980-858d-4526-9162-96b02d77b7be","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":"139.99","compare_at_price":"","discount_price":"139.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}
` }()}