Zachęcamy Was do przejścia na nasze nowe, udoskonalone szablony. Dla sklepów B2C polecamy szablony Topaz, One Page Shop oraz Dla Gastronomii, natomiast dla platform B2B idealnym wyborem będą Rubin i Szafir.
W tym artykule dowiesz się jak zmodyfikować szablon Agat, aby przekształcić obsługę kanałów w zgodach marketingowych na bardziej czytelną. Wyrażanie zgody w przypadku istnienia wielu kanałów będzie wyglądało następująco:

W pierwszej kolejności dodaj odpowiednie tłumaczenia.
- Id: Consents_InTheFormOf, Tekst: w postaci
W katalogu js znajdź plik init.js. Narzędziem wyszukiwania wyszukaj frazę self.uicheckIfParentChecked. Znaleziona linia znajduje się w obszarze 6 linii kodu (widoczne poniżej), które należy usunąć.
$('body').on('click', '.channel-checkbox', function (e) {
self.uicheckIfParentChecked(e);
});
$('body').on('click', '.multiple-choice .input-group > label .switch-input[name=tos]', function (e) {
self.uicheckIfTosChannelChecked(e);
});
W głównym katalogu szablonu znajdź plik __loginconsents.liquid. Wyszukaj w nim frazę assign channelsSize. Następnie wyszukaj frazę clickableTOSExists. Kod pomiędzy znalezionymi liniami (włącznie z nimi) należy usunąć a następnie w tym miejscu wkleić poniższy.
{% assign channelsSize = tos.Channels | Size -%}
{% if channelsSize == 0 -%}
<div class="input-group switches">
{% if tos.Statement %}
<p class="multiple-switch">{% if tos.Required -%}* {% endif -%}{{ tos.Text }}</p>
{% else %}
{% assign clickableTOSExsits = true -%}
<label class="switch">
<span class="switch-name summary-tos-switch-name">{% if tos.Required -%}* {% endif -%}{{ tos.Text }}</span>
<input class="switch-input" type="checkbox" name="tos" value="{{ tos.Id }}" {% if tos.Required -%}
data-required="req" {% endif -%} />
<span class="switch-label"></span>
<span class="switch-handle"></span>
</label>
{% endif -%}
</div>
{% elsif channelsSize > 0 -%}
<div class="input-group switches">
{% assign onlyEmail = false -%}
{% if channelsSize == 1 and tos.Channels[0].Type == 1 -%}
{% assign onlyEmail = true -%}
{% endif -%}
{% if onlyEmail == false -%}
<span class="channel-warning tos-warning"><span
class="fa fa-exclamation-triangle"></span>{{translations.ChannelWarning}}</span>
{% endif -%}
{% for chn in tos.Channels -%}
<label class="switch channel-switch">
<span class="switch-name">{{tos.Text | Remove: '.'}} {{translations.Consents_InTheFormOf}} {{chn.Name}}</span>
<input class="switch-input" type="checkbox" name="tos" value="{{ tos.Id }}" {% if tos.Required -%}
data-required="req" {% endif -%} />
{% if onlyEmail == false -%}
<input class="switch-input channel-checkbox" type="checkbox" name="channelKey" value="{{ chn.Key }}" {% if
tos.Required -%} data-required="req" {% endif -%} />
{% else -%}
<input type="hidden" name="channelKey" value="{{ chn.Key }}" checked />
<input class="switch-input" type="checkbox" checked />
{% endif -%}
<span class="switch-label"></span>
<span class="switch-handle"></span>
</label>
{% endfor -%}
{% endif -%}
</div>
{% endfor -%}
</div>
{% if clickableTOSExists -%}
Kolejne zmiany będą wprowadzone w katalogu partials. Wewnątrz tego katalogu, w katalogu cart znajdź plik delivery-and-payment.html. Wyszukaj w nim frazę assign channelsSize. Następnie wyszukaj frazę required-fields-info. Kod pomiędzy znalezionymi liniami (włącznie z nimi) należy usunąć i w tym miejscu wkleić poniższy.
{% assign channelsSize = tos.Channels | Size -%}
{% if channelsSize == 0 -%}
<li class="{% if tos.Required -%} required-consent{% endif -%}">
<div class="input-group switches">
{% if tos.Statement %}
<p class="multiple-switch">{% if tos.Required -%}* {% endif -%}{{ tos.Text }}</p>
{% else %}
<span class="main-consent-warning tos-warning"><span
class="fa fa-exclamation-triangle"></span>{{translations.MainConsentWarning}}</span>
<label class="switch">
<span class="switch-name summary-tos-switch-name">{% if tos.Required -%}* {% endif -%}{{ tos.Text }}</span>
<input aria-label="tos" class="switch-input" type="checkbox" name="tos" value="{{ tos.Id }}" {% if
tos.Required -%} data-required="req" {% endif -%} />
<span class="switch-label"></span>
<span class="switch-handle"></span>
</label>
{% endif -%}
</div>
</li>
{% elsif channelsSize > 0 -%}
<li class="multiple-choice {% if tos.Required -%} required-consent{% endif -%}">
<div class="input-group switches">
{% assign onlyEmail = false -%}
{% if channelsSize == 1 and tos.Channels[0].Type == 1 -%}
{% assign onlyEmail = true -%}
{% endif -%}
{% if onlyEmail == false -%}
<span class="channel-warning tos-warning"><span
class="fa fa-exclamation-triangle"></span>{{translations.ChannelWarning}}</span>
{% endif -%}
{% for chn in tos.Channels -%}
<label class="switch channel-switch ">
<span class="switch-name">{{tos.Text | ToString | Remove: '.'}} {{translations.Consents_InTheFormOf}}
{{chn.Name}}</span>
<input aria-label="tos" class="switch-input" type="hidden" name="tos" value="{{ tos.Id }}" {% if
tos.Required -%} data-required="req" {% endif -%} disabled />
{% if onlyEmail == false -%}
<input aria-label="channelKey" class="switch-input channel-checkbox" type="checkbox" name="channelKey"
value="{{ chn.Key }}" {% if tos.Required -%} data-required="req" {% endif -%} />
{% else -%}
<input aria-label="channelKey" type="hidden" name="channelKey" value="{{ chn.Key }}" />
<input aria-label="channelKey" class="switch-input channel-checkbox" type="checkbox" />
{% endif -%}
<span class="switch-label"></span>
<span class="switch-handle"></span>
</label>
{% endfor -%}
</div>
</li>
{% endif -%}
{% endfor -%}
</ul>
<div class="input-group required-fields-info">
W katalogu partials/common znajdź plik footer.html. Wyszukaj w nim frazę assign channelsSize. Następnie wyszukaj frazę required-fields-info. Kod pomiędzy znalezionymi liniami (włącznie z nimi) należy usunąć i w tym miejscu wkleić poniższy.
{% assign channelsSize = tos.Channels | Size -%}
{% if channelsSize == 0 -%}
<li class="{% if tos.Required -%} required-consent{% endif -%}">
<div class="input-group switches">
{% if tos.Statement %}
<p class="multiple-switch">{% if tos.Required -%}* {% endif -%}{{ tos.Text }}</p>
{% else %}
<span class="main-consent-warning tos-warning"><span
class="fa fa-exclamation-triangle"></span>{{translations.MainConsentWarning}}</span>
<label class="switch">
<span class="switch-name summary-tos-switch-name">{% if tos.Required -%}* {% endif -%}{{ tos.Text }}</span>
<input aria-label="tos" class="switch-input" type="checkbox" name="tos" value="{{ tos.Id }}" {% if
tos.Required -%} data-required="req" {% endif -%} />
<span class="switch-label"></span>
<span class="switch-handle"></span>
</label>
{% endif -%}
</div>
</li>
{% elsif channelsSize > 0 -%}
<li class="multiple-choice {% if tos.Required -%} required-consent{% endif -%}">
<div class="input-group switches">
{% if tos.Statement %}
<p class="multiple-switch">{% if tos.Required -%}* {% endif -%}{{ tos.Text }}</p>
{% endif -%}
{% assign onlyEmail = false -%}
{% if channelsSize == 1 and tos.Channels[0].Type == 1 -%}
{% assign onlyEmail = true -%}
{% endif -%}
{% if onlyEmail == false -%}
<span class="channel-warning tos-warning"><span
class="fa fa-exclamation-triangle"></span>{{translations.ChannelWarning}}</span>
{% endif -%}
{% for chn in tos.Channels -%}
<label class="switch channel-switch ">
<span class="switch-name">{{tos.Text | ToString | Remove: '.'}} {{translations.Consents_InTheFormOf}}
{{chn.Name}}</span>
<input aria-label="tos" class="switch-input" type="hidden" name="tos" value="{{ tos.Id }}" {% if
tos.Required -%} data-required="req" {% endif -%} disabled />
{% if onlyEmail == false -%}
<input aria-label="cnannelKey" class="switch-input channel-checkbox" type="checkbox" name="channelKey"
value="{{ chn.Key }}" {% if tos.Required -%} data-required="req" {% endif -%} />
{% else -%}
<input aria-label="channelKey" type="hidden" name="channelKey" value="{{ chn.Key }}" />
<input aria-label="channelKey" class="switch-input channel-checkbox" type="checkbox" />
{% endif -%}
<span class="switch-label"></span>
<span class="switch-handle"></span>
</label>
{% endfor -%}
</div>
</li>
{% endif -%}
{% endfor -%}
</ul>
<div class="input-group required-fields-info">
W tym samym katalogu znajdź plik registration-consents.html. Kod w pliku należy usunąć i wkleić poniższy.
<ul>
{% for tos in config.TOS.Consents.Registration -%}
{% assign channelsSize = tos.Channels | Size -%}
{% if channelsSize == 0 -%}
<li class="{% if tos.Required -%} required-consent{% endif -%}">
<div class="input-group switches">
{% if tos.Statement %}
<p class="multiple-switch">{% if tos.Required -%}* {% endif -%}{{ tos.Text }}</p>
{% else %}
<span class="main-consent-warning tos-warning"><span class="fa fa-exclamation-triangle"></span>{{translations.MainConsentWarning}}</span>
<label class="switch">
<span class="switch-name summary-tos-switch-name">{% if tos.Required -%}* {% endif -%}{{ tos.Text }}</span>
<input aria-label="tos" class="switch-input" type="checkbox" name="tos" value="{{ tos.Id }}" {% if tos.Required -%} data-required="req" {% endif -%}/>
<span class="switch-label"></span>
<span class="switch-handle"></span>
</label>
{% endif -%}
</div>
</li>
{% elsif channelsSize > 0 -%}
<li class="multiple-choice {% if tos.Required -%} required-consent{% endif -%}">
<div class="input-group switches">
{% assign onlyEmail = false -%}
{% if channelsSize == 1 and tos.Channels[0].Type == 1 -%}
{% assign onlyEmail = true -%}
{% endif -%}
{% if onlyEmail == false -%}
<span class="channel-warning tos-warning"><span class="fa fa-exclamation-triangle"></span>{{translations.ChannelWarning}}</span>
{% endif -%}
{% for chn in tos.Channels -%}
<label class="switch channel-switch">
<span class="switch-name">{{tos.Text | ToString | Remove: '.'}} {{translations.Consents_InTheFormOf}} {{chn.Name}}</span>
<input aria-label="tos" class="switch-input" type="hidden" name="tos" value="{{ tos.Id }}" {% if tos.Required -%} data-required="req" {% endif -%} disabled/>
{% if onlyEmail == false -%}
<input aria-label="channelKey" class="switch-input channel-checkbox" type="checkbox" name="channelKey" value="{{ chn.Key }}" {% if tos.Required -%} data-required="req" {% endif -%} />
{% else -%}
<input aria-label="channelKey" type="hidden" name="channelKey" value="{{ chn.Key }}"/>
<input aria-label="channelKey" class="switch-input channel-checkbox" type="checkbox"/>
{% endif -%}
<span class="switch-label"></span>
<span class="switch-handle"></span>
</label>
{% endfor -%}
</div>
</li>
{% endif -%}
{% endfor -%}
</ul>
<div class="input-group required-fields-info">
* {{ translations.Com_RequiredFields }}
</div>
Ostatnim modyfikowanym plikiem będzie plik customer-consents.html w katalogu customer. Kod w pliku należy usunąć i wkleić poniższy.
{% assign anythingToAccept = false -%}
{% for tos in customerProfile.Consents -%}
{% if tos.Checked == false or tos.Updated.Text %}
{% assign anythingToAccept = true -%}
{% endif -%}
{% endfor %}
{% include 'partials/common/date-format.html' -%}
<div class="all-users-consents">
<h2 class="main-title">{{ translations.UserConsents }}</h2>
{% if anythingToAccept == true %}
<div class="consents-box">
<span class="box-heading">{{ translations.Com_ToAcceptation }}</span>
<ul>
{% for tos in customerProfile.Consents %}
{% assign channelsSize = tos.Channels | Size -%}
{% assign updatedChannelsSize = tos.Updated.Channels | Size -%}
{% assign updatedContentsSize = tos.Updated.Contents | Size -%}
{% if tos.Checked == false or tos.Updated.Text %}
{% if channelsSize == 0 -%}
<li class="{% if tos.Updated.Text %} updated-consent {% endif -%}">
{% if tos.Statement -%}
<button aria-label="consentAccept" class="consent-accept" data-id="tos" data-key="{{ tos.Id }}">{{ translations.Com_Accept }}</button>
<p class="statement-consent">{% if tos.Required -%}* {% endif -%}{{ tos.Text }}</p>
{% else -%}
{% if tos.Checked == false -%}
<button aria-label="consentAccept" class="consent-accept" data-id="tos" data-key="{{ tos.Id }}">{{ translations.Com_Accept }}</button>
{% elsif tos.Updated.Text and updatedChannelsSize == 0 -%}
<button aria-label="consentAccept" class="consent-accept" data-id="tos" data-key="{{ tos.Id }}">{{ translations.Com_Accept }}</button>
<span class="consent-small-heading">{{ translations.NewConsentContent }}:</span>
<span class="switch-name">{% if tos.Required -%}* {% endif -%}{{ tos.Updated.Text }}</span>
<span class="consent-small-heading old-consent">{{translations.OldConsentContent}}:</span>
<span class="switch-name">{% if tos.Required -%}* {% endif -%}{{ tos.Text }}</span>
{% endif -%}
{% endif -%}
</li>
{% elsif channelsSize > 0 -%}
{% for chn in tos.Channels -%}
<li class="{% if tos.Updated.Text %} updated-consent {% endif -%}">
{% if tos.Updated.Text and updatedChannelsSize == 0 -%}
<button aria-label="consentAccept" class="consent-accept" data-id="tos" data-key="{{ tos.Id }}">{{ translations.Com_Accept }}</button>
<span class="consent-small-heading">{{ translations.NewConsentContent }}:</span>
<span class="switch-name">{% if tos.Required -%}* {% endif -%}{{ tos.Updated.Text }}</span>
<span class="consent-small-heading old-consent">{{translations.OldConsentContent}}:</span>
{% endif -%}
<span class="multiple-switch">{% if tos.Required -%}* {% endif -%}{{ tos.Text | Remove:'.' }} {{translations.Consents_InTheFormOf}} {{chn.Name}}</span>
{% if chn.Checked %}
<button aria-label="consentWithdraw" class="consent-withdraw" data-id="channelKey" data-key="{{ chn.Key }}">{{ translations.Withdraw }}</button>
{% else %}
<button aria-label="consentAccept" class="consent-accept" data-id="channelKey" data-key="{{ chn.Key }}">{{ translations.Com_Accept }}</button>
{% endif -%}
</li>
{% endfor -%}
{% endif -%}
{% endif %}
{% endfor %}
</ul>
</div>
{% endif -%}
<div class="consents-box">
<span class="box-heading">{{ translations.Com_Accepted }}</span>
<ul>
{% for tos in customerProfile.Consents -%}
{% assign channelsSize = tos.Channels | Size -%}
{% if tos.Checked %}
{% if channelsSize == 0 -%}
<li>
{% if tos.Required -%}
<span class="withdraw-warning">
<span class="fa fa-exclamation-triangle"></span>
<span>{{ translations.WithdrawWarning }}</span>
</span>
{% endif -%}
{% if tos.Statement-%}
<span class="accept-date">{{translations.AcceptationDate}}: {{tos.Date | Date:dateFormat}}</span>
<button aria-label="consentWithdraw" class="consent-withdraw" data-id="tos" data-key="{{ tos.Id }}">{{ translations.Withdraw }}</button>
<p class="statement-consent">{% if tos.Required -%}* {% endif -%}{{ tos.Text }}</p>
{% else %}
{% if tos.Checked %}
<span class="accept-date">{{translations.AcceptationDate}}: {{tos.Date | Date:dateFormat}}</span>
<button aria-label="consentWithdraw" class="consent-withdraw" data-id="tos" data-key="{{ tos.Id }}">{{ translations.Withdraw }}</button>
{% elsif tos.Checked == false %}
<button aria-label="consentAccept" class="consent-accept" data-id="tos" data-key="{{ tos.Id }}">{{ translations.Com_Accept }}</button>
{% endif -%}
<span class="multiple-switch">{% if tos.Required -%}* {% endif -%}{{ tos.Text }}</span>
{% endif -%}
</li>
{% elsif channelsSize > 0 -%}
<li>
{% for chn in tos.Channels -%}
{% if tos.Required -%}
<span class="withdraw-warning">
<span class="fa fa-exclamation-triangle"></span>
<span>{{ translations.WithdrawWarning }}</span>
</span>
{% endif -%}
<span class="multiple-switch">{% if tos.Required -%}* {% endif -%}{{ tos.Text | Remove:'.' }} {{translations.Consents_InTheFormOf}} {{chn.Name}}</span>
{% if chn.Checked %}
<span class="accept-date">{{translations.AcceptationDate}}: {{chn.Date | Date:dateFormat}}</span>
<button aria-label="consentWithdraw" class="consent-withdraw" data-id="channelKey" data-key="{{ chn.Key }}">{{ translations.Withdraw }}</button>
{% else %}
<button aria-label="consentAccept" class="consent-accept" data-id="channelKey" data-key="{{ chn.Key }}">{{ translations.Com_Accept }}</button>
{% endif -%}
{% endfor -%}
</li>
{% endif -%}
{% if updatedChannelsSize > 0 -%}
<ul>
{% for chn in tos.Updated.Channels -%}
<li>
{% if tos.Updated.Text -%}
<span class="consent-small-heading">{{translations.NewConsentContent}}:</span>
<span class="switch-name">{% if tos.Required -%}* {% endif -%}{{ tos.Updated.Text | Remove:'.' }} {{translations.Consents_InTheFormOf}} {{chn.Name}} }}</span>
<span class="consent-small-heading old-consent">{{ translations.OldConsentContent }}:</span>
{% endif -%}
{% if chn.Checked %}
<button aria-label="consentWithdraw" class="consent-withdraw" data-id="channelKey" data-key="{{ chn.Key }}">{{ translations.Withdraw }}</button>
{% else %}
<button aria-label="consentAccept" class="consent-accept" data-id="channelKey" data-key="{{ chn.Key }}">{{ translations.Com_Accept }}</button>
{% endif -%}
</li>
{% endfor -%}
</ul>
{% endif -%}
{% if updatedContentsSize > 0 -%}
<ul>
{% for contents in tos.Updated.Contents -%}
<li>
<span>{{ contents.Name }}</span>
{{ contents.ContentHtml }}
</li>
{% endfor -%}
</ul>
{% endif -%}
{% endif -%}
{% endfor %}
</ul>
</div>
</div>