PHPackages                             ages/edi-documents - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. ages/edi-documents

ActiveLibrary

ages/edi-documents
==================

EDI document generator (ORION XML DESADV + INVOIC) with SSCC code and label generator

04↓75%PHP

Since Jul 21Pushed 1mo agoCompare

[ Source](https://github.com/A-g-e-s/edi-documents)[ Packagist](https://packagist.org/packages/ages/edi-documents)[ RSS](/packages/ages-edi-documents/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

ages/edi-documents
==================

[](#agesedi-documents)

PHP knihovna pro generování EDI dokladů ve formátu **ORION XML** (GRiT) — dodací list **DESADV** a faktura **INVOIC** — včetně generátoru **SSCC kódů** (GS1) a **SSCC etikety** (PDF 100×150 mm).

Model odpovídá provozu: **jedna obalová jednotka = jedna faktura = jeden DESADV + jeden INVOIC + jedno SSCC**. Posílají-li se 3 palety, vzniknou 3 sady dokladů.

---

Dokumentace formátu
-------------------

[](#dokumentace-formátu)

Specifikace GRiT ORION je v lokální složce `doc/` (není součástí repozitáře — dokumentace je určena pouze pro potřeby zákazníka GRiT):

ZprávaDokumentDESADV`DESADV ORION XML CZE ENG 3.1.8.xlsx`INVOIC`Dokumentace INVOIC CZE ENG 3.1.2.xlsx`Ukázkové výstupy`desadv_*.xml`, `invoice_*.xml`---

Requirements
------------

[](#requirements)

- PHP 8.4+
- ext-dom, ext-mbstring
- mPDF `^8.3`

Installation
------------

[](#installation)

Path repository pro lokální vývoj:

```
{
    "repositories": [
        { "type": "path", "url": "../edi-documents" }
    ],
    "require": {
        "ages/edi-documents": "*"
    }
}
```

---

Configuration (Nette / neon)
----------------------------

[](#configuration-nette--neon)

Konfigurace je záměrně minimální — stačí GLN dodavatele a SSCC prefix. Plná data dodavatele (adresa, IČO, DIČ) a bankovní spojení se předávají per doklad: SU strana v `parties`, banka přes `InvoicDocument::$bankAccount` (typicky z dat faktury). Config hodnoty slouží jen jako fallback, když v dokladu chybí.

```
services:
    ediSupplier: Ages\EdiDocuments\Document\Party(
        qualifier: Ages\EdiDocuments\Document\PartyQualifier::Supplier
        gln: '8594000000009'
    )

    ediConfig: Ages\EdiDocuments\Config\EdiConfig(
        supplier: @ediSupplier
        ssccCompanyPrefix: '859400000'
        # testFlag: true                 # testovací zprávy
        # logoPath: %wwwDir%/img/logo.png  # logo na SSCC etiketě
    )

    - Ages\EdiDocuments\Generator\DesadvXmlGenerator
    - Ages\EdiDocuments\Generator\InvoicXmlGenerator
    - Ages\EdiDocuments\Sscc\SsccGenerator
    - Ages\EdiDocuments\Sscc\SsccLabelGenerator
```

---

Usage
-----

[](#usage)

### SSCC kód

[](#sscc-kód)

Generátor je bezstavový — pořadové číslo dodává aplikace (sekvence v DB, uloží se k zásilce). Kód se skládá z extension digit (`0`) + company prefixu + doplněného pořadového čísla + GS1 kontrolní číslice, celkem 18 číslic.

```
$sscc = $ssccGenerator->generate(759); // '085940000000007593'
SsccGenerator::isValid($sscc);         // true
```

Pro 9místný prefix zbývá 7 číslic série, tedy kapacita 0–9 999 999.

### DESADV + INVOIC

[](#desadv--invoic)

Generátory vrací `EdiDocumentFile` (`filename` + `content`, UTF-8). Názvy souborů odpovídají konvenci protistrany: `desadv_{docNumber}.xml`, `invoice_{docNumber}.xml`.

```
$file = $desadvGenerator->generate(new DesadvDocument(
    docNumber: '826400154',
    issueDate: new DateTimeImmutable(),
    ssccCode: $sscc,
    parties: [$buyer, $deliveryParty, $invoicee],   // SU se doplní z konfigurace
    articles: [
        new DesadvArticle(
            gtin: '6424002005780',
            name: 'Fiskars FF Silikonová mašlovačka',
            quantity: 1,
            supplierArticleId: '1023614',
            orderNumber: 'OB26127268',
            supplierOrderNumber: '825602536',
        ),
    ],
    orderNumber: 'OB26127268',
));

file_put_contents($dir . $file->filename, $file->content);
```

- Adresát zprávy (`receiver`) se bere z `receiverGln`, jinak z GLN strany `BY`.
- Strana `SU` (dodavatel): předej ji v `parties` s plnými daty (typicky z faktury); pokud chybí, doplní se z `EdiConfig`. U INVOIC se k SU připojí bankovní spojení (`InvoicDocument::$bankAccount`, fallback `EdiConfig::$bankAccount`) a variabilní symbol (default = číslo dokladu).
- INVOIC summary (součty, DPH skupiny 0/12/21 %) se počítá z položek.
- SSCC etiketa: odesílatele lze předat přes `SsccLabelData::$sender` (fallback `EdiConfig::$supplier`).

### SSCC etiketa

[](#sscc-etiketa)

PDF 100×150 mm, GS1-128 čárový kód s AI (00). Jedna strana na obalovou jednotku.

```
$pdf = $ssccLabelGenerator->generateLabel(new SsccLabelData(
    sscc: $sscc,
    recipientName: 'Odběratel a.s.',
    recipientStreet: 'Skladová 1',
    recipientCity: 'Bratislava',
    recipientZip: '90027',
    recipientCountry: 'SK',
    reference: '8261500157',      // číslo dokladu
    orderNumber: 'OB26127268',
    weightKg: 245.5,
));
```

---

Integrace do projektu gen
-------------------------

[](#integrace-do-projektu-gen)

1. EDI se generuje pro zákazníky se zapnutým příznakem `customer.edi` (checkbox „Generovat EDI doklady" ve formuláři zákazníka). GLN strany: BY = `customer.ean`, DP = `address.ean` odběrného místa, IV = `customer.ean_sk` u SK dodávek (jinak BY), SU = GLN z konfigurace + data dodavatele z faktury.
2. `EdiDocumentService::generateForInvoice()` se volá v `DispatchModel::finishDispatch` hned po vzniku faktury — SSCC (série = `invoice.id`), SSCC etiketa a DESADV + INVOIC XML tedy existují dřív, než ApiPrint uvidí zásilku. Soubory se ukládají do `Storage::DirEdi`, cesty na fakturu (`sscc`, `sscc_label_file`, `desadv_file`, `invoic_file`).
3. Číslo DESADV = kód výdeje (`orderDispatch->code`), číslo INVOIC = kód faktury.
4. `ApiPrint` (`ConsignmentModel::findLabels`) vrací navíc `ssccLabelUrl` (tiskne se s ostatními dokumenty) a `desadvXmlUrl` + `invoicXmlUrl` (desktopová aplikace ApiPrint je ukládá do konfigurovatelné složky).

Vývoj
-----

[](#vývoj)

```
composer install
composer phpstan   # level max
```

###  Health Score

21

—

LowBetter than 17% of packages

Maintenance61

Regular maintenance activity

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/20422823?v=4)[Jiří Hovad](/maintainers/A-g-e-s)[@A-g-e-s](https://github.com/A-g-e-s)

---

Top Contributors

[![A-g-e-s](https://avatars.githubusercontent.com/u/20422823?v=4)](https://github.com/A-g-e-s "A-g-e-s (4 commits)")

### Embed Badge

![Health badge](/badges/ages-edi-documents/health.svg)

```
[![Health](https://phpackages.com/badges/ages-edi-documents/health.svg)](https://phpackages.com/packages/ages-edi-documents)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
