W niniejszym artykule dowiedzą się Państwo, jak przesyłać informacje o rabatach i dopłatach do RetailForce Middleware.
Wymagania wstępne
- Podstawowa znajomość modelu dokumentów RetailForce
Informacje
Obsługiwane rabaty i dopłaty
Obecnie rabaty i dopłaty można przekazywać w payload dokumentu w następujący sposób:
- W ramach pozycji pojedynczej pozycji towarowej, a zatem jako rabat lub dopłata dla danej pozycji
- W ramach pozycji typu „Suma” (Uwaga: poniżej przedstawiono szczególne uwagi)
- Jako oddzielna pozycja dotycząca rabatu/dopłaty
Uwaga: Opcja 2 może nie być obsługiwana we wszystkich krajach. Proszę zapoznać się z właściwościami fiscalCountryProperties dla danego kraju.
Przenoszenie rabatów/dopłat dotyczących wszystkich pozycji towarowych za pośrednictwem sum częściowych lub sum końcowych nie jest obecnie obsługiwane. Wszystkie rabaty i dopłaty muszą zostać przypisane do poszczególnych pozycji.
Możliwe jest jednak przeniesienie wielu rabatów lub dopłat na jedną pozycję.
Ważne: Suma wszystkich wartości rabatów lub dopłat dla danej pozycji musi być równa różnicy między „GrossValue” a „BaseGrossValue”; w przeciwnym razie walidacja zakończy się niepowodzeniem.
Możliwe sposoby przenoszenia rabatów i dopłat
Wariant 1
Rabaty lub dopłaty są uwzględnione w odpowiedniej pozycji towarowej w tablicy „Discounts”.
Przykład:
Poniższy przykład przedstawia jedynie fragment, a nie pełną pozycję pozycji.
"BaseNetValue": 123.08,
"BaseGrossValue": 147.70,
"BaseTaxValue": 24.62,
"VatIdentification": 1,
"VatPercent": 20.0,
"Discounts": [
{
"DiscountValue": 14.7700,
"Caption": "Regular customer discount 10%",
"DiscountOrder": 0,
"Type": 1,
"TypeValue": 10,
"PromotionKeys": null,
"Identifier": "SKR-10"
}
],
"NetValue": 110.78,
"GrossValue": 132.93,
"TaxValue": 22.16,Szczegółowe informacje na temat poszczególnych elementów można znaleźć w artykule „Obiekt pozycji – pozycje”.
W powyższym przykładzie zastosowano rabat w wysokości 10% („TypeValue: 10”). Wartość „DiscountValue” jest obliczana na podstawie wartości „BaseGrossValue” (wartość przed rabatem). Aby obliczyć wartość „GrossValue”, od wartości „GrossValue” odejmuje się wartość „DiscountValue”.
Opłaty dodatkowe
Podczas przekazywania dopłat prosimy zwrócić uwagę na następujące kwestie:
- W przypadku dopłat wartości „DiscountValue” i „TypeValue” są wartościami UJEMNYMI!
Rodzaje rabatów i dopłat
„Discounts.Type” określa rodzaj rabatu lub dopłaty:
| Typ | Opis | Element |
| rabat / dopłata jako suma |
Rabatu/dopłaty określa się jako stałą wartość, np. „15 EUR rabatu” lub „5 EUR opłaty serwisowej”. W tym przypadku wartości „DiscountValue” i „TypeValue” są identyczne. |
"Type": "[0] = Allowance" lub: "Type": 0 |
| rabat/dopłata procentowa |
Dodatek/rabat jest określony jako wartość procentowa, np. „10% rabatu na produkty” lub „5% opłaty za obsługę”. W tym przypadku „TypeValue” określa wartość procentową, przy czym „DiscountValue” jest obliczane na podstawie odpowiedniej wartości „BaseGrossValue” danego produktu. Uwaga: W przypadku rabatów procentowych wartość „DiscountValue” należy zawsze obliczać z dokładnością do 4 miejsc po przecinku! |
"Type": "[1] = Discount" lub: "Type": 1 |
Wiele rabatów/dopłat
Tablica „Discounts” może zawierać wiele rabatów/dopłat.
Kolejność, w jakiej poszczególne rabaty lub dopłaty są stosowane do obliczenia wartości „GrossValue”, określa parametr „DiscountOrder”, przy czym pierwszy stosowany rabat ma wartość „0”.
Przykład zastosowania wielu rabatów:
W poniższym przykładzie do pozycji najpierw stosowana jest zniżka procentowa w wysokości 10%, a następnie zniżka w wysokości 5 EUR.
"BaseNetValue": 123.08,
"BaseGrossValue": 147.70,
"BaseTaxValue": 24.62,
"VatIdentification": 1,
"VatPercent": 20.0,
"Discounts": [
{
"DiscountValue": 14.7700,
"Caption": "Regular customer discount 10%",
"DiscountOrder": 0,
"Type": 1,
"TypeValue": 10,
"PromotionKeys": null,
"Identifier": "SKR-10"
},
{
"DiscountValue": 5.0000,
"Caption": "Special discount 5 EUR",
"DiscountOrder": 1,
"Type": 0,
"TypeValue": 5.0,
"PromotionKeys": null,
"Identifier": "SKR-10"
}
],
"NetValue": 106.61,
"GrossValue": 127.93,
"TaxValue": 21.32,Specjalna pozycja „Suma”
Rabaty lub dopłaty można również przenieść w ramach pozycji „Suma” (pozycja sumaryczna).
Należy jednak pamiętać, że samo określenie tego w pozycji „Total” NIE jest wystarczające. Rabat musi zostać rozłożony proporcjonalnie na poszczególne pozycje. Na przykład, jeśli w pozycji „Total” widnieje rabat w wysokości 10%, poszczególne pozycje również muszą wykazywać rabat w wysokości 10%.
Przykład:
{
"PositionNumber": 1,
"Type": 10,
"Rounding": null,
"BaseValue": 147.70,
"Value": 132.93,
"Discounts":[
{
"Identifier": "SKR-10",
"Caption": "Regular customer discount 10%",
"Type": 1,
"DiscountOrder": 0,
"DiscountValue": 14.7700,
"TypeValue": 10
}
],
"Caption": "Summe"
}
Wariant 2
W większości krajów rabaty i dopłaty można również przenosić jako oddzielne pozycje. Rabat lub dopłata są uwzględniane przy obliczaniu sumy dokumentu.
Rabaty są przekazywane jako wartości ujemne, a dopłaty jako wartości dodatnie!
Takie rabaty lub dopłaty definiuje się za pomocą pola „BusinessTransactionType”: „[1] = Rabat”.
Przykład:
W poniższym przykładzie rabat w wysokości 12 EUR jest wykazany jako oddzielna pozycja.
{
"PositionNumber": 1,
"Type": 3,
"Caption": "Discount",
"Identifier": "Discount",
"BusinessTransactionType": 1,
"VatIdentification": 1,
"VatPercent": 20.0,
"NetValue": -10.0,
"GrossValue": -12.0,
"TaxValue": -2.0
}
Ten artykuł został przetłumaczony automatycznie.
Komentarze
Komentarze: 0
Zaloguj się, aby dodać komentarz.