Oh Kala! Oh Kala! How do your ukuleles grow? Planted in 2005, putting down roots and spreading out branches ever since, celebrate the grass roots, organic growth of Kala Ukulele and the ukulele movement!
Great logo, comfy, true to size. I think it helps me play uke better.
TM
Terry M.
Verified Buyer
I recommend this product
Rated 5 out of 5 stars
1 month ago
Great quality
Fits and feels great, and gotta love the tree
DW
Doris W.
Verified Buyer
I recommend this product
Rated 5 out of 5 stars
6 months ago
Can't wait for spring to wear
It's very cold here so I will wait for warmer weather. I love the design and the blue/gray color. I like roomy t-shirts so I bought a large in case of shrinkage. I will look forward to warmer weather.
// Preorder Property Handler
(function() {
function initPreorderProperty() {
// Check if this is a preorder product
if (!window.isPreorderProduct) {
return;
}
console.log('✅ Preorder product detected');
// Add property to form submissions
function addPreorderToForm() {
const addToCartButtons = document.querySelectorAll(
'[name="add"], ' +
'button[type="submit"][name="add"], ' +
'.product-form__submit, ' +
'[data-add-to-cart], ' +
'button.add-to-cart, ' +
'button[name="add"]'
);
addToCartButtons.forEach(function(button) {
button.addEventListener('click', function(e) {
const form = button.closest('form');
if (form && form.action && form.action.includes('/cart/add')) {
let preorderInput = form.querySelector('input[name="properties[_preorder]"]');
if (!preorderInput) {
preorderInput = document.createElement('input');
preorderInput.type = 'hidden';
preorderInput.name = 'properties[_preorder]';
preorderInput.value = 'true';
form.appendChild(preorderInput);
console.log('✅ Added _preorder hidden input');
}
}
});
});
}
// Intercept AJAX cart adds
function interceptCartAjax() {
const originalFetch = window.fetch;
window.fetch = function(...args) {
const [url, config] = args;
if (url && (url.includes('/cart/add.js') || url.includes('/cart/add'))) {
if (config && config.body) {
try {
// Handle JSON body
if (typeof config.body === 'string') {
const data = JSON.parse(config.body);
if (!data.properties) {
data.properties = {};
}
if (!data.properties._preorder) {
data.properties._preorder = 'true';
console.log('✅ Added _preorder to AJAX request');
}
config.body = JSON.stringify(data);
}
// Handle FormData
else if (config.body instanceof FormData) {
if (!config.body.has('properties[_preorder]')) {
config.body.append('properties[_preorder]', 'true');
console.log('✅ Added _preorder to FormData');
}
}
} catch (e) {
console.error('Error modifying cart request:', e);
}
}
}
return originalFetch.apply(this, args);
};
}
// Initialize when DOM is ready
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', function() {
addPreorderToForm();
interceptCartAjax();
});
} else {
addPreorderToForm();
interceptCartAjax();
}
}
// Initialize
initPreorderProperty();
})();
 
 
One or more of the items in your cart is a recurring or deferred purchase. By continuing, I agree to the cancellation policy and authorize you to charge my payment method at the prices, frequency and dates listed on this page until my order is fulfilled or I cancel, if permitted.