# StudioU Orders2PrintPack **Verze 1.3.4** · Quadarax © 2025 Proprietární desktopová aplikace (Windows Forms, .NET 9) pro online tiskovou službu **StudioU**. Zpracovává exporty objednávek z WooCommerce a převádí je na podklady připravené k tisku, katalog produktů, tiskové štítky a e-mailové odesílání digitálního obsahu. > Uživatelské rozhraní, názvy sloupců CSV i texty jsou v češtině. --- ## Hlavní funkce Aplikace se spouští úvodní obrazovkou (`FormLauncher`), ze které jsou dostupné čtyři samostatné moduly a editor konfigurace. ### 1. Příprava balíčků k tisku (`FormBatch`) Hlavní pracovní postup „objednávky → balíček k tisku": - Načte CSV export objednávek z WooCommerce. - Prohledá složku se zdrojovými (RAW) soubory a podle názvu souboru spáruje každý řádek objednávky s lokálním obrázkem. - Zkopíruje a přejmenuje soubory do výstupní složky podle masky `OutputFileMask` (tokeny `{order_no}`, `{prod_name}`, `{ordinal}`, `{ext}` a libovolný sloupec CSV). - Množství (`qty`) se rozkopíruje do číslovaných kopií. - Řádky odpovídající formátu digitálního obsahu (`FormatDigitalContains`) s vyplněným e-mailem se směrují do podsložky podle e-mailu místo tisku. - Umožňuje vygenerovat protokol (`.csv`) s číslem a datem externí objednávky. ### 2. Editace produktů (`FormProductEdit`) Editace a import katalogu produktů a variant: - Produkt (`variable`) nebo varianta (`variation`) navázaná na rodiče přes SKU. - Generování URL a popisů z šablon (`ImportTpl*`). - Kontrola validity a duplicit, editace hodnot Minimum/Maximum množství. **Číselník variant a ceny.** Pravý panel obsahuje číselník variant (sloupce *Jméno*, *Cena*, *Min. Počet*, *Max. Počet*). Tento číselník slouží jako referenční ceník a ukládá se mezi spuštěními do uživatelské konfigurace (`PredefinedVariants`); při otevření okna se z ní obnoví. Doporučený postup pro ceny: 1. **Import** ze složkové struktury (`kategorie/varianta/soubor`) vytvoří produkty a varianty. Importované varianty vznikají s cenou `0` (cena se z importu nepřebírá). 2. Cenu nastavíte v číselníku variant a tlačítkem **Použít** ji hromadně přenesete na všechny produktové varianty se shodným názvem. Číselník variant si ceny drží i při importu – produkt s nulovou (nenastavenou) cenou referenční cenu nepřepíše. Skutečná nenulová cena zadaná na produktu se do číselníku naopak promítne. ### 3. Tisk štítků (`FormLabelPrint`) Generování tiskových štítků z CSV do souboru `.xlsx` (Excel, přes OpenXML — bez nutnosti Office): - Agregace řádků podle `LabelAggregateColumns` a tvorba počítaných sloupců (`LabelAggegationDataExpression`). - Rozvržení štítků do mřížky N×M na stránku A4. - Šablona `LabelTemplate` podporuje zástupné symboly `{nazevSloupce}` a jednoduché formátování: `**tučně**`, `__kurzíva__`, `_podtržení_`, `^^velikost^text^^` a `{cr}` pro nový řádek. ### 4. Odeslání digitálních dat (`FormDigitalSend` / `EmailStorageProcessor`) Odesílání odkazů ke stažení pro digitální objednávky: - Každá podsložka vstupního adresáře = jeden příjemce (název složky = e-mail). - Stavový automat ukládaný do `metadata.json`: `Ready → Processing → Uploading → Sending → Sent` (případně `Error`). - Pro každou položku: zabalí JPG do ZIP, nahraje do **Temporary Shared Storage (TSS)**, vygeneruje heslo a permalink ke stažení, personalizuje e-mailovou šablonu (`{{DOWNLOAD_LINK}}`, `{{PASSWORD}}`, `{{RECIPIENT}}`, `{{ORDERS}}`) a odešle přes SMTP. - ZIP soubory procházejí skrytými adresáři `.processing/` → `.sending/` → `.sent/`. --- ## Požadavky - Windows (Windows Forms, cíl `net9.0-windows7.0`) - .NET 9 SDK - Externí NuGet závislosti: - `qdr.fnd.core` — sdílená knihovna (logování, prohledávání souborů, CSV, `ParameterizedString`) - `qdr.app.tss.client` — REST klient pro Temporary Shared Storage - `DocumentFormat.OpenXml` — generování `.xlsx` štítků ## Sestavení a spuštění ```powershell # Sestavení celého řešení dotnet build qdr.app.studiou.orders2printpack.sln # Spuštění aplikace dotnet run --project App # Spuštění testů (NUnit) dotnet test ``` Instalátor (`Setup/Setup.vdproj`) je projekt Visual Studio Installer — lze sestavit pouze ve Visual Studiu s rozšířením pro instalační projekty, ne přes `dotnet`. ## Konfigurace Veškeré nastavení je uloženo v uživatelské konfiguraci (`Properties/AppSettings`) a edituje se za běhu přes `dlgSettings` / `dlgEditCfg`. Klíčové skupiny: - **Mapování sloupců** (`MapCol*`) — propojení logických polí s názvy sloupců v CSV. Při jiné struktuře exportu se mění zde, ne v kódu. - **Šablony** výstupních souborů, importu, štítků. - **TSS** — `TSSApiKey`, `TSSUri`, `TSSChunkSizeBytes`. - **SMTP** — server, port, přihlášení, SSL. Tlačítko „Reset konfigurace" na úvodní obrazovce obnoví výchozí hodnoty. --- ## Changelog ### 1.3.4 (2026-06-09) - Oprava: import produktů již nepřepisuje ceny v číselníku variant na `0`. Předdefinované ceny variant (sloupec *Cena*) zůstávají po importu zachovány a není nutné je zadávat znovu ručně. ### 1.3.3 (2025-06) - Přidán tag pro zpracování e-mailu (processing email) při tisku štítků ### 1.3.2 - Oprava agregace množství (quantity) při generování štítků ### 1.3.1 - Přidán sloupec „Vlastnost 1 varianta" (`[CsvColumn("Vlastnost 1 varianta")]`) ### 1.3.0 (2025-05-26) - Přidán TSS REST API client (v.1.0.0) - Rozšíření konfigurace o hodnoty pro TSS REST API client - Přidána obrazovka „Odeslání digitálních dat" ### 1.2.4 (2025-05-19) - Rozšíření podpory přípravy balíčků k tisku o generování digitálního obsahu podle cílového e-mailu - Přidán do konfigurace e-mail a identifikace formátu digitálního obsahu ### 1.2.3 (2025-04-28) - Editace hodnot Minimum/Maximum na Produktu a Variantě - Editace RAW hodnot pro Kategorie produktu, variant a mapování Batch CSV sloupců + delimiter - Kontrola duplicit source souborů v importu Batch CSV ### 1.2.2 (2025-04-01) - Při importu produktů se nastavuje fixní ShortDescription a Description pro produkt - Přidány sloupce Maximum/Minimum quantity pro varianty ### 1.2.1 (2025-04-01) - Přidána možnost definovat agregaci při generování štítků a přidávání kalkulovaných sloupců - Rozšíření nastavení (konfigurace) tisku štítků ### 1.2.0 (2025-03-13) - Upgrade na .NET 9.0 - Přidána podpora pro tisk štítků podle importovaného .CSV do xlsx (Excel) - Přidána funkce generování repository v Editaci Produktů ### 1.1.1 (2025-03-13) - Opraveno, Nový a Uložit otevře dialog pro uložení - Oprava importu produktů, měsíc importu v Url je formátován na dvě číslice - Oprava importu produktů, při importu se SKU složí ze jména importovaného souboru bez koncovky - Oprava výchozího mapování sloupců ### 1.1.0 (2024-10-16) - Přidán launch screen - Přidána obrazovka Editace produktů s podporou importu ze struktury ### 1.0.2 (2024-10-05) - Úprava mapování na sloupečky CSV, nastavení defaultů - Přidáno nastavení pro promazání výstupního adresáře, včetně nastavení ### 1.0.1 (2024-09-27) - Přidána podpora generování protokolu (.csv) - Rozšíření datové struktury o položky OutputFileName, ExternalOrder, ExternalOrderDate - Oprava chyb UI ### 1.0.0 (2024-09-27) - První verze