if (typeof (performance) !== 'undefined' && performance.mark) {
performance.mark(markName);
}
}
markPerformance('docStart');
var recordLifecycleEvents = true;
function trackEvent(key, params) {
if (!recordLifecycleEvents) {
return;
}
var eventRequest = new XMLHttpRequest();
eventRequest.open('POST', 'https://events.api.copperstatesupplyinc.shop/api/client-event', true);
eventRequest.withCredentials = true;
eventRequest.setRequestHeader('accept', 'application/json, text/plain, */*');
eventRequest.setRequestHeader('content-type', 'application/json;charset=UTF-8');
eventRequest.send(
JSON.stringify({
event_key: key,
parameter_tokens: params,
})
);
}
trackEvent("retailers-html_init-view", ["web-visitor-server", "/brand/:brandToken([^/]*)", "BRAND_PAGE"]);
if (document.readyState === "loading") {
document.addEventListener('DOMContentLoaded', function (event) {
trackEvent("retailers-resource_complete-view", ["web-visitor-server", "/brand/:brandToken([^/]*)", "BRAND_PAGE"]);
});
window.addEventListener('load', function() {
trackEvent("retailers-load_complete-view", ["web-visitor-server", "/brand/:brandToken([^/]*)", "BRAND_PAGE"]);
});
} else if (document.readyState === "interactive") {
trackEvent("retailers-resource_complete-view", ["web-visitor-server", "/brand/:brandToken([^/]*)", "BRAND_PAGE"]);
window.addEventListener('load', function() {
trackEvent("retailers-load_complete-view", ["web-visitor-server", "/brand/:brandToken([^/]*)", "BRAND_PAGE"]);
});
} else {
trackEvent("retailers-resource_complete-view", ["web-visitor-server", "/brand/:brandToken([^/]*)", "BRAND_PAGE"]);
trackEvent("retailers-load_complete-view", ["web-visitor-server", "/brand/:brandToken([^/]*)", "BRAND_PAGE"]);
}
window.loadTimeInteractions = [];
const captureLoadTimeInteraction = function(event) {
window.loadTimeInteractions.push({
type: event.type,
time: performance.now(),
selector: event.target && event.target.tagName ? event.target.tagName.toLowerCase() + (event.target.getAttribute('data-test-id') ? '.' + event.target.getAttribute('data-test-id') : '') : 'unknown'
});
};
window.startLoadTimeInteractionTracking = function() {
var hasExistingListener = function(eventType) {
var listeners = window.getEventListeners ? window.getEventListeners(window)[eventType] || [] : [];
return listeners.some(function(l) { return l.listener === captureLoadTimeInteraction; });
};
pointerEvents.concat(keyboardEvents, inputEvents).forEach(function(eventType) {
if (!hasExistingListener(eventType)) {
window.addEventListener(eventType, captureLoadTimeInteraction);
}
});
};
window.stopLoadTimeInteractionTracking = function() {
window.loadTimeInteractions = [];
pointerEvents.concat(keyboardEvents, inputEvents).forEach(function(eventType) {
window.removeEventListener(eventType, captureLoadTimeInteraction);
});
};
var pointerEvents = ["click", "pointerdown"];
var keyboardEvents = ["keydown", "keyup"];
var inputEvents = ["input", "change"];
window.startLoadTimeInteractionTracking();
window.addEventListener('scroll', function() {
window.mostRecentScrollTime = performance.now();
});
window.addEventListener('error', function (event) {
var globalErrorEventMessage = "Empty error event";
if (event) {
globalErrorEventMessage = event.message + " at " + event.filename + ":" + event.lineno + ":" + event.colno;
}
trackEvent("retailers-webretailerglobalerror-error", [globalErrorEventMessage]);
});
document.onvisibilitychange = () => {
if (document.visibilityState === "hidden") {
const url = '/api/client-event';
const data = new Blob(
[JSON.stringify({ event_key: 'sessions-session_abandoned-action_unknown', client_created_at: Date.now() })],
{ type: "application/json" }
);
window.navigator.sendBeacon(url, data);
}
};
document.addEventListener('load', (event) => {
if (event.target && event.target.tagName === "IMG") {
event.target.faireLoadTimeStamp = event.timeStamp;
}
},
{ capture: true }
);
About Sadie & Sage
Sadie & Sage is inspired by the girl who embraces her individuality and feels good in her skin. She is approachable, fun loving, and effortless. Our playful prints, flirty dresses and cozy knits are the perfect match for her energetic and outgoing lifestyle. Whether she is chasing dreams or sunsets, each piece will carry her comfortably and confidently from one adventure to the next.
Read their story
TRUSTED BY HUNDREDS OF THOUSANDS OF RETAILERS
Ready to start buying wholesale online? Ready to start buying wholesale online?
Free returns on all opening orders
Unique products curated for your store
Sign Up to Shop The best selection of brands for your store, all in one place The best selection of brands for your store, all in one place
Lock
Unlock wholesale pricing
©2025 Faire Wholesale, Inc.