Make.com Automation Build -- Print on Demand Bar Merch Platform (Cohstr)
Worldwide
Summary This is a full end-to-end build (two Make.com scenarios, product setup, domain/email/payments config, an admin dashboard, and testing). All business decisions below are pre-made — you should not need to ask me anything except to grant login/2FA access. Please send a fixed quote and timeline for the complete scope. Cohstr is a bar merch platform. Bars sign up, receive custom QR code coasters, and their customers scan to shop branded merchandise (hats, tees, sweatshirts) shipped direct to the customer. Everything is automated -- from signup to store creation to coaster order to monthly payouts. All accounts are already created and ready. I will be available throughout for login codes, 2FA, and approvals. ACCOUNTS ALREADY CREATED Make.com, Printify, Templated.io, Tally.so, Resend, Stripe, Netlify, Namecheap (cohstr.com), Google (for the admin Sheet). KEY BUSINESS RULES (pre-decided -- build to these exactly) Revenue split: 30% to bar, 70% to Cohstr, calculated on margin AFTER fulfillment cost AND shipping cost. Shipping: FREE to the customer, baked into the retail price. Shipping cost is deducted along with fulfillment cost before the 30/70 split. Refunds: split calculated only on FULFILLED, non-refunded orders. If a customer refunds after the bar was already paid, deduct that bar's 30% of the refund from their NEXT payout. Held earnings: if a bar hasn't connected Stripe by payout day, hold and roll their earnings over month to month; pay the full balance once they connect. Payout idempotency: a re-run for the same month must NEVER double-pay a bar. No real charges during the build: use test/sandbox mode for anything involving money or live orders until I confirm go-live. TASK 1 -- Netlify + Domain Deploy the provided landing page and storefront HTML files to Netlify. Point cohstr.com from Namecheap to Netlify. Confirm HTTPS is active and both load correctly. TASK 2 -- Resend Domain Verification Add cohstr.com as a verified sending domain in Resend. Add all required DNS records (SPF, DKIM, DMARC) in Namecheap so email lands in the primary inbox. TASK 3 -- Stripe Connect Setup Enable Connect (Standard accounts). Confirm my Mercury business bank account is connected for receiving revenue. Generate the OAuth onboarding link bars use to connect their accounts. Set the card statement descriptor to "COHSTR." TASK 4 -- Tally Signup Form Build the form with exactly these fields: bar name, owner name, email, city, logo upload (PNG and SVG only; helper text "PNG or SVG file, 800px wide or larger works best"), coaster pack selection (Starter 50 coasters $49 / Standard 100 coasters $89 / Pro 200 coasters $149), shipping address. Add a REQUIRED legal checkbox before submission: "I have read and agree to the Cohstr Partner Terms, and I confirm I own or have the rights to use the logo and brand assets I am uploading." Connect to Make.com via webhook. TASK 5 -- Templated.io Coaster Template Build the coaster template from the provided reference PDF. Two dynamic fields only: bar_name (text) and qr_code_image (image). All else static. Save the Template ID. TASK 6 -- Printify Product Setup Build 6 products, every one LOCKED to Monster Digital (no auto-routing): Snapback Hat $32, Dad Hat $28, Classic Tee (Bella+Canvas 3001) $30, Fitted Tee (Bella+Canvas 6004) $30, Pullover Hoodie (Bella+Canvas 3719) $52, Crew Sweatshirt (Independent Trading SS3000) $48. Logo front-center on apparel, front panel on hats. Record blueprint_id and variant_ids. Configure retail prices to include shipping (free shipping to customer). TASK 7 -- Make.com Scenario A: New Bar Signup Webhook trigger from Tally. Step 1 -- receive form data. Step 2 -- duplicate check: look up bar by name+email in the Data Store; if it exists, stop and alert me rather than creating a second shop. Step 3 -- logo dimension check. Tally does not expose image dimensions natively, so route the logo URL through an image-metadata step to read true width. Router: 800px+ continues; under 800px sends the re-upload email via Resend and stops. Re-upload email: "Hey [name], your logo file needs to be slightly larger for the best print quality on your gear. The easiest fix is grabbing the version from your website, Facebook page, or whoever made your sign. Just reply with the updated file and we'll get everything set up right away." Step 4 -- create a new Printify shop for the bar, add all 6 products with logo applied, pull mockup URLs. If creation fails partway, flag the bar and alert me rather than leaving a half-built store. Step 5 -- generate a QR code using a free QR code generation API, pointing to the Printify store URL. Step 6 -- POST to Templated.io with Template ID, bar_name, qr_code_image. Poll until export is CONFIRMED complete before proceeding. Step 7 -- 90 second delay for Printify mockups to finish generating. Step 8 -- welcome email via Resend with mockup images, store link, and Stripe Connect OAuth link. Step 9 -- notification email to me: bar name, city, pack ordered, store URL, signup date. Step 10 -- write a new record to the Data Store AND the admin Google Sheet. TASK 8 -- Make.com Scenario B: Monthly Payouts Scheduled: 1st of every month, 9am Mountain Time. Step 1 -- for each active bar, fetch prior-month Printify orders, INCLUDING ONLY fulfilled, non-refunded orders (exclude pending, cancelled, refunded). Step 2 -- calculate earnings: 30% of margin after fulfillment AND shipping cost. Subtract any owed refund clawback from a prior month. Step 3 -- idempotency guard: if this bar was already paid for this month, skip. Never double-pay on a re-run. Step 4 -- Stripe check: if not connected, skip transfer, add earnings to rolling held balance, flag it, send "connect your account to get paid" email. If connected, transfer current earnings PLUS any rolled-over balance. Step 5 -- per-bar error isolation: one failed payout must not halt the run; log, flag, continue. Step 6 -- if a bar had $0 sales, skip silently (no $0 transfer, no email). Step 7 -- email each paid bar their summary; send me a consolidated report (paid, held+why, clawbacks, errors). Step 8 -- update Data Store and admin Google Sheet. TASK 9 -- Data Store + Admin Google Sheet Data Store fields: bar_name, owner_name, owner_email, city, coaster_pack, logo_url, printify_shop_id, printify_store_url, stripe_account_id, stripe_connected (Y/N), signup_date, status (active/cancelled), legal_agreement, held_balance, last_payout_date, last_payout_amount. Also build a live Google Sheet mirroring the Data Store with columns: bar name, owner name, email, city, signup date, status, coaster pack, Printify store URL, Stripe connected (Y/N), current-month sales, current-month bar earnings, lifetime sales, lifetime earnings, held/unpaid balance, last payout date, last payout amount. Both scenarios keep it current. TASK 10 -- Bar Cancellation Path When status is set to "cancelled": deactivate storefront, stop the QR from resolving to an active store, place no further coaster orders -- but still pay out accrued/held earnings on the next run. Reflect in Data Store and Sheet. TASK 11 -- Legal / Compliance (text provided) Publish provided Terms and Privacy Policy as live pages (cohstr.com/terms, cohstr.com/privacy) with footer links on the landing page and every storefront page. Storefront checkout: required checkbox "I agree to the Terms of Service and Return Policy" before purchase; return policy one click away at checkout. Store the signup legal checkbox in the Data Store. TASK 12 -- End-to-End Test Full test signup via Tally with a real PNG logo I provide. Verify: legal checkbox enforced; too-small-logo rejection fires; duplicate check works; Printify store built with logo; QR resolves correctly; coaster renders with name + QR; welcome email with mockups/links; my notification; Data Store + Sheet records; Terms/Privacy live; checkout checkbox enforced. Sandbox-test Scenario B: split math after fulfillment+shipping, refund/pending excluded, idempotency, unconnected-bar hold+rollover, $0 skip, per-bar error isolation. Fix and retest until clean. OUT OF SCOPE (do not build) Sales tax collection/remittance (handled at Printify/accounting level). Coaster reorder flow (future phase). DELIVERABLES Everything above live and verified; both scenarios tested; Data Store + admin Google Sheet working; legal pages and checkboxes live; a short Loom walkthrough; and a one-page handoff sheet documenting all IDs, the webhook URL, the OAuth link, and Printify blueprint/variant IDs. WHAT I WILL PROVIDE Secure account access with real-time 2FA support; landing page + storefront HTML; coaster design PDF; Terms/Privacy/Partner Terms text; a test logo PNG; prompt answers and approvals during the session. GROUND RULES Do not change primary passwords, recovery emails, or 2FA settings. Do not store credentials outside the agreed method. Do not trigger any real charge or coaster order during testing. Flag anything ambiguous rather than guessing, especially on payout logic and legal checkboxes.
$300.00
Fixed-price- ExpertExperience Level
- Remote Job
- Ongoing projectProject Type
Skills and Expertise
Activity on this job
- Proposals:20 to 50
- Last viewed by client:4 days ago
- Interviewing:2
- Invites sent:0
- Unanswered invites:0
About the client
- United StatesAustin9:35 PM
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by