graph TD Start[Start: Receive Product URL] --> URLValidation{URL Valid?} URLValidation -->|No| ErrorHandler[Return Error Message] URLValidation -->|Yes| Task1[Task #226: Extract Structured Data] Task1 --> ParseTitle[Parse Product Title] Task1 --> ParseBullets[Parse Bullet Points] Task1 --> ParseDescription[Parse Description] Task1 --> ParseImage[Extract Image URL] ParseTitle --> ValidateTitle{Title Valid?} ParseBullets --> ValidateBullets{Bullets Valid?} ParseDescription --> ValidateDesc{Description Valid?} ParseImage --> ValidateImage{Image URL Valid?} ValidateTitle -->|No| RetryTitle[Retry Title Extraction] ValidateBullets -->|No| RetryBullets[Retry Bullets Extraction] ValidateDesc -->|No| RetryDesc[Retry Description Extraction] ValidateImage -->|No| RetryImage[Retry Image Extraction] RetryTitle --> ValidateTitle RetryBullets --> ValidateBullets RetryDesc --> ValidateDesc RetryImage --> ValidateImage ValidateTitle -->|Yes| CombineData[Combine Extracted Data] ValidateBullets -->|Yes| CombineData ValidateDesc -->|Yes| CombineData ValidateImage -->|Yes| CombineData CombineData --> Task2[Task #223: Format JSON Structure] Task2 --> ValidateJSON{JSON Format Valid?} ValidateJSON -->|No| RetryJSON[Retry JSON Formatting] RetryJSON --> Task2 ValidateJSON -->|Yes| Output[Return Final JSON Output] ErrorHandler --> End[End Process] Output --> End