AC- represent this consent in the template: you use them to build the consent banner, and you use them to enclose the services themselves so that a service never even makes it into the page without consent.
The underlying model
Three levels interlock, and the tags follow exactly this structure:- The individual service. Each privacy-relevant service is created as its own entry in the
<AgreementCookies>section of theshop.configand receives an ID. The corresponding tags start withAC-Entry. - The grouping. Services can be combined into groups, for example “Statistics” or “Convenience”, so that the visitor does not have to decide on each individual service. The corresponding tags start with
AC-ConsentGroup. - Everything at once. For the “Accept all” switch there are the tags with
AC-ConsentAll.
Prerequisite: enabling the function
AllAC- tags depend on the Allow parameter in the <AgreementCookies> section of the shop.config.
With
Allow = test, you can check a new consent banner without it becoming visible to visitors. Outside test mode, the shop behaves as with no.A complete consent banner
The individual tags are described further below, but in the template they always appear together. The following example shows a banner with groupings that only appears while a decision is pending.DC-DynamicLoop1 is necessary because AC-ConsentGroupList only returns a comma-separated list of group IDs and is not a loop tag. The dynamic loop splits this list, and AC-ConsentGroup() takes one ID per iteration.
You then enclose the service itself at the point where it is embedded:
OptIn and OptOut: when a checkmark means consent
Each service is assigned a type in theshop.config. The type determines how a set checkmark is to be read, and for one of the three types this is exactly the opposite of what you would expect.
With
OptOutChecked, the checkbox is therefore checked as long as the visitor has not consented, and the checkmark disappears as soon as they consent.
If a default for the checkbox is configured for a service and there is no cookie for it yet, the default wins.
AC-Entry_CheckboxIsChecked then shows the default state, regardless of whether consent has been given. Once the visitor has made a decision, only their decision counts.State of consent
These tags refer to consent as a whole and are permitted in all templates.AC-AgreementMade
The range is displayed if the shop visitor has made a decision on how their data is handled, i.e. has seen the banner and pressed the corresponding button.AC-AgreementMade_CookieName
Outputs the name of the cookie that records that the visitor has made a declaration of intent.The tag is mainly needed for the cookie overview in the privacy policy. There, the name remains correct even if it is changed in the configuration later.
AC-AgreementMadeForID()
The range is displayed if the visitor has consented to data processing by the service with the given ID. The ID comes from the configuration of the respective service.Use the negative range for replacement content, for example a placeholder instead of an embedded map with a note on how to give consent later.
AC-AgreementNeedsUpdate
The range is displayed if the configuration of the privacy-relevant services has been changed in such a way that updated consent is required.AC-AgreementNotMadeOrNeedsUpdate
The range is displayed if consent has not yet been given for all services or if an update is required. This is the usual enclosure around the entire banner.This tag combines two cases that you would otherwise have to query separately: the initial decision and a subsequent change to the services. For the banner, this is exactly the right condition, because the visitor must be asked in both cases.
The individual services
AC-Entry is a single tag, range tag and loop tag at the same time. As a single tag it outputs the number of configured services, as a range tag it applies if at least one service is configured, and as a loop it iterates over all services. All other AC-Entry_ tags refer to the service of the current loop iteration.
They are permitted in all templates. However, the
AC-Entry_ tags require a service to be active, so they belong in the {@AC-Entry} loop.
AC-Entry()
Optionally, the tag accepts a group ID as an argument. It then counts and iterates over only the services of that grouping.If the specified group ID is unknown, the single tag outputs 0, the loop runs no iterations and the range remains hidden. A typo in the ID therefore does not show up as an error in the template, only as an empty list.
AC-Entry_AgreementMade
The range is displayed if the visitor has consented to the use of this service.AC-Entry_CheckboxClass
Outputs the functional class names that must be assigned to the service’s checkbox.AC-Entry_CheckboxIsChecked
Outputschecked if the checkbox is to be checked. The tag is placed directly in the input element, without an attribute name.
Whether a checkmark means consent or objection depends on the type of service. See the section on OptIn and OptOut above.
AC-Entry_ConsentGroupID
Outputs the ID of the grouping to which the service is assigned. As a range tag, you can use it to check whether the service belongs to a grouping at all.AC-Entry_CookieName
Outputs the name of the cookie in which consent or objection to this service is stored.This lets you build the cookie table of the privacy policy from the configuration instead of maintaining it by hand. If a service is added, it automatically appears in the table.
AC-Entry_Descr
Outputs the description of the service. As a range tag, it only applies if a description is stored.AC-Entry_ID
Outputs the ID of the service. It is the same ID that you pass toAC-AgreementMadeForID().
AC-Entry_Name
Outputs the name of the service.AC-Entry_TrackingFrameworkList
Outputs the list of tracking frameworks through which consent to this service can be received in the WEBSALE app.For a pure web shop, this tag is irrelevant. It is only needed if an app is also in use.
AC-Entry_Type
Outputs the type of the service as a number: 0 for OptIn, 1 for OptOutChecked, 2 for OptOutUnchecked.For display in the banner,
AC-Entry_TypeIsOptIn and AC-Entry_TypeIsOptOut are the better choice. You mainly need the number for troubleshooting.AC-Entry_TypeIsOptIn
The range is displayed if the service is configured as OptIn.AC-Entry_TypeIsOptOut
The range is displayed if the service is configured as OptOut, i.e. as OptOutChecked or as OptOutUnchecked.The tag does not distinguish between the two OptOut variants. For a label that depends on the initial state of the checkbox, also evaluate
AC-Entry_Type.The groupings
They are permitted in all templates. Except for
AC-ConsentGroupList, they require a grouping to be currently enclosed.
AC-ConsentGroupList
Outputs all group IDs as a comma-separated list, in the order of the configuration.The tag itself is not a loop. You therefore always need a dynamic loop that splits the list and passes each ID individually to
AC-ConsentGroup().AC-ConsentGroup()
Encloses the grouping whose ID is passed as an argument. Within this enclosure, all otherAC-ConsentGroup_ tags are available.
A negative range is not provided for this tag. If you want to check whether there are any groupings at all, evaluate
AC-ConsentGroupList.AC-ConsentGroup_CheckboxClass
Outputs the functional class names for the grouping’s checkbox.The call to
ws_agreement_updatecheckboxes() is part of it. It keeps the checkmarks of the individual services and the “Accept all” switch in sync when the visitor toggles the grouping as a whole.AC-ConsentGroup_CheckboxIsChecked
Outputschecked if the grouping’s checkbox is to be checked, i.e. if consent has been given or is considered pre-set for all services in the grouping.
This tag also takes into account the defaults of the individual checkboxes, whereas
AC-ConsentGroup_FullAgreementMade does not. As long as the visitor has not yet decided, the group checkbox can therefore be checked even though no consent has been given yet.AC-ConsentGroup_Descr
Outputs the description of the grouping.AC-ConsentGroup_FullAgreementMade
The range is displayed if the visitor has consented to the use of all services in this grouping.AC-ConsentGroup_ID
Outputs the ID of the grouping.AC-ConsentGroup_Name
Outputs the name of the grouping.All services together
These three tags belong to the “Accept all” switch. They do not require an enclosure and are permitted in all templates.AC-ConsentAll_CheckboxClass
Outputs the functional class names for the checkbox that toggles all groupings and thus all services.AC-ConsentAll_CheckboxIsChecked
Outputschecked if the checkbox is to be checked, i.e. if consent has been given or is considered pre-set for all services.
AC-ConsentAll_FullAgreementMade
The range is displayed if the visitor has consented to the use of all groupings and thus all services.This lets you, for example, show a “Change privacy settings” link only to those who have not already consented to everything.
Related topics
- Guide: Consent to data processing
- Reference: AgreementCookies section
- Reference: DC-DynamicLoop1…9
