feat(F-113): completed feature
This commit is contained in:
@@ -4862,6 +4862,81 @@
|
||||
"security": false,
|
||||
"qa": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "F-113",
|
||||
"type": "feature",
|
||||
"title": "Email customer on processing/shipped with tracking and editable courier",
|
||||
"problem": "Customer gets no email when order moves to processing or shipped; shipped email does not say which courier carries the parcel",
|
||||
"goal": "Send email on PROCESSING and SHIPPED transitions; shipped email includes tracking number and courier chosen from an admin-editable courier list",
|
||||
"scope_in": [
|
||||
"order status mailer",
|
||||
"admin transition flow",
|
||||
"courier list settings",
|
||||
"order courier field"
|
||||
],
|
||||
"scope_out": [
|
||||
"no redesign of other state emails",
|
||||
"no external carrier API integration"
|
||||
],
|
||||
"priority": "high",
|
||||
"risk": "med",
|
||||
"description": "Problem: Customer gets no email when order moves to processing or shipped; shipped email does not say which courier carries the parcel. Goal: Send email on PROCESSING and SHIPPED transitions; shipped email includes tracking number and courier chosen from an admin-editable courier list. Scope IN: order status mailer, admin transition flow, courier list settings, order courier field. Scope OUT: no redesign of other state emails, no external carrier API integration. Type: feature. Priority: high. Risk: med.",
|
||||
"acceptance": [
|
||||
"PROCESSING transition sends email to customer when SMTP configured",
|
||||
"SHIPPED transition email shows tracking number and courier",
|
||||
"Courier comes from admin-editable list stored in settings",
|
||||
"Selecting courier is required when marking order shipped",
|
||||
"Missing or failing SMTP reports notified false without breaking transition",
|
||||
"Typecheck, tests, verify pass"
|
||||
],
|
||||
"status": "done",
|
||||
"created_at": "2026-08-21",
|
||||
"gates": {
|
||||
"reviewer": true,
|
||||
"security": true,
|
||||
"qa": true,
|
||||
"close": true
|
||||
},
|
||||
"completed_at": "2026-08-21T10:27:13Z"
|
||||
},
|
||||
{
|
||||
"id": "F-114",
|
||||
"type": "feature",
|
||||
"title": "Import legacy OpenCart categories into the catalog without duplicates",
|
||||
"problem": "Legacy OpenCart database has 76 categories including product categories and brand names; current catalog only has 5 root categories and is missing many product subcategories and brand entries, blocking migration of the old inventory",
|
||||
"goal": "Map and import the legacy oc_category_description entries into the active categories module, normalizing HTML entities and skipping exact-name duplicates; route brand-looking entries into the existing brand module instead of categories",
|
||||
"scope_in": [
|
||||
"categories module",
|
||||
"brands module",
|
||||
"mapping helper",
|
||||
"legacy category normalization",
|
||||
"admin seed script"
|
||||
],
|
||||
"scope_out": [
|
||||
"no product migration",
|
||||
"no design changes",
|
||||
"no category attribute redesign"
|
||||
],
|
||||
"priority": "high",
|
||||
"risk": "med",
|
||||
"description": "Problem: Legacy OpenCart database has 76 categories including product categories and brand names; current catalog only has 5 root categories and is missing many product subcategories and brand entries, blocking migration of the old inventory. Goal: Map and import the legacy oc_category_description entries into the active categories module, normalizing HTML entities and skipping exact-name duplicates; route brand-looking entries into the existing brand module instead of categories. Scope IN: categories module, brands module, mapping helper, legacy category normalization, admin seed script. Scope OUT: no product migration, no design changes, no category attribute redesign. Type: feature. Priority: high. Risk: med.",
|
||||
"acceptance": [
|
||||
"Legacy oc_category_description entries are parsed and normalized (HTML entities and casing)",
|
||||
"Existing category names are skipped to avoid duplicates (case-insensitive match)",
|
||||
"Brand-looking entries (e.g. SOLGAR, EL GRANERO INTEGRAL, BIOSPIRIT) are created in the brands module, not categories",
|
||||
"New product categories are added as subcategories under the existing root (Alimentacion, Cosmetica e Higiene, Hogar y Mascotas, Limpieza Ecologica, Suplementos) or as new roots when they do not fit",
|
||||
"Each new category has a unique slug and a sensible parent",
|
||||
"Seed script is idempotent and safe to run multiple times",
|
||||
"Typecheck, tests, verify pass"
|
||||
],
|
||||
"status": "pending",
|
||||
"created_at": "2026-08-21",
|
||||
"gates": {
|
||||
"reviewer": false,
|
||||
"security": false,
|
||||
"qa": false
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user