scandiweb
scandiweb industry solution

School photography commerce

A production-ready commerce platform for school photography businesses. Already built. Already peak-tested. Configure it to your catalog, schools, and stack – you don’t rebuild it from scratch.

14 weeks kickoff to live – not 14 months. Covers student data, parent commerce, school portal, batch exports, ID cards, dual SSO, and legacy integration.

scroll to discover
Trusted by 700+ leading brands worldwide
PUMAOM Digital Solutions / OlympusBoy Scouts of AmericaThe New York TimesSamsungAcerAdobe

Come to us. The platform is already built

A complete commerce platform – production code, proven architecture, battle-tested at peak. You configure it against your catalog, schools, and integration stack. You don’t spend 18 months discovering what school photography actually needs.

Six modules that ship together

  • 1
    Self-service school portal
  • 2
    Unified student data model
  • 3
    Automated batch exports
  • 4
    ID card & admin services
  • 5
    Dual SSO + audit
  • 6
    Legacy integration layer

What you get on day one

Live in
14 weeks · kickoff to production
Connects to
REST · GraphQL · SOAP · webhooks · Kafka · SFTP · EDI
Sign-in
SAML · OIDC · SAML federation · IP allowlist
Peak season
Battle-tested through a full peak
Data residency
Region-pinned per deployment
You keep
Runbooks · architecture docs · admin training

Live in 14 weeks. Configured to your business, not built from scratch.

Start the accelerator

Three problems common to school photography commerce

Hundreds of schools. Tens of thousands of students. A hard seasonal peak. A stack that has been patched for a decade. Any mid-market business will recognise all three.

Problem · 1

A legacy stack nobody wants to touch

Five or more systems, no unified data model. An ageing platform, an image DB, a CRM, a fulfilment tool. Downtime risk compounds every year.

Problem · 2

Student data scattered

Names as single text strings. SIC codes tied to images, not students. Sibling relationships and school transfers nowhere in the schema.

Problem · 3

Hard seasonal peak

Photography season collides with yearbooks, ID cards, and parent orders. A manual stack breaks at peak. Support queue explodes.

We had 40 people doing what should take 25. Burning cash from all of these client service officers.
David van Gelder · Operations · Advanced Life

The parent, student, and school are three separate entities. So is the architecture

Every feature in this stack flows from one modeling decision. Treat the parent, each student, and each school as distinct, linked entities. Generic platforms get this wrong. It is what makes every downstream feature work.

1

Multi-child account

parents

One parent manages many students across many schools. Each student has their own grade, school, and personalisation. The student switcher drives cart, catalog, and context.

2

School-gated catalog

products

Products scoped to schools, campuses, and grades. Parents only see what the selected student is authorised for. Guests see limited views with prices hidden.

3

Operational integration layer

adapters

Real-time bidirectional sync with the ERP. Fallback cron jobs, retry logic, and audit logs built in from day one.

parents1 : MANYPKiduuidemailtextphonetextcreated_attsstudentsPIVOTPKiduuidFKparent_idparentsFKschool_idschoolsgradeintFKsibling_ofstudentssictextschools1 : MANYPKiduuidnametextsic_codestext[]regiontext1 : N1 : Nself

Six operational problems. Gone.

Each module is live in production. No prototypes, no roadmap, no whiteboard architecture. Configure against your catalog, your schools, your stack.

6
Outcomes
14
Weeks to live
0
Peak incidents
OUTCOME · 1Self-service school portal

Schools stop calling your team

Schools upload rosters, correct data, and download their images themselves. Role-based access per school, per user type. Every action audit-logged.

  • Support queue stops growing term on term
  • Region-aware IP allowlist per deployment
  • Escalations remain possible, but rare
SUPPORT LOAD · TICKETS / WEEKBEFOREclimbingAFTER−95%T0T+1 moT+2 moT+3 moT+4 moT+6 mo
OUTCOME · 2Batch export engine

Your weekly export stops being a job

Ten export formats, dynamic naming rules per school, running on a CRON schedule. Manual re-runs are one click from the portal.

  • CRON-scheduled off-peak, no human in the loop
  • SchoolCode-StudentID-Grade-Year.jpg per school
  • Every export audit-logged – who, what, when, where
CRON · 03:00 · OFF-PEAKMON03:00 · autoTUE03:00 · autoWED03:00 · autoTHU03:00 · autoFRI03:00 · autoSAT03:00 · autoSUN03:00 · auto
OUTCOME · 3Student data model

Five systems collapse into one clean graph

SCHOOL → STUDENT → ASSET → PARENT → ORDER, normalized from day one. Sibling relationships, co-parenting, returning-student flags are first-class.

  • One source of truth replaces five disconnected databases
  • SIC codes attached to students, not images
  • Audit-logged end to end, every field, every change
BEFORE · 5 LEGACY SYSTEMSGlobalJade.mdbImageDB.sqlThe HubapiCRMxmleWaycsvNORMALIZATION LANEpimcore · mdmSIC → student_fkdedupe · sibling_ofaudit log · every rowSCHOOL → STUDENT → ASSETAFTER · ONE CLEAN GRAPH1 : N1 : NN : 11 : NN : 1SCHOOLSTUDENTPARENTASSETORDER
OUTCOME · 4ID card & admin services

No more CSV email chains

Order, preview, and export ID cards with a full audit trail. Reorders and replacements handled in-platform. No manual handoffs, no wrong versions.

  • Static JPG preview per card before order lock
  • CSV export for downstream print pipelines
  • Reorder flow for lost cards, name changes, grade transitions
BEFORE · CSV EMAIL CHAINRE: RE: cards-v4.csv3 threads · 12 repliesRE: RE: cards-v3.csvmerge conflictsRE: RE: cards-v2.csvwhich version is final?↯ 14 THREADS · 52 REPLIESAFTER · IN-PLATFORM BUILDERLINCOLN HIGH2026 / GRADE 10Aidan ParkStudent ID · 4452981HOUSEWellingtonFORM10-CSICL-0442-10-CEXPIRES12 / 2026v1 · LOCKEDPreview1,420 cardsLockv1 finalExportCSV · printAuditevery action
OUTCOME · 5Dual SSO + audit

Compliance by design, not by memory

AWS Cognito for school admins. Microsoft Entra ID for internal staff. Google OAuth for parent commerce. Every login, every action, audit-logged at the system level.

  • Role-based access, scoped per user pool
  • SAML or OIDC supported for downstream federation
  • Admin panel on VPN, school portal IP-allowlisted
IDENTITY PROVIDERSAWAWS CognitoSAML · JWTSchool adminsMSMicrosoft Entra IDOIDC · SAMLInternal staffGOGoogle OAuth 2.0OIDCParents · commerceAUDIT · SYSTEM LEVELevery login · every actionLOG · LIVETIMEEVENT09:42:11school.adminloginOK09:42:58student.edit114 rowsOK09:44:03export.startgrade-5OK09:47:18order.create#3104OK09:49:45parent.loginoauthOK09:52:02export.done4.2 MBOKLIVE
OUTCOME · 6Legacy integration layer

Modernize without ripping out what works

A middleware API connects new systems to your existing stack. File servers, databases, SIS, ERP, print pipelines. Legacy stays live throughout delivery.

  • REST, GraphQL, SOAP, webhooks, Kafka/SQS, SFTP/CSV, EDI
  • Adapter pattern extends to SAP, Navision, Odoo, NetSuite
  • Reference: 5 legacy systems live · 0 decommissioned mid-project
LEGACY · STAYS LIVEGlobalJadeImageDBThe HubCRMeWayMIDDLEWAREADAPTER · .NETRESTGraphQLSOAPwebhooksKafka/SQSSFTPEDINEW · PRODUCTIONData modelCommercePortalBatch EngineID Builder

Cut a year off your roadmap. Start with the workflow costing you the most.

Start the accelerator

Advanced Life. Australia

National school photography company. Hundreds of schools. Tens of thousands of students. Hard Q1 peak. Strict student data residency. Five legacy systems that nobody had touched in five years.

Problem · 1

Five legacy systems. No unified data

GlobalJade, ImageDatabase, The Hub, CRM, eWay. Downtime risk compounding every year.

Problem · 2

500 GB of portraits on a physical server

On-prem file storage. Backups by hand. One hard drive away from a national incident.

Problem · 3

Legacy database, five years untouched

Student names as single text strings. SIC codes tied to images. Structural debt blocking every change.

44,891
students on MDM · day one
14 wk
kickoff → MVP in production
0
peak-season incidents · Q1 2025
5 / 0
legacy integrated / decommissioned mid-project

These modules sit on top of your existing commerce platform. Not instead of it. You keep everything commerce already does well. You get the parts that school photography needs to operate.

You don’t pay us to learn school photography

The vertical knowledge is already built in – SIC codes, sibling relationships, portal workflows, peak-season behaviour. You get the proven build, configured to your operation.

WITHOUT ACCELERATORavg 15 mo
  • Agency learns what SIC codes are on your budget
  • Data model built from first principles, school-photography structure discovered late
  • Batch engine edge cases discovered in your environment, during peak season
  • Portal architecture figured out during the build
  • Integration patterns invented per legacy system
WITH ACCELERATOR14 wk
  • Vertical knowledge built in – SIC codes, siblings, portal workflows
  • Production data model designed for school photography from day one
  • Batch engine tested through a live peak season · zero incidents
  • Portal adapted from live production code, not a whiteboard
  • Integration adapters proven across 5 legacy systems, extends to SAP, Navision, NetSuite, Odoo

Six modules in production from day one – saving you a year of build time.

Start the accelerator

The client, in their own words

Two voices from the reference launch, pulled from weekly syncs over the engagement.

It looks great. Really slick.
Jon Mann
COO · reference client
Money coming in. No phone calls. Smooth sailing.
David van Gelder
Operations · reference client

Start with the one workflow that costs you the most

12–4 WEEKS

Diagnostic sprint

We map your data, systems, exports, roles. Identify the single highest-cost workflow. You get a phased plan, including where the accelerator does not apply.

26–12 WEEKS

Pilot module

One contained module live in production – portal, batch engine, or ID cards. No big-bang risk. Measurable result by the end of the pilot.

3PHASED

Scaled rollout

Extend across regions, brands, or adjacent workflows. Each phase funded by what the previous proved. Legacy stays live throughout.

Not just the platform. Everything to run it

The engagement hands over the artifacts your team needs to own the stack after launch. No black box, no vendor lock-in, no post-launch silence.

  1. 1

    Migration plan

    Scripted cutover from your legacy systems. Dry-run tested. Zero-downtime fallback.

  2. 2

    Architecture documentation

    System diagram, data model, integration adapters, auth flows. Versioned with the code.

  3. 3

    Runbooks

    Peak-season ops, recovery procedures, known-issue registry. Written for your on-call team.

  4. 4

    Admin training

    Three-session handover covering portal, exports, ID cards, SSO, and audit access.

  5. 5

    30-day post-launch

    Joint on-call with your team through the first peak window. Fix-forward, not hand-off-and-disappear.

Code, docs, training, post-launch on-call. The whole package.

Start the accelerator

The questions that actually come up

Do we have to use Pimcore?
No. The accelerator is a proven architecture pattern, not one stack. Reference deployment uses Pimcore for the data and portal layer, Magento 2 + Hyvä for parent commerce, .NET middleware for integration. We assess your stack in the diagnostic sprint and recommend what fits.
We already have a school portal. Does that disqualify us?
No. Many engagements start with one specific capability – batch exports, ID card flows, access controls – not a full replacement. The diagnostic sprint identifies the highest-cost workflow. We fix that first.
What does a fourteen-week launch actually cover?
Student data model redesigned from the ground up. Dual SSO wired. Batch engine with 10 export formats. ID card workflow live. Five legacy systems integrated via middleware API. Admin on VPN, portal IP-restricted. Full audit logging. 500GB images migrated off an on-prem server. Live before peak season.
Our legacy systems are fragile. Can we modernize without touching them?
Yes. That is exactly the point of the middleware integration layer. New systems talk to legacy through an adapter API. No direct database access, no cutover risk. The reference engagement kept all five legacy systems live during delivery.
What if our ERP is SAP, Navision, or something else?
The adapter pattern extends naturally. Five production adapters today; SAP B1, MS Dynamics, Odoo, NetSuite, and in-house systems have been scoped. Protocol mix per integration – REST, GraphQL, SOAP, webhooks, Kafka/SQS, SFTP/CSV, EDI.
We are not in Australia. Does this apply to our market?
Yes. Australia was the reference. Core problems are consistent across the US, UK, Canada, New Zealand. Privacy and residency differ by region and are built per engagement.
Who owns the code after launch?
You do. Full repository and documentation handed over at launch. No lock-in. Ongoing support happens on request.
Can we see a live demo before committing?
Yes. We walk through the modules in a sandbox during the consultation. Book below.

See if the accelerator fits your business

Thirty minutes. We map your stack, find your highest-friction workflow, and tell you whether the accelerator fits. If it does not, we will say so.

“You don’t pay us to learn school photography. We already did. Configure the proven stack in 14 weeks, not 18 months.”
Kristaps Gailitis
Kristaps Gailitis
CMO · scandiweb
  • Response within one business day
  • 30 minutes · fit assessment, no sales pitch
  • Full reference case study on request
  • If we are not the right fit, we will tell you

We respond within one business day.