yeuimu
|
bbd925070a
|
部署h5
|
2026-08-28 15:23:54 +08:00 |
|
yeuimu
|
f5a3b8c840
|
merge: bring in public media/variant dedup from origin/develop (local only)
|
2026-08-28 15:15:17 +08:00 |
|
yeuimu
|
6395d9e6ab
|
feat(product-family): family-derived tags replace manual logistics/craft tagging
|
2026-08-28 14:57:26 +08:00 |
|
yeuimu
|
eedfbb344e
|
feat(product-family): auto-derive logistics/craft tags from family members
|
2026-08-28 14:57:25 +08:00 |
|
yeuimu
|
a13931c84c
|
revert(admin): keep original admin layout with family replacing primary/secondary sources
|
2026-08-28 14:35:34 +08:00 |
|
yeuimu
|
353e51e871
|
revert(admin): restore original layout, replace primary/secondary source UI with family members
|
2026-08-28 14:35:34 +08:00 |
|
yeuimu
|
7b17fff86f
|
fix(admin): fail loudly when dev port 5173 is occupied
|
2026-08-28 14:21:37 +08:00 |
|
yeuimu
|
f919577ddd
|
feat(product-family): goods view family integration, family-based public variant union
|
2026-08-28 14:14:59 +08:00 |
|
yeuimu
|
4eadb67c36
|
feat(product-family): replace legacy good merge with family mechanism in config view and public detail
|
2026-08-28 14:14:58 +08:00 |
|
yeuimu
|
14c53504f0
|
feat(product-family): public detail family block and good family derivation
|
2026-08-28 13:40:19 +08:00 |
|
yeuimu
|
6418aa7302
|
feat(api): public good detail family block behind gray-release flag
|
2026-08-28 13:40:19 +08:00 |
|
yeuimu
|
b4b9fbbe60
|
feat(api): good family_id column with backfill
|
2026-08-28 13:34:42 +08:00 |
|
yeuimu
|
ba3c6d2d4f
|
feat(admin): product family management tab, price override matrix and family grouping
|
2026-08-28 13:30:38 +08:00 |
|
yeuimu
|
d70a03f6fa
|
docs: admin product family references
|
2026-08-28 13:30:37 +08:00 |
|
yeuimu
|
fd7ca5d53f
|
feat(admin): goods view family badges and sibling matching
|
2026-08-28 13:29:54 +08:00 |
|
yeuimu
|
07f3134f79
|
feat(admin): product family management tab
|
2026-08-28 13:28:37 +08:00 |
|
yeuimu
|
dcd2b235b9
|
feat(admin): family match util
|
2026-08-28 13:25:31 +08:00 |
|
yeuimu
|
c492469d70
|
feat(admin): product families api client and types
|
2026-08-28 13:25:10 +08:00 |
|
yeuimu
|
8fad8de73e
|
docs(agents): add lessons for db drift resolution and shared-db test isolation
|
2026-08-28 12:53:10 +08:00 |
|
yeuimu
|
e49eebcedd
|
fix(product-family): tolerant auto-group member attach
|
2026-08-28 12:52:22 +08:00 |
|
yeuimu
|
ab450c350e
|
fix(api): tolerant member attach in auto-group under concurrent cleanup
|
2026-08-28 12:52:22 +08:00 |
|
yeuimu
|
f7c4252a91
|
feat(product-family): merge SPU family layer phase-1 backend
|
2026-08-28 12:50:49 +08:00 |
|
yeuimu
|
502b7eba6e
|
docs: update references for product families; fix controller import and test isolation
|
2026-08-28 12:50:42 +08:00 |
|
yeuimu
|
c8531bfe08
|
feat(api): category-based family grouping, tree family info and custom goods family attribution
|
2026-08-28 12:43:58 +08:00 |
|
yeuimu
|
d63f1a6f35
|
feat(api): product families backfill script
|
2026-08-28 12:36:39 +08:00 |
|
yeuimu
|
d20a933e34
|
feat(api): sync hooks for parsing, auto-attach and family recompute
|
2026-08-28 12:33:33 +08:00 |
|
yeuimu
|
f68898dea4
|
feat(api): product families module with CRUD, auto-group, members, custom members and price overrides
|
2026-08-28 12:30:57 +08:00 |
|
yeuimu
|
de0f5509b1
|
feat(api): add family recompute service with union and price matrix
|
2026-08-28 12:27:29 +08:00 |
|
yeuimu
|
c07b28def7
|
feat(api): add product_families schema and migration
|
2026-08-28 12:24:24 +08:00 |
|
yeuimu
|
60946b5f64
|
feat(api): add origin good name parser
|
2026-08-28 12:23:35 +08:00 |
|
yeuimu
|
37b45a4679
|
docs(plans): add product family merge phase-1 implementation plan
|
2026-08-28 12:22:23 +08:00 |
|
yeuimu
|
573549eb15
|
docs(specs): reuse public endpoints and include admin frontend scope
|
2026-08-28 12:04:35 +08:00 |
|
yeuimu
|
14d77fbab2
|
docs(specs): allow manual price overrides and custom family members
|
2026-08-28 12:01:13 +08:00 |
|
yeuimu
|
1186d615e2
|
docs(specs): add product family merge design
|
2026-08-28 11:45:18 +08:00 |
|
yeuimu
|
270e516f94
|
fix(public): media images are objects ({id,url,sortOrder}) - handle both shapes in mergeMedia
|
2026-08-28 11:22:53 +08:00 |
|
yeuimu
|
d826c5bdd4
|
feat(public): merge secondary media gallery images with URL dedup
|
2026-08-28 11:19:27 +08:00 |
|
yeuimu
|
457792b729
|
feat(public): dedupe merged variants and merge specs/options from secondary origins
|
2026-08-28 11:05:34 +08:00 |
|
yeuimu
|
8233dda07a
|
fix(admin): initial goods load also uses pageSize 1000
|
2026-08-28 09:49:40 +08:00 |
|
yeuimu
|
cbdb507be9
|
fix(api): allow pageSize up to 1000 so admin goods tree can load full list
|
2026-08-28 09:36:15 +08:00 |
|
yeuimu
|
b3bd10de06
|
fix(admin): load all goods in left tree (pageSize 1000) so low-priority new goods are searchable
|
2026-08-28 09:31:02 +08:00 |
|
yeuimu
|
e7582bbd6e
|
fix(deploy): add .dockerignore so host node_modules does not break image build
|
2026-08-27 19:13:57 +08:00 |
|
yeuimu
|
4c50189538
|
merge: multi-origin-good-merge-zll into develop
|
2026-08-27 18:51:28 +08:00 |
|
yeuimu
|
4bebb9e4b2
|
docs: document merged origin goods feature
|
2026-08-27 18:49:17 +08:00 |
|
yeuimu
|
ac29a0c7bf
|
feat(admin): show merged count badge on good nodes
|
2026-08-27 18:45:51 +08:00 |
|
yeuimu
|
ac3a39f40d
|
feat(admin): manage merged origin goods in good edit modal
|
2026-08-27 18:43:30 +08:00 |
|
yeuimu
|
491e74b905
|
feat(admin): add origin name grouping utils with vitest coverage
|
2026-08-27 18:40:22 +08:00 |
|
yeuimu
|
0aa6cbf1d9
|
feat(admin): suggest and merge sibling origin goods in config modal
|
2026-08-27 18:40:13 +08:00 |
|
yeuimu
|
697b82a64b
|
fix(admin): resolve pre-existing template type errors blocking build
|
2026-08-27 18:40:08 +08:00 |
|
yeuimu
|
f06dfffbda
|
feat(public): resolve goods by secondary sds id and merge variants
|
2026-08-27 18:20:25 +08:00 |
|
yeuimu
|
d9ecd04747
|
feat(origin-goods): include merged secondary references in tree stats
|
2026-08-27 18:18:29 +08:00 |
|