gunner.com
Open in
urlscan Pro
23.227.38.32
Public Scan
Submitted URL: http://gunner.com/
Effective URL: https://gunner.com/
Submission Tags: tranco_l324
Submission: On May 18 via api from DE — Scanned from CA
Effective URL: https://gunner.com/
Submission Tags: tranco_l324
Submission: On May 18 via api from DE — Scanned from CA
Form analysis
11 forms found in the DOMGET /search
<form action="/search" method="get" class="search-bar" role="search">
<input type="hidden" name="type" value="product">
<input type="search" name="q" value="">
<button type="submit" class="search-bar--submit icon-fallback-text">
<div class="search-icon">
<svg aria-hidden="true" focusable="false" role="presentation" viewBox="0 0 37 40">
<path
d="M35.6 36l-9.8-9.8c4.1-5.4 3.6-13.2-1.3-18.1-5.4-5.4-14.2-5.4-19.7 0-5.4 5.4-5.4 14.2 0 19.7 2.6 2.6 6.1 4.1 9.8 4.1 3 0 5.9-1 8.3-2.8l9.8 9.8c.4.4.9.6 1.4.6s1-.2 1.4-.6c.9-.9.9-2.1.1-2.9zm-20.9-8.2c-2.6 0-5.1-1-7-2.9-3.9-3.9-3.9-10.1 0-14C9.6 9 12.2 8 14.7 8s5.1 1 7 2.9c3.9 3.9 3.9 10.1 0 14-1.9 1.9-4.4 2.9-7 2.9z">
</path>
</svg>
</div>
</button>
</form>
GET /search
<form action="/search" method="get" class="search-bar" role="search" data-event-types="form_submission" data-element-id="XkLOoz2o3aULlZJsW6ICUivTm2w3gEDl">
<input type="hidden" name="type" value="product">
<input type="search" name="q" value="" data-event-types="input_focus,input_blur" data-element-id="xMOisOouK8xNEuwAnvRpPENEy20bOkV4">
</form>
POST /contact#ContactFooter
<form method="post" action="/contact#ContactFooter" id="ContactFooter" accept-charset="UTF-8" class="contact-form" novalidate="novalidate" data-event-types="form_submission" data-element-id="NCLvHkhw8aAv1CodEIK6T6Mg5Q06TRaY"><input type="hidden"
name="form_type" value="customer"><input type="hidden" name="utf8" value="✓">
<div class="newsletter-form-fields">
<input type="hidden" name="contact[tags]" value="newsletter">
<input type="email" name="contact[email]" id="ContactFooter-email" value="" placeholder="Your Email Address" required="" autocorrect="off" autocapitalize="off" data-event-types="input_focus,input_blur"
data-element-id="hY3x6Gw8ShJVx49vgT4wsAkMlBCfjuhH">
<button type="submit" name="commit" id="Subscribe" data-event-types="hover,click" data-element-id="uWtBbpA1JTmBnU3L02C9fHMvsO4ri12Z">
<span>JOIN THE PACK</span>
</button>
</div>
</form>
POST /cart/add
<form method="post" action="/cart/add" id="product_form_4504503648328" accept-charset="UTF-8" class="product-form product-form-45045036483282" enctype="multipart/form-data" novalidate="novalidate"><input type="hidden" name="form_type"
value="product"><input type="hidden" name="utf8" value="✓">
<div class="name-plate-add-to-cart">
<div class="name-plate-quantity" style="display: none">
<div class="dec increment-button">-</div>
<input type="number" id="Quantity-45045036483282" name="quantity" value="1" min="1" pattern="[0-9]*">
<div class="inc increment-button">+</div>
</div>
<div class="selector-wrapper js product-form__item">
<label style="display: none" for="SingleOptionSelector-0"> Size </label>
<select class="single-option-selector single-option-selector-45045036483282 product-form__input" id="SingleOptionSelector-0" data-index="option1" data-event-types="select_change" data-element-id="XJMRTvxBPhR4o1JoSCMf9h024dNFv3LR">
<option value="Intermediate/Large" selected="selected">Intermediate/Large</option>
<option value="Small/Medium">Small/Medium</option>
</select>
</div>
<select style="display: none" name="id" id="ProductSelect-45045036483282-quickview" class="product-form__variants no-js">
<option selected="selected" value="31801264013384"> Intermediate/Large </option>
<option value="31882148020296"> Small/Medium </option>
</select>
<script type="module">
const template = `index`;
const productHandle = `personalized-kennel-name-plate`;
const personalization = document.querySelector('.personalization[data-product="' + productHandle + '"]');
const parentElement = personalization.closest('.product-details') || personalization.closest('.food-crate-name-plate-popup') || personalization.closest('.name-plate-popup') || personalization.closest('.kennel-bundle-popup') || personalization
.closest('.upsell-accessories-modal') || personalization.closest('#shopify-section-product-details_development-bundle-promo') || personalization.closest('#shopify-section-product-details_event-promo') || personalization.closest(
'#shopify-section-product-details_boykin-nationals-promo') || personalization.closest('#shopify-section-product-details_bundle') || personalization.closest('[id*=product-details_foodcratebundle]');
const personalizationOverlay = parentElement.querySelector('.personalization-overlay');
const dogNameInput = personalization.querySelector('.dog-name');
const addToCartButton = parentElement.querySelector('.add-to-cart-button');
const quantityButtons = parentElement.querySelector('.product-quantity');
const variantSelector = parentElement.querySelector('.single-option-selector');
const bundleStockCheck = () => {
var bundlePersonalization = document.querySelector('.product-options-container[data-product-handle="personalized-kennel-name-plate"]');
if (productHandle == 'food-crate-name-plate') {
bundlePersonalization = document.querySelector('.product-options-container[data-product-handle="food-crate-name-plate"]');
}
if (!bundlePersonalization) {
return;
}
if (!bundlePersonalization.querySelector('.bundle-out-of-stock')) {
return;
}
// Bundle page kennel size swatch label
let kennelSize;
const kennelSizeSwatchLabel = document.querySelector('#product_form_6569779036359 .swatch[data-swatch-name="Size"] .swatch-selected');
kennelSizeSwatchLabel ? kennelSize = kennelSizeSwatchLabel.textContent : null;
let namePlateAvailable;
kennelSize === 'Small' || kennelSize === 'Medium' ? namePlateAvailable = bundlePersonalization.querySelector('div[data-variant="Small/Medium"]').getAttribute('data-variant-available') : null;
kennelSize === 'Intermediate' || kennelSize === 'Large' ? namePlateAvailable = bundlePersonalization.querySelector('div[data-variant="Intermediate/Large"]').getAttribute('data-variant-available') : null;
if (!namePlateAvailable && !document.querySelectorAll('.bundle-out-of-stock.visible:not(.personalization-unavailable)').length) {
bundlePersonalization.querySelector('.bundle-out-of-stock').classList.add('visible');
// Bundle combination out of stock, hide/show Out of Stock form
const outOfStockForm = document.querySelector('#out-of-stock-form');
if (outOfStockForm) {
// Add to cart container
const addToCartContainer = document.querySelector('#product-add-to-cart');
outOfStockForm.classList.remove('hidden');
addToCartContainer.classList.add('hidden');
const activeBundleId = determineBundle();
// Determine which form to show
const klaviyoForms = outOfStockForm.querySelectorAll('.klaviyo-form');
klaviyoForms.forEach(klaviyoForm => {
if (klaviyoForm.getAttribute('data-bundle-id') == activeBundleId) {
klaviyoForm.classList.remove('hidden');
} else {
klaviyoForm.classList.add('hidden');
}
});
// Update active bundle ID
outOfStockForm.querySelector('#active-bundle').setAttribute('data-bundle-id', activeBundleId);
}
} else {
bundlePersonalization.querySelector('.bundle-out-of-stock').classList.remove('visible');
}
};
// checkCartButton(string)
const checkCartButton = (inputValue) => {
if (inputValue.length && personalization.querySelector('.personalization-approved').checked) {
if (addToCartButton) {
//food crate bundle, do not run the texts overlay in product image
if (template.indexOf('food-crate-bundle') !== -1) {
let productOptionsParent = document.getElementById('product-options');
let productOptionsCont = productOptionsParent.querySelectorAll('.option-container');
let countCheckedOptions = 0;
let productOptionsLength = productOptionsCont.length;
if (productOptionsCont) {
productOptionsCont.forEach(productOptionContainer => {
let swatchCont = productOptionContainer.querySelector('.swatch-container');
let swatchInput = swatchCont.querySelectorAll('input[type="radio"]:checked');
if (swatchInput.length) {
countCheckedOptions++;
}
});
if (countCheckedOptions == productOptionsLength) {
addToCartButton.classList.remove('disabled');
addToCartButton.removeAttribute('disabled');
}
}
} else {
addToCartButton.classList.remove('disabled');
addToCartButton.removeAttribute('disabled');
}
}
quantityButtons && quantityButtons.classList.remove('disabled');
} else {
if (addToCartButton) {
addToCartButton.classList.add('disabled');
addToCartButton.setAttribute('disabled', true);
}
quantityButtons && quantityButtons.classList.add('disabled');
}
// If any bundles are disabled, disable cart functionality
const unavailableBundleOptions = document.querySelectorAll('#shopify-section-product-details_bundle #bundle-product-options .product-options-container[data-available="false"]');
if (unavailableBundleOptions.length) {
if (addToCartButton) {
addToCartButton.classList.add('disabled');
addToCartButton.setAttribute('disabled', true);
}
quantityButtons && quantityButtons.classList.add('disabled');
}
// Up-sell accessories modal select buttons
const upsellAccessoriesSelectsSelected = document.querySelectorAll('.upsell-accessories-modal .bundle-product-select.selected');
if (addToCartButton && parentElement.classList.contains('upsell-accessories-modal') && !upsellAccessoriesSelectsSelected.length) {
addToCartButton.classList.add('disabled');
addToCartButton.setAttribute('disabled', true);
}
};
// bundleDataCheck(string, HTMLElement)
const bundleDataCheck = (inputValue, swatch) => {
const bundleOptionsContainer = personalization.closest('.product-options-container');
if (bundleOptionsContainer) {
let kennelSize;
// Bundle page kennel size swatch label
const kennelSizeSwatchLabel = document.querySelector('#product_form_6569779036359 .swatch[data-swatch-name="Size"] .swatch-selected');
kennelSizeSwatchLabel ? kennelSize = kennelSizeSwatchLabel.textContent : null;
// Up-sell accessories modal
const upsellAccessoriesModalKennelSize = document.querySelector('#upsell-accessories-modal-kennel-size');
upsellAccessoriesModalKennelSize ? kennelSize = upsellAccessoriesModalKennelSize.getAttribute('data-size') : null;
// Swatch override
swatch ? kennelSize = swatch.getAttribute('data-swatch-value') : null;
let isFoodCrateBundle = 0;
if ((inputValue.length && personalization.querySelector('.personalization-approved').checked) || (isFoodCrateBundle == 1)) {
const variantDataElements = bundleOptionsContainer.querySelectorAll('.bundle-product-variant-data > div');
variantDataElements && variantDataElements.forEach(variantDataElement => {
if (variantDataElement.getAttribute('data-variant').indexOf(kennelSize) >= 0) {
bundleOptionsContainer.setAttribute('data-price', variantDataElement.getAttribute('data-variant-price'));
bundleOptionsContainer.setAttribute('data-variant-id', variantDataElement.getAttribute('data-variant-id'));
}
});
} else {
bundleOptionsContainer.removeAttribute('data-price');
bundleOptionsContainer.removeAttribute('data-variant-id');
}
//try {
if (document.querySelector("#product_form_6569779036359 #SingleOptionSelector-0").length > 0) {
document.querySelector('#product_form_6569779036359 #SingleOptionSelector-0') && document.querySelector('#product_form_6569779036359 #SingleOptionSelector-0').dispatchEvent(new Event('change'));
}
//} catch (e) {}
}
};
// Disable the add to cart buttons.
if (addToCartButton) {
addToCartButton.classList.add('disabled');
addToCartButton.setAttribute('disabled', true);
}
// Preview approval checkbox detection.
personalization.querySelector('.personalization-approved').addEventListener('change', () => {
checkCartButton(dogNameInput.value.replace(/[^a-z0-9 ]/gi, ''));
bundleDataCheck(dogNameInput.value.replace(/[^a-z0-9 ]/gi, ''));
// Bundle stock check
bundleStockCheck();
});
// fixFontWidth(boolean)
const fixFontWidth = (fromRerun) => {
let fontSize = 250;
if (template === 'product.personalized-name-plate' || template === 'product.food-crate-name-plate' || template === 'page.promo-landing-page' || template === 'page.boykin-nationals-promo') {
if (window.matchMedia('(max-width: 1400px)').matches) {
fontSize = 170;
}
if (window.matchMedia('(max-width: 1200px)').matches) {
fontSize = 135;
}
} else {
fontSize = 125;
}
if (window.matchMedia('(max-width: 1000px)').matches) {
fontSize = 105;
}
if (window.matchMedia('(max-width: 700px)').matches) {
fontSize = 125;
}
if (window.matchMedia('(max-width: 600px)').matches) {
fontSize = 100;
}
if (window.matchMedia('(max-width: 480px)').matches) {
fontSize = 90;
}
if (window.matchMedia('(max-width: 400px)').matches) {
fontSize = 80;
}
if (document.querySelector('#shopify-section-product-details_bundle')) {
fontSize = 75;
if (window.matchMedia('(max-width: 1400px)').matches) {
fontSize = 65;
}
if (window.matchMedia('(max-width: 1200px)').matches) {
fontSize = 60;
}
if (window.matchMedia('(max-width: 1000px)').matches) {
fontSize = 55;
}
if (window.matchMedia('(max-width: 700px)').matches) {
fontSize = 50;
}
if (window.matchMedia('(max-width: 600px)').matches) {
fontSize = 45;
}
if (window.matchMedia('(max-width: 480px)').matches) {
fontSize = 40;
}
if (window.matchMedia('(max-width: 400px)').matches) {
fontSize = 36;
}
}
const textContainer = personalizationOverlay.querySelector('.personalization-overlay-text')
const textContainerWidth = textContainer.offsetWidth;
const textContainerInner = personalizationOverlay.querySelector('.personalization-overlay-text-inner');
const textContainerInnerWidth = textContainerInner.offsetWidth;
const currentFontSize = parseInt(window.getComputedStyle(textContainerInner).fontSize.replace('px', ''));
let newFontSize = parseInt(window.getComputedStyle(textContainerInner).fontSize.replace('px', ''));
let rerunFunction;
if (textContainerInnerWidth >= textContainerWidth) {
newFontSize = currentFontSize * 0.9;
rerunFunction = true;
} else if (textContainerInnerWidth < textContainerWidth && fontSize > currentFontSize && !fromRerun) {
let totalRuns = 0;
for (let i = fontSize; i > 6; i *= 0.9) {
let mockElement = textContainerInner.cloneNode(true);
mockElement.removeAttribute('id');
mockElement.classList.add('personalization-overlay-text-mock-element');
mockElement.style.fontSize = i + 'px';
textContainer.append(mockElement);
const mockElementWidth = mockElement.offsetWidth;
mockElement.remove();
if (mockElementWidth < textContainerWidth) {
newFontSize = i;
break;
}
totalRuns++;
if (totalRuns > 30) {
break;
}
};
}
textContainerInner.style.fontSize = newFontSize + 'px';
rerunFunction && fixFontWidth(true);
}
// Dog name input change.
dogNameInput.addEventListener('input', (e) => {
const newValue = e.target.value;
// Remove any special characters. Limit to 0-9 and A-Z.
const valueWithoutSpecialChars = newValue.replace(/[^a-zA-Z0-9 ]/g, '');
//food crate bundle, do not run the texts overlay in product image
if (template.indexOf('food-crate-bundle') !== -1) {
checkCartButton(valueWithoutSpecialChars);
bundleDataCheck(valueWithoutSpecialChars);
} else {
// Blank image switch.
if (document.querySelector('#shopify-section-product-details_bundle')) {
let namePlateImageIndex;
const mainProductImages = document.querySelectorAll('#main-product-image-slider .slick-slide:not(.slick-cloned) .product-image');
mainProductImages.forEach((mainProductImage, index) => mainProductImage.getAttribute('data-name-plate-image') ? namePlateImageIndex = index : null);
$('#main-product-image-slider').slick('slickGoTo', namePlateImageIndex);
// Popup.
} else {
const namePlatePopup = document.querySelector('.name-plate-popup');
const foodCrateNamePlatePopup = document.querySelector('.food-crate-name-plate-popup');
const kennelBundlePopup = document.querySelector('.kennel-bundle-popup');
const upsellAccessoriesModal = document.querySelector('.upsell-accessories-modal');
if (namePlatePopup) {
namePlatePopup.querySelector('.name-plate-product-image .blank').classList.remove('hidden');
namePlatePopup.querySelector('.name-plate-product-image .not-blank').classList.add('hidden');
}
if (kennelBundlePopup) {
kennelBundlePopup.querySelector('.name-plate-product-image .blank').classList.remove('hidden');
kennelBundlePopup.querySelector('.name-plate-product-image .not-blank').classList.add('hidden');
}
if (foodCrateNamePlatePopup) {
foodCrateNamePlatePopup.querySelector('.food-crate-name-plate-popup .food-crate-name-plate-product-image .blank').classList.remove('hidden');
foodCrateNamePlatePopup.querySelector('.food-crate-name-plate-popup .food-crate-name-plate-product-image .not-blank').classList.add('hidden');
}
if (upsellAccessoriesModal) {
upsellAccessoriesModal.querySelectorAll('.upsell-accessories-modal .name-plate-product-image .blank').forEach(blankImage => blankImage.classList.remove('hidden'));
upsellAccessoriesModal.querySelectorAll('.upsell-accessories-modal .name-plate-product-image .not-blank').forEach(notBlankImage => notBlankImage.classList.add('hidden'));
}
}
// Update the input.
e.target.value = valueWithoutSpecialChars;
// Text overlay.
const inputLength = valueWithoutSpecialChars.length;
const thisCharacter = valueWithoutSpecialChars[inputLength - 1];
const lastCharacter = valueWithoutSpecialChars[inputLength - 2];
// Do not show blanks.
if (thisCharacter === ' ' && lastCharacter === ' ') {
return;
}
if (inputLength === 1 && thisCharacter === ' ') {
return;
}
personalizationOverlay.querySelector('.personalization-overlay-text-inner').textContent = valueWithoutSpecialChars;
checkCartButton(valueWithoutSpecialChars);
bundleDataCheck(valueWithoutSpecialChars);
fixFontWidth();
}
});
// Swatches.
document.querySelectorAll('#shopify-section-product-details_development-bundle-promo .swatch label').forEach(swatch => {
swatch.addEventListener('click', () => checkCartButton(dogNameInput.value.replace(/[^a-z0-9 ]/gi, '')));
});
document.querySelectorAll('#shopify-section-product-details_event-promo .swatch label').forEach(swatch => {
swatch.addEventListener('click', () => checkCartButton(dogNameInput.value.replace(/[^a-z0-9 ]/gi, '')));
});
document.querySelectorAll('#shopify-section-product-details_bundle .swatch label').forEach(swatch => {
swatch.addEventListener('click', () => checkCartButton(dogNameInput.value.replace(/[^a-z0-9 ]/gi, '')));
});
document.querySelectorAll('#shopify-section-product-details_bundle #product-options .swatch[data-swatch-name="Size"] label').forEach(swatch => {
swatch.addEventListener('click', () => bundleDataCheck(dogNameInput.value.replace(/[^a-z0-9 ]/gi, ''), swatch));
});
document.querySelectorAll('section[id*="product-details_foodcratebundle"] .swatch[data-swatch-name="FOOD SCOOP"] label').forEach(swatch => {
swatch.addEventListener('click', () => bundleDataCheck(dogNameInput.value.replace(/[^a-z0-9 ]/gi, ''), swatch));
});
// Up-sell accessories modal select buttons
document.querySelectorAll('.upsell-accessories-modal .bundle-product-select').forEach(bundleProductSelect => bundleProductSelect.addEventListener('click', () => checkCartButton(dogNameInput.value.replace(/[^a-z0-9 ]/gi, ''))));
// Bundle stock check
document.querySelector('input.dog-name').addEventListener('focus', () => bundleStockCheck());
// Variant selector.
variantSelector && variantSelector.addEventListener('change', (e) => checkCartButton(dogNameInput.value.replace(/[^a-z0-9 ]/gi, '')));
// Window resize font fix.
let resizeTimer;
window.addEventListener('resize', function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(fixFontWidth(), 50);
fixFontWidth();
});
</script>
<style>
.personalization {
display: flex;
flex-direction: column;
width: 100%;
max-width: 250px;
margin: 15px 0 10px 0
}
.personalization label {
color: #4c4e58;
font-family: 'Avenir Next Medium';
font-weight: 800;
font-size: 13px;
line-height: 1;
text-transform: uppercase;
}
.personalization .dog-name {
width: 100%;
font-family: 'Avenir Next Medium';
font-weight: 800;
color: #4c4e58;
font-size: 12px;
line-height: 1;
text-transform: uppercase;
border-color: #ccc;
border-radius: 2px;
padding: 8px 15px;
margin: 0 0 5px 0;
}
.personalization-approved {
vertical-align: middle;
margin-left: 3px;
}
.personalization-approved-label {
font-family: 'Avenir Next Medium';
font-size: 13px;
line-height: 1.2;
color: #4c4e58;
}
.personalization .bundle-out-of-stock {
display: none;
margin: 15px 0 0 0;
font-size: 14px;
color: #ea5430;
font-family: 'Avenir Next Medium';
line-height: 1.3;
}
.personalization .bundle-out-of-stock.visible {
display: block;
}
@media screen and (max-width: 769px) {
.personalization {
margin: 15px auto !important;
}
.personalization label {
text-align: center !important;
}
}
</style>
<div class="personalization" data-product="personalized-kennel-name-plate">
<label for="dog-name"> Dog Name </label>
<input type="text" class="dog-name" name="properties[Dog Name]" maxlength="10" data-event-types="input_focus,input_blur" data-element-id="EA57Sl0R1TWCurF6HFobUM2rHXM0iRHB">
<input type="hidden" name="properties[Product Information]" value="This is a custom product & additional processing time may be required.">
<div style="text-align: center">
<span class="personalization-approved-label"> I've reviewed and approve the design shown in the preview </span>
<input class="personalization-approved" type="checkbox" data-event-types="input_change" data-element-id="TlfesrBLtGO3RiZdqXWOeTjIO1I1UBRi">
</div>
</div>
<button class="add-to-cart-button disabled" type="submit" name="add" id="AddToCart-45045036483282" data-event-types="hover,click" data-element-id="wRJR9LmdQ8TtfyOueyePyq3YuLlODxfa" disabled="true">
<span id="AddToCartText-45045036483282"> ADD TO CART </span>
<span class="add-to-cart-loading"><svg viewBox="0 0 40 40">
<path opacity="0.2"
d="M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946 s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634 c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z">
</path>
<path d="M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0 C22.32,8.481,24.301,9.057,26.013,10.047z">
<animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 20 20" to="360 20 20" dur="0.6s" repeatCount="indefinite"></animateTransform>
</path>
</svg></span>
</button>
</div>
<input type="hidden" name="product-id" value="4504503648328">
<div style="width: 100%;"></div>
</form>
POST /cart/add
<form method="post" action="/cart/add" id="product_form_6791594705095" accept-charset="UTF-8" class="product-form product-form-67915947050952" enctype="multipart/form-data" novalidate="novalidate"><input type="hidden" name="form_type"
value="product"><input type="hidden" name="utf8" value="✓">
<select style="display: none" name="id" id="ProductSelect-67915947050952-quickview" class="product-form__variants no-js">
<option selected="selected" value="40195143073991"> Default Title </option>
</select>
<script type="module">
const template = `index`;
const productHandle = `food-crate-name-plate`;
const personalization = document.querySelector('.personalization[data-product="' + productHandle + '"]');
const parentElement = personalization.closest('.product-details') || personalization.closest('.food-crate-name-plate-popup') || personalization.closest('.name-plate-popup') || personalization.closest('.kennel-bundle-popup') || personalization
.closest('.upsell-accessories-modal') || personalization.closest('#shopify-section-product-details_development-bundle-promo') || personalization.closest('#shopify-section-product-details_event-promo') || personalization.closest(
'#shopify-section-product-details_boykin-nationals-promo') || personalization.closest('#shopify-section-product-details_bundle') || personalization.closest('[id*=product-details_foodcratebundle]');
const personalizationOverlay = parentElement.querySelector('.personalization-overlay');
const dogNameInput = personalization.querySelector('.dog-name');
const addToCartButton = parentElement.querySelector('.add-to-cart-button');
const quantityButtons = parentElement.querySelector('.product-quantity');
const variantSelector = parentElement.querySelector('.single-option-selector');
const bundleStockCheck = () => {
var bundlePersonalization = document.querySelector('.product-options-container[data-product-handle="personalized-kennel-name-plate"]');
if (productHandle == 'food-crate-name-plate') {
bundlePersonalization = document.querySelector('.product-options-container[data-product-handle="food-crate-name-plate"]');
}
if (!bundlePersonalization) {
return;
}
if (!bundlePersonalization.querySelector('.bundle-out-of-stock')) {
return;
}
// Bundle page kennel size swatch label
let kennelSize;
const kennelSizeSwatchLabel = document.querySelector('#product_form_6569779036359 .swatch[data-swatch-name="Size"] .swatch-selected');
kennelSizeSwatchLabel ? kennelSize = kennelSizeSwatchLabel.textContent : null;
let namePlateAvailable;
kennelSize === 'Small' || kennelSize === 'Medium' ? namePlateAvailable = bundlePersonalization.querySelector('div[data-variant="Small/Medium"]').getAttribute('data-variant-available') : null;
kennelSize === 'Intermediate' || kennelSize === 'Large' ? namePlateAvailable = bundlePersonalization.querySelector('div[data-variant="Intermediate/Large"]').getAttribute('data-variant-available') : null;
if (!namePlateAvailable && !document.querySelectorAll('.bundle-out-of-stock.visible:not(.personalization-unavailable)').length) {
bundlePersonalization.querySelector('.bundle-out-of-stock').classList.add('visible');
// Bundle combination out of stock, hide/show Out of Stock form
const outOfStockForm = document.querySelector('#out-of-stock-form');
if (outOfStockForm) {
// Add to cart container
const addToCartContainer = document.querySelector('#product-add-to-cart');
outOfStockForm.classList.remove('hidden');
addToCartContainer.classList.add('hidden');
const activeBundleId = determineBundle();
// Determine which form to show
const klaviyoForms = outOfStockForm.querySelectorAll('.klaviyo-form');
klaviyoForms.forEach(klaviyoForm => {
if (klaviyoForm.getAttribute('data-bundle-id') == activeBundleId) {
klaviyoForm.classList.remove('hidden');
} else {
klaviyoForm.classList.add('hidden');
}
});
// Update active bundle ID
outOfStockForm.querySelector('#active-bundle').setAttribute('data-bundle-id', activeBundleId);
}
} else {
bundlePersonalization.querySelector('.bundle-out-of-stock').classList.remove('visible');
}
};
// checkCartButton(string)
const checkCartButton = (inputValue) => {
if (inputValue.length && personalization.querySelector('.personalization-approved').checked) {
if (addToCartButton) {
//food crate bundle, do not run the texts overlay in product image
if (template.indexOf('food-crate-bundle') !== -1) {
let productOptionsParent = document.getElementById('product-options');
let productOptionsCont = productOptionsParent.querySelectorAll('.option-container');
let countCheckedOptions = 0;
let productOptionsLength = productOptionsCont.length;
if (productOptionsCont) {
productOptionsCont.forEach(productOptionContainer => {
let swatchCont = productOptionContainer.querySelector('.swatch-container');
let swatchInput = swatchCont.querySelectorAll('input[type="radio"]:checked');
if (swatchInput.length) {
countCheckedOptions++;
}
});
if (countCheckedOptions == productOptionsLength) {
addToCartButton.classList.remove('disabled');
addToCartButton.removeAttribute('disabled');
}
}
} else {
addToCartButton.classList.remove('disabled');
addToCartButton.removeAttribute('disabled');
}
}
quantityButtons && quantityButtons.classList.remove('disabled');
} else {
if (addToCartButton) {
addToCartButton.classList.add('disabled');
addToCartButton.setAttribute('disabled', true);
}
quantityButtons && quantityButtons.classList.add('disabled');
}
// If any bundles are disabled, disable cart functionality
const unavailableBundleOptions = document.querySelectorAll('#shopify-section-product-details_bundle #bundle-product-options .product-options-container[data-available="false"]');
if (unavailableBundleOptions.length) {
if (addToCartButton) {
addToCartButton.classList.add('disabled');
addToCartButton.setAttribute('disabled', true);
}
quantityButtons && quantityButtons.classList.add('disabled');
}
// Up-sell accessories modal select buttons
const upsellAccessoriesSelectsSelected = document.querySelectorAll('.upsell-accessories-modal .bundle-product-select.selected');
if (addToCartButton && parentElement.classList.contains('upsell-accessories-modal') && !upsellAccessoriesSelectsSelected.length) {
addToCartButton.classList.add('disabled');
addToCartButton.setAttribute('disabled', true);
}
};
// bundleDataCheck(string, HTMLElement)
const bundleDataCheck = (inputValue, swatch) => {
const bundleOptionsContainer = personalization.closest('.product-options-container');
if (bundleOptionsContainer) {
let kennelSize;
// Bundle page kennel size swatch label
const kennelSizeSwatchLabel = document.querySelector('#product_form_6569779036359 .swatch[data-swatch-name="Size"] .swatch-selected');
kennelSizeSwatchLabel ? kennelSize = kennelSizeSwatchLabel.textContent : null;
// Up-sell accessories modal
const upsellAccessoriesModalKennelSize = document.querySelector('#upsell-accessories-modal-kennel-size');
upsellAccessoriesModalKennelSize ? kennelSize = upsellAccessoriesModalKennelSize.getAttribute('data-size') : null;
// Swatch override
swatch ? kennelSize = swatch.getAttribute('data-swatch-value') : null;
let isFoodCrateBundle = 0;
if ((inputValue.length && personalization.querySelector('.personalization-approved').checked) || (isFoodCrateBundle == 1)) {
const variantDataElements = bundleOptionsContainer.querySelectorAll('.bundle-product-variant-data > div');
variantDataElements && variantDataElements.forEach(variantDataElement => {
if (variantDataElement.getAttribute('data-variant').indexOf(kennelSize) >= 0) {
bundleOptionsContainer.setAttribute('data-price', variantDataElement.getAttribute('data-variant-price'));
bundleOptionsContainer.setAttribute('data-variant-id', variantDataElement.getAttribute('data-variant-id'));
}
});
} else {
bundleOptionsContainer.removeAttribute('data-price');
bundleOptionsContainer.removeAttribute('data-variant-id');
}
//try {
if (document.querySelector("#product_form_6569779036359 #SingleOptionSelector-0").length > 0) {
document.querySelector('#product_form_6569779036359 #SingleOptionSelector-0') && document.querySelector('#product_form_6569779036359 #SingleOptionSelector-0').dispatchEvent(new Event('change'));
}
//} catch (e) {}
}
};
// Disable the add to cart buttons.
if (addToCartButton) {
addToCartButton.classList.add('disabled');
addToCartButton.setAttribute('disabled', true);
}
// Preview approval checkbox detection.
personalization.querySelector('.personalization-approved').addEventListener('change', () => {
checkCartButton(dogNameInput.value.replace(/[^a-z0-9 ]/gi, ''));
bundleDataCheck(dogNameInput.value.replace(/[^a-z0-9 ]/gi, ''));
// Bundle stock check
bundleStockCheck();
});
// fixFontWidth(boolean)
const fixFontWidth = (fromRerun) => {
let fontSize = 250;
if (template === 'product.personalized-name-plate' || template === 'product.food-crate-name-plate' || template === 'page.promo-landing-page' || template === 'page.boykin-nationals-promo') {
if (window.matchMedia('(max-width: 1400px)').matches) {
fontSize = 170;
}
if (window.matchMedia('(max-width: 1200px)').matches) {
fontSize = 135;
}
} else {
fontSize = 125;
}
if (window.matchMedia('(max-width: 1000px)').matches) {
fontSize = 105;
}
if (window.matchMedia('(max-width: 700px)').matches) {
fontSize = 125;
}
if (window.matchMedia('(max-width: 600px)').matches) {
fontSize = 100;
}
if (window.matchMedia('(max-width: 480px)').matches) {
fontSize = 90;
}
if (window.matchMedia('(max-width: 400px)').matches) {
fontSize = 80;
}
if (document.querySelector('#shopify-section-product-details_bundle')) {
fontSize = 75;
if (window.matchMedia('(max-width: 1400px)').matches) {
fontSize = 65;
}
if (window.matchMedia('(max-width: 1200px)').matches) {
fontSize = 60;
}
if (window.matchMedia('(max-width: 1000px)').matches) {
fontSize = 55;
}
if (window.matchMedia('(max-width: 700px)').matches) {
fontSize = 50;
}
if (window.matchMedia('(max-width: 600px)').matches) {
fontSize = 45;
}
if (window.matchMedia('(max-width: 480px)').matches) {
fontSize = 40;
}
if (window.matchMedia('(max-width: 400px)').matches) {
fontSize = 36;
}
}
const textContainer = personalizationOverlay.querySelector('.personalization-overlay-text')
const textContainerWidth = textContainer.offsetWidth;
const textContainerInner = personalizationOverlay.querySelector('.personalization-overlay-text-inner');
const textContainerInnerWidth = textContainerInner.offsetWidth;
const currentFontSize = parseInt(window.getComputedStyle(textContainerInner).fontSize.replace('px', ''));
let newFontSize = parseInt(window.getComputedStyle(textContainerInner).fontSize.replace('px', ''));
let rerunFunction;
if (textContainerInnerWidth >= textContainerWidth) {
newFontSize = currentFontSize * 0.9;
rerunFunction = true;
} else if (textContainerInnerWidth < textContainerWidth && fontSize > currentFontSize && !fromRerun) {
let totalRuns = 0;
for (let i = fontSize; i > 6; i *= 0.9) {
let mockElement = textContainerInner.cloneNode(true);
mockElement.removeAttribute('id');
mockElement.classList.add('personalization-overlay-text-mock-element');
mockElement.style.fontSize = i + 'px';
textContainer.append(mockElement);
const mockElementWidth = mockElement.offsetWidth;
mockElement.remove();
if (mockElementWidth < textContainerWidth) {
newFontSize = i;
break;
}
totalRuns++;
if (totalRuns > 30) {
break;
}
};
}
textContainerInner.style.fontSize = newFontSize + 'px';
rerunFunction && fixFontWidth(true);
}
// Dog name input change.
dogNameInput.addEventListener('input', (e) => {
const newValue = e.target.value;
// Remove any special characters. Limit to 0-9 and A-Z.
const valueWithoutSpecialChars = newValue.replace(/[^a-zA-Z0-9 ]/g, '');
//food crate bundle, do not run the texts overlay in product image
if (template.indexOf('food-crate-bundle') !== -1) {
checkCartButton(valueWithoutSpecialChars);
bundleDataCheck(valueWithoutSpecialChars);
} else {
// Blank image switch.
if (document.querySelector('#shopify-section-product-details_bundle')) {
let namePlateImageIndex;
const mainProductImages = document.querySelectorAll('#main-product-image-slider .slick-slide:not(.slick-cloned) .product-image');
mainProductImages.forEach((mainProductImage, index) => mainProductImage.getAttribute('data-name-plate-image') ? namePlateImageIndex = index : null);
$('#main-product-image-slider').slick('slickGoTo', namePlateImageIndex);
// Popup.
} else {
const namePlatePopup = document.querySelector('.name-plate-popup');
const foodCrateNamePlatePopup = document.querySelector('.food-crate-name-plate-popup');
const kennelBundlePopup = document.querySelector('.kennel-bundle-popup');
const upsellAccessoriesModal = document.querySelector('.upsell-accessories-modal');
if (namePlatePopup) {
namePlatePopup.querySelector('.name-plate-product-image .blank').classList.remove('hidden');
namePlatePopup.querySelector('.name-plate-product-image .not-blank').classList.add('hidden');
}
if (kennelBundlePopup) {
kennelBundlePopup.querySelector('.name-plate-product-image .blank').classList.remove('hidden');
kennelBundlePopup.querySelector('.name-plate-product-image .not-blank').classList.add('hidden');
}
if (foodCrateNamePlatePopup) {
foodCrateNamePlatePopup.querySelector('.food-crate-name-plate-popup .food-crate-name-plate-product-image .blank').classList.remove('hidden');
foodCrateNamePlatePopup.querySelector('.food-crate-name-plate-popup .food-crate-name-plate-product-image .not-blank').classList.add('hidden');
}
if (upsellAccessoriesModal) {
upsellAccessoriesModal.querySelectorAll('.upsell-accessories-modal .name-plate-product-image .blank').forEach(blankImage => blankImage.classList.remove('hidden'));
upsellAccessoriesModal.querySelectorAll('.upsell-accessories-modal .name-plate-product-image .not-blank').forEach(notBlankImage => notBlankImage.classList.add('hidden'));
}
}
// Update the input.
e.target.value = valueWithoutSpecialChars;
// Text overlay.
const inputLength = valueWithoutSpecialChars.length;
const thisCharacter = valueWithoutSpecialChars[inputLength - 1];
const lastCharacter = valueWithoutSpecialChars[inputLength - 2];
// Do not show blanks.
if (thisCharacter === ' ' && lastCharacter === ' ') {
return;
}
if (inputLength === 1 && thisCharacter === ' ') {
return;
}
personalizationOverlay.querySelector('.personalization-overlay-text-inner').textContent = valueWithoutSpecialChars;
checkCartButton(valueWithoutSpecialChars);
bundleDataCheck(valueWithoutSpecialChars);
fixFontWidth();
}
});
// Swatches.
document.querySelectorAll('#shopify-section-product-details_development-bundle-promo .swatch label').forEach(swatch => {
swatch.addEventListener('click', () => checkCartButton(dogNameInput.value.replace(/[^a-z0-9 ]/gi, '')));
});
document.querySelectorAll('#shopify-section-product-details_event-promo .swatch label').forEach(swatch => {
swatch.addEventListener('click', () => checkCartButton(dogNameInput.value.replace(/[^a-z0-9 ]/gi, '')));
});
document.querySelectorAll('#shopify-section-product-details_bundle .swatch label').forEach(swatch => {
swatch.addEventListener('click', () => checkCartButton(dogNameInput.value.replace(/[^a-z0-9 ]/gi, '')));
});
document.querySelectorAll('#shopify-section-product-details_bundle #product-options .swatch[data-swatch-name="Size"] label').forEach(swatch => {
swatch.addEventListener('click', () => bundleDataCheck(dogNameInput.value.replace(/[^a-z0-9 ]/gi, ''), swatch));
});
document.querySelectorAll('section[id*="product-details_foodcratebundle"] .swatch[data-swatch-name="FOOD SCOOP"] label').forEach(swatch => {
swatch.addEventListener('click', () => bundleDataCheck(dogNameInput.value.replace(/[^a-z0-9 ]/gi, ''), swatch));
});
// Up-sell accessories modal select buttons
document.querySelectorAll('.upsell-accessories-modal .bundle-product-select').forEach(bundleProductSelect => bundleProductSelect.addEventListener('click', () => checkCartButton(dogNameInput.value.replace(/[^a-z0-9 ]/gi, ''))));
// Bundle stock check
document.querySelector('input.dog-name').addEventListener('focus', () => bundleStockCheck());
// Variant selector.
variantSelector && variantSelector.addEventListener('change', (e) => checkCartButton(dogNameInput.value.replace(/[^a-z0-9 ]/gi, '')));
// Window resize font fix.
let resizeTimer;
window.addEventListener('resize', function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(fixFontWidth(), 50);
fixFontWidth();
});
</script>
<style>
.personalization {
display: flex;
flex-direction: column;
width: 100%;
max-width: 250px;
margin: 15px 0 10px 0
}
.personalization label {
color: #4c4e58;
font-family: 'Avenir Next Medium';
font-weight: 800;
font-size: 13px;
line-height: 1;
text-transform: uppercase;
}
.personalization .dog-name {
width: 100%;
font-family: 'Avenir Next Medium';
font-weight: 800;
color: #4c4e58;
font-size: 12px;
line-height: 1;
text-transform: uppercase;
border-color: #ccc;
border-radius: 2px;
padding: 8px 15px;
margin: 0 0 5px 0;
}
.personalization-approved {
vertical-align: middle;
margin-left: 3px;
}
.personalization-approved-label {
font-family: 'Avenir Next Medium';
font-size: 13px;
line-height: 1.2;
color: #4c4e58;
}
.personalization .bundle-out-of-stock {
display: none;
margin: 15px 0 0 0;
font-size: 14px;
color: #ea5430;
font-family: 'Avenir Next Medium';
line-height: 1.3;
}
.personalization .bundle-out-of-stock.visible {
display: block;
}
@media screen and (max-width: 769px) {
.personalization {
margin: 15px auto !important;
}
.personalization label {
text-align: center !important;
}
}
</style>
<div class="personalization" data-product="food-crate-name-plate">
<label for="dog-name"> Dog Name </label>
<input type="text" class="dog-name" name="properties[Dog Name]" maxlength="10" data-event-types="input_focus,input_blur" data-element-id="EA57Sl0R1TWCurF6HFobUM2rHXM0iRHB">
<input type="hidden" name="properties[Product Information]" value="This is a custom product & additional processing time may be required.">
<div style="text-align: center">
<span class="personalization-approved-label"> I've reviewed and approve the design shown in the preview </span>
<input class="personalization-approved" type="checkbox" data-event-types="input_change" data-element-id="TlfesrBLtGO3RiZdqXWOeTjIO1I1UBRi">
</div>
</div>
<button class="add-to-cart-button disabled" type="submit" name="add" id="AddToCart-67915947050952" data-event-types="hover,click" data-element-id="b4kMoqojyRQaA65MihPCrCSTgXjEg9QJ" disabled="true">
<span id="AddToCartText-67915947050952"> ADD TO CART </span>
<span class="add-to-cart-loading"><svg viewBox="0 0 40 40">
<path opacity="0.2"
d="M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946 s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634 c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z">
</path>
<path d="M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0 C22.32,8.481,24.301,9.057,26.013,10.047z">
<animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 20 20" to="360 20 20" dur="0.6s" repeatCount="indefinite"></animateTransform>
</path>
</svg></span>
</button>
</form>
POST /cart/add
<form method="post" action="/cart/add" id="product_form_6791594705095" accept-charset="UTF-8" class="product-form product-form-6791594705095
" enctype="multipart/form-data" novalidate="novalidate"><input type="hidden" name="form_type" value="product"><input type="hidden" name="utf8" value="✓">
<select style="display: none" name="id" id="ProductSelect-67915947050952-quickview" class="product-form__variants no-js">
<option selected="selected" value="40195143073991"> Default Title </option>
</select>
<button class="add-to-cart-button" type="submit" name="add" id="AddToCart-67915947050952" data-event-types="hover,click" data-element-id="b4kMoqojyRQaA65MihPCrCSTgXjEg9QJ">
<span id="AddToCartText-67915947050952"> ADD TO CART </span>
<span class="add-to-cart-loading"><svg viewBox="0 0 40 40">
<path opacity="0.2"
d="M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946 s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634 c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z">
</path>
<path d="M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0 C22.32,8.481,24.301,9.057,26.013,10.047z">
<animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 20 20" to="360 20 20" dur="0.6s" repeatCount="indefinite"></animateTransform>
</path>
</svg></span>
</button>
</form>
POST /account/login
<form method="post" action="/account/login" id="customer_login" accept-charset="UTF-8" data-login-with-shop-sign-in="true" novalidate="novalidate" data-event-types="form_submission" data-element-id="TJ623FcskIVQcsYkvrhNtQtpj9g50v6N"><input
type="hidden" name="form_type" value="customer_login"><input type="hidden" name="utf8" value="✓">
<input type="hidden" name="return_to" value="back"><input type="email" placeholder="Email" name="customer[email]" id="CustomerEmail" autocomplete="email" autocorrect="off" autocapitalize="off" data-event-types="input_focus,input_blur"
data-element-id="7fu2cvaMTSxQ2hR1MOwHzWWt803c5tJk">
<input type="password" placeholder="Password" value="" name="customer[password]" id="CustomerPassword" data-event-types="input_focus,input_blur" data-element-id="eRuVeL4zUvQb0ghW6dIPC1LDadEqYB6C">
<div class="fit-finder_sign-in-button-container">
<button class="login-button button-small button-primary" type="submit" data-event-types="hover,click" data-element-id="KjdeO5OTdQWvCllyJDIS1VAGlT5jw40f"> SIGN IN </button>
<div class="fit-finder_sign-in-message register-here">Don't have an account <span class="fit-finder_register-link" data-event-types="hover,click" data-element-id="c4zuxnLgu19QGJKhCp23aBLLfjDGOsS2">click here</span> to register</div>
</div>
<div class="oxi_social_wrapper" style=""><iframe id="social_login_frame" title="Social Login Frame" src="https://social-login.oxiapps.com/widget?site=cs-gunner.myshopify.com&vt=928350&parenturl=https://gunner.com/"
style="width:100%;max-width:100%;padding-top:0px;margin-bottom:5px;border:0px;height:144px;" scrolling="no"></iframe></div>
</form>
POST /account
<form method="post" action="/account" id="register" accept-charset="UTF-8" data-login-with-shop-sign-up="true" novalidate="novalidate" data-event-types="form_submission" data-element-id="gbH4Y77v8uUEKKoonr2UjAeJM4vVhyvD"><input type="hidden"
name="form_type" value="create_customer"><input type="hidden" name="utf8" value="✓">
<input type="hidden" name="return_to" value="back">
<input placeholder="First Name" type="text" name="customer[first_name]" id="register-FirstName" autocomplete="given-name" data-event-types="input_focus,input_blur" data-element-id="61WVEZNnl7kLV2kkL5tUf439isjrQRvK">
<input placeholder="Last Name" type="text" name="customer[last_name]" id="register-LastName" autocomplete="family-name" data-event-types="input_focus,input_blur" data-element-id="61WVEZNnl7kLV2kkL5tUf439isjrQRvK">
<input placeholder="Email" type="email" name="customer[email]" id="register-email" class="" autocorrect="off" autocapitalize="off" autocomplete="email" aria-required="true" data-event-types="input_focus,input_blur"
data-element-id="61WVEZNnl7kLV2kkL5tUf439isjrQRvK">
<input placeholder="Password" type="password" name="customer[password]" id="register-password" class="" aria-required="true" data-event-types="input_focus,input_blur" data-element-id="aeoeVlcbfb8nWq7EDMIEGiIJcOVZuEyK">
<div class="fit-finder_register-button-container">
<button type="submit" class="button-primary button-small" data-event-types="hover,click" data-element-id="niBdIaAybMOXVqLgDbpJK5puinuMzJTq">REGISTER</button>
</div>
</form>
POST /account
<form method="post" action="/account" id="register" accept-charset="UTF-8" data-login-with-shop-sign-up="true" novalidate="novalidate" data-event-types="form_submission" data-element-id="gbH4Y77v8uUEKKoonr2UjAeJM4vVhyvD"><input type="hidden"
name="form_type" value="create_customer"><input type="hidden" name="utf8" value="✓">
<input type="hidden" name="return_to" value="back">
<input placeholder="First Name" type="text" name="customer[first_name]" id="register-FirstName" autocomplete="given-name" data-event-types="input_focus,input_blur" data-element-id="61WVEZNnl7kLV2kkL5tUf439isjrQRvK">
<input placeholder="Last Name" type="text" name="customer[last_name]" id="register-LastName" autocomplete="family-name" data-event-types="input_focus,input_blur" data-element-id="61WVEZNnl7kLV2kkL5tUf439isjrQRvK">
<input placeholder="Email" type="email" name="customer[email]" id="register-email" class="" autocorrect="off" autocapitalize="off" autocomplete="email" aria-required="true" data-event-types="input_focus,input_blur"
data-element-id="61WVEZNnl7kLV2kkL5tUf439isjrQRvK">
<input placeholder="Password" type="password" name="customer[password]" id="register-password" class="" aria-required="true" data-event-types="input_focus,input_blur" data-element-id="aeoeVlcbfb8nWq7EDMIEGiIJcOVZuEyK">
<div class="fit-finder_register-button-container">
<button type="submit" class="button-primary button-small" data-event-types="hover,click" data-element-id="niBdIaAybMOXVqLgDbpJK5puinuMzJTq">REGISTER</button>
</div>
</form>
<form aria-label="Write A Review Form">
<div class="write-review-wrapper write-form">
<div class="write-review yotpo-regular-box" id="write-review-tabpanel-testimonials" role="tabpanel">
<div class="yotpo-header">
<div>
<h2 class="y-label yotpo-header-title">WRITE A REVIEW</h2>
</div>
<div class="yotpo-mandatory-explain"> <span class="yotpo-mandatory-mark">*</span> Indicates a required field </div> <br> <span class="yotpo-mandatory-mark">* </span> <span class="y-label"
id="write-review-score-e41bcaa8-db10-4e87-a12a-bd7825669f4f">Score: <span class="form-input-error yotpo-hidden" id="yotpo_score_message_e41bcaa8-db10-4e87-a12a-bd7825669f4f"></span></span>
<div aria-describedby="yotpo_score_message_e41bcaa8-db10-4e87-a12a-bd7825669f4f" aria-labelledby="write-review-score-e41bcaa8-db10-4e87-a12a-bd7825669f4f" role="radiogroup" tabindex="-1"> <span class="stars-wrapper"> <span
class="yotpo-icon yotpo-icon-empty-star pull-left review-star" data-score="1" aria-label="score 1" role="radio" tabindex="0" aria-checked="false" aria-required="true"></span> <span
class="yotpo-icon yotpo-icon-empty-star pull-left review-star" data-score="2" aria-label="score 2" role="radio" tabindex="-1" aria-checked="false" aria-required="true"></span> <span
class="yotpo-icon yotpo-icon-empty-star pull-left review-star" data-score="3" aria-label="score 3" role="radio" tabindex="-1" aria-checked="false" aria-required="true"></span> <span
class="yotpo-icon yotpo-icon-empty-star pull-left review-star" data-score="4" aria-label="score 4" role="radio" tabindex="-1" aria-checked="false" aria-required="true"></span> <span
class="yotpo-icon yotpo-icon-empty-star pull-left review-star" data-score="5" aria-label="score 5" role="radio" tabindex="-1" aria-checked="false" aria-required="true"></span> </span> </div>
</div>
<div class="write-review-content">
<div class="form-group">
<div class="form-element"> <span class="yotpo-mandatory-mark">* </span> <label class="y-label" for="yotpo_input_review_title_e41bcaa8-db10-4e87-a12a-bd7825669f4f"> Title: <span class="form-input-error yotpo-hidden"
id="yotpo_input_review_title_error_e41bcaa8-db10-4e87-a12a-bd7825669f4f"></span> </label> <input id="yotpo_input_review_title_e41bcaa8-db10-4e87-a12a-bd7825669f4f" class="y-input" name="review_title" maxlength="150"
aria-required="true" placeholder="" aria-describedby="yotpo_input_review_title_error_e41bcaa8-db10-4e87-a12a-bd7825669f4f"> </div>
<div class="form-element"> <span class="yotpo-mandatory-mark">* </span> <label class="y-label" for="yotpo_input_review_content_e41bcaa8-db10-4e87-a12a-bd7825669f4f"> Review: <span class="form-input-error yotpo-hidden"
id="yotpo_input_review_content_error_e41bcaa8-db10-4e87-a12a-bd7825669f4f"></span> </label> <textarea id="yotpo_input_review_content_e41bcaa8-db10-4e87-a12a-bd7825669f4f" class="y-input yotpo-text-box" name="review_content"
aria-required="true" placeholder="" aria-describedby="yotpo_input_review_content_error_e41bcaa8-db10-4e87-a12a-bd7825669f4f"></textarea> </div>
</div>
</div>
<div class="yotpo-footer yotpo-animation-opacity visible" style="display: inherit;">
<div class="socialize-wrapper">
<div class="connected">You are connected as <span class="username"></span></div>
<div class="socialize"> <span class="y-label">Connect with:</span>
<div>
<div class="yotpo-default-button yotpo-icon-btn" data-network="twitter" aria-label="connect with twitter" role="link" tabindex="0"><span class="yotpo-icon yotpo-icon-twitter pull-left"></span></div>
<div class="yotpo-default-button yotpo-icon-btn" data-network="facebook" aria-label="connect with facebook" role="link" tabindex="0"><span class="yotpo-icon yotpo-icon-facebook pull-left"></span></div>
</div>
</div>
<div class="yotpo-or"> -OR- </div>
</div>
<div class="connect-wrapper visible " style="display: inherit;">
<div class="form-element name-input visible" style="display: inherit;"> <span class="yotpo-mandatory-mark">* </span> <label class="y-label" for="yotpo_input_review_username_e41bcaa8-db10-4e87-a12a-bd7825669f4f">Use your name: <span
class="form-input-error yotpo-hidden" id="yotpo_input_review_username_error_e41bcaa8-db10-4e87-a12a-bd7825669f4f"></span></label> <input id="yotpo_input_review_username_e41bcaa8-db10-4e87-a12a-bd7825669f4f" class="y-input"
autocomplete="nickname" name="display_name" maxlength="40" aria-required="true" placeholder="" aria-describedby="yotpo_input_review_username_error_e41bcaa8-db10-4e87-a12a-bd7825669f4f"> </div>
<div class="form-element email-input visible" style="display: inherit;"> <span class="yotpo-mandatory-mark">* </span> <label class="y-label" for="yotpo_input_review_email_e41bcaa8-db10-4e87-a12a-bd7825669f4f">Email: <span
class="form-input-error yotpo-hidden" id="yotpo_input_review_email_error_e41bcaa8-db10-4e87-a12a-bd7825669f4f"></span></label> <input id="yotpo_input_review_email_e41bcaa8-db10-4e87-a12a-bd7825669f4f" class="y-input"
autocomplete="email" name="email" aria-required="true" placeholder="" aria-describedby="yotpo_input_review_email_error_e41bcaa8-db10-4e87-a12a-bd7825669f4f"> </div>
<div class="yotpo-clr"></div>
</div>
</div>
<div class="error-box yotpo-hidden">
<div class="text-wrapper"> <span class="error-text empty yotpo-hidden">Review's title & body can't be empty</span>
<span class="error-text empty_question yotpo-hidden">Question's body can't be empty</span>
<span class="error-text score yotpo-hidden">Please enter a star rating for this review</span>
<span class="error-text display_name_empty yotpo-hidden">Name field cannot be empty</span>
<span class="error-text email yotpo-hidden">Invalid email</span>
<span class="error-text user-already-reviewed yotpo-hidden">Your review has already been submitted.</span>
<span class="error-text max_length yotpo-hidden">Max length was exceeded</span>
<span class="error-text mandatory_field yotpo-hidden">Please fill out all of the mandatory (*) fields</span>
<span class="error-text open_question_answer_length yotpo-hidden">One or more of your answers does not meet the required criteria</span>
</div>
<div class="yotpo-icon-btn-small transparent-color-btn"><span class="yotpo-icon yotpo-icon-cross" role="button" tabindex="0" aria-label="close error message"></span></div>
</div>
<div class="form-element submit-button"> <span class="form-input-error yotpo-hidden"></span> <input type="button" class="yotpo-default-button primary-color-btn yotpo-submit" aria-disabled="true" data-button-type="submit" value="Post"> </div>
<div class="yotpo-preloader-wrapper">
<div class="yotpo yotpo-pre-loader">
<span class="yotpo-empty-stars">
<span class="yotpo-icon yotpo-icon-empty-star"></span>
<span class="yotpo-icon yotpo-icon-empty-star"></span>
<span class="yotpo-icon yotpo-icon-empty-star"></span>
<span class="yotpo-icon yotpo-icon-empty-star"></span>
<span class="yotpo-icon yotpo-icon-empty-star"></span>
</span>
<span class="yotpo-full-stars">
<span class="yotpo-icon yotpo-icon-star"></span>
<span class="yotpo-icon yotpo-icon-star"></span>
<span class="yotpo-icon yotpo-icon-star"></span>
<span class="yotpo-icon yotpo-icon-star"></span>
<span class="yotpo-icon yotpo-icon-star"></span>
</span>
</div>
</div>
<div class="yotpo-clr"></div>
</div>
</div>
</form>
<form class="sc-1absc7o-2 kcotZO">
<div class="sc-qghkpb-0 kFMiPV form-zone-element">
<div class="sc-1uwbh0o-0 RKjCd yotpo-smsbump-name-input"><span class="sc-17eua8b-0 ieEBkw">
<div class="yotpo-smsbump-input__field-container"><span class="yotpo-smsbump-input__before"><span class="yotpo-smsbump-name-input__before"><svg width="16" height="16" viewBox="0 0 16 16" fill="none">
<path fill="rgba(0, 0, 0, 1)"
d="M8 1C4.136 1 1 4.136 1 8C1 11.864 4.136 15 8 15C11.864 15 15 11.864 15 8C15 4.136 11.864 1 8 1ZM8 3.1C9.162 3.1 10.1 4.038 10.1 5.2C10.1 6.362 9.162 7.3 8 7.3C6.838 7.3 5.9 6.362 5.9 5.2C5.9 4.038 6.838 3.1 8 3.1ZM3.8 10.7859C3.821 9.39293 5.9266 8.62993 8 8.62993C10.0734 8.62993 12.179 9.39293 12.2 10.7859C11.297 12.1439 9.75 13.0399 8 13.0399C6.25 13.0399 4.703 12.1439 3.8 10.7859Z">
</path>
</svg></span></span><input placeholder="Enter your first name" aria-label="First name" required="" id="yotpo-smsbump-name-input__field" name="firstname" autocomplete="on" aria-invalid="false"
class="yotpo-smsbump-input__field yotpo-smsbump-name-input__field"></div>
</span></div>
</div>
<div class="sc-1td5v5x-0 zHLHE form-zone-element">
<div class="sc-1jzf0cm-0 gVCTVG yotpo-smsbump-email-input"><span class="sc-17eua8b-0 ieEBkw">
<div class="yotpo-smsbump-input__field-container"><span class="yotpo-smsbump-input__before"><span class="yotpo-smsbump-email-input__before"><svg width="18" height="12" viewBox="0 0 18 12" fill="none">
<path
d="M2.66659 0.666748H13.3333C14.0666 0.666748 14.6666 1.26675 14.6666 2.00008V10.0001C14.6666 10.7334 14.0666 11.3334 13.3333 11.3334H2.66659C1.93325 11.3334 1.33325 10.7334 1.33325 10.0001V2.00008C1.33325 1.26675 1.93325 0.666748 2.66659 0.666748Z"
stroke="rgba(0, 0, 0, 1)" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M14.6666 1L7.99992 5.66667L1.33325 1" stroke="rgba(0, 0, 0, 1)" stroke-linecap="round" stroke-linejoin="round"></path>
</svg></span></span><input placeholder="Enter your email address" aria-label="Email" required="" id="yotpo-smsbump-email-input__field" type="email" name="email" autocomplete="on" aria-invalid="false"
class="yotpo-smsbump-input__field yotpo-smsbump-email-input__field"></div>
</span></div>
</div>
<div class="sc-1q3i0hi-0 fCPKXX yotpo-smsbump-submit-button form-zone-element"><button type="primary" class="sc-1p0px7q-0 hdswUS sc-1q3i0hi-1 nAMuW">
<div class="sc-15mmw7k-0 hNwBxt"></div>
<div class="sc-1p0px7q-2 eaEfqi">
<div>
<p>ENTER TO WIN</p>
</div>
</div>
</button></div>
</form>
Text Content
0 TOTAL 0 CHECKOUT < Buy a Kennel, get FREE straps ($90 value). Limited time only. Heavy Duty. Spill-Proof. USA Made. Shop Dog Bowls. > SHOP G1™ Kennel Food & Water Bundles Accessories GUNNER Wear Bumper Experience Safety Save Stories 5 STAR CRASH TESTED Knowledge Training Tips Breed Profiles Hunting Stories Safety Videos Community #GunnerEffect23 Reviews Customer Gallery Our Story Meet Gunner Thank You, Gunner 1% Pledge MY ACCOUNT My Account Checkout Register Log In PROVEN TO SAVE THEY DESERVE #MANSBEST SHOP MAN'S BEST KENNEL 5 STAR SAFETY BUY A KENNEL, GET FREE STRAPS SHOP NOW BLACK IS BACK WE HEARD YOU SHOP NOW COLOR FETCH EVENT A COLOR FOR EVERY DOG SHOP THE COLLECTION PROVEN TO SAVE THEY DESERVE #MANSBEST SHOP MAN'S BEST KENNEL 5 STAR SAFETY BUY A KENNEL, GET FREE STRAPS SHOP NOW BLACK IS BACK WE HEARD YOU SHOP NOW COLOR FETCH EVENT A COLOR FOR EVERY DOG SHOP THE COLLECTION PROVEN TO SAVE THEY DESERVE #MANSBEST SHOP MAN'S BEST KENNEL * 1 * 2 * 3 * 4 Like some of the best stories, ours begins with a dog. "I’d always felt uneasy traveling with my dog Gunner in traditional plastic crates. He made me realize I wanted to produce a kennel with as much drive as he gave retrieving. I wanted to build the world’s best dog crate." – Addison Edmonds, Founder ▶️ Thank You, Gunner. GUNNER KENNEL 5 STAR CRASH TESTED Shop Now. PERSONALIZE YOUR BOWL GUNNER CUSTOM SHOP Shop Now. GUNNER FOOD CRATE OUR HIGHEST RATED PRODUCT Shop Now. BUY MORE & SAVE #MANSBESTBUMPER Shop Now. #MANSBESTKENNEL SAFETY'S ALWAYS IN SEASON Shop Now. 1 / 5 COLOR FETCH EVENT Limited-edition drop featuring four colors as unique as your dog. Limited time only. SHOP THE COLLECTION BEST SELLERS GUNNER KENNEL Colors Available SHOP NOW GUNNER BUMPER 3 Colors Available SHOP NOW GUNNER FOOD CRATE - SULPHUR SPRINGS 2 Sizes Available SHOP NOW GUNNER DOG BOWL 7 Colors Available SHOP NOW JOIN THE PACK G gunnerkennels 02/19/24 Made in America, no corners cut. Prep for your next pursuit with products built for the long haul. #DesignedForEverywhere Limited-edition Color Fetch collection available now, while supplies last. READ MORE... READ LESS Was this review helpful? 0 0 G gunnerkennels 02/17/24 On point: some leaders of the pack. Shop the limited-edition Color Fetch collection while supplies last. #MansBestFriend deserves #MansBestKennel READ MORE... READ LESS Was this review helpful? 0 0 G gunnerkennels 02/16/24 COLOR FETCH FULL COLLECTION 🙌 READ MORE... READ LESS Was this review helpful? 2 0 5.0 5.0 star rating GUNNER DOG BOWL Buy Now 4.9 4.9 star rating GUNNER DOG BOWL - GUNMETAL Buy Now 4.9 4.9 star rating PERSONALIZED GUNNER DOG BOWL - GUNMETAL Buy Now 4.9 4.9 star rating GUNNER DOG BOWL - TAN Buy Now 4.9 4.9 star rating PERSONALIZED GUNNER DOG BOWL - TAN Buy Now 4.9 4.9 star rating PERSONALIZED GUNNER DOG BOWL - DU GREEN Buy Now OTHER TAGGED PRODUCTS * * * * * * * SHOW MORE SHOW LESS G gunnerkennels 10/05/23 Last call for entries: don't miss your chance to win a sold-out Anahuac Kennel setup and a NOMAD Grill with accessories. Want to throw your name in the hat? Text WINNER to 82241 to enter, or go to the link in our bio. Ends Friday, October 6. READ MORE... READ LESS Was this review helpful? 0 0 5.0 5.0 star rating GUNNER DOG BOWL Buy Now 4.9 4.9 star rating GUNNER DOG BOWL - GUNMETAL Buy Now 4.9 4.9 star rating PERSONALIZED GUNNER DOG BOWL - GUNMETAL Buy Now 4.9 4.9 star rating GUNNER DOG BOWL - TAN Buy Now 4.9 4.9 star rating PERSONALIZED GUNNER DOG BOWL - TAN Buy Now 4.9 4.9 star rating PERSONALIZED GUNNER DOG BOWL - DU GREEN Buy Now 4.9 4.9 star rating GUNNER DOG BOWL - DU GREEN Buy Now OTHER TAGGED PRODUCTS * * * * * * * * SHOW MORE SHOW LESS G gunnerkennels 10/05/23 Last call for entries: don't miss your chance to win a sold-out Anahuac Kennel setup and a NOMAD Grill with accessories. Want to throw your name in the hat? Text WINNER to 82241 to enter, or go to the link in our bio. Ends Friday, October 6. READ MORE... READ LESS Was this review helpful? 0 0 4.8 4.8 star rating TIE-DOWN STRAP KIT Buy Now 4.9 4.9 star rating PERSONALIZED KENNEL NAME PLATE Buy Now 4.8 4.8 star rating G1™ KENNEL Buy Now OTHER TAGGED PRODUCTS * * * * SHOW MORE SHOW LESS F fetching_feathers 07/27/23 That look you give your wife when she says “we need to talk” 😂 Rowdy boy, you’re always making me laugh! 📸 ruggedseasons #FetchingFeathers #kkd #keepkickingdirt #reFusetobeoutworked #birddog #gundog #workingdog #mansbestFriend #mansbestkennel #gunnerkennels #dogtrainer #cockerspaniel #cocker #fieldcocker #pointer #uplands #uplandhunting #trainmoretalkless #dontrunyourmouthrunyourdog #builtdiFFerent #shootersshoot #shootyourshot READ MORE... READ LESS Was this review helpful? 0 0 4.6 4.6 star rating GUNNER BUMPER Buy Now G gunnerkennels 07/25/23 Bumper release week 🤝 shark week Level up your training with the GUNNER Bumper, coming this Thursday 7/27. Link in bio to learn more. Photo @haydendobbins #MansBestFriend Deserves #MansBestBumper READ MORE... READ LESS Was this review helpful? 1 0 4.6 4.6 star rating GUNNER BUMPER Buy Now E elcapitanhuntclub 07/25/23 The time has come. Ol Nixon is aging himself out of action and new pup will join the ranks to carry on. . One still craves fetching and the never will demand it. Luckily the latest release from gunnerkennels covers both of them with these bumpers. . Scent chamber. Narrow body for holding. Rubber cord that won’t come untied to toss. Man’s best friend, rides in safety and now trains with the best. . . #gunnerkennels #Retriever #gundog #labrador #gunnerkennels #yellowlab #mansbestfriend #barnporn #duckhunting READ MORE... READ LESS Was this review helpful? 0 0 4.6 4.6 star rating GUNNER BUMPER Buy Now D 07/18/23 DEVELOPMENT Photo by Michael Martin READ MORE... READ LESS Was this review helpful? 1 0 4.6 4.6 star rating GUNNER BUMPER Buy Now D 07/18/23 DEVELOPMENT Photo by Matt Carey. READ MORE... READ LESS Was this review helpful? 1 0 G gunnerkennels 05/26/23 The GUNNER kennel is the original 5 Star Crash Test Certified crate by Center For Pet Safety, with certified GUNNER tie-down straps. Our kennels offer at least double the impact protection of a standard crate. The double-wall rotomolded design allows the exterior layer of the kennel to absorb the majority of an initial impact, with the interior layer adding additional protection for your dog. We take safety seriously– the GUNNER kennel was the only crate that passed the original CPS crash test in 2015. 85% of products FAILED the safety certification when originally crash tested. The G1™ Intermediate actually broke the vice machine during testing with 4,000 pounds of force. We don't really know how much our product can withstand, but it's a lot. Don’t just take our word for it– the receipts are there. Check out more about our safety stats and save stories at the link in our bio. READ MORE... READ LESS Was this review helpful? 0 0 G gunnerkennels 05/26/23 The GUNNER kennel is the original 5 Star Crash Test Certified crate by Center For Pet Safety, with certified GUNNER tie-down straps. Our kennels offer at least double the impact protection of a standard crate. The double-wall rotomolded design allows the exterior layer of the kennel to absorb the majority of an initial impact, with the interior layer adding additional protection for your dog. We take safety seriously– the GUNNER kennel was the only crate that passed the original CPS crash test in 2015. 85% of products FAILED the safety certification when originally crash tested. The G1™ Intermediate actually broke the vice machine during testing with 4,000 pounds of force. We don't really know how much our product can withstand, but it's a lot. Don’t just take our word for it– the receipts are there. Check out more about our safety stats and save stories at the link in our bio. READ MORE... READ LESS Was this review helpful? 1 0 G gunnerkennels 05/12/23 In the summer heat, your dog's well-being is of the upmost importance. We tested our G1 Kennel alongside a variety of other crates to see how they fare in warmer temperatures. In 100+ degree weather, the ceiling of a leading aluminum kennel heated up ~50 degrees more than a GUNNER. The primary reason the GUNNER kennel performed so much better is because of its double-walled structure. All kennels’ outer surfaces heated to temperatures over 166° and for our competitors that high heat pushed right through to the interior of the kennel and the water bucket. But for the GUNNER double-walled kennel, the heat in the outer wall has a difficult time pushing through the air gap between the two walls. This means that a much smaller amount of the sun’s heat ever makes it to the interior walls of the kennel. Want to learn more about the testing parameters and how you can keep your dog safe this summer? Head to the link in our bio. READ MORE... READ LESS Was this review helpful? 0 0 G gunnerkennels 05/06/23 "If our dog had been in a junk crate and not a GUNNER kennel, I’m pretty certain it would’ve turned into chards during this accident. If that had happened, well I don’t want to guess at the potential outcomes. I was traveling in Kansas with my wife, kids, and our dog Wyoming in our Mercedes Sprinter van one evening. A vehicle pulling a gooseneck trailer on the interstate lost its whole tire-axle-hub assembly. The entire thing jumped the concrete barrier into our lane; it hit us dead on. The impact broke the van’s steer axle and triggered the airbags, and we slammed into the concrete barrier and rode the median, which eventually pulled the vehicle onto the driver’s side. We cleared the shoulder and ended up in a ditch. Everybody in my family was okay, but the vehicle was totaled. The kennel might’ve saved my daughter from harm– and for sure saved my dog. During the accident, Wyoming’s kennel was sitting between a set of captain chairs on the passenger side. The kennel wasn’t tied down, but this time, it actually factored to my family’s benefit. When the vehicle overturned and laid on the driver’s side to ride the median, the kennel flew across the van to the left-hand side. It wedged itself between my daughter’s knees and the seat in front of her. She was sitting on the driver’s side, where the van turned over to ride the median, and there was a glass window, which broke in the middle of all this. The GUNNER did two things, I believe: 1) When the van turned over, I could see the momentum and gravity to cause her to slip out of her booster seat. The kennel stopped that from happening. 2) It protected my daughter’s face from the window that shattered in front of her, and the debris that came in after. Everyone else got chards of glass in their bodies– but not her, because the kennel took the full brunt of it. The kennel took the abuse, but my dog is ok. There’s no way any other crate door would’ve stayed closed. That would mean my dog had been bouncing around the inside of the van, becoming a trajectory to harm my family or a hazard to herself. I’m thankful to GUNNER." –Alan W., GUNNER Pack Member Read Alan's full story at the link in our bio. READ MORE... READ LESS Was this review helpful? 1 0 G gunnerkennels 04/12/23 “Your kennel helped save my dog's life, and then my dog helped save mine. It was a freak accident. I was driving through Nashville with my GSD, Bodhi, and came to a stop light where I needed to make an unprotected left turn. As soon as I turned down, another driver was speeding and we suddenly t-boned. I slammed on my brakes, knocked into the other driver, and wedged the other vehicle between my Tahoe and a telephone pole. I got out of the car as soon as I could to check on the other driver. I was freaking out in the heat of the situation, but Bodhi did not even cross my mind since I knew he was in the kennel and totally fine. We called 911 to come and they quickly showed up to help with the situation. I kept telling the paramedic that I needed to get my dog, but he kept telling me to sit and wait. Long story short, I was then crying and having a whole physical PTSD panic attack. Everyone kept asking me what I needed, and I could only think of Bodhi. Bodhi has been training to be a fully equipped Service Dog, but he’d never performed deep pressure therapy (DPT) in an emergency before. The lead paramedic went to the car to open the kennel, and instead of jumping on the paramedic, Bodhi immediately ran right up to me and put his body weight on me to help me shake it out and get through the panic. The crazy thing is that if he was injured or hurt during the accident, he probably wouldn’t have been able to perform his service. It is obviously a sucky situation, but it honestly felt like a miracle that I had him in a GUNNER. It’s what kept him alive so he could start his career as a service dog. It’s one of the best dog products I’ve ever seen on the market because it’s genuinely saving lives.” –Gabby W., GUNNER Pack Member Check out the full story at the link in our bio #gunnersaves READ MORE... READ LESS Was this review helpful? 1 0 G gunnerkennels 04/08/23 Your dog is not an egg. But this egg test represents the risk of traveling with them unrestrained on the road. When your vehicle is traveling at highway speeds, so is your dog – traveling in a GUNNER Kennel works the same way seatbelts and airbags do at helping slow down the dog before the stop. Think about the effectiveness of seatbelts and airbags. In much the same way, a GUNNER both helps slow down your dog before the stop, and also cushions them during it. Every size GUNNER Kennel has saved real dogs in real wrecks. They're tested and proven to save. Learn more about how you can protect your dog at the link in our bio. READ MORE... READ LESS Was this review helpful? 0 0 Slideshow Slide controls Loading... SLIDESHOW Slide controls PRODUCT G1™ Kennels Dog Bowls Training Bumpers Food Crate Accessories GUNNER Wear Open Box COMPANY 5 Star Crash Test Rated Customer Stories GUNNER Match Campaign Careers Pledge 1% Company PROGRAMS Affiliate Program Military, LE & First Responders Influencer Program Breeders & Trainers Program EXPERIENCE Pack Blog Our Story Thank You, Gunner Customer Gallery Kennel Testimonials Videos SHIPPING & RETURNS Shipping Returns/Exchanges G1™ Kennel Warranty Food Crate Warranty SHOP BY DOG TYPE Waterfowl Dog Upland Dog Working K9 Family or Companion Dog Conformation or Sport Dog Adventure or Trail Dog Dog with Phobias CONTACT Contact Us Nashville Showroom FAQs 1x1 Video Consultation Financing 5207 Linbar Drive, Suite 704 | Nashville, TN 37211 | info@gunner.com. © Edmonds Outdoors, LLC. All rights reserved. Privacy Policy Terms Patents ✕ ✕ ✕ THE PACK OPINION ✕ ADDED. COMPLETE YOUR SETUP PERSONALIZED KENNEL NAME PLATE $30 - + Size Intermediate/Large Small/Medium Intermediate/Large Small/Medium Dog Name I've reviewed and approve the design shown in the preview ADD TO CART ✕ ADDED. COMPLETE YOUR SETUP FOOD CRATE NAME PLATE Regular price $30 Sale price $ Default Title Dog Name I've reviewed and approve the design shown in the preview ADD TO CART ✕ ADD TO COMPLETE YOUR SETUP FOOD CRATE NAME PLATE Regular price $30 Sale price $ Default Title ADD TO CART ✕ Sizing Guide … Sizing Guide KENNEL FIT FINDER VIEW SAVED START VEHICLE FIT FINDER VIEW SAVED START KENNEL DIMENSIONS VIEW Looking for your previous results? Sign in to view saved Fit recommendations small medium intermediate large SIDE-BY-SIDE COMPARISON EXTERIOR | INTERIOR INTERIOR: 21.75" (L - Floor) x 14.5" (W - Floor) x 15.5" (H) / 16.5" (W) at kennel's widest interior point EXTERIOR: 24.5" (L) x 18.625" (W) x 19" (H) / 20.5" (H) with carry handles EMPTY WEIGHT: 27 lb. EXTERIOR | INTERIOR INTERIOR: 25" (L - Floor) x 18" (W - Floor) x 19.75" (H) / 19" (W) at kennel's widest interior point EXTERIOR: 29.5" (L) x 20.5" (W) x 23.5" (H) / 25" (H) with carry handles EMPTY WEIGHT: 38 lb. EXTERIOR | INTERIOR INTERIOR: 30" (L - Floor) x 18" (W - Floor) x 25" (H) / 19" (W) at kennel's widest interior point EXTERIOR: 34" (L) x 23" (W) x 28.5" (H) / 30" (H) with carry handles EMPTY WEIGHT: 48 lb. EXTERIOR | INTERIOR INTERIOR: 33.25" (L - Floor) x 21" (W - Floor) x 29" (H) / 23" (W) at kennel's widest interior point EXTERIOR: 40.25" (L) x 28" (W) x 33.25" (H) / 34.5" (H) with carry handles EMPTY WEIGHT: 72 lb. Interior Exterior Empty Weight G1™ SMALL 21.75" (L - Floor) x 14.5" (W - Floor) x 15.5" (H) / 16.5" (W) at kennel's widest interior point 24.5" (L) x 18.625" (W) x 19" (H) / 20.5" (H) with carry handles 27 lb. G1™ MEDIUM 25" (L - Floor) x 18" (W - Floor) x 19.75" (H) / 19" (W) at kennel's widest interior point 29.5" (L) x 20.5" (W) x 23.5" (H) / 25" (H) with carry handles 38 lb. G1™ INTERMEDIATE 30" (L - Floor) x 18" (W - Floor) x 25" (H) / 19" (W) at kennel's widest interior point 34" (L) x 23" (W) x 28.5" (H) / 30" (H) with carry handles 48 lb. G1™ LARGE 33.25" (L - Floor) x 21" (W - Floor) x 29" (H) / 23" (W) at kennel's widest interior point 40.25" (L) x 28" (W) x 33.25" (H) / 34.5" (H) with carry handles 72 lb. Sign in to save your recommendation SIGN IN Don't have an account click here to register Return to results REGISTER Return to results REGISTER Return to results VIEW NEW + Your result has been saved! You need to be logged in to your account to see your saved recommendations Back to results page ADD ANOTHER Your returned results have been sent to our Customer Experience team. We'll be in touch as soon as possible to talk through your fit recommendation. Return to results The Kennel Fit Finder is intended for fully grown dogs, but we'd still love to help you make your best decision. Please choose whether we can contact you by email or SMS, and support will contact you to help find your fit. Email SMS SUBMIT Your request has been sent to our Customer Experience team. We'll be in touch as soon as possible to talk through your fit recommendation. You will need a soft measuring tape, your dog, and 2 minutes to find your perfect fit. Tip: If you don't have a soft measuring tape, use a piece of string or a leash then compare. NEXT My dog is select Fully Grown Still a Puppy NEXT Measure from base of tail to end of nose, keeping the tape along the spine. Still need help measuring? Watch our video here. My dog is inches in length NEXT My dog is inches in height from the base of paw to top of shoulder Still need help measuring? Watch our video here. NEXT My dog weighs pounds NEXT My dog is a select male female named and is select Below Average Average Above Average size for the breed. My name is and my email is FIND MY FIT G1™ SMALL Quantity must be 1 or more Size Small Medium Intermediate Large GUNNER Colors Black Gunmetal Tan DU Green Mossy Oak Bottomland Tan Mossy Oak Bottomland Gunmetal Mossy Oak Bottomland Black Small / Black Small / Gunmetal Small / Tan Small / DU Green Small / Mossy Oak Bottomland Tan Small / Mossy Oak Bottomland Gunmetal Small / Mossy Oak Bottomland Black Medium / Black Medium / Gunmetal Medium / Tan Medium / DU Green Medium / Mossy Oak Bottomland Tan Medium / Mossy Oak Bottomland Gunmetal Medium / Mossy Oak Bottomland Black Intermediate / Black Intermediate / Gunmetal Intermediate / Tan Intermediate / DU Green Intermediate / Mossy Oak Bottomland Tan Intermediate / Mossy Oak Bottomland Gunmetal - SOLD OUT Intermediate / Mossy Oak Bottomland Black - SOLD OUT Large / Black Large / Gunmetal Large / Tan Large / DU Green Large / Mossy Oak Bottomland Tan Large / Mossy Oak Bottomland Gunmetal Large / Mossy Oak Bottomland Black - SOLD OUT G1™ MEDIUM Quantity must be 1 or more Size Small Medium Intermediate Large GUNNER Colors Black Gunmetal Tan DU Green Mossy Oak Bottomland Tan Mossy Oak Bottomland Gunmetal Mossy Oak Bottomland Black Small / Black Small / Gunmetal Small / Tan Small / DU Green Small / Mossy Oak Bottomland Tan Small / Mossy Oak Bottomland Gunmetal Small / Mossy Oak Bottomland Black Medium / Black Medium / Gunmetal Medium / Tan Medium / DU Green Medium / Mossy Oak Bottomland Tan Medium / Mossy Oak Bottomland Gunmetal Medium / Mossy Oak Bottomland Black Intermediate / Black Intermediate / Gunmetal Intermediate / Tan Intermediate / DU Green Intermediate / Mossy Oak Bottomland Tan Intermediate / Mossy Oak Bottomland Gunmetal - SOLD OUT Intermediate / Mossy Oak Bottomland Black - SOLD OUT Large / Black Large / Gunmetal Large / Tan Large / DU Green Large / Mossy Oak Bottomland Tan Large / Mossy Oak Bottomland Gunmetal Large / Mossy Oak Bottomland Black - SOLD OUT G1™ INTERMEDIATE Quantity must be 1 or more Size Small Medium Intermediate Large GUNNER Colors Black Gunmetal Tan DU Green Mossy Oak Bottomland Tan Mossy Oak Bottomland Gunmetal Mossy Oak Bottomland Black Small / Black Small / Gunmetal Small / Tan Small / DU Green Small / Mossy Oak Bottomland Tan Small / Mossy Oak Bottomland Gunmetal Small / Mossy Oak Bottomland Black Medium / Black Medium / Gunmetal Medium / Tan Medium / DU Green Medium / Mossy Oak Bottomland Tan Medium / Mossy Oak Bottomland Gunmetal Medium / Mossy Oak Bottomland Black Intermediate / Black Intermediate / Gunmetal Intermediate / Tan Intermediate / DU Green Intermediate / Mossy Oak Bottomland Tan Intermediate / Mossy Oak Bottomland Gunmetal - SOLD OUT Intermediate / Mossy Oak Bottomland Black - SOLD OUT Large / Black Large / Gunmetal Large / Tan Large / DU Green Large / Mossy Oak Bottomland Tan Large / Mossy Oak Bottomland Gunmetal Large / Mossy Oak Bottomland Black - SOLD OUT G1™ LARGE Quantity must be 1 or more Size Small Medium Intermediate Large GUNNER Colors Black Gunmetal Tan DU Green Mossy Oak Bottomland Tan Mossy Oak Bottomland Gunmetal Mossy Oak Bottomland Black Small / Black Small / Gunmetal Small / Tan Small / DU Green Small / Mossy Oak Bottomland Tan Small / Mossy Oak Bottomland Gunmetal Small / Mossy Oak Bottomland Black Medium / Black Medium / Gunmetal Medium / Tan Medium / DU Green Medium / Mossy Oak Bottomland Tan Medium / Mossy Oak Bottomland Gunmetal Medium / Mossy Oak Bottomland Black Intermediate / Black Intermediate / Gunmetal Intermediate / Tan Intermediate / DU Green Intermediate / Mossy Oak Bottomland Tan Intermediate / Mossy Oak Bottomland Gunmetal - SOLD OUT Intermediate / Mossy Oak Bottomland Black - SOLD OUT Large / Black Large / Gunmetal Large / Tan Large / DU Green Large / Mossy Oak Bottomland Tan Large / Mossy Oak Bottomland Gunmetal Large / Mossy Oak Bottomland Black - SOLD OUT TRAVEL HOME Recommended Size for Safe Travel small Recommended Size for Safe Travel Medium safe travel not recommended Recommended Size for Safe Travel Intermediate safe travel not recommended Recommended Size for Safe Travel Large safe travel not recommended Move the slider up for a roomier fit, if that's your preference. Move the slider up or down to change the fit based on your primary use and preference Move the slider up for a roomier fit, if that's your preference. Move the slider up or down to change the fit based on your primary use and preference Move the slider up for a roomier fit, if that's your preference. Move the slider up or down to change the fit based on your primary use and preference Move the slider up for a roomier fit, if that's your preference. Move the slider up or down to change the fit based on your primary use and preference LEARN ABOUT OUR SIZING RECOMMENDATION WHY THIS SIZE? GUNNER is the original 5 Star Crash Tested kennel, per the Center For Pet Safety. We created this crate specifically for transportation and that factors into our fit recommendations. In the best interest of your dog, we advise a snug fit for safe travel. If choosing the GUNNER crate for home kenneling, simply slide the toggle above to the right to see the best size. SAFE TRAVEL GUIDELINES When primarily used for travel, we always recommend a tight fit in the GUNNER kennel. This protects the dog in the case of an accident: the less wasted interior space the better. Think about it like this – if you’re hitting the brakes too hard, or get into a wreck, you’d rather that your dog have less room to move around inside the kennel. Many customers have also found that their dog feels more secure when traveling in a tighter area too. For further explanation on this point, let Seth Bynum, a Veterinarian, break it down for you. For further explanation on this point, let Seth Bynum, a Veterinarian, break it down for you. WHAT DO WE MEAN BY SNUG FIT? Check out the below visual. When the door is closed, the proper fit for safe travel could mean that your dog: • Is curled • Paws are tucked • Rump/tail is resting against the back Here’s another look for how your dog might look in a crate sized for safe travel, when the door is open: SHOW MORE IMAGES - + ADD TO CART SAVE RECOMMENDATION ADD ANOTHER EMAIL RESULTS TO SUPPORT DOWNLOAD SIZE CHART It looks like we can't find a fit for your dog based on the measurements you entered. Please check they're correct or contact support for help. EMAIL MY RESULTS ADDED. COMPLETE YOUR SETUP PERSONALIZED KENNEL NAME PLATE SMALL/MEDIUM Regular price $30 Sale price $30 - + ADD TO CART TIE-DOWN STRAP KIT BLAZE ORANGE / TRADITIONAL Regular price $90 Sale price $ - + ADD TO CART ORTHOPEDIC DOG BED SMALL / GRAY Regular price $100 Sale price $ - + ADD TO CART PERSONALIZED KENNEL NAME PLATE SMALL/MEDIUM Regular price $30 Sale price $30 - + ADD TO CART TIE-DOWN STRAP KIT BLAZE ORANGE / TRADITIONAL Regular price $90 Sale price $ - + ADD TO CART PERFORMANCE PAD MEDIUM / BLACK Regular price $90 Sale price $90 - + ADD TO CART PERSONALIZED KENNEL NAME PLATE INTERMEDIATE/LARGE Regular price $30 Sale price $30 - + ADD TO CART TIE-DOWN STRAP KIT BLAZE ORANGE / TRADITIONAL Regular price $90 Sale price $ - + ADD TO CART PERFORMANCE PAD INTERMEDIATE / BLACK Regular price $100 Sale price $ - + ADD TO CART PERSONALIZED KENNEL NAME PLATE INTERMEDIATE/LARGE Regular price $30 Sale price $30 - + ADD TO CART TIE-DOWN STRAP KIT BLAZE ORANGE / TRADITIONAL Regular price $90 Sale price $ - + ADD TO CART PERFORMANCE PAD LARGE / BLACK Regular price $130 Sale price $ - + ADD TO CART Where do you plan to place your G1™ Kennel? The cabin/passenger compartment Cargo/trunk Truck bed Other NEXT Locate the door or opening through which you plan to insert your G1™ kennel. The following will ensure that you can easily remove your kennel Measure the interior width of this opening, from its narrowest point to its narrowest point. Place the corresponding dimension here: Inches NEXT Measure the interior height of this door opening, from the bottom of the seat to the top of the interior frame. Place the corresponding dimension here: Measure the interior height of this door opening, from the bottom of the floorboard of the trunk opening, to the top of the interior frame. Place the corresponding dimension here: Measure the interior height of the opening where you plan to insert the kennel, from the bottom of the floor to the top of the interior frame. Place the corresponding dimension here: Inches NEXT Please locate where you plan to place your G1™ in the compartment of the vehicle. Decide which direction your kennel will face. Then, measure the width of this space, from narrowest point to narrowest point. Place the corresponding dimension here: Measure the interior width of your cargo space, from narrowest point to narrowest point, taking into account the wheel wells. Place the corresponding dimension here: Measure the width of your bed, from narrowest point to narrowest point, taking into account the wheel wells. Place the corresponding dimension here: Measure the interior width of your space, from narrowest point to narrowest point. Place the corresponding dimension here: Inches NEXT Measure the height of this interior space, from the resting floor to the top of the interior ceiling. Take into account any sloping points. Place the corresponding dimension here: Measure the height of the cargo space, from the floorboard to the top of the interior ceiling. Take into account any sloping points. Place the corresponding dimension here: If you have a topper, measure the height of the space, from the floor to the top of the interior ceiling. Place the corresponding dimension here: *if you do not have a topper, enter the number "50". Measure the height of the space, from the floor to the top of the interior ceiling. Take into account any sloping points. Place the corresponding dimension here: Inches NEXT Measure the depth of this interior space, from narrowest point to narrowest point. Place the corresponding dimension here: Measure the depth of the cargo space, from the tailgate to the back of the seat. Place the corresponding dimension here: Measure the depth of the cargo space, from the tailgate to the back of the seat. Place the corresponding dimension here: Measure the depth of the space, from narrowest point to narrowest point. Inches NEXT My vehicle is a My name is and my email is FIND MY FIT G1™ SMALL FITS (2) G1™ SMALL Quantity must be 1 or more Size Small Medium Intermediate Large GUNNER Colors Black Gunmetal Tan DU Green Mossy Oak Bottomland Tan Mossy Oak Bottomland Gunmetal Mossy Oak Bottomland Black Small / Black Small / Gunmetal Small / Tan Small / DU Green Small / Mossy Oak Bottomland Tan Small / Mossy Oak Bottomland Gunmetal Small / Mossy Oak Bottomland Black Medium / Black Medium / Gunmetal Medium / Tan Medium / DU Green Medium / Mossy Oak Bottomland Tan Medium / Mossy Oak Bottomland Gunmetal Medium / Mossy Oak Bottomland Black Intermediate / Black Intermediate / Gunmetal Intermediate / Tan Intermediate / DU Green Intermediate / Mossy Oak Bottomland Tan Intermediate / Mossy Oak Bottomland Gunmetal - SOLD OUT Intermediate / Mossy Oak Bottomland Black - SOLD OUT Large / Black Large / Gunmetal Large / Tan Large / DU Green Large / Mossy Oak Bottomland Tan Large / Mossy Oak Bottomland Gunmetal Large / Mossy Oak Bottomland Black - SOLD OUT - + ADD TO CART G1™ MEDIUM FITS (2) G1™ MEDIUM Quantity must be 1 or more Size Small Medium Intermediate Large GUNNER Colors Black Gunmetal Tan DU Green Mossy Oak Bottomland Tan Mossy Oak Bottomland Gunmetal Mossy Oak Bottomland Black Small / Black Small / Gunmetal Small / Tan Small / DU Green Small / Mossy Oak Bottomland Tan Small / Mossy Oak Bottomland Gunmetal Small / Mossy Oak Bottomland Black Medium / Black Medium / Gunmetal Medium / Tan Medium / DU Green Medium / Mossy Oak Bottomland Tan Medium / Mossy Oak Bottomland Gunmetal Medium / Mossy Oak Bottomland Black Intermediate / Black Intermediate / Gunmetal Intermediate / Tan Intermediate / DU Green Intermediate / Mossy Oak Bottomland Tan Intermediate / Mossy Oak Bottomland Gunmetal - SOLD OUT Intermediate / Mossy Oak Bottomland Black - SOLD OUT Large / Black Large / Gunmetal Large / Tan Large / DU Green Large / Mossy Oak Bottomland Tan Large / Mossy Oak Bottomland Gunmetal Large / Mossy Oak Bottomland Black - SOLD OUT - + ADD TO CART G1™ INTERMEDIATE FITS (2) G1™ INTERMEDIATE Quantity must be 1 or more Size Small Medium Intermediate Large GUNNER Colors Black Gunmetal Tan DU Green Mossy Oak Bottomland Tan Mossy Oak Bottomland Gunmetal Mossy Oak Bottomland Black Small / Black Small / Gunmetal Small / Tan Small / DU Green Small / Mossy Oak Bottomland Tan Small / Mossy Oak Bottomland Gunmetal Small / Mossy Oak Bottomland Black Medium / Black Medium / Gunmetal Medium / Tan Medium / DU Green Medium / Mossy Oak Bottomland Tan Medium / Mossy Oak Bottomland Gunmetal Medium / Mossy Oak Bottomland Black Intermediate / Black Intermediate / Gunmetal Intermediate / Tan Intermediate / DU Green Intermediate / Mossy Oak Bottomland Tan Intermediate / Mossy Oak Bottomland Gunmetal - SOLD OUT Intermediate / Mossy Oak Bottomland Black - SOLD OUT Large / Black Large / Gunmetal Large / Tan Large / DU Green Large / Mossy Oak Bottomland Tan Large / Mossy Oak Bottomland Gunmetal Large / Mossy Oak Bottomland Black - SOLD OUT - + ADD TO CART G1™ LARGE FITS (2) G1™ LARGE Quantity must be 1 or more Size Small Medium Intermediate Large GUNNER Colors Black Gunmetal Tan DU Green Mossy Oak Bottomland Tan Mossy Oak Bottomland Gunmetal Mossy Oak Bottomland Black Small / Black Small / Gunmetal Small / Tan Small / DU Green Small / Mossy Oak Bottomland Tan Small / Mossy Oak Bottomland Gunmetal Small / Mossy Oak Bottomland Black Medium / Black Medium / Gunmetal Medium / Tan Medium / DU Green Medium / Mossy Oak Bottomland Tan Medium / Mossy Oak Bottomland Gunmetal Medium / Mossy Oak Bottomland Black Intermediate / Black Intermediate / Gunmetal Intermediate / Tan Intermediate / DU Green Intermediate / Mossy Oak Bottomland Tan Intermediate / Mossy Oak Bottomland Gunmetal - SOLD OUT Intermediate / Mossy Oak Bottomland Black - SOLD OUT Large / Black Large / Gunmetal Large / Tan Large / DU Green Large / Mossy Oak Bottomland Tan Large / Mossy Oak Bottomland Gunmetal Large / Mossy Oak Bottomland Black - SOLD OUT - + ADD TO CART Please note that, in some returned results, you may have to remove carry handles before inserting the G1™ (or in the rare case, asssemble the kennel inside the vehicle). SAVE RECOMMENDATION ADD ANOTHER EMAIL RESULTS TO SUPPORT I'm sorry, but it doesn't look like we have any Kennels that fit your specification based on the measurements you entered. Please check they're correct or contact support for help. ADDED. COMPLETE YOUR BUNDLE Receive a free Personalized Kennel Name Plate when adding a Name Plate and a Tie-Down Strap Kit to your cart. PERSONALIZED KENNEL NAME PLATE SMALL/MEDIUM Regular price $30 Sale price $30 Dog Name I've reviewed and approve the design shown in the preview - + ADD TO CART TIE-DOWN STRAP KIT BLAZE ORANGE / TRADITIONAL Regular price $90 Sale price $ - + ADD TO CART TIE-DOWN STRAP KIT BLACK / TRADITIONAL Regular price $90 Sale price $ - + ADD TO CART PERSONALIZED KENNEL NAME PLATE INTERMEDIATE/LARGE Regular price $30 Sale price $30 Dog Name I've reviewed and approve the design shown in the preview - + ADD TO CART TIE-DOWN STRAP KIT BLAZE ORANGE / TRADITIONAL Regular price $90 Sale price $ - + ADD TO CART TIE-DOWN STRAP KIT BLACK / TRADITIONAL Regular price $90 Sale price $ - + ADD TO CART PERSONALIZED KENNEL NAME PLATE INTERMEDIATE/LARGE Regular price $30 Sale price $30 Dog Name I've reviewed and approve the design shown in the preview - + ADD TO CART TIE-DOWN STRAP KIT BLAZE ORANGE / TRADITIONAL Regular price $90 Sale price $ - + ADD TO CART TIE-DOWN STRAP KIT BLACK / TRADITIONAL Regular price $90 Sale price $ - + ADD TO CART ★ Reviews Popup content starts close Popup THESE ARE REAL REVIEWS FROM REAL SHOPPERS 4.8 star rating 8414 Reviews * Site Reviews * Product Reviews WRITE A REVIEW * Indicates a required field * Score: * Title: * Review: You are connected as Connect with: -OR- * Use your name: * Email: Review's title & body can't be empty Question's body can't be empty Please enter a star rating for this review Name field cannot be empty Invalid email Your review has already been submitted. Max length was exceeded Please fill out all of the mandatory (*) fields One or more of your answers does not meet the required criteria Thank you for posting a review! We value your input. Share your review so everyone else can enjoy it too. share share share Thank you for posting a review! Your review was sent successfully and is now waiting for our staff to publish it. Verified Reviewer 0.0 star rating 05/18/24 Review by Anonymous User On share ' Share Review by Anonymous User facebook facebook Share Review by Anonymous User twitter twitter Share Review by Anonymous User LinkedIn linkedin Share Review by Anonymous User 05/18/24 Was this review helpful? 0 0 J Jessica K. Verified Buyer 5.0 star rating 03/21/24 G1 small kennel Review by Jessica K. on 21 Mar 2024 review stating G1 small kennel This is a great crate. We love it so far. My papillon is restless when we travel and this crate has seemingly helped to reduce her stress. We have tried 3 other types of crates too. On G1™ KENNEL - LAVENDER share ' Share Review by Jessica K. on 21 Mar 2024 facebook facebook Share Review by Jessica K. on 21 Mar 2024 twitter twitter Share Review by Jessica K. on 21 Mar 2024 LinkedIn linkedin Share Review by Jessica K. on 21 Mar 2024 03/21/24 Reviewed on: G1™ KENNEL - LAVENDER Was this review helpful? 1 0 Slideshow Slide controls Loading... J JAMES O. Verified Buyer 5.0 star rating 03/14/24 MUST HAVE - Fits like a glove Review by JAMES O. on 14 Mar 2024 review stating MUST HAVE - Fits like a glove drove through a nasty rain storm and when we stopped to let the dog out...completely dry....well worth the investment!!! On ALL-WEATHER KIT 2.0 share ' Share Review by JAMES O. on 14 Mar 2024 facebook facebook Share Review by JAMES O. on 14 Mar 2024 twitter twitter Share Review by JAMES O. on 14 Mar 2024 LinkedIn linkedin Share Review by JAMES O. on 14 Mar 2024 03/14/24 Reviewed on: ALL-WEATHER KIT 2.0 Was this review helpful? 1 0 Slideshow Slide controls Loading... J JAMES O. Verified Buyer 5.0 star rating 03/14/24 MUST HAVE Review by JAMES O. on 14 Mar 2024 review stating MUST HAVE More than enough air flow to keep them cool On FAN KIT 2.0 share ' Share Review by JAMES O. on 14 Mar 2024 facebook facebook Share Review by JAMES O. on 14 Mar 2024 twitter twitter Share Review by JAMES O. on 14 Mar 2024 LinkedIn linkedin Share Review by JAMES O. on 14 Mar 2024 03/14/24 Reviewed on: FAN KIT 2.0 Was this review helpful? 0 0 Slideshow Slide controls Loading... J JAMES O. Verified Buyer 5.0 star rating 03/14/24 SOLID BUILD ~~~ Love It!!! GREAT Customer Service Review by JAMES O. on 14 Mar 2024 review stating SOLID BUILD ~~~ Love It!!! GREAT Customer Service This kennel is solid as a rock, easy to put together and love the tie down points. Makes it easy to secure to either the back seat or bed of my truck. I learn the hard way that if you purchase the all weather kit, it would be in your best interest install that at the same time of assembly....LOL, right after I finished putting it together, I had t...Read MoreRead more about review stating SOLID BUILD ~~~ Love It!!! GREAT Customer Service o take it apart to install the kit...but none the less, was super simple and everything fit like a glove. I went on a 700+ mile road trip and went through a pretty nasty storm....when we stopped to let the dog out...he was dry, not a drop of water on him. The fan is a MUST HAVE, especially when not in motion, creates more than enough air flow throughout the crate. The customer service team is spot on, super helpful, extremely friendly and they were able to answer every question I had. Thank you for supporting the men and women of our armed forces! Read LessRead less about review stating SOLID BUILD ~~~ Love It!!! GREAT Customer Service On G1™ KENNEL - NAVY share ' Share Review by JAMES O. on 14 Mar 2024 facebook facebook Share Review by JAMES O. on 14 Mar 2024 twitter twitter Share Review by JAMES O. on 14 Mar 2024 LinkedIn linkedin Share Review by JAMES O. on 14 Mar 2024 03/14/24 Reviewed on: G1™ KENNEL - NAVY Was this review helpful? 1 0 Slideshow Slide controls Loading... D Derek H. Verified Buyer 5.0 star rating 03/12/24 Dang good dog box Review by Derek H. on 12 Mar 2024 review stating Dang good dog box Third gunner kennel, happy as always! Its a dang good dog box On G1™ KENNEL - SULPHUR SPRINGS share ' Share Review by Derek H. on 12 Mar 2024 facebook facebook Share Review by Derek H. on 12 Mar 2024 twitter twitter Share Review by Derek H. on 12 Mar 2024 LinkedIn linkedin Share Review by Derek H. on 12 Mar 2024 03/12/24 Reviewed on: G1™ KENNEL - SULPHUR SPRINGS Was this review helpful? 1 0 Slideshow Slide controls Loading... 1 2 3 4 5 6 7 8 9 Popup content ends Earn Rewards ENTER TO WIN A GUNNER FOOD CRATE ENTER TO WIN