diff --git a/CLAUDE.md b/CLAUDE.md
index c8d07de..eb37931 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -4,127 +4,257 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## Project Overview
-This is a Visual FoxPro 9 project that interfaces with the GoMag e-commerce API. The application retrieves both product and order data from GoMag's REST API endpoints with full pagination support and comprehensive error handling.
+**System:** Import Comenzi Web → Sistem ROA Oracle
+
+This is a multi-tier system that automatically imports orders from web platforms (GoMag, etc.) into the ROA Oracle ERP system. The project combines Oracle PL/SQL packages, Visual FoxPro orchestration, and a Flask web admin interface for SKU mapping management.
+
+**Current Status:** Phase 1 (Database Foundation) - 75% Complete
+- ✅ P1-001: ARTICOLE_TERTI table created
+- ✅ P1-002: IMPORT_PARTENERI package complete
+- ✅ P1-003: IMPORT_COMENZI package complete
+- 🔄 P1-004: Manual testing packages (NEXT UP)
## Architecture
-- **Main Application**: `gomag-vending.prg` - Primary Visual FoxPro script with pagination support
-- **Utility Module**: `utils.prg` - INI file handling, logging, and helper functions
-- **JSON Library**: `nfjson/` - Third-party JSON parsing library for VFP
-- **Technology**: Visual FoxPro 9 with WinHttp.WinHttpRequest.5.1 for HTTP requests
-- **API Integration**: GoMag REST API v1 for products and orders management
+```
+[Web Platform API] → [VFP Orchestrator] → [Oracle PL/SQL] → [Web Admin Interface]
+ ↓ ↓ ↑ ↑
+ JSON Orders Process & Log Store/Update Configuration
+```
+
+### Tech Stack
+- **Backend:** Oracle PL/SQL packages
+- **Integration:** Visual FoxPro 9
+- **Admin Interface:** Flask + Oracle connection pool
+- **Data:** Oracle 11g/12c (ROA system)
## Core Components
-### gomag-vending.prg
-Main application script with:
-- Complete pagination support for products and orders
-- Configurable API settings via INI file
-- Comprehensive error handling and logging
-- Rate limiting compliance (1-second delays between requests)
-- JSON array output generation for both products and orders
+### Oracle PL/SQL Packages
-### utils.prg
-Utility functions module containing:
-- INI file operations (`ReadPini`, `WritePini`, `LoadSettings`)
-- Logging system (`InitLog`, `LogMessage`, `CloseLog`)
-- Connectivity testing (`TestConnectivity`)
-- URL encoding utilities (`UrlEncode`)
-- Default configuration creation (`CreateDefaultIni`)
+#### 1. IMPORT_PARTENERI Package
+**Location:** `api/database-scripts/02_import_parteneri.sql`
+**Functions:**
+- `cauta_sau_creeaza_partener()` - Search/create partners with priority: cod_fiscal → denumire → create new
+- `parseaza_adresa_semicolon()` - Parse addresses in format "JUD:București;BUCURESTI;Str.Victoriei;10"
-### settings.ini
-Configuration file with sections:
-- `[API]` - API endpoints, credentials, and headers
-- `[PAGINATION]` - Page size limits
-- `[OPTIONS]` - Feature toggles for products/orders retrieval
-- `[FILTERS]` - Date range filters for orders
+**Logic:**
+- Individual vs company detection (CUI 13 digits)
+- Automatic address defaults to București Sectorul 1
+- All new partners get ID_UTIL = -3 (system)
+
+#### 2. IMPORT_COMENZI Package
+**Location:** `api/database-scripts/03_import_comenzi.sql`
+**Functions:**
+- `gaseste_articol_roa()` - Complex SKU mapping with pipelined functions
+- `importa_comanda_web()` - Complete order import with JSON parsing
+
+**Mapping Types:**
+- Simple: SKU found directly in nom_articole (not stored in ARTICOLE_TERTI)
+- Repackaging: SKU → CODMAT with different quantities
+- Complex sets: One SKU → multiple CODMATs with percentage pricing
+
+### Visual FoxPro Integration
+
+#### gomag-vending.prg
+**Location:** `vfp/gomag-vending.prg`
+Current functionality:
+- GoMag API integration with pagination
+- JSON data retrieval and processing
+- HTML entity cleaning (ă→a, ș→s, ț→t, î→i, â→a)
+
+**Future:** Will be adapted for JSON output to Oracle packages
+
+#### sync-comenzi-web.prg (Phase 2)
+**Planned orchestrator with:**
+- 5-minute timer automation
+- Oracle package integration
+- Comprehensive logging system
+- Error handling and retry logic
+
+### Database Schema
+
+#### ARTICOLE_TERTI Table
+**Location:** `api/database-scripts/01_create_table.sql`
+```sql
+CREATE TABLE ARTICOLE_TERTI (
+ sku VARCHAR2(100), -- SKU from web platform
+ codmat VARCHAR2(50), -- CODMAT from nom_articole
+ cantitate_roa NUMBER(10,3), -- ROA units per web unit
+ procent_pret NUMBER(5,2), -- Price percentage for sets
+ activ NUMBER(1), -- 1=active, 0=inactive
+ PRIMARY KEY (sku, codmat)
+);
+```
+
+### Flask Admin Interface
+
+#### admin.py
+**Location:** `api/admin.py`
+**Features:**
+- Oracle connection pool management
+- SKU mappings CRUD operations
+- Web interface for configuration
+- Real-time validation
## Development Commands
-### Running the Application
+### Database Setup
+```bash
+# Start Oracle container
+docker-compose up -d
+
+# Run database scripts in order
+sqlplus CONTAFIN_ORACLE/password@ROA_ROMFAST @01_create_table.sql
+sqlplus CONTAFIN_ORACLE/password@ROA_ROMFAST @02_import_parteneri.sql
+sqlplus CONTAFIN_ORACLE/password@ROA_ROMFAST @03_import_comenzi.sql
+```
+
+### VFP Development
```foxpro
-DO gomag-vending.prg
+DO vfp/gomag-vending.prg
```
-### Running from Windows Command Line
-Use the provided batch file:
-```cmd
-run-gomag.bat
+### Flask Admin Interface
+```bash
+cd api
+python admin.py
```
-Direct execution with Visual FoxPro:
-```cmd
-"C:\Program Files (x86)\Microsoft Visual FoxPro 9\vfp9.exe" -T "gomag-vending.prg"
-```
-
-## Configuration Management
-
-The application uses `settings.ini` for all configuration. Key settings:
-
-### Required Configuration
-- `ApiKey` - Your GoMag API key
-- `ApiShop` - Your shop URL (e.g., "https://yourstore.gomag.ro")
-
-### Feature Control
-- `GetProducts` - Set to "1" to retrieve products, "0" to skip
-- `GetOrders` - Set to "1" to retrieve orders, "0" to skip
-- `OrderDaysBack` - Number of days back to retrieve orders (default: 7)
-
-### Pagination
-- `Limit` - Records per page (default: 100, max recommended for GoMag API)
-
-## API Integration Details
-
-### Authentication
-- Header-based authentication using `Apikey` and `ApiShop` headers
-- User-Agent must differ from "PostmanRuntime"
-
-### Endpoints
-- Products: `https://api.gomag.ro/api/v1/product/read/json?enabled=1`
-- Orders: `https://api.gomag.ro/api/v1/order/read/json`
-
-### Rate Limiting
-- 1-second pause between paginated requests
-- No specific READ request limitations
-- POST requests limited to ~1 request per second (Leaky Bucket)
-
-## Directory Structure
+## Project Structure
```
/
-├── gomag-vending.prg # Main application
-├── utils.prg # Utility functions
-├── settings.ini # Configuration file
-├── run-gomag.bat # Windows launcher
-├── nfjson/ # JSON parsing library
-│ ├── nfjsoncreate.prg
-│ └── nfjsonread.prg
-├── log/ # Generated log files
-├── output/ # Generated JSON files
-└── products-example.json # Sample API response
+├── api/ # ✅ Flask Admin & Database
+│ ├── admin.py # ✅ Flask app with Oracle pool
+│ ├── database-scripts/ # ✅ Oracle SQL scripts
+│ │ ├── 01_create_table.sql # ✅ ARTICOLE_TERTI table
+│ │ ├── 02_import_parteneri.sql # ✅ Partners package
+│ │ └── 03_import_comenzi.sql # ✅ Orders package
+│ ├── Dockerfile # ✅ Oracle client container
+│ ├── tnsnames.ora # ✅ Oracle connection config
+│ ├── .env # ✅ Environment variables
+│ └── requirements.txt # ✅ Python dependencies
+├── docs/ # 📋 Project Documentation
+│ ├── PRD.md # ✅ Product Requirements
+│ ├── LLM_PROJECT_MANAGER_PROMPT.md # ✅ Project Management
+│ └── stories/ # 📋 User Stories
+│ ├── P1-001-ARTICOLE_TERTI.md # ✅ Story P1-001 (COMPLETE)
+│ ├── P1-002-Package-IMPORT_PARTENERI.md # ✅ Story P1-002 (COMPLETE)
+│ ├── P1-003-Package-IMPORT_COMENZI.md # ✅ Story P1-003 (COMPLETE)
+│ └── P1-004-Testing-Manual-Packages.md # 📋 Story P1-004 (READY)
+├── vfp/ # ⏳ VFP Integration
+│ ├── gomag-vending.prg # ✅ Current GoMag client
+│ ├── utils.prg # ✅ Utility functions
+│ ├── nfjson/ # ✅ JSON parsing library
+│ └── sync-comenzi-web.prg # ⏳ Future orchestrator
+├── docker-compose.yaml # ✅ Container setup
+└── logs/ # ✅ Application logs
```
-## Output Files
+## Configuration
-### Generated Files
-- `log/gomag_sync_YYYYMMDD_HHMMSS.log` - Detailed execution logs
-- `output/gomag_all_products_YYYYMMDD_HHMMSS.json` - Complete product array
-- `output/gomag_orders_last7days_YYYYMMDD_HHMMSS.json` - Orders array
+### Environment Variables (.env)
+```env
+ORACLE_USER=CONTAFIN_ORACLE
+ORACLE_PASSWORD=********
+ORACLE_DSN=ROA_ROMFAST
+TNS_ADMIN=/app
+INSTANTCLIENTPATH=/opt/oracle/instantclient
+```
-### Error Files
-- `gomag_error_pageN_*.json` - Raw API responses for failed parsing
-- `gomag_error_pageN_*.log` - HTTP error details with status codes
+### Business Rules
+
+#### Partners
+- Search priority: cod_fiscal → denumire → create new
+- Individuals (CUI 13 digits): separate nume/prenume
+- Default address: București Sectorul 1
+- All new partners: ID_UTIL = -3
+
+#### Articles
+- Simple SKUs: found directly in nom_articole (not stored)
+- Special mappings: only repackaging and complex sets
+- Inactive articles: activ=0 (not deleted)
+
+#### Orders
+- Uses existing PACK_COMENZI packages
+- Default: ID_GESTIUNE=1, ID_SECTIE=1, ID_POL=0
+- Delivery date = order date + 1 day
+- All orders: INTERNA=0 (external)
+
+## Phase Implementation Status
+
+### ✅ Phase 1: Database Foundation (75% Complete)
+- **P1-001:** ✅ ARTICOLE_TERTI table + Docker setup
+- **P1-002:** ✅ IMPORT_PARTENERI package complete
+- **P1-003:** ✅ IMPORT_COMENZI package complete
+- **P1-004:** 🔄 Manual testing (READY TO START)
+
+### ⏳ Phase 2: VFP Integration (Planned)
+- Adapt gomag-vending.prg for JSON output
+- Create sync-comenzi-web.prg orchestrator
+- Oracle packages integration
+- Logging system with rotation
+
+### ⏳ Phase 3: Web Admin Interface (Planned)
+- Flask app with Oracle connection pool
+- HTML/CSS admin interface
+- JavaScript CRUD operations
+- Client/server-side validation
+
+### ⏳ Phase 4: Testing & Deployment (Planned)
+- End-to-end testing with real orders
+- Complex mappings validation
+- Production environment setup
+- User documentation
## Key Functions
-### Main Application (gomag-vending.prg)
-- `SaveProductsArray` - Converts paginated product data to JSON array
-- `SaveOrdersArray` - Converts paginated order data to JSON array
-- `MergeProducts` - Combines products from multiple pages
-- `MergeOrdersArray` - Combines orders from multiple pages
+### Oracle Packages
+- `IMPORT_PARTENERI.cauta_sau_creeaza_partener()` - Partner management
+- `IMPORT_PARTENERI.parseaza_adresa_semicolon()` - Address parsing
+- `IMPORT_COMENZI.gaseste_articol_roa()` - SKU resolution
+- `IMPORT_COMENZI.importa_comanda_web()` - Order import
-### Utilities (utils.prg)
-- `LoadSettings` - Loads complete INI configuration into object
-- `InitLog`/`LogMessage`/`CloseLog` - Comprehensive logging system
-- `TestConnectivity` - Internet connection verification
-- `CreateDefaultIni` - Generates template configuration file
\ No newline at end of file
+### VFP Utilities (utils.prg)
+- `LoadSettings` - INI configuration management
+- `InitLog`/`LogMessage`/`CloseLog` - Logging system
+- `TestConnectivity` - Connection verification
+- `CreateDefaultIni` - Default configuration
+
+## Success Metrics
+
+### Technical KPIs
+- Import success rate > 95%
+- Average processing time < 30s per order
+- Zero downtime for main ROA system
+- 100% log coverage
+
+### Business KPIs
+- 90% reduction in manual order entry time
+- Elimination of manual transcription errors
+- New mapping configuration < 5 minutes
+
+## Error Handling
+
+### Categories
+1. **Oracle connection errors:** Retry logic + alerts
+2. **SKU not found:** Log warning + skip item
+3. **Invalid partner:** Create attempt + detailed log
+4. **Duplicate orders:** Skip with info log
+
+### Logging Format
+```
+2025-09-09 14:30:25 | ORDER-123 | OK | ID:456789
+2025-09-09 14:30:26 | ORDER-124 | ERROR | SKU 'XYZ' not found
+```
+
+## Project Manager Commands
+
+Available commands for project tracking:
+- `status` - Overall progress and current story
+- `stories` - List all stories with status
+- `phase` - Current phase details
+- `risks` - Identify and prioritize risks
+- `demo [story-id]` - Demonstrate implemented functionality
+- `plan` - Re-planning for changes
\ No newline at end of file
diff --git a/docs/LLM_PROJECT_MANAGER_PROMPT.md b/docs/LLM_PROJECT_MANAGER_PROMPT.md
index eae3ec2..1f7e8b5 100644
--- a/docs/LLM_PROJECT_MANAGER_PROMPT.md
+++ b/docs/LLM_PROJECT_MANAGER_PROMPT.md
@@ -219,10 +219,7 @@ Toate story-urile sunt stocate în fișiere individuale în `docs/stories/` cu f
## 🚀 Getting Started
**Primul tau task:**
-1. Citește întregul PRD furnizat
-2. Generează toate story-urile pentru Phase 1
-3. Prezintă overall project plan cu timeline
-4. Începe tracking primul story
+1. Citește întregul PRD furnizat și verifică dacă există story-uri pentru fiecare fază și la care fază/story ai rămas
**Întreabă-mă dacă:**
- Necesită clarificări tehnice despre PRD
@@ -230,6 +227,15 @@ Toate story-urile sunt stocate în fișiere individuale în `docs/stories/` cu f
- Apare vreo dependency neidentificată
- Ai nevoie de input pentru estimări
+**Întreabă-mă dacă:**
+Afișează comenzile disponibile
+ - status - Progres overall
+ - stories - Lista story-uri
+ - phase - Detalii fază curentă
+ - risks - Identificare riscuri
+ - demo [story-id] - Demo funcționalitate
+ - plan - Re-planificare
+
---
-**Acum începe cu:** "Am analizat PRD-ul și sunt gata să coordonez implementarea. Să încep cu generarea story-urilor pentru Phase 1?"
\ No newline at end of file
+**Acum începe cu:** "Am analizat PRD-ul și sunt gata să coordonez implementarea. Vrei să îți spun care a fost ultimul story si care este statusul său?"
\ No newline at end of file
diff --git a/docs/PRD.md b/docs/PRD.md
index 29aaf10..a6edda2 100644
--- a/docs/PRD.md
+++ b/docs/PRD.md
@@ -106,10 +106,167 @@ CREATE TABLE ARTICOLE_TERTI (
**Responsabilități:**
- Rulare automată (timer 5 minute)
-- Citire comenzi din API-ul web
-- Apelare package-uri Oracle
+- Citire comenzi din JSON-ul generat de gomag-vending.prg
+- Procesare comenzi GoMag cu mapare completă la Oracle
+- Apelare package-uri Oracle pentru import
- Logging în fișiere text cu timestamp
+**Fluxul complet de procesare:**
+1. **Input:** Citește `output/gomag_orders_last7days_*.json`
+2. **Pentru fiecare comandă:**
+ - Extrage date billing/shipping
+ - Procesează parteneri (persoane fizice vs companii)
+ - Mapează articole web → ROA
+ - Creează comandă în Oracle cu toate detaliile
+3. **Output:** Log complet în `logs/sync_comenzi_YYYYMMDD.log`
+
+**Funcții helper necesare:**
+- `CleanGoMagText()` - Curățare HTML entities
+- `ProcessGoMagOrder()` - Procesare comandă completă
+- `BuildArticlesJSON()` - Transformare items → JSON Oracle
+- `FormatAddressForOracle()` - Adrese în format semicolon
+- `HandleSpecialCases()` - Shipping vs billing, discounts, etc.
+
+**Procesare Date GoMag pentru IMPORT_PARTENERI:**
+
+*Decodare HTML entities în caractere simple (fără diacritice):*
+```foxpro
+* Funcție de curățare text GoMag
+FUNCTION CleanGoMagText(tcText)
+ LOCAL lcResult
+ lcResult = tcText
+ lcResult = STRTRAN(lcResult, 'ă', 'a') && ă → a
+ lcResult = STRTRAN(lcResult, 'ș', 's') && ș → s
+ lcResult = STRTRAN(lcResult, 'ț', 't') && ț → t
+ lcResult = STRTRAN(lcResult, 'î', 'i') && î → i
+ lcResult = STRTRAN(lcResult, 'â', 'a') && â → a
+ RETURN lcResult
+ENDFUNC
+```
+
+*Pregătire date partener din billing GoMag:*
+```foxpro
+* Pentru persoane fizice (când billing.company e gol):
+IF EMPTY(loBilling.company.name)
+ lcDenumire = CleanGoMagText(loBilling.firstname + ' ' + loBilling.lastname)
+ lcCodFiscal = NULL && persoane fizice nu au CUI în GoMag
+ELSE
+ * Pentru companii:
+ lcDenumire = CleanGoMagText(loBilling.company.name)
+ lcCodFiscal = loBilling.company.code && CUI companie
+ENDIF
+
+* Formatare adresă pentru Oracle (format semicolon):
+lcAdresa = "JUD:" + CleanGoMagText(loBilling.region) + ";" + ;
+ CleanGoMagText(loBilling.city) + ";" + ;
+ CleanGoMagText(loBilling.address)
+
+* Date contact
+lcTelefon = loBilling.phone
+lcEmail = loBilling.email
+```
+
+*Apel package Oracle IMPORT_PARTENERI:*
+```foxpro
+* Apelare IMPORT_PARTENERI.cauta_sau_creeaza_partener
+lcSQL = "SELECT IMPORT_PARTENERI.cauta_sau_creeaza_partener(?, ?, ?, ?, ?) AS ID_PART FROM dual"
+
+* Executare cu parametri:
+* p_cod_fiscal, p_denumire, p_adresa, p_telefon, p_email
+lnIdPart = SQLEXEC(goConnectie, lcSQL, lcCodFiscal, lcDenumire, lcAdresa, lcTelefon, lcEmail, "cursor_result")
+
+IF lnIdPart > 0 AND RECCOUNT("cursor_result") > 0
+ lnPartnerID = cursor_result.ID_PART
+ * Continuă cu procesarea comenzii...
+ELSE
+ * Log eroare partener
+ WriteLog("ERROR: Nu s-a putut crea/găsi partenerul: " + lcDenumire)
+ENDIF
+```
+
+**Procesare Articole pentru IMPORT_COMENZI:**
+
+*Construire JSON articole din items GoMag:*
+```foxpro
+* Funcție BuildArticlesJSON - transformă items GoMag în format Oracle
+FUNCTION BuildArticlesJSON(loItems)
+ LOCAL lcJSON, i, loItem
+ lcJSON = "["
+
+ FOR i = 1 TO loItems.Count
+ loItem = loItems.Item(i)
+
+ IF i > 1
+ lcJSON = lcJSON + ","
+ ENDIF
+
+ * Format JSON conform package Oracle: {"sku":"...", "cantitate":..., "pret":...}
+ lcJSON = lcJSON + "{" + ;
+ '"sku":"' + CleanGoMagText(loItem.sku) + '",' + ;
+ '"cantitate":' + TRANSFORM(VAL(loItem.quantity)) + ',' + ;
+ '"pret":' + TRANSFORM(VAL(loItem.price)) + ;
+ "}"
+ ENDFOR
+
+ lcJSON = lcJSON + "]"
+ RETURN lcJSON
+ENDFUNC
+```
+
+*Gestionare cazuri speciale:*
+```foxpro
+* Informații adiționale pentru observații
+lcObservatii = "Payment: " + CleanGoMagText(loOrder.payment.name) + "; " + ;
+ "Delivery: " + CleanGoMagText(loOrder.delivery.name) + "; " + ;
+ "Status: " + CleanGoMagText(loOrder.status) + "; " + ;
+ "Source: " + CleanGoMagText(loOrder.source) + " " + CleanGoMagText(loOrder.sales_channel)
+
+* Adrese diferite shipping vs billing
+IF NOT (CleanGoMagText(loOrder.shipping.address) == CleanGoMagText(loBilling.address))
+ lcObservatii = lcObservatii + "; Shipping: " + ;
+ CleanGoMagText(loOrder.shipping.address) + ", " + ;
+ CleanGoMagText(loOrder.shipping.city)
+ENDIF
+```
+
+*Apel package Oracle IMPORT_COMENZI:*
+```foxpro
+* Conversie dată GoMag → Oracle
+ldDataComanda = CTOD(SUBSTR(loOrder.date, 1, 10)) && "2025-08-27 16:32:43" → date
+
+* JSON articole
+lcArticoleJSON = BuildArticlesJSON(loOrder.items)
+
+* Apelare IMPORT_COMENZI.importa_comanda_web
+lcSQL = "SELECT IMPORT_COMENZI.importa_comanda_web(?, ?, ?, ?, ?, ?) AS ID_COMANDA FROM dual"
+
+lnResult = SQLEXEC(goConnectie, lcSQL, ;
+ loOrder.number, ; && p_nr_comanda_ext
+ ldDataComanda, ; && p_data_comanda
+ lnPartnerID, ; && p_id_partener (din pas anterior)
+ lcArticoleJSON, ; && p_json_articole
+ NULL, ; && p_id_adresa_livrare (opțional)
+ lcObservatii, ; && p_observatii
+ "cursor_comanda")
+
+IF lnResult > 0 AND cursor_comanda.ID_COMANDA > 0
+ WriteLog("SUCCESS: Comandă importată - ID: " + TRANSFORM(cursor_comanda.ID_COMANDA))
+ELSE
+ WriteLog("ERROR: Import comandă eșuat pentru: " + loOrder.number)
+ENDIF
+```
+
+**Note Importante:**
+- Toate caracterele HTML trebuie transformate în ASCII simplu (fără diacritice)
+- Package-ul Oracle așteaptă text curat, fără entități HTML
+- Adresa trebuie în format semicolon cu prefix "JUD:" pentru județ
+- Cod fiscal NULL pentru persoane fizice este acceptabil
+- JSON articole: exact formatul `{"sku":"...", "cantitate":..., "pret":...}`
+- Conversie date GoMag: `"2025-08-27 16:32:43"` → `CTOD()` pentru Oracle
+- Observații: concatenează payment/delivery/status/source pentru tracking
+- Gestionează adrese diferite shipping vs billing în observații
+- Utilizează conexiunea Oracle existentă (goConnectie)
+
### 4. Web Admin Interface
**Funcționalități:**
@@ -129,10 +286,20 @@ CREATE TABLE ARTICOLE_TERTI (
- [ ] 🔄 **P1-004:** Testare manuală package-uri (NEXT UP!)
### Phase 2: VFP Integration (Ziua 2)
-- [ ] Adaptare gomag-vending-test.prg pentru output JSON
-- [ ] Creare sync-comenzi-web.prg
-- [ ] Testare import comenzi end-to-end
-- [ ] Configurare logging
+- [ ] **P2-001:** Adaptare gomag-vending.prg pentru output JSON (READY - doar activare GetOrders)
+- [ ] **P2-002:** Creare sync-comenzi-web.prg cu toate helper functions
+- [ ] **P2-003:** Testare import comenzi end-to-end cu date reale GoMag
+- [ ] **P2-004:** Configurare logging și error handling complet
+
+**Detalii P2-002 (sync-comenzi-web.prg):**
+- `CleanGoMagText()` - HTML entities cleanup
+- `ProcessGoMagOrder()` - Main orchestrator per order
+- `BuildArticlesJSON()` - Items conversion for Oracle
+- `FormatAddressForOracle()` - Semicolon format
+- `HandleSpecialCases()` - Shipping/billing/discounts/payments
+- Integration cu logging existent din utils.prg
+- Timer-based execution (5 minute intervals)
+- Complete error handling cu retry logic
### Phase 3: Web Admin Interface (Ziua 3)
- [ ] Flask app cu connection pool Oracle
@@ -355,5 +522,5 @@ Toate story-urile pentru fiecare fază sunt stocate în `docs/stories/` cu detal
---
**Document Owner:** Development Team
-**Last Updated:** 09 septembrie 2025, 10:45
+**Last Updated:** 09 septembrie 2025, 12:15 (Updated VFP Orchestrator plan)
**Next Review:** După P1-004 completion (Phase 1 FINALIZAT!)
\ No newline at end of file
diff --git a/vfp/output/gomag_all_products_20250909_193919.json b/vfp/output/gomag_all_products_20250909_193919.json
new file mode 100644
index 0000000..c6560e2
--- /dev/null
+++ b/vfp/output/gomag_all_products_20250909_193919.json
@@ -0,0 +1,817 @@
+[
+ {"alloworderswhenoutofstock":"0","attributes":["_EMPTY_ARRAY_FLAG_"],"base_price":"1.0000","brand":"Wittenborg","bundleitems":["_EMPTY_ARRAY_FLAG_"],"canonical_url":"https:\\/\\/www.coffeepoint.ro\\/piese-schimb-aparate-cafea\\/surub-sita-piston-9g-necta-wittenborg.html","categories":[[{"id":"10","name":"Piese aparate cafea"},{"id":"11","name":"Grupuri de cafea"}]],"created":"2021-04-23 10:02:41","currency":"RON","customsearchkeys":"","delivery_time":null,"delivery_time_type":"text","description":"","ean":"","ecotax":"0.0000","enabled":"1","feeddescription":"","files":null,"group_key":"","html_description":"Surub sita piston 9g Necta\\/Wittenborg","html_title":"Surub sita piston 9g Necta\\/Wittenborg","id":"10","images":["https:\\/\\/gomagcdn.ro\\/domains\\/coffeepoint.ro\\/files\\/product\\/original\\/surub-sita-piston-9g-necta-wittenborg-10-685063.png"],"name":"Surub sita piston 9g Necta\\/Wittenborg","parent":"10","parent_sku":"094508","price":"1.0000","short_description":"","sku":"094508","stock":"0","stockmanagement":"0","stock_status":"instock","um":null,"updated":"2024-08-30 09:00:33","url":"https:\\/\\/www.coffeepoint.ro\\/surub-sita-piston-9g-necta-wittenborg.html","vat":"21","vat_included":1,"videos":null,"weight":"0.1"},
+ {"alloworderswhenoutofstock":"0","attributes":[{"id":"4","name":"Capacitate","type":"dropdown","value":"8oz"}],"base_price":"170.0000","brand":"RLP","bundleitems":["_EMPTY_ARRAY_FLAG_"],"canonical_url":"https:\\/\\/www.coffeepoint.ro\\/oferte\\/pahar-carton-8oz-albastru-rlp-bax-1000buc.html","categories":[[{"id":"56","name":"Oferte"},{"id":"47","name":"Baxuri Pahare"}]],"created":"2021-04-23 10:02:47","currency":"RON","customsearchkeys":"","delivery_time":null,"delivery_time_type":"text","description":"Acest tip de pahar este recomandat pentru automatele vending cu pahare automat. Sunt produse din material tratat antistatic, rezistent si cu un design frumos.
\\r\\nPahar carton 230ml\\/8oz.
\\r\\nMod ambalare: 50\\/set, iar o cutie contine 20 seturi.Pretul afisat este pentru un bax de 1000buc.","ean":"","ecotax":"0.0000","enabled":"1","feeddescription":"","files":null,"group_key":"","html_description":"","html_title":"","id":"101","images":["https:\\/\\/gomagcdn.ro\\/domains\\/coffeepoint.ro\\/files\\/product\\/original\\/pahar-carton-8oz-albastru-rlp-bax-1000buc-315976.webp"],"name":"Pahar carton 8oz Albastru RLP bax 1000buc","parent":"101","parent_sku":"58912111224","price":"137.0000","short_description":"","sku":"58912111224","stock":"0","stockmanagement":"0","stock_status":"instock","um":null,"updated":"2024-08-30 09:00:57","url":"https:\\/\\/www.coffeepoint.ro\\/pahar-carton-8oz-albastru-rlp-bax-1000buc.html","vat":"21","vat_included":1,"videos":null,"weight":"10"},
+ {"alloworderswhenoutofstock":"0","attributes":["_EMPTY_ARRAY_FLAG_"],"base_price":"89.0000","brand":"Kimbo","bundleitems":["_EMPTY_ARRAY_FLAG_"],"canonical_url":"https:\\/\\/www.coffeepoint.ro\\/cafea\\/kimbo-extra-cream-cafea-boabe-1kg.html","categories":[[{"id":"8","name":"Cafea"},{"id":"24","name":"Cafea Boabe"}]],"created":"2024-05-14 12:36:15","currency":"RON","customsearchkeys":"","delivery_time":null,"delivery_time_type":"text","description":"Kimbo Extra Cream Medium Roast<\\/em> este o cafea boabe premium, care încântă simțurile cu arome bogate și o cremă catifelată. Această cafea italiană autentică face parte din linia Kimbo Espresso Bar pentru profesioniști și oferă o experiență de degustare intensă, cu note profunde de piper negru și lemn dulce, echilibrate perfect de o aciditate delicată. Boabele sunt meticulos selecționate și prăjite cu grijă pentru a extrage maximul de arome și a obține o cremă bogată și persistentă în fiecare ceașcă.<\\/span>\\r\\nCaracteristici:<\\/b><\\/span><\\/span><\\/span><\\/h2>\\r\\n\\r\\n\\r\\n\\t- Note – <\\/b>piper, lemn dulce<\\/span><\\/span><\\/span><\\/li>\\r\\n\\t
- Aromă – <\\/b>Intens<\\/span><\\/span><\\/span><\\/li>\\r\\n\\t
- Corp — <\\/strong>Mediu<\\/span><\\/span><\\/span><\\/li>\\r\\n\\t
- Originea boabelor de cafea – <\\/b>Brazilia, India si Columbia<\\/span><\\/span><\\/span><\\/li>\\r\\n\\t
- Nivel de prăjire – <\\/b>Mediu (Medium Roast)<\\/span><\\/span><\\/span><\\/li>\\r\\n\\t
- Recomandată pentru – <\\/b>espressor, mocha pot, filtru<\\/span><\\/span><\\/span><\\/li>\\r\\n<\\/ul>\\r\\n \\r\\n\\r\\n
Mod de ambalare:<\\/b><\\/span><\\/span><\\/span><\\/h2>\\r\\n
\\r\\nCafeaua boabe Kimbo Extra Cream medium roast<\\/em> este ambalată în pungi de 1 kg iar un bax conține 6 pungi.<\\/span><\\/span><\\/span>","ean":"8002200148157","ecotax":"0.0000","enabled":"1","feeddescription":"","files":null,"group_key":"","html_description":"","html_title":"","id":"1014","images":["https:\\/\\/gomagcdn.ro\\/domains\\/coffeepoint.ro\\/files\\/product\\/original\\/lavazza-qualita-oro-cafea-boabe-1kg-copie-885012.webp"],"name":"Kimbo Extra Cream Cafea Boabe 1kg","parent":"1014","parent_sku":"8002200148157-1893","price":"83.9900","short_description":"
\\r\\n