VAT
Defines how VAT is handled. This is the central section for all tax matters in the shop.
Net or gross
A price type stored in the customer account overrides this setting for the logged-in buyer. This lets a shop be a net shop for business customers and a gross shop for private customers. This is not described in the previous documentation.
Texts in the order data
VAT index for costs
Products don’t carry a fixed tax rate but an index between 1 and 10. For everything that isn’t a product, this section defines which index applies and whether it’s fixed or derived from the basket.static means that the specified index is used. dynamic means that the VAT rate with the highest total in the basket determines the rate.
Two peculiarities of the evaluation are not documented and are added here.If
DefaultVATRate is missing entirely, the kernel uses the value from DeliveryVATRate as the default index. An empty DefaultVATRate, on the other hand, results in 1.An index above the maximum is silently set to the maximum, and the value 0 becomes 1. No error message appears.VATType parameters in their respective sections.
Country-dependent tax liability
As a rule, these are all countries of the EU territory in each case.
The former parameter name
Countries is still read as a fallback if TaxCountries is missing or empty.
Tax exemption via the delivery address
Normally, the VAT ID of the billing address determines the exemption. The following two parameters shift this to the delivery address.
The value
test only takes effect in the shop’s general test mode. In production, the VAT ID of the billing address is then used.
Source of the tax rates
Standard reads the tax rates from the VATRates sections of this shop.config. ByDelivCountry-Managed takes them from the global WEBSALE VAT rate file. ByDelivCountry-Individual takes them from a file of your own, which must then be specified in VATRateDefinition-ByDelivCountry-DefinitionFile.
VATRateDefinition-TestMode only takes effect if the shop is actually running in test mode. In this case, the file from VATRateDefinition-ByDelivCountry-TestDefinitionFile is also used instead of the production file.If VATRateDefinition-ByDelivCountry-ISOForVATDiscount is empty, the kernel uses the value from VATRateDefinition-ByDelivCountry-StandardISO. This is not documented and is added here.Undocumented parameters
The kernel reads additional parameters in this section that are not described in the previous documentation.VATRates
Assigns a specific rate to each VAT index. Products carry only the index, not the rate. If the statutory VAT changes, you only need to adjust this one section instead of every single product.
This method is deprecated but still supported. WEBSALE instead recommends the global WEBSALE VAT rate file or a custom file, both via
VATRateDefinition-Mode in the VAT section.VATRates, you can use either country-dependent or date-dependent sections, never both and no combination of them. For a time-controlled changeover in specific countries, use campaign control.
Country-dependent tax rates
For each delivery country, you can create a separate section whose name ends with the 3-letter ISO code.VATRates apply.
The
VATRates section without a suffix is always required. Countries without different rates don’t need their own section.Which delivery country applies depends on the order path. In the normal ordering process, it’s the delivery country selected by the buyer. With PayPal Express Checkout, Klarna Express Checkout, and PayPal Checkout, the respective service provides the delivery country. This is not documented and is added here.Date-dependent tax rates
For a cutoff date, you can create a section whose name ends with the date in the formatJJJJMMTT (YYYYMMDD). The number represents the last day on which these rates apply.
Currency-Txt
Defines the base currency of the shop. This is the currency in which the product prices are stored.
AlternativeCurrency
Additionally displays prices in other currencies. WEBSALE AG keeps the exchange rates up to date unless you provide your own file.
The values of
SelectBoxMode correspond to the parameter names of the +Entry sections. In the source documentation, the first value was listed as Text instead of Txt. This is corrected here so that parameter and value match.+Entry subsection per offered currency.
PriceFormat
Defines how prices are displayed. All settings are optional.
JoinCurrency and JoinCurrencySymbol were missing from the sample code in the source documentation, although they appear in the parameter table. They are added here.ZeroIntegralPart only affects the PR-IPart() tag, and ZeroFractionalPart only affects PR-FPart(). With ZeroIntegralPart = -, 0,95 becomes the output -,95. With ZeroFractionalPart = --, 2,00 becomes the output 2,--.
The two join parameters only affect elements that WEBSALE V8s generates automatically, for example the order data format. If you positioned the currency manually in templates, you also need to adjust those templates.
Voucher-Txt
Enables voucher redemption and holds the related texts.
Basic settings
NewCustomerDefinition = NoOrder allows the voucher as long as the buyer hasn’t completed an order yet, even if a customer number already exists. NoCustomerNumber requires that no customer number exists yet.
VoucherInputLocation is a comma-separated list, not a single value. Allowed values are Basket, PlaceOrder, and PayDeliv. The value PlaceOrderAndBasket still exists for compatibility reasons and corresponds to Basket,PlaceOrder. If no entry matches, Basket is set.The list capability and the value PayDeliv for the payment and shipping method page are not described in the previous documentation and are added here.Multiple vouchers
With two vouchers with minimum order values of 20 and 30 euros,
UseSum requires a basket over 50 euros, while UseMax only requires one over 30 euros.
UseRoundedPercentalMultiVoucherDiscount = yes rounds each voucher individually and then adds them up. With no, the values are added first and then rounded.
MultiVoucher-MinOrderBehavior was missing from the sample code in the source documentation, although the parameter appears in the table. It is added here.The value test only takes effect in the shop’s general test mode. In addition, a change from yes to no only takes effect if no second voucher has been entered in the current session yet. This is not documented and is added here.META vouchers
A META voucher is a collective code that combines several individual voucher codes. When the buyer enters the META code, all associated sub-vouchers are redeemed. Only one META voucher can be redeemed at a time.Applicability to the basket
AllowToRedeemVoucherWithoutMatchingCatProdFilter is not described in the previous documentation and is added here.UnresolvedVoucherProducts-Allow = yes, a base product without a preselected variant can be stored as a voucher product. The buyer then selects the variant in the basket.
Texts
BonusPoints
Configures the merchant’s own bonus points system.
An
AmountPerPoint of 0 or a missing value silently results in 1. This is not documented and is added here.Texts in the order data
CustomerSubvention
Lets you grant each customer a subsidy.
BuyXPayY
Defines a promotion following the pattern “buy 3, pay for 2”. WEBSALE V8s currently supports only one promotion, so the +Entry subsection may only occur once.
ClimateNeutral
Configures the climate-neutral production service via ClimatePartner.
Calculation
You get the value for
CO2Factor from ClimatePartner.
In the source documentation, the format specification of this parameter was labeled
(Warenwert:Kosten) (value of goods:costs), while the explanatory text refers to certificate costs. This page consistently refers to certificate costs.VAT
Certificate
In
CertificateClient, you can use all tags of the billing address, for example like this:
CertificateOrderDescr, the local tag OrderNumber is available. With CertificateRetrieval-Mode = PerBasketPosition, ProductNumber and ProductName are also available.
Display of the emission quantity
BestPrice order module
The BestPrice order module is spread across four sections. One for the templates, one for the messages, and two for emails.BestPrice
BestPrice-Txt
The module’s messages.
BestPrice-PreorderMail
Confirmation email to the buyer.
In the source documentation,
SenderAddress was described as the “email address of the recipient”. It is the sender address. This is corrected here. The recipient is the buyer and is determined from the order.