3.5 KiB
ORDER-DRAFT — Known Issues
Companion to
README.md. TopicORDD, prefixMGFBANKPLUG→ entry IDsMGFBANKPLUG-ORDD-I-<RAND>(issue) /-B-(confirmed bug) /-T-(tech-debt). ID format, Status vocabulary, type codes and archival →../../.github/TOPIC_CODES.md(→ framework registry).
Scope: az AI-alapú rendelésfelvevő (OrderDraft) problémái — beérkező üzenet parse-olása, termék/partner feloldás, tanuló mappingek, draft életciklus, jóváhagyási belépési pont a PRE-ORDER folyamatba.
Active entries
MGFBANKPLUG-ORDD-I-Q4N7: Az ApproveAsync fixen StoreId = 1-et használ
Status: Open (2026-06-15) · Priority: P3 · Type: I (multi-store helyesség)
OrderDraftService.ApproveAsync (Services/OrderDraftService.cs) mindkét ágban (preorder és azonnali) StoreId = 1 konstanssal hozza létre a PreOrder-t:
var preorder = new PreOrder { CustomerId = draft.CustomerId!.Value, StoreId = 1, ... };
Hatás: jelenleg egy store-os környezetben nincs gond. Multi-store esetén viszont a draftból mindig az 1-es store-ba kerül a rendelés, függetlenül a partner/üzenet kontextusától — rossz store-hoz rendelt rendelések.
Javítási irány: a store-t a draft kontextusából vagy a partner (Customer) alapértelmezett store-jából vezessük le, ne hardcode-oljuk. (Megj.: a PreOrderAdminController.CreatePreOrder is hasonló fallback-logikát használ — érdemes közös segédbe emelni.)
Affected: Services/OrderDraftService.cs → ApproveAsync (mindkét new PreOrder { StoreId = 1 }).
MGFBANKPLUG-ORDD-T-R8W3: A jóváhagyás preorder/azonnali ága szinte duplikátum
Status: Open (2026-06-15) · Priority: P3 · Type: T (tech-debt / refaktor)
ApproveAsync-ben a preorderItems és az orderItems (azonnali) ág kódja közel azonos: PreOrderItem lista építése (UnitPriceInclTax = 0, Status = Pending), PreOrder létrehozás, InsertPreOrderAsync, majd ConvertPreOrdersForProductsAsync hívás. Az egyetlen érdemi különbség a CustomerNote szövege és hogy az azonnali ág a végén visszaolvassa az OrderId-t.
Mivel mindkét ág ugyanazon a PreOrder + konverzió flow-n megy keresztül (a konverziós ablak dönti el, hogy azonnal teljesül-e), a kettő egyetlen közös ággá vonható össze, dátum szerinti elágazás nélkül — vagy egy közös privát helperrel (CreatePreOrderFromDraftItemsAsync(items, note)).
Affected: Services/OrderDraftService.cs → ApproveAsync.
MGFBANKPLUG-ORDD-I-M2K9: Az API-kulcs összehasonlítása nem konstans idejű
Status: Open (2026-06-15) · Priority: P3 · Type: I (security hardening)
OrderDraftApiController.ValidateApiKey (Controllers/OrderDraftApiController.cs) string.Equals(..., StringComparison.Ordinal)-lal hasonlítja össze a beküldött és a tárolt API-kulcsot. Ez nem konstans idejű — elvi timing-oldalcsatorna a kulcs kitalálására.
Hatás: alacsony (a kulcs hosszú, és a háló-jitter elnyomja a mikro-eltérést), de egy publikus, csak-API-kulccsal védett végpontnál a fixed-time összehasonlítás az elvárt gyakorlat.
Javítási irány: fixed-time összehasonlítás, pl. CryptographicOperations.FixedTimeEquals a két kulcs UTF-8 byte-jaira (hossz-eltérés előzetes kezelésével). Opcionálisan rate-limiting a végponton.
Affected: Controllers/OrderDraftApiController.cs → ValidateApiKey.