Sports Shoes for Kids Joma Sport 3080 Jr 2507 Orange
Discover excellence with <b>Sports Shoes for Kids Joma Sport 3080 Jr 2507 Orange!</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":"b69a68d8-e87a-4326-a163-682b4cbbcb61","product_id":"340f22d4-f37f-49b0-9b4c-459438b2f2ef","title":"","weight_unit":"kg","inventory_quantity":1,"sku":"S64180106","barcode":"8447150536553","position":1,"option1":"","option2":"","option3":"","note":"NEW","image":null,"wholesale_price":[{"price":52,"min_quantity":1}],"weight":"0.82","compare_at_price":"0","price":"52","retail_price":"0","available":true,"url":"\/na\/products\/sports-shoes-for-kids-joma-sport-3080-jr-2507-orange?variant=b69a68d8-e87a-4326-a163-682b4cbbcb61","available_quantity":1,"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 : S64180106
Weight : 0.82kg
Barcode : 8447150536553
Inventory : 1
${function(){
const variantData = data.variant || {"id":"b69a68d8-e87a-4326-a163-682b4cbbcb61","product_id":"340f22d4-f37f-49b0-9b4c-459438b2f2ef","title":"","weight_unit":"kg","inventory_quantity":1,"sku":"S64180106","barcode":"8447150536553","position":1,"option1":"","option2":"","option3":"","note":"NEW","image":null,"wholesale_price":[{"price":52,"min_quantity":1}],"weight":"0.82","compare_at_price":"0","price":"52","retail_price":"0","available":true,"url":"\/na\/products\/sports-shoes-for-kids-joma-sport-3080-jr-2507-orange?variant=b69a68d8-e87a-4326-a163-682b4cbbcb61","available_quantity":1,"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: {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}
`;
}()}
Add to cart
${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":"b69a68d8-e87a-4326-a163-682b4cbbcb61","product_id":"340f22d4-f37f-49b0-9b4c-459438b2f2ef","title":"","weight_unit":"kg","inventory_quantity":1,"sku":"S64180106","barcode":"8447150536553","position":1,"option1":"","option2":"","option3":"","note":"NEW","image":null,"wholesale_price":[{"price":52,"min_quantity":1}],"weight":"0.82","compare_at_price":"0","price":"52","retail_price":"0","available":true,"url":"\/na\/products\/sports-shoes-for-kids-joma-sport-3080-jr-2507-orange?variant=b69a68d8-e87a-4326-a163-682b4cbbcb61","available_quantity":1,"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
Sports Shoes for Kids Joma Sport 3080 Jr 2507 Orange! , ideal for those who seek quality products for their little ones! Get
Joma Sport and other brands and licences at the best prices!
The Joma 3080 Jr 2507 children’s sports shoes are a practical and comfortable option designed for kids, featuring an attractive coral orange color that adds a touch of vitality and style. This unisex model is made with synthetic leather , a durable and easy-to-clean material, ideal for daily use and children’s activities. It includes a velcro closure system that makes putting them on and taking them off easier, promoting independence for the little ones. Available in size 30 , a suitable fit for children needing lightweight and functional footwear. Its design aims to combine comfort and durability, essential for sports shoes at an early age, providing stable support for playing and moving freely. The midsole and sole offer sufficient cushioning to protect feet during active movement and ensure traction on various surfaces. Overall, the Joma 3080 Jr 2507 provide a practical footwear solution for children that meets the daily demands of their sports and leisure activities, maintaining a balanced mix of design, functionality, and comfort.
Type: Sports Shoes for Kids Colour: Orange Gender: Size: 30 Category: Shoes and accessories > Shoes > Boy's shoes > Trainers
24-month Warranty on "New" Products - 12-month Warranty on "Refurbished" or "Open Box" Products
VISA - Mastercard - Google Pay - Apple Pay
Secure payments by PayPal