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.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
The cost scale for multiple delivery addresses follows the pattern
(count:percentage:absolute). If both cost types are specified, the higher value is charged.
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.
Basic information
GroupID and MerchantDefinitionsFile aren’t described in the previous documentation and have been added here.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.
Shipping costs
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
AllowForInventoryStateAtLeast requires at least one matching product in the basket for each listed stock level.
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.
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.
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.
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.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.
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
