29 lines
1.6 KiB
Markdown
29 lines
1.6 KiB
Markdown
# Paddle Catalog Sync Rollout
|
|
|
|
- [x] **Schema Prep**
|
|
- [x] Add migration for `paddle_sync_status`, `paddle_synced_at`, and `paddle_snapshot` JSON on `packages`.
|
|
- [x] Update `Package` model casts/fillable + ensure factory coverage.
|
|
- [ ] **Service Layer**
|
|
- [x] Scaffold `PaddleCatalogService` (product/price CRUD, custom data mapping).
|
|
- [ ] Add DTO helpers for Paddle product/price responses.
|
|
- [ ] Extend `PaddleClient` tests/mocks for catalog endpoints.
|
|
- [x] **Sync Logic**
|
|
- [x] Implement `SyncPackageToPaddle` job with create/update flows and metadata diffing.
|
|
- [x] Create `PaddlePackagePull` job for optional remote-to-local reconciliation.
|
|
- [x] Add `paddle:sync-packages` artisan command (`--dry-run`, `--package=`, `--pull`).
|
|
- [ ] **Admin UX**
|
|
- [x] Enhance Filament PackageResource with sync status badges + last sync timestamp.
|
|
- [ ] Add table/detail actions (“Sync to Paddle”, “Link existing Paddle entity”).
|
|
- [ ] Surface last error/log context in the admin sidebar panel.
|
|
- [ ] **Ops & Observability**
|
|
- [ ] Configure dedicated log channel/Slack hook for catalog sync outcomes.
|
|
- [ ] Document failure recovery playbook (retry, unlink, support escalation).
|
|
- [ ] **Testing & QA**
|
|
- [x] Unit tests for service + jobs using mocked Paddle API.
|
|
- [x] Feature test covering artisan command flow.
|
|
- [ ] Playwright smoke to confirm admin sync action displays status.
|
|
- [ ] **Rollout Checklist**
|
|
- [ ] Seed Paddle sandbox catalog via MCP server using migrated data.
|
|
- [ ] Verify legacy packages mapped to Paddle IDs before enabling auto-sync.
|
|
- [ ] Announce workflow change to admin users (release notes + docs update).
|