Alle Positionen eines Angebotes auflisten

GET /api/offer-items?offer_id={offer_id}

Angebotspositionen können immer nur für eine bestimmtes Angebot zurückgegeben werden.
Deshalb ist offer_id ein Pflichtparameter.

<?xml version="1.0" encoding="UTF-8"?>
<offer-items type="array" page="1" per_page="100" total="2">
    <offer-item>
        ...
    <offer-item>
    <offer-item>
        ...
    <offer-item>
</offer-items>

Einzelne Position aufrufen

GET /api/offer-items/{id}
<?xml version="1.0" encoding="UTF-8"?>
<offer-item>
    <id type="integer">1</id>
    <article_id type="integer">123</article_id>
    <offer_id type="integer">1</offer_id>
    <position type="integer">1</position>
    <unit>Stück</unit>
    <quantity type="float">5.2</quantity>
    <unit_price type="float">10.0</unit_price>
    <tax_name>MwSt</tax_name>
    <tax_rate type="float">19.0</tax_rate>
    <title>Visitenkarten</title>
    <description>Wunderschöne 4c Visitenkarten</description>
    <total_gross type="float">49.98</total_gross>
    <total_net type="float">42.0</total_net>
    <reduction>10</reduction>
    <total_gross_unreduced type="float">61.88</total_gross_unreduced>
    <total_net_unreduced type="float">52.0</total_net_unreduced>
    <optional>0</optional>
</offer-item>

Position erstellen

POST /api/offer-items

Angebotspositionen können nur für Angebote mit Status Entwurf (DRAFT) erstellt werden.

XML-Element Beschreibung Typ Default-Wert Pflichtfeld
offer_id ID des Angebots INT ja (nicht aber bei der Angebotserstellung)
article_id ID des Artikels, setzt bei Neuanlage zusätzlich die Werte aus Artikel INT
unit Einheit ALNUM
quantity Menge FLOAT 0.0
unit_price Preis pro Einheit FLOAT 0.0
tax_name Steuerbezeichnung ALNUM Standard-Steuersatz
tax_rate Steuerrate in Prozent FLOAT Standard-Steuersatz
title Titel ALNUM
description Beschreibung ALNUM
reduction Rabatt (Absolut oder als Prozentwert: 10/10%) ALNUM
optional Gibt an, ob es sich um eine optionale Position (=1) handelt. Der Preis wird dann nicht bei der Gesamtsumme berücksichtigt INT

Die Angebotsposition wird nach eventuell bereits bestehenden Positionen angefügt.

<offer-item>
    <offer_id>1</offer_id>
    <unit>Stück</unit>
    <quantity>5.2</quantity>
    <unit_price>10.0</unit_price>
    <tax_name>MwSt</tax_name>
    <tax_rate>19.0</tax_rate>
    <title>Visitenkarten</title>
    <description>Wunderschöne 4c Visitenkarten</description>
    <optional>1</optional>
</offer-item>
<?xml version="1.0" encoding="UTF-8"?>
<offer-item>
    <id type="integer">1</id>
    <article_id />
    <offer_id type="integer">1</offer_id>
    <created>2007-12-13T12:12:00+01:00</created>
    <position type="integer">1</position>
    <unit>Stück</unit>
    <quantity type="float">5.2</quantity>
    <unit_price type="float">10.0</unit_price>
    <tax_name>MwSt</tax_name>
    <tax_rate type="float">19.0</tax_rate>
    <title>Visitenkarten</title>
    <description>Wunderschöne 4c Visitenkarten</description>
    <total_gross type="float">61.88</total_gross>
    <total_net type="float">52.0</total_net>
    <optional>1</optional>
</offer-item>

Position bearbeiten

PUT /api/offer-items/{id}

Hier gelten die selben Parameter wie beim Anlegen, allerdings kann das verknüpfte Angebot (offer_id) nicht mehr geändert werden.
Angebotspositionen können nur für Angebote mit Status Entwurf (DRAFT) bearbeitet werden.

<offer-item>
    <unit>Stunde</unit>
    <quantity>8.5</quantity>
</offer-item>

Position löschen

DELETE /api/offer-items/{id}

Beim Löschen von Angebotspositionen wird position für alle verbleibenden Positionen neu vergeben (ohne die Sortierung zu ändern), um die evtl. entstandene Lücke wieder zu füllen.
Angebotspositionen können nur für Angebote mit Status Entwurf (DRAFT) gelöscht werden.