Skip to main content
Between the click on “Add to basket” and submitting the order, two kinds of settings come into play. The first determine what the basket itself looks like and what it displays. The second determine what is ultimately charged, that is, discounts, surcharges, minimum order values, and paid additional services. This page starts with the basket, then moves on to the order conditions and additional services, and ends with the special features of individual product types and order channels. Reference: shop.config shop configuration, overview of all sections

BasketEntries

Determines the properties of the basket and the texts that appear in the order data.

Texts in the order data

Limits and input filters

MaxPositions-Value limits the number of items, not the quantity per item. Any number of units of a single item can still be ordered.

Displaying discounts

All four accept the same two values. global deducts the discount from the basket only at the end. entry shows every price and every item already reduced. The default is global.

Numbering of order items

allproducts counts all visible products, mainproducts omits set subproducts. Products with the HideForBasket product data flag set are considered not visible and are never counted. In the format, the counting type comes first and the number of fixed digits second.
This unique, ascending numbering makes it easier to refer to a single item when customers have questions.

Further settings

Since quantities are usually whole numbers, DecimalSymbol is rarely needed. It affects, for example, the BASKET-PR-Quantity tag.
Two parameters in this section are no longer supported and should no longer be used.CombineBulkDiscount combined tiered prices of a product across multiple variants. Use the product group discount instead.DeliveryTextInOrder-Allow controlled the display of the shipping cost text in the order data.

AdditionalProductFieldsInBasket

Determines which free product data fields are available in the basket. This is the prerequisite for several other functions, including product-dependent payment methods, product-dependent shipping methods, and product-dependent vouchers.
UseTemplateExtension is not described in the previous documentation and has been added here. If it is set to yes, the value of each +Field is split at the first space. The field name comes before it, and the name of a template after it.
With UseTemplateExtension = no, the same entry would be read as the field name material incl_material.htm and would have no effect.
Once the maximum of twenty fields is reached, further entries are silently discarded. This also applies if the section appears multiple times in the configuration.

BasketProductOptions

Defines free fields at split item level, that is, inputs the buyer can make per basket item or per delivery address of an item, including optional costs. The section is deeply nested. A +BasketProductOption describes a field set. Requirements determines when this field set appears at all. Inputs contains the fields. Costs contains the costs that result from the inputs.

Basic setting

+BasketProductOption

UseOnce requests the fields once per order. BasketPosition per basket item. BasketPositionAddress per delivery address of an item with split order.

Requirements

Decides whether the field set appears. The +RequirementGroup sections are combined with or, the +Requirement sections within them with and.
With LevelOfUsage = UseOnce, only BasketSubTotalSum is allowed as Proof. The other values refer to a single item and make no sense for a one-time field.

Inputs

Reference: GenericInputChecks section

Costs

singleFixCost charges the value once per item. percentualSum calculates it as a percentage of the merchandise value of the item or the basket. multiplyWithQuantity multiplies it by the item quantity. The +ConditionGroup sections are combined with or, the +Condition sections within them with and. Allowed values for Type: filled, empty, value, notvalue, inlist, notinlist, prefix, notprefix, greaterthan, lessthan, inbetween, includedinlist, notincludedinlist, matchsimplewildcard, and notmatchsimplewildcard. With inbetween, the format of Value is start-end.
The source documentation listed the value matche-once for BasketBehavior. The correct value is match-once. The same typo also appears in the section on payment methods.
The costs are charged as soon as the conditions are met, even if the buyer leaves the input field empty or does not tick the checkbox.The exception is a condition that checks the input field itself, that is, Proof = BasketProductOptionInputID together with Type = filled. In that case, no costs arise if the field is empty.

OrderConditions

The central section for discounts, minimum order value, and small-quantity surcharge.

Minimum order value and small-quantity surcharge

SurchargeCalculation-Mode = subtotal uses the entire merchandise value. totalsumofproducts uses only the products that have not been excluded via the IgnoreForSurcharge product data field. An example for MinimumOrder-ConsiderVoucherDiscount-Allow: the minimum order value is 10 euros, the basket contains a product for 12 euros, plus a 20 percent voucher. MinimumOrder-PrimeShoppingHasAbsolutePriority = yes also lifts the minimum order values of vouchers and bonus points for Prime customers with the “no minimum order value” option.

Order value discount

If AppDiscount-List is filled, these tiers replace the tiers from Discount-List for app orders.

How discounts interact

These parameters decide on which basis each discount is calculated. They affect the total amount of all deductions, so it is worth setting them deliberately. ConsiderNetProductPriceForDiscountBaseWhenTaxFreeApplies only applies under three conditions. The shop must work with gross prices, tax calculation must run in the standard procedure, and VAT must be deducted for the buyer. This is typically the case for orders from non-EU countries. UseOnlyHighestDiscount-Allow compares the customer-specific discount, global discount, merchandise value discount, and product group discount, and grants only the highest of them.

Undocumented parameters for discount behavior

The kernel reads seven additional parameters in this section that are not described in the previous documentation.
These parameters affect price calculation. Only set them after consulting WEBSALE AG. Their release status has yet to be clarified.CommunityDiscount-List only takes effect with an active community integration. If the buyer is logged in as a community member, these tiers are used, and Discount-List serves only as a fallback if they are empty.

Order numbers and follow-up orders

If the subshop list is left empty, only orders from the subshop in which the buyer is currently shopping count. An asterisk counts orders from all subshops.

Further settings

AddProdToBasketOnlyInLoggedInState-Allow is mainly intended for semi-closed B2B shops. The Swiss rounding logic multiplies the final total by 20, rounds half up to zero decimal places, and divides by 20 again. It affects only the final total. Prices, subtotals, discounts, and tax amounts remain unaffected.
For all RemoveSigns parameters, the specified characters are removed without the buyer seeing a notice or error message.

OrderOptions1 to OrderOptions5

Defines paid additional services that are offered on the payment and shipping method page. Up to five sections are possible, each with up to 50 +Entry subsections.

Main section

If DeliveryCountry-List is set, the option is not offered for any other country.
WriteCostFreeSelectionsInOrder was missing from the sample code in the source documentation, even though the parameter is listed in the table. It has been added here.

+Entry

A free entry only appears in the order if WriteCostFreeSelectionsInOrder is set to yes.
The Display-Txt parameter is no longer needed. Costs are now displayed directly on the basket page via the BASKET-OrderOptionCost tag.

OrderSpecialInput

Controls the optional additional information for an order.
The Txt parameter is deprecated and no longer has any effect.
The removed characters disappear without a notice or error message to the buyer.

AcceptTermsAndConditions

Determines where the terms and conditions are displayed, whether the buyer must explicitly accept them, and whether the checkbox is preselected. In addition, you can configure a second checkbox here for sharing the email address with the shipping provider.
CombinedAddress is the page for selecting the billing and delivery address, PayDeliv the page for selecting payment and shipping methods, and PlaceOrder the order summary page.
The checkbox must not be implemented with the WS-CheckConditions tag. That is a superseded tag from an earlier integration method. Use WS-AcceptTermsAndConditions_input and WS-AcceptTermsAndConditions_checked instead.

Checkbox for data sharing

The preselection unchecked is the privacy-compliant setting.

DirectOrder

Defines the options for direct ordering, that is, ordering via an input table with product numbers.
DefaultInputLines-Value and ExtendInputLines-Value together must not exceed 100 rows.
With ShowBaseProductsAtDirectOrderInput-Allow = no, the buyer directly sees the entered variant combination. With yes, they see the base product and select the combination themselves via the selection list.

Notice texts

Offers

Holds the texts for customer-specific offers.
If an order is placed via a customer-specific offer, all shipping methods except the first are deactivated, and the first is overwritten with the name and costs from the offer. The same applies to the payment costs.

W2P

Holds the messages and texts for the web-to-print module. With SaveW2PToCookieBasket-Allow = yes, TicketID, DocID, ThumbnailURL, and OverwriteReturnURLs are included in the cookie basket and set again when it is read in.

AreaProduct

 Defines the settings for area products, that is, products whose price is derived from length and width.

Calculation

The area is length times width divided by the conversion factor. If buyers enter the dimensions in centimeters and the area price is stored in square meters, the factor is 10000. With UseDynamicWeightBasedOnCalculatedArea = yes, the total weight is the Weight product data field multiplied by the entered area. With no, the weight from the product data applies unchanged.

Display

The two units are display values only and are not included in the calculation. Only CalculatedAreaConversionFactor is responsible for that.

AgeRestrictedProductList

Holds the texts for selecting age levels when filtering age-restricted products.
The number in the parameter name is also the age level. For an entry “ab 15 Jahre” (ages 15 and up), you write Age15-Txt = ab 15 Jahre. You control which shipping method is offered for age-restricted products via the EigenhaendigPlus section. Reference: EigenhaendigPlus section

Subscription

Configures the subscription module, that is, delivery intervals, retry attempts, and the four notification emails. The section is fully described on the guide page for the subscription module and is therefore only linked here. Guide: Subscription module