Skip to main content
Everything the shop addresses outside of itself is configured here. These are three different kinds of services. First, the services concerned with the visitor’s consent, that is, cookie consent and captcha. Then the business services the shop works with, from Trusted Shops through the e-marketing manager to the affiliate program. Finally, the technical interfaces through which data flows in both directions. Reference: Shop configuration shop.config, overview of all sections

AgreementCookies

The central section for consent to data processing. It defines which services the visitor can allow or reject individually or in groups. The selection is saved only when the visitor clicks a “Save settings” button.
The sample code in the source documentation closed the section with <AgreementCookies> instead of </AgreementCookies>. This has been corrected here.

Main switch

no assumes the visitor has consented. The entire section then has no effect, all wrappers in the templates become active, all services run, and all cookies are set. The same applies if the section is not present in the shop.config at all. yes activates the configured settings. In addition, the convenience functions are automatically disabled until they are configured and consent has been given. This affects the cookie basket, the welcome-back function, and affiliate, referrer, and design cookies. test displays all positive AC-AgreementMadeForID areas, so the wrapped services run for every visitor.
The source documentation states that Allow = test also takes effect “for normal shop requests in live operation”. However, the kernel only evaluates test if the shop is actually running in test mode. In live operation, test behaves like no.This difference matters, because it determines whether privacy-relevant services run for real visitors. Have this confirmed before you use test.

+Entry

One subsection per service for which consent is to be requested. OptIn means: the visitor checks the checkbox and thereby gives consent. OptOutChecked means: a checked checkbox counts as an objection. OptOutUnchecked means: an unchecked checkbox counts as an objection.
The checkbox for an entire group is always implemented as OptIn. It does, however, correctly process the different types of the services it contains.

WEBSALE convenience functions

Use a separate +WEBSALEService parameter for each function.
RefererCookie and AffiliateProgram should always be in the same group, because the two services are partly connected. Separate consent leads to gaps in advertising performance tracking.

Tracking status from the iOS app

Since iOS 14.5, the AppTrackingTransparency framework asks users when they first open the app whether they allow tracking. The framework passes the status to the WEBSALE app in the HTTP header. With iOSApp-AcceptViaTrackingFramework-List, you define as a comma-separated list for which status values this entry becomes active.
When the iOS app is used, no consent layer is displayed. Instead, the user makes the decision in the framework.

+ConsentGroupInfo

Combines several services into a group that the visitor can allow or reject together. The order of the +ConsentGroupInfo sections determines the display order in the template. Ungrouped services appear below them.
If there are services without a ConsentGroupID, the shop automatically creates a group with the ID ws_noconsentgroupfound and assigns all these services to it.

Captcha

You can integrate two captcha services. Both are configured here; the associated tags are described on their own pages.

ReCaptchaV3

reCAPTCHA returns a score between 0 and 1. 0 means very likely a bot, 1 very likely a human. Use MinimumScoreToPass to fine-tune the threshold. Reference: RECAPTCHAV3 tags

FriendlyCaptchaV1

FriendlyCaptcha offers a global endpoint and an EU endpoint. Which one applies to you is stated in the FriendlyCaptcha documentation. Reference: FRIENDLYCAPTCHAV1 tags

Trusted Shops

TrustedShopsAdvList

Defines the buyer protection products offered to the customer for selection. One +Entry subsection per product.
Per +Entry:
TSID-Txt must match the Trusted Shops specification exactly. The shop passes this value unchanged.You only need ERPID-Txt if your ERP system cannot process the Trusted Shops product ID directly.

TrustedShops-Txt

Texts for the confirmation page after an order, through which the buyer can register with Trusted Shops.
This section belongs to an outdated form of the Trusted Shops integration. The current integration uses TrustedShopsAdvList. Only use TrustedShops-Txt in existing shops that still rely on it.

eMarketingManager

The templates for newsletter management and the online view of the newsletter. In the configuration, the section is called eMarketingManager, without hyphens.
In the sample code of the source documentation, the explanations for ShopManage and ShopOnlineView were swapped. This has been corrected here. Each shop template includes the include area of the same name.

eMarketingManager-Txt

The success and error messages related to newsletter subscription.

WSAffiliateTemplates

The banner templates for the WEBSALE affiliate program. You only need this section if partners may use every product in the shop as a banner in addition to the banners you have created, the so-called dynamic banners.
In the source documentation, all three parameters used the same example ws_affiliate_category.htm. Descriptive examples are used here so the assignment remains clear.

ExternSystemLiveChecks

Checks the availability of external systems. Up to ten +Entry subsections, each with its own ID. You use this ID as the argument of the area tag WS-ExternSystemLiveCheck().
always sends a request for every check. failPersistant keeps sending requests until the check fails for the first time, and then treats it as failed for the rest of the session. successPersistant works the other way around and treats the whole session as successful after the first success.
A +Entry is silently skipped if ID is empty, URL is empty, or Type does not contain a valid number. Every tag that uses such a dropped ID as its argument remains unreplaced in the template.The previous documentation only lists ID and Type as required parameters. The fact that an empty URL also discards the entry has been added here.A Timeout of 0 or above the maximum is silently set to the maximum.
Choosing the timeout is a trade-off. Too small, and the check fails even though the external system is available. Too large, and page rendering is noticeably delayed if the system cannot be reached.

Interface for type 1

With Type = 1, the shop sends an HTTP GET request to the specified URL. If the system responds with OK, the check counts as successful. Any other response and any missing response count as a failure.
Reference: WS-ExternSystemLiveCheck()

IDSSchnittstelle

Configures the integrated data interface IDS. The sender data is sent to the requesting system; the remaining parameters control the transfer format.

Sender data

Transfer format

For the LABELWIN ERP system, five of these switches are predefined: SendVatInPercent = yes, RueckgabeKZ = yes, EncodeOrderInfo = no, GenerateOrderInfoIfEmpty = yes, ClearBasket = yes, and SurchargeAsOrderItem = yes.SendPriceBasis is not described in the previous documentation and has been added here.
The IDS interface must also be enabled for the shop. This activation is not a shop.config setting; it is done by WEBSALE AG. Without it, the entire section has no effect.

ASSE

The interface for asynchronous data transfer, Asynchronous Server Side Events. One +Entry subsection per transfer target.

+Entry

ID and Endpoint are required. If either is missing, the entry is discarded.Unlike most sections of the shop.config, ASSE reports configuration errors. An empty ID, an empty Endpoint, an unknown Type, and an unknown ServiceCategory each produce an internal error message. This is not described in the previous documentation and has been added here.ASSE also requires activation by WEBSALE AG, which happens outside the shop.config.
The values of ServiceCategory are predefined by WEBSALE. They correspond to different settings for retries and timeouts.

DefinitionOfOK

Optional section with the conditions for successful delivery. If it is missing, the data is sent once and the result is not checked. The +ConditionGroup sections are combined with or, the +Condition sections within them with and.

AdditionalHeaders

Optional section for additional HTTP headers. One +HttpHeader subsection with Name and Value per header.

Upload

Activates the upload module and stores the associated texts.
UploadLink writes a deep link with a secured upload ID to the order data. UploadLinkOrderNumber instead writes a deep link with a secured order number.

Download

The texts and URL logic for the download module.
default uses an absolute URL configured globally for all shops. relative inserts relative URLs. Which domain the browser then displays depends on the URL through which the download module was called.

TellAFriend

Controls whether and how the referrer information from the tell-a-friend function is written to the order data. The section is fully described on the page about the TAF tags and is therefore only linked here. Reference: TAF tags and TellAFriend section