Cat Litter Box Shuttle Corner
Premium quality - <b>Cat Litter Box Shuttle Corner</b>
${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 variantData = data.variant || {"id":"6d4e8165-3a1e-45ce-b75b-45db98d27792","product_id":"427bd27f-7237-47db-aeed-b65fa6c4d834","title":"","weight_unit":"kg","inventory_quantity":0,"sku":"S2207283","barcode":"8016040105355","position":1,"option1":"","option2":"","option3":"","note":"NEW","image":null,"wholesale_price":[{"price":12,"min_quantity":1}],"weight":"0.59","compare_at_price":"0","price":"12","retail_price":"0","available":false,"url":"\/products\/cat-litter-box-shuttle-corner?variant=6d4e8165-3a1e-45ce-b75b-45db98d27792","available_quantity":0,"options":[],"off_ratio":0,"flashsale_info":[],"sales":0};
const saveType = "percentage";
const productLabelDiscountOn = true;
return `
-
(Tax included)
${saveType == 'percentage'
? `-${variantData.off_ratio}% `
: `- `
}
(Tax included)
`;
}()}
Sku : S2207283
Weight : 0.59kg
Barcode : 8016040105355
${function(){
const variantData = data.variant || {"id":"6d4e8165-3a1e-45ce-b75b-45db98d27792","product_id":"427bd27f-7237-47db-aeed-b65fa6c4d834","title":"","weight_unit":"kg","inventory_quantity":0,"sku":"S2207283","barcode":"8016040105355","position":1,"option1":"","option2":"","option3":"","note":"NEW","image":null,"wholesale_price":[{"price":12,"min_quantity":1}],"weight":"0.59","compare_at_price":"0","price":"12","retail_price":"0","available":false,"url":"\/products\/cat-litter-box-shuttle-corner?variant=6d4e8165-3a1e-45ce-b75b-45db98d27792","available_quantity":0,"options":[],"off_ratio":0,"flashsale_info":[],"sales":0};
return `
Sku : ${variantData && variantData.sku}
Weight : ${variantData && variantData.weight}${variantData && variantData.weight_unit}
Barcode : ${variantData && variantData.barcode}
Inventory : ${variantData && variantData.available_quantity}
`
}()}
${function() {
const minDays = parseInt('3');
const maxDays = parseInt('7');
const customText = "Estimated Delivery\uff1a{min_date} - {max_date}";
const minDate = new Date(Date.now() + (minDays * 86400000));
const maxDate = new Date(Date.now() + (maxDays * 86400000));
const formatDate = (minDate.getFullYear() == maxDate.getFullYear() && minDate.getFullYear() == new Date().getFullYear())
? new Intl.DateTimeFormat('en', { month: 'short', day: '2-digit' })
: new Intl.DateTimeFormat('en', { month: 'short', day: '2-digit', year: 'numeric' });
const tipText = customText.replace(/\{min_date\}/g, '' + formatDate.format(minDate) + ' ')
.replace(/\{max_date\}/g, '' + formatDate.format(maxDate) + ' ');
return `
${tipText}
`;
}()}
Sold out
${function(){
const wholesale_enabled = false;
const qty = data.quantity || 1;
const currentSelectVariant = data.variant;
const defaultVariant = (data.product && data.product.variants && data.product.variants[0]);
const productVariant = {"id":"6d4e8165-3a1e-45ce-b75b-45db98d27792","product_id":"427bd27f-7237-47db-aeed-b65fa6c4d834","title":"","weight_unit":"kg","inventory_quantity":0,"sku":"S2207283","barcode":"8016040105355","position":1,"option1":"","option2":"","option3":"","note":"NEW","image":null,"wholesale_price":[{"price":12,"min_quantity":1}],"weight":"0.59","compare_at_price":"0","price":"12","retail_price":"0","available":false,"url":"\/products\/cat-litter-box-shuttle-corner?variant=6d4e8165-3a1e-45ce-b75b-45db98d27792","available_quantity":0,"options":[],"off_ratio":0,"flashsale_info":[],"sales":0};
const variantData = currentSelectVariant || defaultVariant || productVariant;
const wholesale_price = variantData.wholesale_price || [];
if(wholesale_enabled && wholesale_price.length > 0) {
let wholesaleIndex = wholesale_price.findIndex(item => {
return item.min_quantity > qty;
});
if(wholesaleIndex < 0){
wholesaleIndex = wholesale_price.length - 1;
}else if(wholesaleIndex > 0){
wholesaleIndex = wholesaleIndex - 1;
}
const wholesalePrice = wholesale_price[wholesaleIndex] || '';
return `
`
}else {
const price = variantData && variantData.price;
return price != undefined ? `
` : ' ';
}
}()}
Buy now
Product was out of stock.
Product is unavailable.
Discover excellence with Cat Litter Box Shuttle Corner!
The GP10535 cat litter box from Georplast is a practical and functional solution for your pet’s hygiene. This cat litter box is made of durable grey plastic , a material that makes cleaning easy and ensures long-lasting use. Its compact and ergonomic design measures approximately 50 x 40 x 17 cm , providing enough space for your cat to move comfortably inside without taking up too much room at home. The GP10535 model, also known as “Cama Arena Shuttle Corner,” features a shape especially suited for corner placement, optimizing small spaces without losing functionality. Its lightweight 455-gram weight makes it easy to handle and move if you need to relocate it often. This litter box is specifically designed for cats, addressing their comfort and cleanliness needs, and is ideal for use with standard cat litter. In summary, this product stands out for its compact design, easy-to-maintain material, and an ideal size-to-weight ratio, making it a practical choice to ensure your cat’s daily hygiene with the quality guarantee of Georplast.
Model: Sand
Units: 1 Unit
Type: Cat Litter Box
Pet: Cat
Approx. dimensions: 50 x 40 x 17 cm
Colour: Grey
Material: Plastic
Battery operated: No
Important information: Assorted designs sent randomly according to stock.Category: Pet products > Cats > Sand and home cleaning > Sand boxes
24-months Warranty on "New" Products - 12-months Warranty on "Refurbished" or "Open Box" Products
VISA - Mastercard - Google Pay - Apple Pay
Secure payments by PayPal