Changelog — FashionFlow
All notable changes to this app are recorded here. Newest entries on top.
[2026-06-27]
- Affiliate payouts are now counted as a business expense in the P&L. Whenever you pay an affiliate — either automatically via the Pay button or manually by marking commissions as paid — that money is automatically added to your reports as an expense under a new "Affiliate payouts" line. Your Net profit and profit margin now reflect what the referral program actually costs to run, no manual bookkeeping needed.
- Mark commissions as paid manually. In Affiliates → Commissions you can now flip an approved commission to Paid when you settle the affiliate offline (bank transfer, cash, etc.) — per row, or by ticking the checkboxes and using the Mark paid header button for bulk. Each settlement records a manual entry under Payout history so the books stay balanced.
- Login as affiliate. Open an affiliate in the management drawer — a new Login as affiliate button opens that affiliate's dashboard in a new tab as if you were signed in as them. A purple "Viewing as …" banner with a Stop button rides the top of the impersonated tab; your admin session stays untouched. Sits next to a View landing button for previewing their branded referral page.
- PIN is visible in the affiliate drawer. Phone and the affiliate's sign-in PIN now both show in the management drawer so you can re-share them with the affiliate when they ask. Existing affiliates from before today won't have their PIN displayed (it wasn't kept on record); new signups going forward will.
[2026-06-26]
- Affiliate referrals now wear the affiliate's brand. When a customer clicks an affiliate's referral link, the customer signup page and the sign-in (tracking) page now show the affiliate's business name and logo instead of the studio's — so the customer signs up under the affiliate's identity. Standard white-label pattern. Falls back to the studio's brand if the affiliate doesn't have one set.
- Business logo upload. Open Settings → Business Info → upload a logo (PNG with a transparent background works best; 500 KB cap). The logo replaces the generic scissors icon on the customer signup page, the customer tracking page, and the AffiliatesTrack landing/portal. Stored as a base64 image inside settings.
[2026-06-25]
- Affiliate program. Invite people to refer customers and they earn a commission. Settings → Affiliate program → Set up & manage affiliates opens the full programme: add affiliates with their phone (they sign in with a PIN), set commissions, generate a personal sharing link, see clicks/conversions, pay them out via Stripe or Paystack. When someone signs up through an affiliate's link, their customer profile and any order they place show a clickable **"Referred by Name" tag — click it to jump straight to the affiliate's page. Commission credits land only when an order becomes fully paid**, never on part-payments, so no double-counting. Two commission modes: recurring (every settled order credits the affiliate) or one-time (first settled order only). Self-referrals are auto-blocked. Requires the platform Premium plan.
- Edit a customer's location tag from the profile. When the studio has more than one branch, opening Edit Customer now exposes a "Registered at (location tag)" dropdown so the admin can move a customer between branches without re-entering them. Single-branch studios don't see the field — there's nothing to choose.
[2026-06-16]
- Locations are now a tag, not a switch. The location chip at the top of the screen is gone — there's nothing to switch into. Locations now act as tags: every order, customer and expense is stamped with the branch it was recorded at, and that stamp shows up wherever it matters (a "Registered at Main Studio" line on the customer profile; a small map-pin chip on order detail and on order rows when you have more than one branch). To add or rename branches, open Settings → Locations.
- Reports now separate "money earned" from "money received." When a January order finally got paid in March, the old reports made March look like a great month and January look weak — even though the work was done in January. Reports now show both numbers at the top, side-by-side: Money earned (everything billed for work done this period, regardless of when the customer pays) and Money received (cash that actually arrived this period). The Profit & Loss panel uses Money earned as its headline so "Net profit" reflects work done this period; the cash-received figure sits in a small sub-line below it. The Daily Sales chart is now "Money earned per day" — bars are what was billed each day, so a single late-paying customer can't distort the picture.
- "Still owed from this period" card with a one-tap drill-down. A new card on the Reports header shows exactly how much of what you billed this period is still unpaid. Tap it and a sheet slides up with three plain-English age buckets — Less than a week old, Between 1 and 4 weeks, More than a month overdue — followed by every order that hasn't been fully paid yet, oldest first, with customer name, days waiting, and the outstanding balance. Tap a row to jump to the order detail.
- "Items in" volume card. New volume metric next to the Orders + Customers counts: total items received in the period (sum of order item quantities, non-cancelled). Paired with average-order-value under the Orders card so you see both money and volume at the same time.
[2026-05-23]
- Import customers from your phone in one tap. The Customers page + button now opens a small menu: tap Import from phone and your phone's native contact picker opens. Pick one or many — FashionFlow shows them in a quick confirmation list (names + numbers, all pre-checked) where you can uncheck anyone you don't want and fix names/numbers before saving. Tap Add N customers and they all land in your list at once. Skips anyone already in your customer list (matched by phone) and flags contacts without a valid number, with a clear toast summary like "Added 7 · 3 already in your list · 1 had no valid phone." Available on Chrome/Edge on Android (covers most owners and staff). iPhone and desktop users see only the "Add manually" option and use the existing form.
- Phone numbers are now standardised on save. Whether you type
0801 234 5678, +2348012345678, or (080) 1234567, FashionFlow now stores the same E.164 phone every time — so the same person can no longer end up as two rows in your customer list just because someone typed their number differently. Existing rows are not touched; this only affects new customers added from today onwards.
[2026-05-29]
- First release of FashionFlow. Run your whole fashion or tailoring studio from one app.
- Orders from fabric to fitting. Record material and sewing charges on the same order and track every outfit through Fabric Received → Sewing → Ready for Fitting → Out for Delivery → Collected.
- Ready-made shop. List outfits you sell off the rack, track stock, and add them to any order right alongside a tailoring job. Stock drops automatically on each sale and comes back if an order is cancelled.
- Get paid online. Customers can pay deposits and balances by card from their invoice link or their account — PayStack for Naira, Stripe for US Dollar. Cash, transfer, and POS are still one tap away.
- Customer self-service. Customers look up their orders by phone, sign in with a PIN, see what they owe, and pay — all from their phone.
- More than one studio. Run several locations, each with its own price list, staff, and customers.
- Know your numbers. Track expenses (rent, thread, fabric, salaries, machine repairs) and see your real weekly profit, plus reports for top styles, top customers, and daily sales — with tailoring and ready-made sales shown separately.
- Automatic updates. Text or push a customer when their outfit is ready, and share a clean invoice on WhatsApp in one tap.
- Seeded with a Nigerian fashion-studio demo (Agbada, Kaftan, Senator, gowns, aso-ebi, fabrics by the yard, and ready-made pieces) so you can see exactly how it works before adding your own.
Internal
- Built on the DryCleanPro chassis (orders, multi-location entities, app-side staff + customer phone/PIN auth, expenses + P&L, notifications, attachments, audit log).
- Online customer payments grafted from InvoiceTrack (
lib/payments.php + Paystack/Stripe initiate/verify endpoints in api/portal.php); deposits + balances only (no tips, saved-card auto-charge, or thank-you emails in this release). Order-balance math includes the delivery fee.
- New merchandise module:
products + inventory_movements tables, api/merchandise.php, views/merchandise.php; merchandise sells as order_items rows with line_type='merchandise' and a product_id.
- Added full marketing + in-app tutorials: 13 help articles in
marketing/articles/ wired through app.json tutorial_videos (article-only), Promote-tab social copy (Email/Instagram/Twitter/Facebook/WhatsApp/SMS), a shareable proposal.md, app-overview.md, and 3 reference screenshot mockups. Marked the app ready for the marketplace.