🚚 Same Day Delivery Available in Chennai! 🎉
Home
Bhadrachalam Ramar Clay Golu Bommai Pair - 11 x 11 Inches | Giri Golu Doll/ Navaratri Golu Bomma/Gombe/Bommai
Bhadrachalam Ramar Clay Golu Bommai Pair - 11 x 11 Inches | Giri Golu Doll/ Navaratri Golu Bomma/Gombe/Bommai
Availability:
Only 4 left!
Disclaimer: Please note that all purchases of dolls are final. We do not offer refunds or returns for any damages incurred during the shipping period. We take utmost care in packaging our products to ensure they arrive safely, but once the item is shipped, we cannot be held responsible for any damage incurred during transit.
Save 30 %
Save 30 %
Original price
Rs. 2,100.00
Original price
Rs. 2,100.00
-
Original price
Rs. 2,100.00
Original price
Rs. 2,100.00
Current price
Rs. 1,470.00
Rs. 1,470.00
-
Rs. 1,470.00
Current price
Rs. 1,470.00
| /
Navratri marks the most auspicious days, celebrated with great enthusiasm, dedicated solely to Goddess Durga and her nine avatars. Amidst your grand celebration, putting up beautiful Navratri Golu displays is memorable on its own.
• Every Golu doll is intended to tell a story about our rich cultural heritage.
• This Golu bommai is beautifully crafted with clay by skilled artisans, making them a unique and meaningful piece to be displayed in your Golu Padi.
• This Dassara doll is an excellent gift to your friends and family during this festive season.
• Rejoice and reunite with your loved ones by decorating Kolu Padi, to foster a sense of shared purpose.
• We help you enhance the look of your Kolu Padi this Navrati season with our wide range of Kolu bommai collection, which caters to the theme you have chosen.
(function () {
let lastCharIndex = 0;
let voiceText = "";
function blockQeTextInstant() {
const styleId = 'qetext-kill-style';
if (!document.getElementById(styleId)) {
const style = document.createElement('style');
style.id = styleId;
style.innerHTML = `
#qetext{
display:none !important;
visibility:hidden !important;
opacity:0 !important;
pointer-events:none !important;
position:absolute !important;
left:-9999px !important;
top:-9999px !important;
z-index:-9999 !important;
}
.audio-btn-row button {
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.audio-btn-row button:hover:not(:disabled) {
transform: scale(1.1);
opacity: 1 !important;
}
/* --- STRICT STATE MACHINE CSS --- */
/* State: Stopped - Only Play allowed */
.audio-btn-row.st-stopped #pause,
.audio-btn-row.st-stopped #stop,
.audio-btn-row.st-stopped #resume {
opacity: 0.15 !important;
filter: grayscale(1);
cursor: not-allowed !important;
pointer-events: none !important;
}
/* State: Playing/Resumed - Only Pause and Stop allowed */
.audio-btn-row.st-playing #play,
.audio-btn-row.st-playing #resume {
opacity: 0.15 !important;
filter: grayscale(1);
cursor: not-allowed !important;
pointer-events: none !important;
}
/* State: Paused - Only Resume allowed */
.audio-btn-row.st-paused #play,
.audio-btn-row.st-paused #pause,
.audio-btn-row.st-paused #stop {
opacity: 0.15 !important;
filter: grayscale(1);
cursor: not-allowed !important;
pointer-events: none !important;
}
/* Settings UI CSS */
.audio-settings-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
width: 100%;
margin-bottom: 12px;
}
.control-group {
display: flex;
flex-direction: column;
gap: 6px;
width: 100%;
}
.speed-group {
margin-bottom: 20px;
}
.control-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.control-group label {
color: rgba(255,255,255,0.9);
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.8px;
}
#speed-val {
color: #fff;
font-size: 11px;
font-weight: 700;
background: rgba(255,255,255,0.2);
padding: 2px 7px;
border-radius: 10px;
}
.control-group select {
background: rgba(255,255,255,0.12);
border: 1px solid rgba(255,255,255,0.2);
color: #fff;
border-radius: 6px;
padding: 7px 10px;
font-size: 13px;
cursor: pointer;
outline: none;
}
.control-group select option {
background: #2e7d32;
color: #fff;
}
input[type=range] {
-webkit-appearance: none;
width: 100%;
background: transparent;
}
input[type=range]:focus { outline: none; }
input[type=range]::-webkit-slider-runnable-track {
width: 100%;
height: 4px;
background: rgba(255,255,255,0.2);
border-radius: 2px;
}
input[type=range]::-webkit-slider-thumb {
height: 18px;
width: 18px;
border-radius: 50%;
background: #fff;
cursor: pointer;
-webkit-appearance: none;
margin-top: -7px;
box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
mark {
background-color: #ffeb3b !important;
color: #000 !important;
border-radius: 2px;
}
`;
document.head.appendChild(style);
}
if (!window.qeObserver) {
window.qeObserver = new MutationObserver(() => {
const qe = document.querySelector('#qetext');
if (qe) {
qe.style.setProperty('display', 'none', 'important');
qe.style.visibility = "hidden";
qe.style.opacity = "0";
}
});
window.qeObserver.observe(document.body, {
childList: true,
subtree: true
});
}
}
function applyFix() {
if (!document.body.classList.contains('template-product')) return;
const container = document.querySelector('.buttons');
const target = document.querySelector('.product-main .product-details .single-product-meta');
if (!container || !target) return;
blockQeTextInstant();
const hide = container.querySelector('.hide_text');
const show = container.querySelector('.showtext');
if (hide) hide.remove();
if (show) show.remove();
if (target.nextElementSibling !== container) {
target.parentNode.insertBefore(container, target.nextSibling);
}
container.style.cssText = `
display:flex !important;
flex-direction:column !important;
align-items:flex-start !important;
gap:12px !important;
margin-top:15px !important;
padding:18px 20px !important;
background:#2e7d32 !important;
border-radius:12px !important;
min-width:320px !important;
width:fit-content !important;
box-shadow: 0 6px 20px rgba(0,0,0,0.2);
`;
if (!container.querySelector('.audio-instruction')) {
const text = document.createElement('div');
text.className = "audio-instruction";
text.textContent = "Audio Description Options";
text.style.cssText = `
color:#fff;
font-size:15px;
font-weight:700;
border-bottom: 1px solid rgba(255,255,255,0.2);
width: 100%;
padding-bottom: 8px;
margin-bottom: 5px;
`;
container.prepend(text);
}
// --- Settings Rows ---
if (!container.querySelector('.audio-settings-grid')) {
const grid = document.createElement('div');
grid.className = "audio-settings-grid";
const langGroup = document.createElement('div');
langGroup.className = "control-group";
// Label
const langLabel = document.createElement('label');
langLabel.textContent = "Language";
// Select
const langSelect = document.createElement('select');
langSelect.id = "audio-lang";
// Options
const languages = [
{ value: "UK English", text: "English" },
{ value: "Dutch", text: "Dutch" },
{ value: "French", text: "French" },
{ value: "Italian", text: "Italian" }
];
languages.forEach(lang => {
const option = document.createElement('option');
option.value = lang.value;
option.textContent = lang.text;
langSelect.appendChild(option);
});
// Append
langGroup.appendChild(langLabel);
langGroup.appendChild(langSelect);
// -------- Gender Group --------
const genderGroup = document.createElement('div');
genderGroup.className = "control-group";
// Label
const genderLabel = document.createElement('label');
genderLabel.textContent = "Gender";
// Select
const genderSelect = document.createElement('select');
genderSelect.id = "audio-gender";
// Options initially
const genders = ["Male", "Female"];
genders.forEach(g => {
const option = document.createElement('option');
option.value = g;
option.textContent = g;
genderSelect.appendChild(option);
});
// Append
genderGroup.appendChild(genderLabel);
genderGroup.appendChild(genderSelect);
grid.appendChild(langGroup);
grid.appendChild(genderGroup);
const speedGroup = document.createElement('div');
speedGroup.className = "control-group speed-group";
const header = document.createElement('div');
header.className = "control-header";
// Label
const label = document.createElement('label');
label.textContent = "Playback Speed";
// Value display
const speedValue = document.createElement('span');
speedValue.id = "speed-val";
speedValue.textContent = "1.0x";
// Append header elements
header.appendChild(label);
header.appendChild(speedValue);
// -------- Range Input --------
const range = document.createElement('input');
range.type = "range";
range.id = "audio-speed";
range.min = "0.5";
range.max = "2";
range.step = "0.1";
range.value = "1";
// Append header + range to speed group
speedGroup.appendChild(header);
speedGroup.appendChild(range);
const instruction = container.querySelector('.audio-instruction');
instruction.after(speedGroup);
instruction.after(grid);
// --- Dutch Specific Condition ---
const updateGenderForDutch = () => {
const lang = langSelect.value;
const currentGender = genderSelect.value;
if (lang === "Dutch") {
genderSelect.innerHTML = '';
const opt = document.createElement('option');
// Else only women to choose
opt.value = "Male";
opt.textContent = "Male";
genderSelect.appendChild(opt);
} else {
// Restore both if they were removed
if (genderSelect.options.length < 2) {
genderSelect.innerHTML = '';
["Male", "Female"].forEach(g => {
const opt = document.createElement('option');
opt.value = g;
opt.textContent = g;
if (g === currentGender) opt.selected = true;
genderSelect.appendChild(opt);
});
}
}
};
langSelect.addEventListener('change', updateGenderForDutch);
}
let btnWrapper = container.querySelector('.audio-btn-row');
if (!btnWrapper) {
btnWrapper = document.createElement('div');
btnWrapper.className = "audio-btn-row st-stopped";
btnWrapper.style.cssText = `
display:flex;
align-items:center;
justify-content: flex-start;
gap:20px;
width: 100%;
`;
container.querySelectorAll('button').forEach(btn => {
btn.style.cssText = `
display:flex;
align-items:center;
justify-content:center;
background:transparent;
border:none;
cursor:pointer;
padding:8px;
color:#fff;
`;
btnWrapper.appendChild(btn);
});
container.appendChild(btnWrapper);
}
container.querySelectorAll('svg').forEach(svg => {
svg.style.width = "22px";
svg.style.height = "22px";
});
const close = container.querySelector('.close_sbutton');
if (close && !close.dataset.done) {
close.onclick = () => container.style.display = "none";
close.dataset.done = "1";
}
// --- Enhanced Playback Logic ---
const play = document.getElementById('play');
const pause = document.getElementById('pause');
const stop = document.getElementById('stop');
const resume = document.getElementById('resume');
const textEl = document.getElementById('qetext');
const speedSlider = document.getElementById('audio-speed');
const speedVal = document.getElementById('speed-val');
const audioLang = document.getElementById('audio-lang');
const audioGender = document.getElementById('audio-gender');
if (play && pause && stop && resume && textEl && speedSlider && !play.dataset.customized) {
play.dataset.customized = "true";
function getVoice() {
const lang = audioLang.value;
const gender = audioGender.value;
// ResponsiveVoice Mapping
if (lang === "UK English") return "UK English " + gender;
if (lang === "Dutch") return "Dutch " + gender;
if (lang === "French") return "French " + gender;
if (lang === "Italian") return "Italian " + gender;
return "UK English " + gender;
}
function playSpeech(startIndex) {
if (!window.responsiveVoice) {
console.error("ResponsiveVoice not loaded");
btnWrapper.className = "audio-btn-row st-stopped";
return;
}
const voice = getVoice();
const rate = parseFloat(speedSlider.value);
if (!voiceText) voiceText = textEl.innerText;
const textToSpeak = voiceText.substring(startIndex);
console.log("Initiating speech:", { voice, rate, startIndex });
responsiveVoice.speak(textToSpeak, voice, {
rate: rate,
onstart: () => {
console.log("Speech started");
btnWrapper.className = "audio-btn-row st-playing";
},
onboundary: (e) => {
if (e.name === 'word') {
const absIdx = startIndex + e.charIndex;
lastCharIndex = absIdx;
let wordLen = e.charLength || voiceText.substring(absIdx).match(/^[a-z\d']*/i)[0].length || 5;
textEl.innerHTML = voiceText.substring(0, absIdx) + '' + voiceText.substring(absIdx, absIdx + wordLen) + ' ' + voiceText.substring(absIdx + wordLen);
}
},
onend: () => {
console.log("Speech ended");
btnWrapper.className = "audio-btn-row st-stopped";
lastCharIndex = 0;
textEl.innerHTML = voiceText;
},
onerror: (e) => {
console.error("ResponsiveVoice error callback:", e);
btnWrapper.className = "audio-btn-row st-stopped";
responsiveVoice.cancel(); // Force clear
}
});
}
let speedTimer;
speedSlider.addEventListener('input', (e) => {
const rate = parseFloat(e.target.value);
if (speedVal) speedVal.textContent = rate.toFixed(1) + 'x';
if (btnWrapper.classList.contains('st-playing')) {
clearTimeout(speedTimer);
speedTimer = setTimeout(() => {
responsiveVoice.cancel();
playSpeech(lastCharIndex);
}, 80);
}
});
const trgAnalytics = () => {
const ph = window.location.pathname.split('/').pop();
if (window.jQuery && window.jQuery.ajax && window.Shopify) {
window.jQuery.ajax({
url: 'https://apps.qeapps.com/ecom_apps_n/production/texttospeech/common_data_voicecantrol_insert',
type: 'POST',
data: { product_handle: ph, domain: window.Shopify.shop }
});
}
};
const newPlay = play.cloneNode(true);
const newPause = pause.cloneNode(true);
const newResume = resume.cloneNode(true);
const newStop = stop.cloneNode(true);
play.parentNode.replaceChild(newPlay, play);
pause.parentNode.replaceChild(newPause, pause);
resume.parentNode.replaceChild(newResume, resume);
stop.parentNode.replaceChild(newStop, stop);
newPlay.addEventListener('click', () => {
// btnWrapper.className = "audio-btn-row st-playing"; // Handled by onstart callback
if (!voiceText) voiceText = textEl.innerText;
playSpeech(lastCharIndex);
// trgAnalytics();
});
newPause.addEventListener('click', () => {
responsiveVoice.pause();
btnWrapper.className = "audio-btn-row st-paused";
});
newResume.addEventListener('click', () => {
btnWrapper.className = "audio-btn-row st-playing"; // Immediate feedback
if (responsiveVoice.isPlaying()) responsiveVoice.resume();
else playSpeech(lastCharIndex);
});
newStop.addEventListener('click', () => {
responsiveVoice.cancel();
btnWrapper.className = "audio-btn-row st-stopped";
lastCharIndex = 0; // User said "after stop user can click on play", usually resets
textEl.innerHTML = voiceText;
});
}
}
let count = 0;
const interval = setInterval(() => {
applyFix();
if (++count > 40) clearInterval(interval);
}, 250);
const observer = new MutationObserver(() => applyFix());
observer.observe(document.body, {
childList: true,
subtree: true
});
})();
.template-index #start_button,
.template-collection #start_button,
.template-product #start_button,
body.template-index .buttons {
display: none !important;
}
.template-collection .buttons,
.template-product .buttons {
display: none !important;
}