Overtired & Cranky™ Shampoo & Bodywash
Overtired & Cranky™ Shampoo & Bodywash
Overtired & Cranky™ Shampoo & Bodywash
Overtired & Cranky™ Shampoo & Bodywash
Overtired & Cranky™ Shampoo & Bodywash
Overtired & Cranky™ Shampoo & Bodywash
Overtired & Cranky™ Shampoo & Bodywash
Overtired & Cranky™ Shampoo & Bodywash
Overtired & Cranky™ Shampoo & Bodywash
Overtired & Cranky™ Shampoo & Bodywash

Overtired & Cranky™ Shampoo & Bodywash

Price

$0.00 $11.99
Save $-11.99
Free shipping

size

Please select a size

Quantity

Free worldwide shipping
Free returns
Sustainably made
Secure payments

Help soothe cranky and overtired babies (and adults!) with our tranquil blend of chamomile and tangerine essential oils.

Our long-lasting wash is a gentle 100% plant-based option for the whole family and is ideal for those with sensitive skin, chemical sensitivities, or allergy concerns. Its cleansing power comes from certified organic, sustainably harvested soap bark and plant-based glucosides, which clean without irritating or drying the skin.

Meanwhile, certified organic calendula and aloe vera further soothe and moisturize the skin. Our light scents are made from 100% pure essential oils and zero of the unknown and unlisted chemicals found in synthetic fragrances.

This new Shampoo & Bodywash formula features our exclusive, 100% plant-based preservative system that we created after 6 years of research and development. This first-of-its-kind preservative system includes isolates of basil and anise (not essential oils) and is exclusive to California Baby products! Learn more here.

Save 15% by purchasing a half-gallon! (compared to 8.5oz price per oz)

Tested & Certified! Our new Shampoo & Bodywash formulations have achieved 100% bio-based USDA certification. This means every ingredient in our Shampoos & Bodywashes (excluding water) is plant-based!  No petrochemical synthetics!

Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.