Bloga Dönindustry2026-05-2412 dk okuma
Bulk-restock CSV yukledim, stock_qty_not_integer hatasi aldim — CSV quoted-field eksigi (PR #611 DDD F3)
Tokat Cumhuriyet Cad nde 38 yaslarinda "Tokat Manti Evi" sahibi Yasemin, 14 yillik geleneksel Tokat manti restoran 60-cover. 47 menu urunu Pro tier, bazilari kombo: "Manti, Cacik, Ayran Combo", "Karisik Kebap, Lavash, Salata, Icecek", "Brunch (Kofte, Yumurta, Peynir, Zeytin)". Hafta-sonu stock-up icin Bulk Restock via CSV feature kullandi Excel 47 satir: prod_001,Manti,50 / prod_002,"Manti, Cacik, Ayran Combo",30 / prod_003,Karisik Kebap,40 / prod_004,"Karisik Kebap, Lavash, Salata, Icecek",25. Upload result: **Row 2: stock_qty_not_integer (got: "Cacik"), Row 4: stock_qty_not_integer (got: "Lavash"), 5/47 row imported, 42 failed**. Yasemin support a yazdi "stock_qty Cacik degil 30 yazdim". Engineering reproduce: row 2 split(",") 5 part dondurur ["prod_002", "Manti", " Cacik", " Ayran Combo", "30"], parser column[2] (stock_qty position) Cacik aldi parseInt NaN → stock_qty_not_integer. RFC 4180 quoted-field semantic state-machine gerektirir — quote acildi mi kapatildi mi takip eder, comma separator olarak yorumlanmaz. Naive split(",") quotes yok sayar. **2 wrong theories**: (1) papaparse npm library switch — 50KB+ minified Worker bundle size etki, csv-parse Node-only Worker da calismaz; (2) schema-flexible quoted parsing — non-technical owner icin "column count mismatch" hatasi "stock_qty_not_integer" kadar bewildering. Engineering "strictness over flexibility" felsefesi: quoted-field tamamen reject. **PR #611 batch DDD F3** fix sade — short-circuit early-return on first quote: `for (let i = 0; i < lines.length; i++) { if (lines[i].includes(""")) { return errors.csv_quoting_not_supported({ row: i, message: "Quoted CSV fields not supported..." }); } }`. Continue with split(",") parsing safe (no quotes). Bonus client-side pre-upload check FileReader API CSV preview component first row quote varsa submit disable + "Use GUI bulk-editor instead" link. Yasemin alternatif: GUI bulk editor 47 urun tablo Excel-benzeri in-place edit 3 dakikada save. CSV-vs-GUI karsilastirma: GUI 2x hizli + comma korundu + visual confirmation. Help-doc help.thmenu.com/bulk-restock CSV no quote no comma vs GUI fully flexible. Giulio Bologna Sant Orsola "Tagliatelle, Mortadella & Co." trattoria version Italian comma-named combos ayni flow. Pattern: **non-technical owner-facing bulk-data import endpoint lerinde CSV parser strictness flexibility den daha yardimci. Partial RFC 4180 implementation ambiguous error lar uretir; strict reject + clear alternative + GUI bulk editor canonical.** Implementation checklist: (1) parser strictness vs flexibility decision non-technical strictness developer RFC 4180; (2) strict reject patterns quoted fields/escaped quotes/mid-field newlines clear error + actionable; (3) client-side pre-upload check FileReader; (4) GUI bulk editor alternative in-place visual; (5) help-doc clarity CSV vs GUI; (6) pentest edge-case CSV inputs quoted/mid-quote-comma/mid-field-newline/BOM/trailing-newline; (7) quarterly review bulk-import error metrics CSV confusion vector switch.