Podatki
Dowiedz się, jak skonfigurować obsługę podatków w Deenruv — kategorie podatkowe, stawki, strefy i strategie kalkulacji
Aplikacje e-commerce muszą prawidłowo obsługiwać podatki, takie jak podatek od sprzedaży lub podatek od wartości dodanej (VAT). W Deenruv obsługa podatków składa się z:
- Kategorie podatkowe Każdy ProductVariant jest przypisany do konkretnej TaxCategory. W niektórych systemach podatkowych stawka podatku różni się w zależności od rodzaju towaru. Na przykład VAT w Wielkiej Brytanii ma 3 stawki: "standardowa" (większość towarów), "obniżona" (np. foteliki samochodowe dla dzieci) i "zerowa" (np. książki).
- Stawki podatkowe To stawka podatku stosowana do konkretnej kategorii podatkowej w danej strefie (Zone). Np. stawka podatku dla towarów "standardowych" w strefie Wielka Brytania wynosi 20%.
- Ustawienia podatkowe kanału Każdy Channel może określić, czy ceny wariantów produktów zawierają podatek, a także wskazać domyślną strefę (Zone) używaną do kalkulacji podatków.
- TaxZoneStrategy Określa aktywną strefę podatkową używaną przy obliczaniu, jaką stawkę TaxRate zastosować. Domyślnie używa domyślnej strefy podatkowej z ustawień kanału.
- TaxLineCalculationStrategy Określa podatki stosowane przy dodawaniu pozycji do zamówienia (Order). Jeśli chcesz zintegrować zewnętrzne API podatkowe lub inną asynchroniczną operację wyszukiwania, tutaj należy ją zaimplementować.
Konwencje API
W GraphQL API każdy typ posiadający cenę podlegającą opodatkowaniu dzieli tę cenę na dwa pola: price i priceWithTax. Ten wzorzec dotyczy również innych pól cenowych, np.
query {
activeOrder {
... on Order {
lines {
linePrice
linePriceWithTax
}
subTotal
subTotalWithTax
shipping
shippingWithTax
total
totalWithTax
}
}
}W swoim sklepie możesz zatem wybrać, czy wyświetlać ceny z podatkiem czy bez podatku, zgodnie z przepisami i konwencjami obowiązującymi w regionie, w którym działa Twoja firma.
Obliczanie podatku od pozycji zamówienia
Gdy klient dodaje pozycję do zamówienia (Order), następuje poniższa logika:
- Cena pozycji oraz to, czy cena zawiera podatek, są ustalane zgodnie ze skonfigurowaną
OrderItemPriceCalculationStrategy. - Aktywna strefa podatkowa jest określana na podstawie skonfigurowanej
TaxZoneStrategy. - Odpowiednia stawka TaxRate jest pobierana na podstawie TaxCategory wariantu produktu (ProductVariant) i aktywnej strefy podatkowej określonej w kroku 1.
- Wywoływana jest metoda
TaxLineCalculationStrategy.calculate()skonfigurowanejTaxLineCalculationStrategy, która zwraca jedną lub więcej pozycji podatkowych (TaxLines). - Finalna wartość
priceWithTaxpozycji zamówienia jest obliczana na podstawie wszystkich powyższych elementów.
Obliczanie podatku od wysyłki
Podatek od wysyłki jest obliczany przez ShippingCalculator wybranej metody wysyłki (ShippingMethod) zamówienia.
Konfiguracja
Ten przykład pokazuje domyślną konfigurację podatków (nie musisz jej podawać w swojej konfiguracji, ponieważ są to wartości domyślne):
import {
DefaultTaxLineCalculationStrategy,
DefaultTaxZoneStrategy,
DefaultOrderItemPriceCalculationStrategy,
DeenruvConfig,
} from '@deenruv/core';
export const config: DeenruvConfig = {
taxOptions: {
taxZoneStrategy: new DefaultTaxZoneStrategy(),
taxLineCalculationStrategy: new DefaultTaxLineCalculationStrategy(),
},
orderOptions: {
orderItemPriceCalculationStrategy: new DefaultOrderItemPriceCalculationStrategy(),
},
};