Skip to main content
A shipping method in the shop is made up of two building blocks. The Delivery section defines the rules that apply to all shipping methods. Each +Deliverer section then describes a single shipping method with its costs and conditions. Because a single shipping method can have a great many conditions, the configuration moves the more complex ones into separate definitions sections. There you create a rule once with an ID and reference it from any number of +Deliverer sections. This page follows exactly this order. First the basic settings, then the individual shipping method, then the four definitions sections, and finally the additional features for delivery date, partial delivery, gift wrapping, age restriction, and shipment tracking. Reference: Shop configuration shop.config, overview of all sections

Delivery

Basic settings for all shipping methods.

Delivery and billing country

AddressCountryDiffersDeliveryCountryExcept4VAT-Allow = yes means: if VAT is paid, the delivery country can be any country from the delivery country configuration. If no VAT is paid, the delivery country must be the same as the billing country. With no, the billing country must always also be the delivery country.
VAT is determined based on the billing address, not the delivery address.

Shipping cost calculation

DeliveryCostCalculation-Mode has three values. CalculateOnce calculates the shipping costs once for the entire order and is the default. CalculateSeparateForEachPosition calculates them per basket item. CalculateSeparateForEachPositionAndUsedDeliveryAddress calculates them per delivery address and only applies to delivery to multiple addresses. SubTotalDependentDeliveryCosts-Base determines which amount triggers the shipping cost scale. This is particularly relevant when vouchers are involved. An example makes the difference clear. Shipping is free from 10 euros. The basket contains a product for 11 euros plus a 10 percent voucher. The subtotal is 9.90 in both cases. Only the basis of assessment for the scale changes.
With OrderDiscount, the switches ConsiderProductGroupDiscountForOrderDiscount-Allow and ConsiderProductDiscountFactorForOrderDiscount-Allow from the OrderConditions section also take effect.
Reference: OrderConditions section

Book shipment

If either of the two maximums is exceeded, all shipping methods with BookDelivery-Allow = yes are no longer available for this order. Both parameters only take effect if they are specified and greater than 0. The unit of weight comes from the product data. Which shipping method is ultimately available depends on the interplay between the basket contents, BookDeliveryType here, and BookDelivery-Allow in the respective +Deliverer section. The two rows that seem surprising at first glance can be explained as follows. In a mixed basket with BookDeliveryType = all, not all items are books, so the order isn’t a book shipment. That’s why exactly those shipping methods are available that are not allowed for book shipments. If there are no books in the basket at all, the same applies regardless of the type.

Multiple delivery addresses

With DelivererSelectionPerBasketPosition-Allow = test, a new session is created when leaving test mode.
The cost scale for multiple delivery addresses follows the pattern (count:percentage:absolute). If both cost types are specified, the higher value is charged.
From 2 delivery addresses, the cost is 5 percent of the item value or 2.00 euros, whichever is higher. From 3 delivery addresses, a fixed 1.90 euros. From 5 delivery addresses, 4.5 percent of the item value.
These costs are added to the costs of the shipping method. The costs from the +Deliverer sections remain unaffected.
MultiDeliveryCheckDeliveryAtCombinedAddress-Allow determines whether the full delivery checks run. These are all checks that must be passed before an order is submitted, for example validity of the delivery addresses, permitted combinations of delivery country and VAT, and quantity distributions.

Product-dependent shipping methods

+Deliverer

Defines a single shipping method. Up to 150 +Deliverer sections are possible. The order in the configuration determines the display order in the shop.

When a section is read at all

As with payment methods, the kernel first checks two things and discards the entire section if a check fails. No message appears. This explains the note in the previous documentation that Country-Txt must be used if Name-Txt is empty. If both are empty, the shipping method doesn’t exist.
Two global settings override all +Deliverer sections. If the freight cost module is active, all shipping methods are deactivated. If the order runs through a customer-specific quote, all shipping methods except the first are deactivated, and this first one is overwritten with the name and costs from the quote. In both cases, the configuration of the +Deliverer sections has no effect. These two rules aren’t described in the previous documentation.

Basic information

GroupID and MerchantDefinitionsFile aren’t described in the previous documentation and have been added here.
With AutoOrderReference, the first available and applicable shipping method with the passed reference is selected.

Local tags in Suffix-Txt

Display

The ID of an +AdditionalInfo parameter can contain alphanumeric characters, hyphens, and underscores.
Only set HideCostsInName to yes if you use the local tags Cost, GrossCost, or NetCost in Suffix-Txt. Otherwise, the shipping costs aren’t shown at all when selecting the shipping method.

Shipping costs

Costs can be specified as absolute amounts or as a percentage of the merchandise value. Up to 500 scale levels are supported. Decimal places are separated with a period. MinCost applies if no scale is stored in BasicCost-List or if the calculated costs would be lower. ProductCost-Allow controls the product-dependent calculation. no turns it off, id calculates by shipping method ID, and id_zip additionally by postal code range.
Three shipping cost settings aren’t described in the previous documentation and have been added here.FaktorCost-Value defines unit costs.UserDeliveryCostReduction-Value is only read if the shipping cost reduction switch is set in the customer account.The DestinationDependentWeightCost subsection allows a weight-based scale that depends on the destination country. Its parameters aren’t documented. Please ask WEBSALE AG if you need them.In addition, the kernel accepts the spelling BasicCostList without a hyphen and reads it before BasicCost-List. If both are in the configuration, the spelling without the hyphen wins. Use BasicCost-List.

Availability by amount, weight, and volume

Availability by country

Availability by products in the basket

If DeliveryFilterID-List is specified without a leading plus, all +DeliveryFilterID-List parameters are ignored. With several +DeliveryFilterID-List parameters, the shipping method is available as soon as one of the specified combinations matches the products in the basket.Always configure the parameter first and then add the entries to the product data.
AllowForInventoryStateAtLeast requires at least one matching product in the basket for each listed stock level.
With this setting, the shipping method is available if the basket contains at least one green and at least one yellow product. A basket with only green products doesn’t meet the condition.
A product without a stock level is treated like a product with stock level “green”.

Availability by order type and customer

AllowForReferer-Qualification and the two referer lists work together. The qualification determines whether the shipping method appears at all with or without a set referer. The lists then determine which specific referers are allowed or excluded. If several checkout types should be supported, specify multiple comma-separated values for AllowForCheckouts-List.

References to definitions sections

DelivererAdditionalInput-Definitions

Here you define additional input fields for shipping methods, for example a phone number that is only needed for freight forwarding delivery. The assignment is made via +UseAdditionalInput-ID in the +Deliverer section. The section may only appear once in the shop.config.

+AdditionalInput

Three peculiarities of the evaluation aren’t documented and have been added here.If MaxLength is 0 or exceeds the internal maximum, it is silently set to this maximum.Type = checkbox sets MaxLength to a fixed 10, because only checked or nothing is stored as the value.Any value of Type other than listbox or checkbox results in input.

+listentry

The entries of a selection list. Only needed if Type = listbox is set. Each subsection corresponds to one entry in the drop-down list.

+VisibilityDependency and +RequiredDependency

Both subsections are optional and structured the same way. +VisibilityDependency controls whether the field appears at all. +RequiredDependency controls whether the visible field is a required field. Multiple +VisibilityDependency sections are OR-combined, the +Dependency sections within them are AND-combined.
If you use either of the two sections, Required must be set to no. Otherwise, the field is always a required field regardless of the conditions.
The +Condition subsection is only evaluated for billaddress, delivaddress, onlydelivaddress, and additionalinput. The four values starting with delivaddress- check the state itself and don’t need a condition. In the two wildcard checks, ? stands for exactly one arbitrary character and * for any number of characters. The asterisk may only appear at the end.

DelivererAddressDependencies-Definitions

Makes a shipping method dependent on the entries in the billing or delivery address. The assignment is made via +UseAddressDependency-ID. The section may only appear once in the shop.config and requires at least one +AddressDependency subsection.
The conditions make a shipping method available when they are met. An exclusion can’t be expressed. If you want to exclude a shipping method for certain addresses, phrase the condition negatively, for example with empty or notvalue.
Note the nesting. +AddressDependency contains +DependencyGroup, which contains +Dependency, which contains +Condition. Reference: AddressFields-Txt section

DelivererProductDependencies-Definitions

Makes a shipping method dependent on the product index, the product number, or a custom product data field. The assignment is made via +UseProductDependency-ID. This section may also only appear once in the shop.config and requires at least one +ProductDependency subsection.
Here too, the conditions make a shipping method available when they are met. An exclusion can’t be expressed.
Custom product fields have the prefix AF-, for example AF-FSK18. They must also be enabled for the basket in the AdditionalProductFieldsInBasket section. Reference: AdditionalProductFieldsInBasket section

DelivererShowDisabled-Definitions

Controls whether an unavailable shipping method is grayed out instead of not being displayed at all. You create a rule and enter its ShowDisabled-GroupID in the relevant +Deliverer sections. The section may only appear once in the shop.config. Grouping is the actual purpose. If you create a separate +Deliverer section for the same carrier for each delivery zone, a shared GroupID prevents the same carrier from appearing grayed out multiple times. A shipping method is only displayed grayed out when all related +Deliverer sections are unavailable.
The rules aren’t mandatory. For the sake of traceability, however, it’s a good idea to create one for each shipping method.

Rejection reasons

Preferred delivery date

There are two sections for the preferred delivery date. DeliveryDate offers the simple variant with a continuous list of days. AdvDeliveryDate offers the advanced variant with weekdays, public holidays, and an order cutoff time. Use one of the two, not both.

DeliveryDate

With Days-Value = 10 and DaysOffset-Value = 5, for an order on November 20, the selection list contains the ten days from November 25 to December 4.

AdvDeliveryDate

TimeLimit defines the order cutoff time. With TimeLimit = 10, the current date is the basis for the date calculation for all orders up to and including 10:00 a.m. For later orders, it’s the following day. The value 0 means that the delivery time is always calculated from the order cutoff time of the order day, regardless of the time of day. In the example above, for an order before 10 a.m., the next business day is offered as the earliest possible delivery date; for an order after 10 a.m., the business day after that. The selection list extends 90 days into the future.
Two limits aren’t described in the previous documentation and have been added here. A TimeLimit above 24 is set to 24. A DeliveryRange above 36500 is set to 3650; values in between remain unchanged.
Only public holidays in the future are taken into account. The specified days don’t appear in the selection list.

PartialDeliverySelection

Defines whether the buyer can choose between partial delivery and complete delivery.
The +BasketInventoryState-Group parameter can appear multiple times. Each line forms a group.

GiftPackage

Configures optional gift wrapping.
With VATType = dynamic, the VAT rate with the highest total in the basket determines the rate for the gift wrapping.
With VATType = dynamic, VATRate-Value must not contain a value.
Reference: VATRates section

EigenhaendigPlus

Configures the Eigenhändig Plus shipping method for age-restricted products. You define which products are affected in the AgeRestrictedProductList section.
Whether a shipping method is offered when Eigenhändig Plus is active is controlled in the respective +Deliverer section via the EigenhaendigPlus parameter with the values allow and deny. Reference: AgeRestrictedProductList section

ShipTrack

Holds the access credentials of the shipping service providers for shipment tracking. One +Entry subsection per provider. You address the entry in the template via the ID assigned there.
Other languages are possible. Clarify this directly with the shipping service provider. Reference: ShipTrack tags for output in the template