Skip to content

STORE by UtaTen — Internal Documentation

Japanese music/idol fan merchandise platform. Sells physical goods (CDs, DVDs, books, goods), digital products (downloads, serial codes), and online events for music artists. Features two purchase flows: standard cart checkout and lottery-based application.

System Overview

graph TB
    subgraph Users
        WEB["Fan / Customer\n(web, mobile)"]
        ADMIN_U["Store Admin\n(backend management)"]
    end

    subgraph App["STORE by UtaTen (Laravel 10 + Octane)"]
        WEB_SURFACE["Web Surface\nInertia + Vue3"]
        ADMIN_SURFACE["Admin Surface\nBlade + Inertia"]
        API_SURFACE["API Surface\n(thin, address lookup)"]
    end

    subgraph External
        SBPS["SBPS Payment\n6 methods"]
        ATONE["Atone BNPL"]
        CKC["Chekicha\nserial codes"]
        GMAPS["Google Maps"]
        ORICON["Oricon\nFTP reporting"]
        BILLBOARD["Billboard Japan\nFTP reporting"]
        MAIL["Mail provider"]
    end

    WEB --> WEB_SURFACE
    ADMIN_U --> ADMIN_SURFACE
    WEB_SURFACE --> API_SURFACE

    WEB_SURFACE --> SBPS
    WEB_SURFACE --> ATONE
    WEB_SURFACE --> CKC
    API_SURFACE --> GMAPS
    App --> ORICON
    App --> BILLBOARD
    App --> MAIL

Documentation Map

Document Contents
Architecture System topology, domains, hotspots, critical dependencies
Database Entity relationships, key tables, data patterns
API HTTP endpoints by surface (web, admin, API, webhooks)
Development Local setup, running the app, common tasks
Code Standards Conventions, patterns, rules enforced in this codebase
Troubleshooting Common failures and how to diagnose them

Flow Documentation

Detailed flow documentation in docs/flows/:

Flow Description
Authentication Multi-guard session auth, legacy password upgrade, guest identity
Payment SBPS + Atone payment paths, webhooks, order fulfilment
Events Event registry, dispatch points, sync vs queued listeners
Scheduled Tasks Product publish, lottery winner email, Oricon/Billboard FTP
External Integrations SBPS, Atone, Chekicha, Google Maps, Oricon, Billboard, Mail
Request Lifecycle Middleware pipeline, Octane considerations, delegation pattern
Validation Form Requests, custom Rules, DTO validation, purchase limits
File Handling Digital downloads, image uploads, serial code import, exports

Tech Stack

Layer Technology
Backend PHP 8.1, Laravel 10, Octane v2
Frontend Vue 3, Inertia.js v0 (Laravel adapter), Vite
Database MySQL
Cache / Queue Redis (predis)
File Storage AWS S3, SFTP (Oricon), FTP (Billboard)
Error Tracking Sentry
DTOs spatie/laravel-data v3
Excel/CSV maatwebsite/excel v3