Solar Automatic Chicken Coop Door - Automatic Coop Door with Timer & Light Sensor & Remote Control, 2023 Upgrade Anti-Pinch Function, Aluminum & Waterproof Electric Coop Door for Chickens Ducks Farms
Solar Automatic Chicken Coop Door - Automatic Coop Door with Timer & Light Sensor & Remote Control, 2023 Upgrade Anti-Pinch Function, Aluminum & Waterproof Electric Coop Door for Chickens Ducks Farms
${function() {
const variantData = data.variant || {"id":"7be39714-8378-44a0-8286-f4589c9025af","product_id":"7c406ca9-b68e-4c96-8e5e-158b24e81bb6","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"WMJSMA001","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":98.99,"min_quantity":1}],"weight":"0","compare_at_price":"169.99","price":"98.99","retail_price":"169.99","available":true,"url":"\/products\/solar-automatic-chicken-coop-door-automatic-coop-door-with-timer-light-sensor-remote-control-2023-upgrade-anti-pinch-function-aluminum-waterproof-electric-coop-door-for-chickens-ducks-farms?variant=7be39714-8378-44a0-8286-f4589c9025af","available_quantity":999999999,"options":[],"off_ratio":"42","flashsale_info":{"variant_id":"7be39714-8378-44a0-8286-f4589c9025af","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":"98.99","compare_at_price":"","discount_price":"98.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"42","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.
Solar powered: The automatic chicken coop door is solar-powered, which can be charged through USB charging port, two power supply methods to ensure This automatic chicken coop door offers multiple control methods for your convenience. You can set timers, use light sensors, manual control, and even a remote control. All settings can be easily operated on an LCD screen, so you don't have to guess your settings or be a tech expert to program the door.(Contains 1 wooden egg)
Our automatic chicken door comes with an anti-pinch safety feature to protect your precious chickens. The door will stop dropping when it senses an obstacle, preventing your chickens from any harm. Constructed with durable aluminum and AES, it's sturdy enough to keep predators out and ensure the safety of your chickens.
Unlike other automatic coop doors, our door can flexibly use solar power or a power cord. Whether you prefer solar energy or a power cord, our door can meet your needs. Enjoy the freedom brought by the solar-powered chicken coop door!
This solar chicken coop door has timer and light sensor functions. You can set the door to open or close based on light levels or a fixed time. You can also adjust the light sensitivity of the door based on local sunrise and sunset times.
Versatile Application: Suitable for chickens, ducks, geese, and other poultry, our automatic coop door allows you to enjoy stress-free weekends and holidays, knowing your birds are secure.
Solar powered: The automatic chicken coop door is solar-powered, which can be charged through USB charging port, two power supply methods to ensure that the chicken coop door can work normally in sunny days, cloudy days and other conditions.
Vendor by :
JINORTUA
Sku :
WMJSMA001
Inventory :
999999999
${function(){
const variantData = data.variant || {"id":"7be39714-8378-44a0-8286-f4589c9025af","product_id":"7c406ca9-b68e-4c96-8e5e-158b24e81bb6","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"WMJSMA001","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":98.99,"min_quantity":1}],"weight":"0","compare_at_price":"169.99","price":"98.99","retail_price":"169.99","available":true,"url":"\/products\/solar-automatic-chicken-coop-door-automatic-coop-door-with-timer-light-sensor-remote-control-2023-upgrade-anti-pinch-function-aluminum-waterproof-electric-coop-door-for-chickens-ducks-farms?variant=7be39714-8378-44a0-8286-f4589c9025af","available_quantity":999999999,"options":[],"off_ratio":"42","flashsale_info":{"variant_id":"7be39714-8378-44a0-8286-f4589c9025af","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":"98.99","compare_at_price":"","discount_price":"98.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"42","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}
` }()}