Flying Eagle X5 Shrike Pro S7680 Inline Skates

$219.00
$329.99
-
$110.99
/** * 优惠码组件模型类 * 处理优惠码的显示和交互逻辑 */ class SpzCustomDiscountCodeModel extends SPZ.BaseElement { constructor(element) { super(element); // 复制按钮和内容的类名 this.copyBtnClass = "discount_code_btn" this.copyClass = "discount_code_value" } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { // 初始化服务 this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); } /** * 渲染优惠码组件 * @param {Object} data - 渲染数据 */ doRender_(data) { return this.templates_ .findAndRenderTemplate(this.element, Object.assign(this.getDefaultData(), data) ) .then((el) => { this.clearDom(); this.element.appendChild(el); // 绑定复制代码功能 this.copyCode(el, data); }); } /** * 获取渲染模板 * @param {Object} data - 渲染数据 */ getRenderTemplate(data) { const renderData = Object.assign(this.getDefaultData(), data); return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); return el; }); } /** * 清除DOM内容 */ clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } /** * 获取默认数据 * @returns {Object} 默认数据对象 */ getDefaultData() { return { isMobile: appDiscountUtils.judgeMobile(), isRTL: appDiscountUtils.judgeRTL(), image_domain: this.win.SHOPLAZZA.image_domain, copyBtnClass: this.copyBtnClass, copyClass: this.copyClass } } /** * 复制优惠码功能 * @param {Element} el - 当前元素 */ copyCode(el) { const copyBtnList = el.querySelectorAll(`.${this.copyBtnClass}`); if (copyBtnList.length > 0) { copyBtnList.forEach(item => { item.onclick = async () => { // 确保获取正确的元素和内容 const codeElement = item.querySelector(`.${this.copyClass}`); if (!codeElement) return; // 获取纯文本内容 const textToCopy = codeElement.innerText.trim(); // 尝试使用现代API,如果失败则使用备用方案 try { if (navigator.clipboard && navigator.clipboard.writeText) { await navigator.clipboard.writeText(textToCopy); } else { throw new Error('Clipboard API not available'); } // 显示复制成功提示 this.showCopySuccessToast(textToCopy, el); } catch (err) { console.error('Modern clipboard API failed, trying fallback...', err); // 使用备用复制方案 this.fallbackCopy(textToCopy, el); } const discountId = item.dataset["discountId"]; // 跳转决策: is_redirection + link(可选覆盖) const setting = { is_redirection: item.dataset["redirection"] === "true", link: item.dataset["link"], }; const landingUrl = `/promotions/discount-default/${discountId}`; const finalUrl = appDiscountUtils.resolveDiscountHref(setting, landingUrl); if (finalUrl && appDiscountUtils.inProductBody(this.element)) { this.win.open(finalUrl, '_blank', 'noopener'); } } }) } } /** * 使用 execCommand 的复制方案 * @param {string} codeText - 要复制的文本 * @param {Element} el - 当前元素 */ fallbackCopy(codeText, el) { const textarea = this.win.document.createElement('textarea'); textarea.value = codeText; // 设置样式使文本框不可见 textarea.style.position = 'fixed'; textarea.style.left = '-9999px'; textarea.style.top = '0'; // 添加 readonly 属性防止移动端虚拟键盘弹出 textarea.setAttribute('readonly', 'readonly'); this.win.document.body.appendChild(textarea); textarea.focus(); textarea.select(); try { this.win.document.execCommand('copy'); // 显示复制成功提示 this.showCopySuccessToast(codeText, el); } catch (err) { console.error('Copy failed:', err); } this.win.document.body.removeChild(textarea); } /** * 创建 Toast 元素 * @returns {Element} 创建的 Toast 元素 */ createToastEl_() { const toast = document.createElement('ljs-toast'); toast.setAttribute('layout', 'nodisplay'); toast.setAttribute('hidden', ''); toast.setAttribute('id', 'discount-code-toast'); toast.style.zIndex = '1051'; return toast; } /** * 挂载 Toast 元素到 body * @returns {Element} 挂载的 Toast 元素 */ mountToastToBody_() { const existingToast = this.win.document.getElementById('discount-code-toast'); if (existingToast) { return existingToast; } const toast = this.createToastEl_(); this.win.document.body.appendChild(toast); return toast; } /** * 复制成功的提醒 * @param {string} codeText - 要复制的文本 * @param {Element} el - 当前元素 */ showCopySuccessToast(codeText, el) { const $toast = this.mountToastToBody_(); SPZ.whenApiDefined($toast).then(toast => { toast.showToast("Discount code copied !"); this.codeCopyInSessionStorage(codeText); }); } /** * 复制优惠码成功后要存一份到本地存储中,购物车使用 * @param {string} codeText - 要复制的文本 */ codeCopyInSessionStorage(codeText) { try { sessionStorage.setItem('other-copied-coupon', codeText); } catch (error) { console.error(error) } } } // 注册自定义元素 SPZ.defineElement('spz-custom-discount-code-model', SpzCustomDiscountCodeModel);
/** * Custom discount code component that handles displaying and managing discount codes * @extends {SPZ.BaseElement} */ class SpzCustomDiscountCode extends SPZ.BaseElement { constructor(element) { super(element); // API endpoint for fetching discount codes this.getDiscountCodeApi = "\/api\/storefront\/promotion\/code\/list"; // Debounce timer for resize events this.timer = null; // Current variant ID this.variantId = "82ec0da4-5bac-4fdc-ae17-c1358583379f"; // Store discount code data this.discountCodeData = {} } /** * Check if layout is supported * @param {string} layout - Layout type * @return {boolean} */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** * Initialize component after build */ buildCallback() { this.templates_ = SPZServices.templatesForDoc(); this.viewport_ = this.getViewport(); // Bind methods to maintain context this.render = this.render.bind(this); this.resize = this.resize.bind(this); this.switchVariant = this.switchVariant.bind(this); } /** * Setup component when mounted */ mountCallback() { this.getData(); // Add event listeners this.viewport_.onResize(this.resize); this.win.document.addEventListener('dj.variantChange', this.switchVariant); } /** * Cleanup when component is unmounted */ unmountCallback() { this.viewport_.removeResize(this.resize); this.win.document.removeEventListener('dj.variantChange', this.switchVariant); // 清除定时器 if (this.timer) { clearTimeout(this.timer); this.timer = null; } } /** * Handle resize events with debouncing */ resize() { if (this.timer) { clearTimeout(this.timer) this.timer = null; } this.timer = setTimeout(() => { if (appDiscountUtils.inProductBody(this.element)) { this.render(); } else { this.renderSkeleton(); } }, 200); } /** * Handle variant changes * @param {Event} event - Variant change event */ switchVariant(event) { const variant = event.detail.selected; if (variant.product_id == 'b88ef0f2-8d07-4c3f-bef2-cbebe0c0910b' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } /** * Fetch discount code data from API */ getData() { if (appDiscountUtils.inProductBody(this.element)) { const reqBody = { product_id: "b88ef0f2-8d07-4c3f-bef2-cbebe0c0910b", variant_id: this.variantId, product_type: "default", } if (!reqBody.product_id || !reqBody.variant_id) return; this.discountCodeData = {}; this.win.fetch(this.getDiscountCodeApi, { method: "POST", body: JSON.stringify(reqBody), headers: { "Content-Type": "application/json" } }).then(async (response) => { if (response.ok) { let data = await response.json(); if (data.list && data.list.length > 0) { data.list[0].product_setting.template_config = JSON.parse(data.list[0].product_setting.template_config); // Format timestamps to local timezone const zone = this.win.SHOPLAZZA.shop.time_zone; data.list = data.list.map(item => { if(+item.ends_at !== -1) { item.ends_at = appDiscountUtils.convertTimestampToFormat(+item.ends_at, zone); } item.starts_at = appDiscountUtils.convertTimestampToFormat(+item.starts_at, zone); return item; }); } this.discountCodeData = data; this.render(); } else { this.clearDom(); } }).catch(err => { console.error("discount_code", err) this.clearDom(); }); } else { this.renderSkeleton(); } } /** * Clear component DOM except template */ clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } /** * Render discount codes with formatted dates */ render() { // Render using discount code model SPZ.whenApiDefined(document.querySelector('#spz_custom_discount_code_model')).then(renderApi => { renderApi.doRender_({ discountCodeData: this.discountCodeData }) }).catch(err => { this.clearDom(); }) } renderSkeleton() { // Render template for non-product pages this.templates_ .findAndRenderTemplate(this.element, { isMobile: appDiscountUtils.judgeMobile() }) .then((el) => { this.clearDom(); this.element.appendChild(el); }) .catch(err => { this.clearDom(); }); } } // Register custom element SPZ.defineElement('spz-custom-discount-code', SpzCustomDiscountCode);
Color- Funky
Size- 36
Quantity
Free worldwide shipping
Sustainably made
Secure payments
Product Description

Flying Eagle Shrike Pro S7680 Funky – Urban Inline Skates

Elevate your everyday skating experience with the Flying Eagle Shrike Pro S7680 Funky, a modern and stylish inline skate built for all kinds of urban skating. Equipped with a rockerable frame, this skate delivers agility and control whether you're navigating city streets, practicing freestyle, or cruising through daily commutes.


A semi-transparent outer shell reveals the multi-density liner inside—functional, breathable, and visually striking. The upgraded liner now laces all the way to the top, offering enhanced support exactly where you need it, while providing balanced cushioning and a bold design that wraps comfortably around your foot.


The redesigned cuff improves both flex and power transfer without limiting movement, giving you smooth control during turns, tricks, and fast maneuvers. Underfoot, a built-in heel shock absorber helps reduce impact from big landings or rough pavement. The ventilated shell construction and integrated side sliders keep the skates cool and protected during close encounters with city obstacles.


The setup is completed with a CNC-extruded aluminum CORE frame with rocker axles and fast, responsive Flying Eagle SHR wheels, ensuring stable performance on a variety of surfaces. The Flying Eagle Shrike Pro redefines what an urban inline skate should be—fast, comfortable, durable, and tuned for absolute control.

Product Specifications

Boot

Hard-boot molded composite plastic shell and cuff. Replaceable side protector.


Closure System

Aluminum top buckle

45° aluminum micro-adjust ratchet buckle

Traditional laces


Removable Liner

Multi-density foam liner with breathable mesh and full-height lacing.


Mounting

165mm


Frame

CORE CNC-extruded aluminum


EU36–40: 231mm

EU41–46: 243mm

Rocker axles


Wheels

Flying Eagle SHR, 85A

EU36–40: 76mm

EU41–46: 80mm


Bearings

ABEC-7 chrome


Brake

Not included


Vegan

Yes


Color Options

Black Cloud | Funky


Sizing (Dual Sizing)

Funky: EU36–42

Black Cloud: EU36–46


How to choose your size?

Sizing Tips:

These skates are true to size.If the skates do not come in half sizes or doubt your true size, then round your size up.


Generally, choose the size of your own skates according to the number of sports shoes. If your instep is relatively high or your feet are relatively wide, it is recommended that you choose a larger size of skates

How To Measure Foot Length?

It is recommended that you measure your foot length before choosing your size.


Measurement method:


Measurement methods:

1. Stand on paper.

2. Trace the toe (longest toe) and heel.

3. Measure its distance is the foot length.



Product Description

Flying Eagle Shrike Pro S7680 Funky – Urban Inline Skates

Elevate your everyday skating experience with the Flying Eagle Shrike Pro S7680 Funky, a modern and stylish inline skate built for all kinds of urban skating. Equipped with a rockerable frame, this skate delivers agility and control whether you're navigating city streets, practicing freestyle, or cruising through daily commutes.


A semi-transparent outer shell reveals the multi-density liner inside—functional, breathable, and visually striking. The upgraded liner now laces all the way to the top, offering enhanced support exactly where you need it, while providing balanced cushioning and a bold design that wraps comfortably around your foot.


The redesigned cuff improves both flex and power transfer without limiting movement, giving you smooth control during turns, tricks, and fast maneuvers. Underfoot, a built-in heel shock absorber helps reduce impact from big landings or rough pavement. The ventilated shell construction and integrated side sliders keep the skates cool and protected during close encounters with city obstacles.


The setup is completed with a CNC-extruded aluminum CORE frame with rocker axles and fast, responsive Flying Eagle SHR wheels, ensuring stable performance on a variety of surfaces. The Flying Eagle Shrike Pro redefines what an urban inline skate should be—fast, comfortable, durable, and tuned for absolute control.

Product Specifications

Boot

Hard-boot molded composite plastic shell and cuff. Replaceable side protector.


Closure System

Aluminum top buckle

45° aluminum micro-adjust ratchet buckle

Traditional laces


Removable Liner

Multi-density foam liner with breathable mesh and full-height lacing.


Mounting

165mm


Frame

CORE CNC-extruded aluminum


EU36–40: 231mm

EU41–46: 243mm

Rocker axles


Wheels

Flying Eagle SHR, 85A

EU36–40: 76mm

EU41–46: 80mm


Bearings

ABEC-7 chrome


Brake

Not included


Vegan

Yes


Color Options

Black Cloud | Funky


Sizing (Dual Sizing)

Funky: EU36–42

Black Cloud: EU36–46


How to choose your size?

Sizing Tips:

These skates are true to size.If the skates do not come in half sizes or doubt your true size, then round your size up.


Generally, choose the size of your own skates according to the number of sports shoes. If your instep is relatively high or your feet are relatively wide, it is recommended that you choose a larger size of skates

How To Measure Foot Length?

It is recommended that you measure your foot length before choosing your size.


Measurement method:


Measurement methods:

1. Stand on paper.

2. Trace the toe (longest toe) and heel.

3. Measure its distance is the foot length.



You may also like