← back to Handbag Auth Nextjs
scripts/signupAllAffiliates.ts
78 lines
// Automated signup for all top affiliate programs
// Opens signup pages one by one, pre-fills forms, waits for manual review
import { openHandbagAffiliateSignup, merchantConfigs, profile } from "./handbagAffiliateSignup";
const TOP_AFFILIATES_TO_SIGNUP = [
"fashionphile",
"rebag",
"therealreal",
];
// Additional merchant configs for top luxury resellers
const ADDITIONAL_MERCHANTS = {
vestiaire: {
signupUrl: "https://www.vestiairecollective.com/sell/",
selectors: {
email: 'input[type="email"]',
submitButton: 'button[type="submit"]',
},
},
yoogis: {
signupUrl: "https://www.yoogiscloset.com/sell-designer-handbags",
selectors: {
name: 'input[name="name"]',
email: 'input[name="email"]',
submitButton: 'button.submit',
},
},
};
async function signupAll() {
console.log("=== Automated Affiliate Signup ===\n");
console.log("Business: " + profile.company);
console.log("Email: " + profile.email);
console.log("Website: " + profile.websites[0]);
console.log("\nSigning up for top affiliate programs...\n");
for (const merchant of TOP_AFFILIATES_TO_SIGNUP) {
console.log(`\n--- ${merchant.toUpperCase()} ---`);
const config = merchantConfigs[merchant];
if (!config) {
console.log(`No config found for ${merchant}, skipping...`);
continue;
}
try {
await openHandbagAffiliateSignup(config);
console.log("\nPress ENTER when you're done reviewing and submitting this form...");
await new Promise((resolve) => {
process.stdin.once("data", resolve);
});
} catch (error) {
console.error(`Error with ${merchant}:`, error);
console.log("Continuing to next merchant...");
}
}
console.log("\n=== All Signups Complete ===");
console.log("Next steps:");
console.log("1. Wait for affiliate approval emails");
console.log("2. Save your affiliate codes/links");
console.log("3. Update data/handbag_affiliates.json with codes");
process.exit(0);
}
const isMainModule = import.meta.url === `file://${process.argv[1]}`;
if (isMainModule) {
signupAll().catch((err) => {
console.error("Signup failed:", err);
process.exit(1);
});
}
export { signupAll };