Aktionen

Einleitung

Im Comarch Webshop haben wir Aktionen verfügbar gemacht.Aktionen sind Aktivitäten auf der Website im Zusammenhang mit der Interaktion des Benutzers (des Käufers und des Geschäftsleiters), wie z. B. Einkäufe tätigen, Produkte in den Warenkorb legen oder die Währung ändern.

Die Liste der verfügbaren Aktionen findest du im Webshop-Admin-Panel unter folgendem Pfad: Administrationspanel Webshop Layout Einstellungen Dokumentation.

Kundenbezogen

Wir können diese Aktionen in Bezug auf den Kunden und seine Aktionen auf der Website definieren. Diese Aktionen umfassen:

Accept DeliveryCountryChange
Add DeliveryDateChange
Cancel EmailSet
AttachmentAdd FastDeliveryCheck
AttachmentDelete InvoiceAddressUpdate
AttributesSet InvoiceChange
ComplaintAdd NoteAdd
BuyerChange PaymentMake
BuyerUpdate PointsUse
ComplaintCancel RestorePayment
Copy ReturnAdd
CouponAdd StatusGet
CouponDelete TinUpdate
DeliveryAddressUpdate StepNext
DeliveryChange StepPrev
DeliveryCollectionPointChange

Gilt für eine Bestellung

Aktionen in dieser Gruppe betreffen aufgegebene Bestellungen.

Diese Aktonen umfassen:

Accept DeliveryCountryChange
Add DeliveryDateChange
Cancel EmailSet
AttachmentAdd FastDeliveryCheck
AttachmentDelete InvoiceAddressUpdate
AttributesSet InvoiceChange
ComplaintAdd NoteAdd
BuyerChange PaymentMake
BuyerUpdate PointsUse
ComplaintCancel RestorePayment
Copy ReturnAdd
CouponAdd StatusGet
CouponDelete TinUpdate
DeliveryAddressUpdate StepNext
DeliveryChange StepPrev
DeliveryCollectionPointChange

Newsletter

Die Aktion ist für die mit dem Newsletter verbundene Aktivität verantwortlich.

Diese Aktonen umfassen:

GET Aktionen

Mit dieser Aktion kann man Daten zur Erstellung vom Server herunterladen z.ß. breadcrumbs.

Diese Aktonen umfassen:

Produkte

Diese Aktion ist für die Aktivitäten im Zusammenhang mit den Produkten verantwortlich, z. B. die Möglichkeit, Ihre Meinung zum Produkt hinzuzufügen.

Diese Aktonen umfassen:

AskForPrice ReviewAdd
CollectionPointsStockLevelsGet StockLevelsGet
ComparisonToolAdd WishListAdd
ComparisonToolDelete WishListCheck
DeliveryCostGet WishListDelete
FastDeliveryCheck WishListUpdate
NotifyAboutProductAvailability

Warenkorb

Diese Aktion ist für die Aktion im Zusammenhang mit dem Warenkorb verantwortlich, z. B. das Hinzufügen eines Produkts zum Warenkorb.

Diese Aktonen umfassen:

Add NameSet
AttributesSet PositionDelete
Change QuantityChange
Create Recalculate
Delete SetAdd
ExternalAdd SetExtAdd
ImportCSV

Kontakt

Diese Aktion ist für die Kontaktaufnahme zuständig, z.B. um sich nach einem bestimmten Produkt zu erkundigen.

Diese Aktonen umfassen:

Bearbeitung der Bestellung

Diese Aktionen beziehen sich auf die Bearbeitung der Aufträgen.

Diese Aktonen umfassen:

Accept PositionAttributesSet
AttributesSet PositionDelete
Cancel PositionQuantityChange
CartCreate PositionUndo
CartMerge Recalculate
Edit Undo

External

Diese Aktionen sind dafür verantwortlich, dass man sich über Facebook oder Google anmelden kann.

Diese Aktonen umfassen:

Sync

Diese Aktionen sind für Tätigkeiten im Zusammenhang mit dem Abruf von Daten aus den Datenbanken der Systeme zuständig.

Diese Aktonen umfassen:

Exec

Anfragen

Diese Aktionen sind für die Anfrageaktivitäten zuständig.
Diese Aktonen umfassen:

Benutzersitzung

Diese Aktionen sind für die Pflege von Benutzersitzungen zuständig.
Diese Aktonen umfassen:

 


Beschreibung der verwendeten Aktionen

CompanyChange

Diese Aktion ist für die Änderung des Unternehmens zuständig.

Parameter:

  • id (int, Pflichtfeld).
<form action=”{{ page.Url }}{{ page.QueryString | H }}” method=”post”>
<input type=”hidden” name=”__action” value=”Customer/CompanyChange”/>
<input type=”hidden” name=”id” value=””/>
</form>

 


CompanyDefaultUpdate
Die Aktion ist für das Laden der standardmäßigen Unternehmenseinstellungen verantwortlich.

Parameter:

  • id (int, Pflichtfeld).

<form action=”{{ page.Url }}{{ page.QueryString | H }}” method=”post”>
<input type=”hidden” name=”__action” value=”Customer/CompanyDefaultUpdate”/>
<input type=”hidden” name=”id” value=””/>
</form>


ConsentAccept

Aktion, die für das Akzeptieren der Zustimmung verantwortlich ist. Zum Beispiel bei einer Bestellung.

Parameter:

    • tos – (int oder null),
    • channelKey – (String).

{% for tos in customer-profile.Consents -%}
{% if tos.Checked == false -%}
<div class=”form-lq tos-ui”>
<div class=”tos-name-ui”>{{ tos.Text }}</div>
{% assign channelsSize = tos.Channels | Size -%}
{% if channelsSize > 0 -%}
{% for channel in tos.Channels -%}
<div class=”channel-ui”>
<button class=”agreements-in-profile-lq” data-action=”Customer/ConsentAccept” data-key=”{{ channel.Key }}”>{{translations.Accept}}</button>
<span class=”channel-name-ui”>{{channel.Name}}</span>
</div>
{% endfor -%}
{% else -%}
<div class=”date-container-ui”>
<button class=”agreements-in-profile-lq tos-lq” data-action=”Customer/ConsentAccept” data-key=”{{ tos.Id }}”>{{translations.AcceptAgreement}}</button>
</div>
{% endif -%}
</div>
{% endif -%}
{% endfor -%}


ConsentsLoginAccept

Die Aktion, die für das Akzeptieren der obligatorischen Zustimmung beim Anmelden verantwortlich ist. 

Parameter:

  • tosnimmt den Wert int [] – ein bestimmtes Feld kann mehrmals innerhalb einer Aktion übertragen werden, Wert int,
  • channelKey Feldtyp string[] – ein bestimmtes Feld kann innerhalb einer Aktion viele Male übertragen werden.

<form method=”POST”>
<input type=”hidden” name=”__action” value=”Customer/ConsentsLoginAccept”/>
{% for tos in __consents -%}
{% if tos.Required and tos.Statement == false -%}
{% assign requiredExists = true -%}
{% break -%}
{% endif -%}
{% endfor -%}
</form>


ConsentWithdraw

Die Aktion ist für den Widerruf der Einwilligung verantwortlich.

Parameter:

  • tos – (int oder null),
  • channelKey – (string).
{% for tos in customer-profile.Consents -%}
   {% if tos.Checked -%}
     <div class="form-lq tos-ui">
     <div class="tos-name-ui">{{ tos.Text }}</div>
       {% assign channelsSize = tos.Channels | Size -%}
        {% if channelsSize > 0 -%}
         {% for channel in tos.Channels -%}
          <div class="channel-ui">
          {% if channel.Checked -%}
              <button class="agreements-in-profile-js btn-pure-ui f-left-ui" data-action="Customer/ConsentWithdraw" data-key="{{ channel.Key }}">{{translations.Withdraw}}</button>
              <span class="channel-name-with-date-ui">{{channel.Name}}</span>
              <span class="date-label-ui">{{translations.AcceptanceDate}}: </span>
              <span class="date-ui"> <strong>{{channel.Date | Date:dateFormat}}</strong></span>
	      {% assign checkedChannelsSize = checkedChannelsSize | Plus:1 -%}
	  {% endif -%}
          </div>
         {% endfor -%}
         {% else -%}
          <div class="date-container-ui">
		<button class="agreements-in-profile-js tos-js btn-pure-ui" data-action="Customer/ConsentWithDraw" data-key="{{ tos.Id }}">{{translations.WithdrawAgreement}}</button>
		<span class="date-label-ui">{{translations.AgreementAccepted}}: </span>
                <span class="date-ui"> <strong>{{tos.Date | Date:dateFormat}}</strong></span>
		{% if tos.Required -%}
		     <div class="withdraw-required-info-ui error-ui">{{translations.WithdrawRequiredInfo}}!</div>
		{% endif -%}
	  </div>
         {% endif -%}
      </div>
    {% endif -%}
{% endfor -%}

 


 

CurrencyChange
Die Aktion ist für die Änderung der Währung zuständig. Es enthält ein Feld – Währung. Dies is
Parameter:
  • Currency – (string, Pflichtfeld).
<form method="post">
<select name="currency" required>
{% for currency in config.Currencies -%}
<option value="{{ currency.Code }}">{{ currency.Code }}</option>
{% endfor -%}
</select>
<button type="submit">Zmień</button>
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" required />
<input type="hidden" name="__action" value="Customer/CurrencyChange" required />
</form>

 


 

DeliveryAddressAdd

Die Aktion ist für das Hinzufügen der Adresse zur Lieferung zuständig.

Parameter:

  • addressIdDieses Feld kann int sein oder leer bleiben,
  • defaultDieses Feld wird auf bool gesetzt (true/false),
  • namePflichtfeld, die maximale Länge dieses Feldes beträgt 50 Zeichen,
  • name2Die maximale Länge dieses Feldes beträgt 50 Zeichen,
  • streetDie maximale Länge dieses Feldes beträgt 50 Zeichen,
  • streetNoDie maximale Länge dieses Feldes beträgt 20 Zeichen,
  • unitNoDie maximale Länge dieses Feldes beträgt 20 Zeichen,
  • zipCodePflichtfeld, die maximale Länge dieses Feldes beträgt 20 Zeichen,
  • cityDie maximale Länge dieses Feldes beträgt 50 Zeichen,
  • countryCodePflichtfeld, die maximale Länge beträgt 2 Zeichen,
  • stateDie maximale Länge dieses Feldes beträgt 50 Zeichen,
  • phoneNoDie maximale Länge dieses Feldes beträgt 50 Zeichen.
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Customer/DeliveryAddressAdd" />
<input type="hidden" name="__template" value="customer/profile-data.html" />
{% include 'customer/profile-data-address.html' %}
<button>Zatwierdź</button>
</form>

 


 

DeliveryAddressDelete
Die Aktion ist für das Löschen der Lieferadresse.
Parameter:
  • addressId(int, Pflichtfeld).
{% assign address = customer.DeliveryAddresses[0] -%}
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Customer/DeliveryAddressDelete" />
<input type="hidden" name="addressId" value="{{ address.Id }}" />
</form>

 


 

DeliveryAddressUpdate

Ermöglicht, die Adresse zu bearbeiten. Diese Aktion hat die folgenden Felder:

  • addressIddas Feld kann int sein oder leer bleiben,
  • defaultFeld nimmt den Wert bool an (true/false),
  • namePflichtfeld, die maximale Länge dieses Feldes beträgt 50 Zeichen,
  • name2 -die maximale Länge dieses Feldes beträgt 50 Zeichen,
  • countryCodePflichtfeld, die maximale Länge beträgt 2 Zeichen,
  • zipCode – die maximale Länge dieses Feldes beträgt 20 Zeichen,
  • city – die maximale Länge dieses Feldes beträgt 50 Zeichen,
  • street – die maximale Länge dieses Feldes beträgt 50 Zeichen,
  • streetNo – die maximale Länge dieses Feldes beträgt 20 Zeichen,
  • unitNo – die maximale Länge dieses Feldes beträgt 20 Zeichen,
  • state – die maximale Länge dieses Feldes beträgt 50 Zeichen,
  • phoneNo – die maximale Länge dieses Feldes beträgt 50 Zeichen.
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Customer/DeliveryAddressUpdate" />
<input type="hidden" name="__template" value="customer/profile-data.html" />
<input type="hidden" name="addressId" value="{{ address.Id }}" />
{% if address.Default %}
<input type="hidden" name="default" value="1" />
{% endif %}
<div>
{% if address.Street == "" %}
{% include 'customer/profile-data-address.html' with -1 %}
{% else %}
{% include 'customer/profile-data-address-pr.html' with address.Id %}
{% endif %}
</div>
<button>Zatwierdź</button>
{% if address.Default == false %}
<button data-id="{{ address.Id }}">{{ translations.Cst_RemoveDeliveryAddress}}</button>
{% endif %}
{% if address.Default == false %}
<button>Zatwierdź</button>
{% endif %}
</form>

 


 

EmailChange

Die Aktion, die der Änderung der E-Mail-Adresse entspricht.

Parameter:

  • email – (string, Pflichtfeld) – ein regulärer Ausdruck, maximale Länge 192 Zeichen,
  • emailRepeat – (string, Pflichtfeld) – regulärer Ausdruck, maximale Länge 192 Zeichen,
  • password – (string, Pflichtfeld),
  • doNotChangeCompanyEmail-Feld (bool) – bei der Enterprise-Version.
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Customer/EmailChange" />
<input type="hidden" name="__template" value="customer/profile-account.html" />
<input type="email" name="email" placeholder="* {{ translations.Prf_NewEmail }}" required />
<input type="email" name="emailRepeat" placeholder="* {{ translations.Prf_RepeatEmail }}" required />
<input type="password" name="password" placeholder="* {{ translations.Com_Password }}"
required />
<button>Zmień</button>
</form>

 


 

EmployeeAdd

Die Aktion ist für das Hinzufügen eines Mitarbeiters zuständig.

Parameter:

  • email – (string, Pflichtfeld) – ein regulärer Ausdruck, die maximale Länge beträgt 192 Zeichen.
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}"/>
<input type="hidden" name="__action" value="Customer/EmployeeAdd" />
<input type="email" name="email" placeholder="" required />
<button>Zatwierdź</button>
</form>

 


 

EmployeeDelete
Die Aktion ist für die Entfernung des Mitarbeiters verantwortlich.
Parameter:
  • Id – (int, Pflichtfeld)
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}"/>
<input type="hidden" name="__action" value="Customer/EmployeeDelete" />
<input type="number" name="id" placeholder="" required />
<button>Zatwierdź</button>
</form>

 


 

EmployeeLock
Die Aktion ist für das Aussperren des Mitarbeiters zuständig.

Parameter:

  • id (int, Pflichtfeld).

 

EmployeeUnlock>
Die Aktion ist für die Entsperrung des Mitarbeiters zuständig.

Parameter:

  • id (int, Pflichtfeld).

 

EmployeeUpdate

Diese Aktion ist für die Aktualisierung der Mitarbeiterdaten im Profil verantwortlich.

Parameter:

  • name – (string) – die maximale Länge dieses Feldes beträgt 50 Zeichen,
  • name2 – (string) – die maximale Länge dieses Feldes beträgt 50 Zeichen,
  • phoneNo – (string) – die maximale Länge dieses Feldes beträgt 50 Zeichen,
  • languageId – (string) – short oder null
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}"/>
<input type="hidden" name="__action" value="Customer/EmployeeUpdate" />
<input type="text" name="name" placeholder=" "/>
<input type="text" name="name2" placeholder=" " />
<input type="tel" name="phoneNo" placeholder=" " />
<button>Zatwierdź</button>
</form>

 


 

LanguageChange
Verantwortlich für die Auswahl und Änderung der Sprache im Webshop.
Parameter:
  •  languageId – (short, Pflichtfeld).
{% assign lngCount = config.Languages | Size -%}
{% if lngCount > 1 -%}
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Customer/LanguageChange" />
<select name="languageId">
{% for lng in config.Languages -%}
<option value="{{ lng.Id }}" {% if page.LanguageId == lng.Id -%} selected {% endif -%}>{{ lng.Name }}</option>
{% endfor -%}
</select>
{% endif -%}
</form>

 


 

LanguageDefaultUpdate
Verantwortlich für die Einstellung der Standardsprache.
Parameter:
  • languageId – (short, Pflichtfeld).
{% assign lngCount = config.Languages | Size -%}
{% if lngCount > 1 -%}
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Customer/LanguageDefaultUpdate" />
<select name="languageId">
{% for lng in config.Languages -%}
<option value="{{ lng.Id }}" {% if page.LanguageId == lng.Id -%} selected {% endif -%}>{{ lng.Name }}</option>
{% endfor -%}
</select>
{% endif -%}
</form>

 


 

Login

Aktion, die für die Anmeldung verantwortlich ist.

Parameter:

  • email – (string, Pflichtfeld) – regulärer Ausdruck, die maximale Länge dieses Feldes beträgt 192 Zeichen,
  • password – (string, Pflichtfeld),
  • remember – (bool).
<form method="POST">
<input type="hidden" name="__action" value="Customer/Login" />
<input type="email" name="email" value="{{ customer.Email }}"
{% if customer.Email == blank %} placeholder="* {{ translations.Com_EmailAddress }} "
{% endif %}
required autofocus />
<input type="password" name="password" placeholder="* {{ translations.Com_Password }}"
required />
<a href="{{ config.DefinedPages.PasswordReminder.Url }}" class="remind">{{ translations.Lgn_DontRememberPassword }}</a>
<button>Login</button>
</form>

 


 

Logout
Diese Aktion ist für das Abmelden des angemeldeten Benutzers (Client) verantwortlich.
<form action="{{ page.Url }}{{ page.QueryString | H}}" method="post">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Customer/Logout" />
<button>Wyloguj</button>
</form>

 


 

OldPasswordChange

Die Aktion ist für das Ändern des Passworts verantwortlich. 

Parameter:

  • oldPassword – (string, Pflichtfeld),
  • password – (string, Pflichtfeld),
  • passwordRepeat – (string, Pflichtfeld).
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Customer/PasswordChange" />
<input type="hidden" name="hash" value="{{ page.GET['hash'] }}" >
<input type="password" name="password" value="" required/>
<input type="password" name="passwordRepeat" value="" required/>
<button>Zatwierdź</button>
</form>

 


 

PasswordChange

Die Aktion, die für die Änderung des Passworts verantwortlich ist (z. B. über das Formular „Ich habe das Passwort vergessen“). 

Parameter:

  • password – (string, Pflichtfeld),
  • passwordRepeat – (string, Pflichtfeld),
  • hash – (string, Pflichtfeld).
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Customer/PasswordChange" />
<input type="hidden" name="hash" value="{{ page.GET['hash'] }}" >
<input type="password" name="password" value="" required/>
<input type="password" name="passwordRepeat" value="" required/>
<button>Zatwierdź</button>
</form>

 


 

PasswordRecover

Aktion, deren Aufgabe es ist, das Passwort wiederherzustellen.

Parameter:

  • email(string, Pflichtfeld) erforderlich, regulärer Ausdruck, maximale Länge beträgt 192 Zeichen.
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Customer/PasswordRecover" />
<input type="email" name="email" value="{{ customer.Email }}" required/>
<button>Zatwierdź</button>
</form>

 


 

Register

Diese Aktion ist für die Benutzerregistrierung verantwortlich.

Parameter:

  • company (bool),
  • email – (string, Pflichtfeld), regulärer Ausdruck, maximale Länge 192 Zeichen,
  • password – (string, Pflichtfeld),
  • passwordRepeat – (string),
  • phoneNodie maximale Länge beträgt 50 Zeichen,
  • name – (string) die maximale Länge beträgt 64 Zeichen,
  • name2 – (string) die maximale Länge beträgt 64Zeichen,
  • name3 – (string) die maximale Länge beträgt 250 Zeichen,
  • countryCode – (string) die maximale Länge beträgt 2 Zeichen,
  • zipCode – (string) die maximale Länge beträgt 20 Zeichen,
  • city – (string) die maximale Länge beträgt 50 Zeichen,
  • street – (string) die maximale Länge beträgt 150 Zeichen,
  • streetNo – (string) die maximale Länge beträgt 20 Zeichen,
  • unitNo – (string) die maximale Länge beträgt 20 Zeichen,
  • state – (string) die maximale Länge beträgt 50 Zeichen,
  • tin – (string) die maximale Länge beträgt 20 Zeichen,
  • ssn – (string) die maximale Länge beträgt 20 Zeichen,
  • tos – (int[]) ein bestimmtes Feld kann mehrmals innerhalb einer Aktion übertragen werden,
  • channelKey – (string[]) ein bestimmtes Feld kann innerhalb einer Aktion viele Male übertragen werden,
  • vateu – (string) bei der Enterprise-Version, die maximale Länge dieses Feldes beträgt 2 Zeichen.

Tipp
Bei Benutzern, die keine Unternehmen sind, sind die einzigen Pflichtfelder E-Mail und Passwort, sodass der Beispielcode für eine solche Lösung nur diese beiden Felder enthalten würde.

ReviewAuthorUpdate

Verantwortlich für das Hinzufügen eines Spitznamens für den Benutzer, der Meinungen zum Produkt hinzufügt. Diese Aktion enthält ein Feld – author. Dies ist ein Pflichtfeld, seine maximale Länge beträgt 50 Zeichen.

Update

Aktion, die für das Ändern von Kontodetails verantwortlich ist. Es enthält die folgenden Felder:

  1. email – Regulärer Ausdruck, die maximale Länge des Feldes beträgt 192 Zeichen
  2. company – nimmt den Wert von bool an (true/false)
  3. name –Pflichtfeld, maximale Länge bis zu 50 Zeichen
  4. name2 – die maximale Länge beträgt 50 Zeichen
  5. countryCode – Pflichtfeld, maximal zwei Zeichen lang
  6. zipCode – Die maximale Länge dieses Feldes beträgt 20 Zeichen
  7. city – die maximale Länge beträgt 50 Zeichen
  8. street –die maximale Länge beträgt 50 Zeichen
  9. streetNo –Die maximale Länge dieses Feldes beträgt 20 Zeichen
  10. unitNo –Die maximale Länge dieses Feldes beträgt 20 Zeichen
  11. state – die maximale Länge beträgt 50 Zeichen
  12. phoneNo – die maximale Länge beträgt 50 Zeichen
  13. tin – Die maximale Länge dieses Feldes beträgt 20 Zeichen
  14. ssn – Die maximale Länge dieses Feldes beträgt 20 Zeichen
  15. invoice – nimmt den Wert von bool an (true/false)

Zusätzlich sind für die Enterprise-Version folgende Felder vorgesehen:

  1. vateu – Die maximale Länge für dieses Feld beträgt 2 Zeichen
  2. subtotalPrices – Bool-Wert-Feld (true/false)

Gilt für eine Bestellung

WishListUpdate

Die Aktion ist für das Setzen/Ändern des Datums auf der Wunschliste zuständig. Es enthält die folgenden Felder:

productId – int-Feld

note – Die maximale Länge dieses Feldes beträgt 500 Zeichen

notifyDate – Zeichenfolgenfeld, regulärer Ausdruck

Aktionen in dieser Gruppe betreffen aufgegebene Bestellungen.

Accept

Es ermöglicht die Annahme einer Bestellung in einer Situation, in der wir es beispielsweise mit verhandelbaren Transportkosten zu tun haben. Es enthält die folgenden Felder:

  1. id – Feldtyp int, nimmt den Wert von id an
  2. hash – String-Feld
Add

Verantwortlich für das Hinzufügen einer Bestellung. Es enthält die folgenden Felder:

  1. tos – nimmt den Wert int[] – Ein bestimmtes Feld kann mehrmals innerhalb einer Aktion übertragen werden, Wert int
  2. channelKey – String-Feld [] – Ein bestimmtes Feld kann innerhalb einer Aktion viele Male übertragen werden
Cancel

Diese Aktion ist für die Stornierung der Bestellung verantwortlich. Es enthält die folgenden Felder:

  1. id – erforderliches Feld, Feldtyp int, nimmt den Wert id an
  2. hash – String-Feld
AttachmentAdd

Die Aktion ist dafür verantwortlich, der Bestellung einen Anhang hinzuzufügen. Es enthält ein Feld fileFeld für hochgeladene Dateien.

AttachmentDelete

Die Aktion ist für das Entfernen des Anhangs zur Bestellung verantwortlich. Es enthält ein Feld idPflichtfeld.

AttributesSet

Die Aktion ist für das Setzen der Auftragsattribute zuständig. Es enthält ein Feld attribute – typu string[] – Ein bestimmtes Feld darf innerhalb einer Aktion mehrmals übertragen werden, die maximale Länge beträgt 1000 Zeichen.

ComplaintAdd

Die Aktion ist für das Hinzufügen einer Beschwerde verantwortlich. Diese Aktion hat die folgenden Felder:

  1. orderId – Pflichtfeld, Feldtyp int
  2. no – Pflichtfeld, gebeFeld ein int
  3. quanity – das Feld kann einen Wert zwischen annehmen 0.01 und 99999, das Typfeld decimal
  4. message –die maximale Zeichenanzahl für dieses Feld ist 1000
  5. accountNumber – Die maximale Zeichenanzahl für dieses Feld beträgt 50 Zeichen
  6. defectId – Dieses Feld kann int sein oder leer bleiben
  7. requestId – Dieses Feld kann int sein oder leer bleiben
  8. defectDate –Pflichtfeld, regulärer Ausdruck
  9. files – Feld für hochgeladene Dateien
ComplaintCancel
Diese Aktion ist für die Stornierung der Beschwerde verantwortlich.
Es hat einen Feld complaintIddies ist ein Pflichtfeld, typu int.

 

Copy

Aktion, die für das Kopieren der Bestellung verantwortlich ist. Es enthält die folgenden Felder:

  1. orderId – Pflichtfeld, gebe Feld ein int
  2. hash – String-Feld.
CouponAde

Aktion zum Hinzufügen eines Gutscheins. Es enthält die folgenden Felder:

  1. code – Pflichtfeld, die maximale Länge dieses Feldes beträgt 40 Zeichen
  2. email – Regulärer Ausdruck, die maximale Länge dieses Feldes beträgt 192 Zeichen
CouponDelete

Aktion, mit der du den Gutschein entfernen kannst.

DeliveryAddressUpdate
Die Aktion ist für die Aktualisierung der Lieferadresse zuständig. Es hat folgende Felder:
  1. email – Pflichtfeld, regulärer Ausdruck, maximale Länge 192 Zeichen
  2. name – Pflichtfeld, die maximale Länge dieses Feldes beträgt 50 Zeichen
  3. name2 – Die maximale Länge dieses Feldes beträgt 50 Zeichen
  4. zipCode – Die maximale Länge dieses Feldes beträgt 20 Zeichen
  5. city – Pflichtfeld, die maximale Länge dieses Feldes beträgt 50 Zeichen
  6. street – Pflichtfeld, die maximale Länge dieses Feldes beträgt 50 Zeichen
  7. streetNo – Die maximale Länge dieses Feldes beträgt 20 Zeichen
  8. unitNo – Die maximale Länge dieses Feldes beträgt 20 Zeichen
  9. state – Pflichtfeld, die maximale Länge dieses Feldes beträgt 50 Zeichen
  10. phoneNo – Pflichtfeld, die maximale Länge dieses Feldes beträgt 50 Zeichen
DeliveryChange

Aktion, die für die Änderung der Versandart der Ware verantwortlich ist. Es enthält die folgenden Felder:

  1. id – Pflichtfeld, Feldtyp int
  2. channel – String-Feld
DeliveryCollectionPointChange

Hier kann man den Abholort des Pakets auswählen (z. B. bei der Verwendung von Paketautomaten). Es enthält die folgenden Felder:

  1. id – erforderliches Feld, Feld vom Typ Zeichenfolge
  2. data – String-Feld
DeliveryCountryChange

Aktion, die für die Änderung des Lieferlandes verantwortlich ist. Es hat ein Feld– countryCode.

DeliveryDateChange

Die Aktion ist für die Änderung des Lieferdatums verantwortlich. Es enthält ein Feld dateRegulärer Ausdruck vom Typ String.

EmailSet

Die Aktion ist für das Setzen der E-Mail-Adresse zuständig. Es enthält ein Feld email</strong – Pflichtfeld, regulärer Ausdruck, maximale Länge 192 Zeichen.

InvoiceAddressUpdate

Diese Aktion ist für die Änderung der Rechnungsdaten verantwortlich. Es enthält die folgenden Felder:

  1. name – Pflichtfeld, die maximale Länge für dieses Feld beträgt 50 Zeichen
  2. name2 – Die maximale Länge dieses Feldes beträgt 50 Zeichen
  3. countryCode – Pflichtfeld, die maximale Länge dieses Feldes beträgt zwei Zeichen
  4. zipCode – Die maximale Länge dieses Feldes beträgt 20 Zeichen
  5. city – Die maximale Länge dieses Feldes beträgt 50 Zeichen
  6. street – Die maximale Länge dieses Feldes beträgt 50 Zeichen
  7. streetNo – Die maximale Länge dieses Feldes beträgt 20 Zeichen
  8. unitNo – maksymalna długość tego pola wynosi 20 znaków
  9. state – Die maximale Länge dieses Feldes beträgt 50 Zeichen
  10. phoneNo – Die maximale Länge dieses Feldes beträgt 50 Zeichen
  11. tin – String-Feld
  12. ssn – Die maximale Länge dieses Feldes beträgt 20 Zeichen
  13. invoice – Feld nimmt den Wert bool an (true/false)
  14. company – Feld nimmt den Wert bool an (true/false)

Zusätzlich ist es für die Enterprise-Version vorhanden pole vateudie Länge dieses Feldes beträgt bis zu 2 Zeichen

InvoiceChange

Die Aktion ist für die Auswahl der Option zum Ausstellen einer Rechnung verantwortlich. Es hat ein FeldinvoiceDer Typ dieses Felds ist bool (true/false).

NoteAdd

Die Aktion ist dafür verantwortlich, der Bestellung eine Nachricht hinzuzufügen. Es hat ein Feld notedie maximale Länge beträgt 500 Zeichen

PaymentMake

Die Aktion ist für die Durchführung von Zahlungen zuständig. Es enthält die folgenden Felder:

  1. id – Pflichtfeld, Feldtyp int
  2. hash – Pflichtfeld, gebe Feld ein string.
PointsUse

Die Aktion ist für die Bezahlung mit Punkten zuständig.

RestorePayment

Die Aktion ist verantwortlich für die Möglichkeit, die Bestellung zu bezahlen, wenn dies zuvor nicht möglich war (z. B. aufgrund eines Internetausfalls). Es enthält die folgenden Felder:

  1. id –Pflichtfeld vom Typ int
  2. hash – String-Feld
ReturnAdd

Für die Rücksendung verantwortliche Aktion. Es hat folgende Felder:

  1. orderID –Pflichtfeld, gebe int ein
  2. no – Pflichtfeld, Typ int
  3. quniaty – das Feld darf Werte annehmen von 0.01 bis 99999, typ int
  4. message – Die maximale Länge dieses Feldes beträgt 1000 Zeichen
  5. accountNumber – Die maximale Länge dieses Feldes beträgt 50 Zeichen
  6. returnId – pDieses Feld kann leer gelassen oder akzeptiert werden typ int
  7. files – Feld Laden von Dateien
StatusGet

Aktion, die für das Abrufen des Bestellstatus basierend auf der ID und der E-Mail-Adresse verantwortlich ist. Es hat die Felder:

  1. id – Pflichtfeld, Typ int
  2. email- Dies ist ein Pflichtfeld, ein regulärer Ausdruck, seine maximale Länge beträgt 192 Zeichen
StepNext

Aktion, die für den nächsten Schritt bei der Bestellung verantwortlich ist.

StepPrev

Aktion, die für die Rückkehr zum vorherigen Schritt beim Aufgeben einer Bestellung verantwortlich ist

Newsletter

Die Aktion ist für die mit dem Newsletter verbundene Aktivität verantwortlich.

Subscribe

Code, der für das Abonnieren des Newsletters verantwortlich ist. Es hat folgende Felder:

  1. email – Pflichtfeld, regulärer Ausdruck, die maximale Länge für dieses Feld beträgt 192 Zeichen
  2. tos – przyjmuje wartość int[] –Ein bestimmtes Feld kann mehrmals innerhalb einer Aktion übertragen werden, Wert int
  3. channelKey – String-Feld [] – Ein bestimmtes Feld kann innerhalb einer Aktion viele Male übertragen werden
Unsubscribe

Der Code, der für die Abmeldung vom E-Mail-Abonnement verantwortlich ist.

<form id="NewsletterUnsubscribeForm" action="{{ page.Url }}{{ page.QueryString | H}}" method="post">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Newsletter/Unsubscribe" />
<input type="hidden" name="__template" value="customer/profile-account.html" />
<p>{{ customer.Email }}</p>
<button>Anuluj subskrypcję</button>
</form>

 

GET Aktionen

Mit dieser Aktion kann man Daten zur Erstellung vom Server herunterladen np. breadcrumbs.

CollectionPointCities

Die Aktion ist zuständig für die Erhebung der Städte mit Sammelstellen. Es enthält die folgenden Felder:

  1. country – Zeichenfolgenfeld, die maximale Länge dieses Felds beträgt 2 Zeichen
  2. typeId – Feld eingeben int
  3. all – Feld nimmt den Wert bool an (true/false)
  4. stockLevels – Feld nimmt den Wert bool an (true/false)
CollectionPoints

Die Aktion ist für Sammelgutannahmestellen zuständig. Es enthält die folgenden Felder:

  1. country – Die maximale Länge dieses Feldes beträgt 2 Zeichen
  2. city – Die maximale Länge dieses Feldes beträgt 50 Zeichen
  3. typeId – int-Feld
  4. all – Feld nimmt den Wert bool an(true/false)
  5. stockLevels –Feld nimmt den Wert bool an (true/false)
<div class="box-ui clear-after-ui"/>
{% if order.SelectedDelivery.CollectionPoint -%}
    <div class="f-left-ui cart-option-ui address-ui half-ui-with-space-ui collection-point-info-lq"/>
        <p/>
            {% if order.SelectedDelivery.CollectionPointTypeId == 2 -%}
                {{ translations.ChoosenInpostMachine }}
            {% else -%}
                {{ translations.ChoosenCollectionPoint }}
            {% endif -%}
        <p/>
        <div class="right-corner-ui">
            <button class="btn-pure-ui other-address-ui show-map-in-order-lq">
                  <i class="va-mid-ui ti-pencil"></i>
                  <span class="va-mid-ui line-height-1-ui"/<{{translations.Change}}</span>
             </button>
         </div >
         <div class="box-ui clear-after-ui">
  {% assign cp = order.SelectedDelivery.CollectionPoint -%}
            {% assign name = cp.Address | Split:',' | Last | Split:'(' | First -%}
            {% if name == '' or name == ' ' or name == '  ' -%}
                {% assign name = cp.Address | Split:'(' | Last | Remove:')' -%}
                {% capture name -%}{{name}}{% endcapture -%}
            {% endif -%}
<p><strong>{{name}}</strong></p>
<p>{{cp.Street}} {{cp.StreetNo}}{% if cp.UnitNo != null and cp.UnitNo != '' -%}/{{cp.UnitNo}}{% endif -%}</p>
<p>{{cp.ZipCode}} {{cp.City}}</p>
<p>{{cp.Country}}</p>


 

Groups

Ruft die untergeordneten Gruppen für die angegebene Gruppe ab. Mit dieser Aktion kann man ein dynamisches Menü oder Breadcrumbs erstellen. Es enthält die folgenden Felder:

  1. groupId – int-Feld.
  2. languageId – int-Feld.
  3. levels – int-Feld.
<script type="text/javascript">
 (function () {
 $(function () {
 $('nav.breadcrumbs>ol>li').hover( 
 function () { 
 var t = $(this), gId = ('' + t.data('id')).split(',')[1]; 
 if (gId && t.find('ol').length == 0) { 
 $.get(null, { __action: 'Get/Groups', groupId: gId, languageId: __lngId }, function (d) { 
 var obj = d.action.Object; 
 if (obj.length) { 
 var ol = $('<ol></ol>'); 
 t.append(ol); 
 $.each(obj, function (i, el) { 
 var a = $('<a></a>').attr('href', el.Url).text(el.Title); 
 ol.append(a); 
 a.wrap('<li></li>') 
});
}
});
}
 else t.find('ol').show(); 
},
 function () { 
 $(this).find('ol').hide(); 
}
);
});
 })(jQuery); 
</script>

 

Search

Die Aktion ist für die Suchmaschine verantwortlich.Es hat ein Feldsearches ist ein Pflichtfeld, die maximale Länge beträgt 100 Zeichen.

<form action="{{ page.Url }}{{ page.QueryString | H}}" method="post">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Get/Search" />
<input type="search" name="search" placeholder="{{ translations.Sea_SearchProduct }}" maxlength="50" required />
<button>Szukaj</button>
</form>

 

SearchAdvanced

Die Aktion ist für die erweiterte Suchmaschine zuständig und enthält folgende Felder:

  1. search – Die maximale Länge für dieses Feld beträgt 100 Zeichen.
  2. searchAll – Die maximale Länge für dieses Feld beträgt 100 Zeichen.
  3. searchAny – Die maximale Länge für dieses Feld beträgt 100 Zeichen.
  4. searchWild – Die maximale Länge für dieses Feld beträgt 100 Zeichen.
  5. fields – int-Feld.
  6. flags – int-Feld.
  7. priceFrom – dieses Feld kann leer bleiben oder den Typ int annehmen.
  8. priceTo – dieses Feld kann leer bleiben oder den Typ int annehmen.
  9. groupId – dieses Feld kann leer bleiben oder den Typ int annehmen.
  10. manufactureId – dieses Feld kann leer bleiben oder den Typ int annehmen.
  11. brandId – dieses Feld kann leer bleiben oder den Typ int annehmen.
<form>
<input type="hidden" name="__action" value="Get/SearchAdvanced" />
<input type="hidden" name="__action" value="Get/SearchFilters" />
<ul class="switches">
<input name="$minPrice" type="hidden" />
<input name="$maxPrice" type="hidden" />
{% for filter in filters -%}
<li>
{{ filter.Heading }}<br>
<ul>
{% for value in filter.Values -%}
{% assign long = value.Text | Size %}
{% if long < 40 -%}
<li>
<input id="flt_{{ value.Field }}_{{ value.Value }}" name="{{ value.Field }}" type="checkbox" {%if value.Selected%}checked{%endif%} value="{{ value.Value }}"/>
</li>
{% else -%}
<li>
<input id="flt_{{ value.Field }}_{{ value.Value }}" name="{{ value.Field }}" type="checkbox" {%if value.Selected%}checked{%endif%} value="{{ value.Value }}"/>
</li>
{% endif -%}
{% endfor -%}
</ul>
</li>
{% endfor -%}
</ul>
<button>Zatwierdź</button>
</form>

 

SearchAutocomplete

Die Aktion ist dafür verantwortlich, dass während der Suche Hinweise auf 5 Produkte angezeigt werden. Die Aktion hat ein Suchfeld. Dies ist ein Pflichtfeld, seine maximale Länge beträgt 100 Zeichen.

<script type="text/javascript">
 function autocomplete(e) {
    var phrase = $(e.currentTarget).val().replace(/[!@#$%^&*()+={}\[\]:;"'<,>.?\~`\\|]*/gi, '');
    if (phrase != '' && phrase.length > 1) {
        $.get(location.pathname, { __action: 'Get/SearchAutocomplete', search: phrase }).then(function (res) {
            if($(window).width() > 1279){
                var right = 'right: 50px';
            } else if($(window).width() > 680){
                var right = '';
            } else {
                var right = 'right: 61px';
            }
            var loader = '';
            $('.quick-search-form-lq.autocomplete-form-lq').append(loader);
            var url = res.action.Redirect302;
            $.get(url, {__collection:'products.Products|page.BaseHref|currency|config.Products.ShowCode'}, function(res) {
                $('.autocomplete-lq').remove();
                var list = res.collection['products.Products'];
                var showCode = res.collection['config.Products.ShowCode'];
                if (list.length > 0){
                    if (list.length > 5) {
                        var size = 5;
                    } else {
                        var size = list.length;
                    }
                    var baseHref = res.collection['page.BaseHref'];
                    var currency = res.collection['currency'];

 

SearchFilters

Die Aktion ist für die Anwendung von Suchfiltern verantwortlich. Es hat ein Feld __skipParameter. Feldtyp string[] – Ein bestimmtes Feld kann innerhalb einer Aktion viele Male übertragen werden.

<form>
<input type="hidden" name="__action" value="Get/SearchAdvanced" />
<input type="hidden" name="__action" value="Get/SearchFilters" />
<div>
<!-- W tym divie znaleźć się mogą przykładowe filtry, np. minimalna/maksymalna cena -->
</div>
<ul class="switches">
<input name="$minPrice" type="hidden" />
<input name="$maxPrice" type="hidden" />
{% for filter in filters -%}
<li>
<span class="fa fa-plus"></span>
{{ filter.Heading }}<br>
<ul class="switch-group undercategories hidden mCustomScrollbar">
{% for value in filter.Values -%}
{% assign long = value.Text | Size %}
{% if long < 40 -%}
<li>
<span class="switch-name">{{ value.Text }}</span>
<input id="flt_{{ value.Field }}_{{ value.Value }}" class="switch-input" name="{{ value.Field }}" type="checkbox" {%if value.Selected%}checked{%endif%} value="{{ value.Value }}"/>
<span class="switch-label"></span>
<span class="switch-handle"></span>
</li>
{% else -%} <!-- If filter name string longer than 40 then make higher li -->
<li class="long">
<span class="switch-name">{{ value.Text }}</span>
<input id="flt_{{ value.Field }}_{{ value.Value }}" class="switch-input" name="{{ value.Field }}" type="checkbox" {%if value.Selected%}checked{%endif%} value="{{ value.Value }}"/>
<span class="switch-label"></span>
<span class="switch-handle"></span>
</li>
{% endif -%}
{% endfor -%}
</ul>
</li>
{% endfor -%}
</ul>
<button>Zatwierdź</button>
</form>

 

Produkte

Diese Aktion ist für die Aktivitäten im Zusammenhang mit den Produkten verantwortlich, z. B. die Möglichkeit, Ihre Meinung zum Produkt hinzuzufügen.

AskForPrice

Diese Aktion ist für die Aktivitäten im Zusammenhang mit den Produkten verantwortlich, z. B. die Möglichkeit, Ihre Meinung zum Produkt hinzuzufügen.

  1. productId –Pflichtfeld, Feldtyp ist int
  2. email – Pflichtfeld, regulärer Ausdruck, die maximale Länge für dieses Feld beträgt 192 Zeichen
  3. phoneNo – Die maximale Länge dieses Feldes beträgt 20 Zeichen
  4. quantity – Pflichtfeld, das Feld nimmt einen Wert zwischen 1 und 99999 an
  5. unitId – dieses Feld kann leer bleiben oder den Typ int annehmen
  6. message –Die maximale Länge für dieses Feld beträgt 500 Zeichen
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Product/AskForPrice" />
<input type="hidden" name="productId" value="{{ product.Id }}" />
<input type="email" name="email" value="{{ customer.Email }}" required />
<input type="tel" name="phoneNo" value="{{ customer.Address.PhoneNo }}"/>
<input type="button" value="-" />
<input type="text" name="quantity" value="1"/>
<input type="button" value="+" field='quantity'/>
{% if product.Units[1] -%}
{% for unit in product.Units -%}
<input type="button" value="{{ unit.Name }}"/>
<input type="hidden" value="{{ unit.Id }}" data-ratio="{{ unit.Ratio }}"/>
{% endfor -%}
{% endif -%}
{% for unit in product.Units -%}
{% if unit.Default == true or unit.Id == null -%}
<input name="unitId" type="hidden" value="{{ unit.Id }}"/>
{% endif -%}
{% endfor -%}
<textarea type="text" name="message" required></textarea>
<button>Zatwierdź</button>
</form>

 

CollectionPointsStockLevelsGet

Die Aktion ist für das Sammeln von Inventar in den Filialen eines bestimmten Produkts verantwortlich. Es enthält die folgenden Felder:

  1. product – Pflichtfeld
  2. country –Die maximale Länge dieses Feldes beträgt 2 Zeichen
  3. city –Die maximale Länge dieses Feldes beträgt 50 Zeichen
  4. pointTypeId – int-Feld
function showShopsInfos(e) {
    var city = $(e.currentTarget).val();
    if(city != ''){
        var productType = $('[name=productType]').val();
        if (productType == 'batch'){
            var productId = $('[data-product-id]').data('product-id');
            var supplyId = $('[data-supply-id].active-lq').data('supply-id');
        } else if (productType == 'clip'){
            var productId = $('[data-supply-id].active-lq').data('supply-id');
        } else {
            var productId = $('[data-product-id]').data('product-id');
        }
        var downloaded = false;
        var index = '';
        if(window.productsWithPOO){
            var size = window.productsWithPOO.length;
            for(i=0; i<size; i++){
                index = i;
                if(window.productsWithPOO[i].name == city+'-'+productId+'-'+supplyId){
                    downloaded = true;
                    index = i;
                    break;
                }
            }
            if(!downloaded){
                window.productsWithPOO.push({name: city+'-'+productId+'-'+supplyId});
                index = index + 1;
            }
        } else {
            window.productsWithPOO = [];
            window.productsWithPOO.push({name: city+'-'+productId+'-'+supplyId});
            index = 0;
        }
        if(!downloaded){
            $('.during-ajax-modal-lq').removeClass('hidden-lq');
            $.post(null, {__csrf:__CSRF, __action:'Product/CollectionPointsStockLevelsGet',city:city ,products:JSON.stringify([{ProductId:productId, SupplyId:supplyId}])},function(res){
                if(window.productsWithPOO[index].name == city+'-'+productId+'-'+supplyId){
                    window.productsWithPOO[index].shops = res.action.Object;
                    appendShopsInfos(window.productsWithPOO[index].shops);
                    $('.during-ajax-modal-lq').addClass('hidden-lq');
                }
            });
        } else {
            appendShopsInfos(window.productsWithPOO[index].shops);
        }
    }
};

 

ComparisonToolAdd

Aktion, die für das Hinzufügen eines Produkts zum Vergleich mit einem anderen Produkt verantwortlich ist. Die Aktion hat ein Produkt-ID-Feld – ein erforderliches Feld, gebe int ein.

<form action="{{ page.Url }}{{ page.QueryString | H }}" method="post">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}"/>
<input type="hidden" name="__action" value="Product/ComparisonToolAdd" />
<input type="hidden" name="productId" value="{{ productD.Id }}"/>
<input type="hidden" name="url" value="{{ page.BaseHref }}{{ config.DefinedPages.ProductComparisonTool.Url }}"/>
</form>

 

ComparisonToolDelete

Die Aktion ist dafür verantwortlich, das Element aus dem Vergleich zu entfernen. Die Aktion hat ein Produkt-ID-Feld – ein erforderliches Feld, geben Sie int ein.

{% for product in comparer.Products -%}
<form action="{{ page.Url }}{{ page.QueryString | H }}" method="post">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}"/>
<input type="hidden" name="__action" value="Product/ComparisonToolDelete" />
<input type="hidden" name="productId" value="{{ product.Id }}"/>
<button>Zatwierdź</button>
</form>
{% endfor -%}

 

NotifyAboutProductAvailability

Die Aktion, die für das Senden einer Anfrage verantwortlich ist, um den Benutzer zu informieren, wenn das Produkt wieder verfügbar ist. Es enthält die folgenden Felder:

  1. productId – Pflichtfeld vom Typ int
  2. name – Pflichtfeld, die maximale Länge dieses Feldes beträgt 50 Zeichen
  3. email – Pflichtfeld, regulärer Ausdruck, die maximale Länge dieses Feldes beträgt 192 Zeichen
  4. phoneNo – Die maximale Länge dieses Feldes beträgt 20 Zeichen
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Product/NotifyAboutProductAvailability" />
<input type="hidden" name="productId" value="{{ product.Id }}" />
<input type="email" name="email" value="{{ customer.Email }}" required />
<input type="text" name="name" value="{{ customer.Address.Name }}" required />
<input type="tel" name="phoneNo" value="{{ customer.Address.PhoneNo }}"/>
<button>Zatwierdź</button>
</form>

 

ReviewAdd

Aktion, die für das Hinzufügen einer Meinung zu einem Produkt verantwortlich ist. Es enthält die folgenden Felder:

  1. rating – Pflichtfeld, maximale Länge von 1 bis 5 Zeichen (die Länge des Feldes ist eine Bewertung), Byte-Typ
  2. comment – Pflichtfeld, die maximale Länge dieses Feldes beträgt 4000 Zeichen
  3. author – Pflichtfeld, die maximale Länge dieses Feldes beträgt 50 Zeichen
  4. productId – Pflichtfeld, gebe int ein
  5. orderHash – String-Feld
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}"/>
<input type="hidden" name="__action" value="Product/ReviewAdd" />
<input type="text" name="author" {% if customer.Authenticated == true -%}{% if customer.ReviewAuthor != "" -%} value="{{ customer.ReviewAuthor | H }}" {% else -%} value="{{ customer.Address.Name | H }}" {% endif -%}{% endif -%} required />
<textarea type="text" name="comment" required></textarea>
<input type="hidden" name="rating" value=""/>
<input type="hidden" name="productId" value="{{ productD.Id }}"/>
<button>Zatwierdź</button>
</form>

 

WishListAdd

Aktion, die für das Hinzufügen eines Produkts zur Wunschliste verantwortlich ist. Es enthält die folgenden Felder:

  1. productId – Pflichtfeld, gebe int ein
  2. quanity  – ein Feld, das Werte im Bereich annimmt 1 – 99999, typ decimal
  3. note – Die maximale Länge dieses Feldes beträgt 500 Zeichen
WishListDelete

Aktion, die für das Entfernen eines Artikels von der Wunschliste verantwortlich ist.
Es enthält ein productId-Feld – dieses Feld kann den Wert int annehmen oder leer sein.

Warenkorb

Diese Aktion ist für die Aktion im Zusammenhang mit dem Warenkorb verantwortlich, z. B. das Hinzufügen eines Produkts zum Warenkorb.

Add

Verantwortlich für das Hinzufügen von Produkten zum Warenkorb. Die Aktion enthält die folgenden Felder:

  1. productId –Pflichtfeld, gebe int ein
  2. quantity-das Feld kann einen Wert im Bereich annehmen 0.01 – 99999, typ decimal
  3. unitId – pole typu int –Das Feld kann int oder leer sein
  4. attributeId –nimmt den Wert int [ ] – ein bestimmtes Feld kann mehrmals innerhalb einer Aktion übertragen werden, Wert int
  5. attributeEditable – Feldtyp string[] – Ein bestimmtes Feld kann innerhalb einer Aktion viele Male übertragen werden
  6. supplyId – das Feld kann int sein oder leer bleiben
AttributesSet

Die Aktion ist für das Setzen der Attribute für den Korb verantwortlich. Es enthält die folgenden Felder:

  1. no – Dieses Feld kann int sein oder leer bleiben
  2. attribute – Feldtyp string[] – ein bestimmtes Feld kann mehrmals innerhalb einer Aktion übertragen werden, die maximale Länge beträgt 1000 Zeichen.
Change

Die Aktion ist für den Korbwechsel zuständig. Es enthält ein Feld – Id – es ist ein Pflichtfeld vom Typ int.

Delete

Mit dieser Aktion kann man alle Produkte aus dem Warenkorb entfernen.

ExternalAdd

Aktion für den Produktkonfigurator . Fügt von der Synchronisierung zurückgegebene Inhalte zum Warenkorb hinzu. Es enthält die folgenden Felder:

  1. id –Pflichtfeld, die maximale Zeichenlänge beträgt 40
  2. type –int-Feld
ImportCSV

Die Aktion ist für das Importieren des Warenkorbs aus der Datei verantwortlich. Es enthält die folgenden Felder:

  1. file – Feld Laden von Dateien
  2. separator – dieses Feld kann leer bleiben oder den Typ int annehmen
  3. decimalSeparator – dieses Feld kann leer bleiben oder den Typ int annehmen
NameSet

Die Aktion ist für das Setzen des Namens des ausgewählten Warenkorbs verantwortlich. Es enthält die folgenden Felder:

  1. id – Pflichtfeld, gebe int ein
  2. name – Die maximale Zeichenlänge für dieses Feld beträgt 30
PositionDelete

Verantwortlich für das Entfernen eines bestimmten Artikels aus dem Warenkorb. Die Aktion enthält ein Feld – no. Dies ist ein Pflichtfeld vom Typ int.

QuantityChange
Die Aktion ändert die Menge des Artikels im Warenkorb.

Es hat folgende Felder:

  1. quanity –Pflichtfeld, übernimmt den Wert aus 0.01 do 99999. Der Feldtyp ist dezimal.
  2. no – Pflichtfeld, gebe int ein
Recalculate

Verantwortlich für die Neuberechnung des Korbes.

SetAdd

Die Aktion unterstützt das Hinzufügen eines Produktsets. Es hat folgende Felder:

  1. productId – erforderlich, Feldtyp int
  2. setId = erforderlich, Feldtyp int
  3. quantity – Feldtyp int, nimmt Werte im Bereich an 1-99
  4. attributeId – Feldtyp int []
  5. supplyId – Feldtyp int []

Kontakt

Diese Aktion ist für die Kontaktaufnahme zuständig, z.B. um sich nach einem bestimmten Produkt zu erkundigen.

AskAboutProduct

Aktion, mit der du eine Anfrage für ein Produkt stellen kannst. Klappe:

  1. productId – Pflichtfeld, gebe int ein
  2. email – Pflichtfeld, regulärer Ausdruck, die maximale Länge des Feldes beträgt 192 Zeichen
  3. phoneNo – Die maximale Länge dieses Feldes beträgt 20 Zeichen
  4. name – Pflichtfeld, die maximale Länge dieses Feldes beträgt 50 Zeichen
  5. message – ist ein Pflichtfeld, die maximale Länge dieses Feldes beträgt 500 Zeichen
  6. copy – bool-Feld (true/false)

 

Send

Aktion, die für das Senden des Inhalts des Kontaktformulars verantwortlich ist. Es enthält die folgenden Felder:

  1. email – Pflichtfeld, regulärer Ausdruck, die maximale Länge dieses Feldes beträgt 192 Zeichen
  2. name – Die maximale Länge dieses Feldes beträgt 50 Zeichen
  3. phoneNo – Die maximale Länge dieses Feldes beträgt 20 Zeichen
  4. subject – Pflichtfeld, die maximale Länge dieses Feldes beträgt 50 Zeichen
  5. message –Pflichtfeld, die maximale Länge dieses Feldes beträgt 500 Zeichen
  6. copy – Feld eingeben bool (true/false)
  7. contactId – Feld typ int

Die Aktion Kontakt / Senden kann benutzerdefinierte Felder akzeptieren. Der Feldname muss das Präfix macro_ enthalten, z.B. macro_Pole1, und der Feldtyp sollte Text sein. Ein Beispiel für Änderungen in der Amber-Vorlage:

Damit die Benutzerfelder in der E-Mail von der Kontaktseite sichtbar sind, sollten definierte Felder in deren Inhalt hinzugefügt werden. Ein Beispiel für das Hinzufügen solcher Felder unten:

 

TellFriendAboutProduct

Aktion, die dafür verantwortlich ist, eine Benachrichtigung über ein bestimmtes Produkt per E-Mail an eine andere Person zu senden. Die Aktion umfasst:

  1. productId – Pflichtfeld, typ int
  2. email – Pflichtfeld, Regulärer Ausdruck, die maximale Länge dieses Feldes beträgt 192 Zeichen
  3. name – Die maximale Länge dieses Feldes beträgt 50 Zeichen
  4. message – Pflichtfeld, maximale Länge 500 Zeichen
  5. copy – typ bool (true/false)
  6. friendEmail – Pflichtfeld, regulärer Ausdruck, maximale Länge 192 Zeichen
  7. friendName – Die maximale Länge dieses Feldes beträgt 50 Zeichen
<form method="POST">
<input type="hidden" name="__csrf" value="{{ page.CSRF }}" />
<input type="hidden" name="__action" value="Contact/TellFriendAboutProduct" />
<input type="hidden" name="productId" value="{{ product.Id }}" />
<input type="email" name="email" value="{{ customer.Email }}" required />
<input type="text" name="name" value="{{ customer.Address.Name }}" />
<input type="email" name="friendEmail" required />
<input type="text" name="friendName" />
<textarea type="text" name="message" required></textarea>
<button>Zatwierdź</button>
</form>

 


 

Accept

Aktion, die für das Senden einer Anfrage zur Übernahme aller Änderungen zuständig ist.

Parameter:

  • orderId (int, Pflichtfeld).
 this.accept = function (aditionalRequestData) {
                var data = {
                    __action: 'OrderEdit/Accept',
                    __csrf: __CSRF,
                    orderId: this.orderId,
                    __template: this.orderTemplateUrl,
                };

                if (aditionalRequestData) {
                    data = $.extend(data, aditionalRequestData);
                }

                var thisRef = this;
                return window.UIFeatures.makePostRequest(data, thisRef.orderRequestUrl, function (res) {
                    window.UIFeatures.pureReplaceTemplate(thisRef.orderTemplateContainer, null, null, res.template, thisRef.orderRequestUrl);
                    if (!res.action.Result) {
                        $('.during-ajax-modal-lq').addClass('hidden-lq');
                        var messagesContainer = $(messagesContainerSelector);
                        window.app.temporaryMessage(messagesContainer, window.UIFeatures.makeMessageHtml(res.action, 'warning'));
                    }
                    thisRef.recalculationRequired = false;
                    window.app.setCookie('lastCartId', -1);
                });
            }

 


AttributesSet
Aktion für die Bearbeitung von Attributen, die sich direkt auf eine Bestellung beziehen.

Parameter:

  • orderId (int, Pflichtfeld),
  • attribute (string[]) – kann mehrfach innerhalb einer Aktion übergeben werden (string), maximale Länge 1000 Zeichen.
<div class="remarks-ui">
    <div class="form-js header-attributes-set-form-js">
        <input type="hidden" name="__action" value="OrderEdit/AttributesSet" />
        <input type="hidden" name="orderId" value="{{ order.Id }}" />
        {% assign i = 0 -%}
        {% for headerAttr in config.Orders.AttributesEdit.Header -%}
            {% assign intId = headerAttr.Id | ToInt -%}
            {% unless headerAttr.Editable == false and order.Attributes[intId].Value == null -%}
                {% assign i = i | Plus: 1 -%}
                {% assign modulo = i | Modulo: 3 -%}
                {% if modulo == 1 -%}
                    <div class="order-info-row-ui">
                {% endif -%}
                <div class="order-info-item-ui">
                    <div class="name-ui">
                        {{ headerAttr.Name }}
                        {% if headerAttr.Required -%}
                            <span class="required-ui">*</span>
                        {% endif -%}
                    </div>
                    <div class="content-ui">
                        {% if headerAttr.Editable -%}
                            {% case headerAttr.Format -%}
                                {% when 1 -%}
                                    <input type="text" name="attribute" value="{{ order.Attributes[intId].Value }}" maxlength="50" {% if headerAttr.Required -%} required {% endif -%} />
                                {% when 2 -%}
                                    <input type="number" name="attribute" value="{{ order.Attributes[intId].Value }}" maxlength="50" {% if headerAttr.Required -%} required {% endif -%} />
                                {% when 3 -%}
                                    <span class="select-background-ui">
                                        <select name="attribute">
                                            {% for val in headerAttr.Values %}
                                                <option {% if val.ValueId == headerAttr.Values[0].ValueId or val.ValueId == order.Attributes[intId].ValueId -%} selected="selected" {% endif -%} value="{{ val.ValueId }}">{{ val.Value }}</option>
                                            {% endfor -%}
                                        </select>
                                    </span>
                                    <i class="ti-angle-down select-arrow-ui"></i>
                                    {% when 4 -%}
                                        <input type="date" name="attribute" value="{{ order.Attributes[intId].Value | Date:dateFormat }}" {% if headerAttr.Required -%} required {% endif -%} />
                            {% endcase -%}
                            <div class="error-ui validation-info-js validation-required-js hidden-js">
                                {{ translations.FillAttributeValue }}
                            </div>
                        {% else -%}
                            {{ order.Attributes[intId].Value }}
                        {% endif -%}
                    </div>
                </div>
                {% if modulo == 0 or i == ordAttrSize -%}
		    </div>
		{% endif -%}
	    {% endunless -%}
	{% endfor -%}
    </div>
    <div class="mt20-ui small-text-ui"><span class="required-ui">*</span> {{ translations.RequiredFields }}</div>
</div>

 


Cancel

Aktion, die für das Senden eines Antrags auf Stornierung aller Änderungen verantwortlich ist.

Parameter:

  • orderId (int, Pflichtfeld).
    this.cancel = function (aditionalRequestData) {
                var data = {
                    __action: 'OrderEdit/Cancel',
                    __csrf: __CSRF,
                    orderId: this.orderId,
                    __template: this.orderTemplateUrl,
                };

                if (aditionalRequestData) {
                    data = $.extend(data, aditionalRequestData);
                }

                var thisRef = this;
                return window.UIFeatures.makePostRequest(data, thisRef.orderRequestUrl, function (res) {
                    window.UIFeatures.pureReplaceTemplate(thisRef.orderTemplateContainer, null, null, res.template, thisRef.orderRequestUrl);
                    if (!res.action.Result) {
                        var messagesContainer = $(messagesContainerSelector);
                        window.app.temporaryMessage(messagesContainer, window.UIFeatures.makeMessageHtml(res.action, 'warning'));
                    }
                    thisRef.recalculationRequired = false;
                    window.app.setCookie('lastCartId', -1);
                    if($('.escape-editing-lq').length > 0 ){
                        $('.escape-editing-lq').trigger('click');
                    }
                });
            }

 


CartCreate

Aktion, die für das Senden einer Anfrage zur Erstellung eines Warenkorbs verantwortlich ist, um die Bestellung zu bearbeiten.

  • orderId (int, Pflichtfeld).
  this.cartCreate = function (aditionalRequestData) {
                var data = {
                    __action: 'OrderEdit/CartCreate',
                    __csrf: __CSRF,
                    orderId: this.orderId,
                    __template: this.orderTemplateUrl,
                    __collection: 'config.DefinedPages.Home.Url|customer-profile.OrderQueryGET'
                };

                if (aditionalRequestData) {
                    data = $.extend(data, aditionalRequestData);
                }

                var thisRef = this;
                return window.UIFeatures.makePostRequest(data, thisRef.orderRequestUrl, function (res) {
                    // check if cartId avalible, and put in cookies
                    if (!res.action.Result) {
                        var messagesContainer = $(messagesContainerSelector);
                        window.app.temporaryMessage(messagesContainer, window.UIFeatures.makeMessageHtml(res.action, 'warning'));
                    } else {
                        window.app.setCookie('OrderQueryGET', res.collection['customer-profile.OrderQueryGET']);
                        window.app.newUrl(res.collection['config.DefinedPages.Home.Url']);
                    }
                });
            }

 


CartMerge

Die Aktion, die für das Senden einer Anfrage zur Verknüpfung des Warenkorbs mit der bearbeiteten Bestellung verantwortlich ist.

Parameter:

  • orderId (int lub null).
    this.cartMerge = function (messagesContainerSelector, aditionalRequestData) {
                var data = {
                    __action: 'OrderEdit/CartMerge',
                    __csrf: __CSRF,
                    __collection: 'config.DefinedPages.CustomerProfile.Url'
                };

                if (aditionalRequestData) {
                    data = $.extend(data, aditionalRequestData);
                }

                var thisRef = this;
                return window.UIFeatures.makePostRequest(data, null, function (res) {
                    if (res.action.Result) {
                        //temp order url - to change in future (when profile routing will be implemented)
                        var orderQueryGET = window.app.getCookie('OrderQueryGET');
                        window.app.setCookie('OrderQueryGET', '', -1);
                        if(orderQueryGET.indexOf('&tab=order-details') === -1){
                            window.app.newUrl(res.collection + '?' + orderQueryGET + '=' + thisRef.orderId + '&tab=order-details');
                        } else {
                            window.app.newUrl(res.collection + '?' + orderQueryGET + '=' + thisRef.orderId);
                        }
                    } else {
                        var messagesContainer = $(messagesContainerSelector);
                        window.app.temporaryMessage(messagesContainer, window.UIFeatures.makeMessageHtml(res.action));
                    }
                });
            }

 


Edit

Die Aktion, die für das Senden einer Anfrage zum Starten des Bearbeitungsprozesses verantwortlich ist.

  • orderId (int, Pflichtfeld).
       this.edit = function (aditionalRequestData) {
                var data = {
                    __action: 'OrderEdit/Edit',
                    __csrf: __CSRF,
                    orderId: this.orderId,
                    __template: this.orderTemplateUrl,
                    __collection: 'customer-profile.Order.RecalculationRequired'
                };

                if (aditionalRequestData) {
                    data = $.extend(data, aditionalRequestData);
                }

                var thisRef = this;
                return window.UIFeatures.makePostRequest(data, thisRef.orderRequestUrl, function (res) {
                    window.UIFeatures.pureReplaceTemplate(thisRef.orderTemplateContainer, null, null, res.template, thisRef.orderRequestUrl);
                    if (!res.action.Result) {
                        var messagesContainer = $(messagesContainerSelector);
                        window.app.temporaryMessage(messagesContainer, window.UIFeatures.makeMessageHtml(res.action, 'warning'));
                    }
                    thisRef.recalculationRequired = res.collection;
                });
            }

 


PositionAttributesSet

Aktion, die für die Bearbeitung der Attribute einzelner Waren in einer Bestellung zuständig ist.

Parameter:

  • orderId (int, Pflichtfeld),
  • no (int, Pflichtfeld),
  • attribute (string[]) – kann mehr als einmal pro Aktion übermittelt werden, maximale Länge 1000 Zeichen.
<div class="form-js position-attributes-set-form-js">
    <input type="hidden" name="__action" value="OrderEdit/PositionAttributesSet" />
    <input type="hidden" name="no" value="{{ product.No }}" />
    {% if showInCustomerProfile -%}
	<input type="hidden" name="orderId" value="{{ order.Id }}" />
    {% endif -%}
    {% for positionAttr in attributes -%}
	{% assign intId = positionAttr.Id | ToInt -%}
	{% if nullAttributes != '' -%}
		{% assign isNull = false -%}
		{% for nullAttribute in nullAttributes -%}
			{% if nullAttribute == positionAttr.Id -%}
			        {% assign isNull = true -%}
				{% break -%}
			{% endif -%}
		{% endfor -%}
	{% else -%}
		{% assign isNull = false -%}
	{% endif -%}
	{% if isNull == false -%}
		{% assign mod = i | Modulo:5 -%}
		{% if mod == 0 -%}
			{% assign pageNo = pageNo | Plus:1 -%}
		{% endif -%}
  		<div class="div-table-cell-ui attributes-view-cell-ui {% if order.EditingAllowed -%} order-edit-active-ui {% endif -%} attributes-view-lq hidden-js page{{pageNo}}-lq">
			{% if positionAttr.Editable -%}
				<label class="mobile-ui">{{ positionAttr.Name }} {% if positionAttr.Required -%} <span class="required-ui"> *</span>{% endif -%}</label>
	  			{% case positionAttr.Format -%}
					{% when 1 -%}
		    	  			<input type="text" name="attribute" value="{{ product.Attributes[intId].Value }}" maxlength="50" {% if positionAttr.Required -%} required {% endif -%} />
					{% when 2 -%}
						<input type="number" name="attribute" value="{{ product.Attributes[intId].Value }}" maxlength="50" {% if positionAttr.Required -%} required {% endif -%} />
					{% when 3 -%}
				    		<span class="select-background-ui">
							<select name="attribute">
								{% for val in positionAttr.Values %}
									<option {% if val.ValueId == positionAttr.Values[0].ValueId or val.ValueId == product.Attributes[intId].ValueId -%} selected="selected" {% endif -%} value="{{ val.ValueId }}">{{ val.Value }}</option>
								{% endfor -%}
							</select>
				        	</span>
				        	<i class="ti-angle-down select-arrow-ui"></i>
					{% when 4 -%}
						<input type="date" name="attribute" value="{{ product.Attributes[intId].Value | Date:'yyyy-MM-dd' }}" placeholder="rrrr-mm-dd" {% if positionAttr.Required -%} required {% endif -%} />
				{% endcase -%}
				<div class="error-ui validation-info-js validation-required-js hidden-js">
			    		{{ translations.FillAttributeValue }}
				</div>
			{% else -%}
				{{ product.Attributes[intId].Value }}
			{% endif -%}
    		</div>
    		{% assign i = i | Plus:1 -%}
    	{% endif -%}
    {% endfor -%}
    {% assign mod = i | Modulo:5 -%}
    {% if mod != 0 -%}
    	{% for obj in (mod..4) -%}
		<div class="div-table-cell-ui attributes-view-cell-ui {% if order.EditingAllowed -%} order-edit-active-ui {% endif -%} attributes-view-lq hidden-js page{{pageNo}}-lq"></div>
	{% endfor -%}
    {% endif -%}
</div>

 


PositionDelete

Aktion, die für das Senden einer Anfrage zum Löschen eines Objekts verantwortlich ist.

Parameter:

  • orderId (int, Pflichtfeld),
  • no (int, Pflichtfeld).
  this.positionDelete = function (posNo, aditionalRequestData) {
                var data = {
                    __action: 'OrderEdit/PositionDelete',
                    __csrf: __CSRF,
                    no: posNo,
                    orderId: this.orderId,
                    __template: this.orderTemplateUrl,
                    __collection: 'customer-profile.Order.RecalculationRequired'
                };

                if (aditionalRequestData) {
                    data = $.extend(data, aditionalRequestData);
                }

                var thisRef = this;
                return window.UIFeatures.makePostRequest(data, thisRef.orderRequestUrl, function (res) {
                    window.UIFeatures.pureReplaceTemplate(thisRef.orderTemplateContainer, null, null, res.template, thisRef.orderRequestUrl);
                    if (!res.action.Result) {
                        var messagesContainer = $(messagesContainerSelector);
                        window.app.temporaryMessage(messagesContainer, window.UIFeatures.makeMessageHtml(res.action, 'warning'));
                    }
                    thisRef.recalculationRequired = res.collection;
                });
            }

 


PositionQuantityChange

Aktion, die für das Senden einer Anfrage zur Änderung der Menge eines Artikels verantwortlich ist.

Parameter:

  • orderId (int, Pflichtfeld),
  • no (int, Pflichtfeld),
  • quantity (decimal, Pflichtfeld) – kann einen Wert zwischen 0,01 und 99999 annehmen.
this.positionQuantityChange = function (posNo, quantity, messagesContainerSelector, aditionalRequestData) {
                var data = {
                    __action: 'OrderEdit/PositionQuantityChange',
                    __csrf: __CSRF,
                    no: posNo,
                    orderId: this.orderId,
                    quantity: quantity,
                    __template: this.orderTemplateUrl,
                    __collection: 'customer-profile.Order.RecalculationRequired'
                };

                if (aditionalRequestData) {
                    data = $.extend(data, aditionalRequestData);
                }

                var thisRef = this;
                if(aditionalRequestData.orderDetPageId && thisRef.orderRequestUrl.indexOf('orderDetPageId='+aditionalRequestData.orderDetPageId) === -1){
                    if(thisRef.orderRequestUrl.indexOf('orderDetPageId') !== -1){
                        thisRef.orderRequestUrl = thisRef.orderRequestUrl.substring(0, thisRef.orderRequestUrl.indexOf('&orderDetPageId')) + '&orderDetPageId=' + aditionalRequestData.orderDetPageId;
                    } else {
                        thisRef.orderRequestUrl = thisRef.orderRequestUrl + '&orderDetPageId=' + aditionalRequestData.orderDetPageId;
                    }
                }

                return window.UIFeatures.makePostRequest(data, thisRef.orderRequestUrl, function (res) {
                    window.UIFeatures.pureReplaceTemplate(thisRef.orderTemplateContainer, null, null, res.template, thisRef.orderRequestUrl);
                    if (!res.action.Result) {
                        var container = $(messagesContainerSelector);
                        container.find('.error-msg-lq').remove();
                        var messageContainer = '<div class="quantity-error-ui error-msg-lq">'+res.action.Description+'</div>';
                        container.append(messageContainer);
                        container.find('.error-msg-lq').delay(3000).fadeOut(300, function(){
                            $(this).remove();
                        });
                    }
                    thisRef.recalculationRequired = res.collection;
                });
            }

 


PositionUndo

Aktion, die für das Senden einer Anfrage zur Rückgängigmachung aller Änderungen an einer Position in einem Auftrag zuständig ist.

Parameter:

  • orderId (int, Pflichtfeld),
  • no (int, Pflichtfeld).
 this.undo = function (aditionalRequestData) {
                var data = {
                    __action: 'OrderEdit/Undo',
                    __csrf: __CSRF,
                    orderId: this.orderId,
                    __template: this.orderTemplateUrl,
                    __collection: 'customer-profile.Order.RecalculationRequired'
                };

                if (aditionalRequestData) {
                    data = $.extend(data, aditionalRequestData);
                }

                var thisRef = this;

                return window.UIFeatures.makePostRequest(data, thisRef.orderRequestUrl, function (res) {
                    window.UIFeatures.pureReplaceTemplate(thisRef.orderTemplateContainer, null, null, res.template, thisRef.orderRequestUrl);
                    if (!res.action.Result) {
                        var messagesContainer = $(messagesContainerSelector);
                        window.app.temporaryMessage(messagesContainer, window.UIFeatures.makeMessageHtml(res.action, 'warning'));
                    }
                    thisRef.recalculationRequired = res.collection;
                });
            }

 


Recalculate
Die Aktion, die für das Senden einer Anfrage zur Neuberechnung eines Auftrags zuständig ist.

Parameter:

  • orderId (int, Pflichtfeld).
     this.recalculate = function(aditionalRequestData) {
                var data = {
                    __action: 'OrderEdit/Recalculate',
                    __csrf: __CSRF,
                    orderId: this.orderId,
                    __template: this.orderTemplateUrl,
                };

                if (aditionalRequestData) {
                    data = $.extend(data, aditionalRequestData);
                }

                var thisRef = this;
                return window.UIFeatures.makePostRequest(data, thisRef.orderRequestUrl, function (res) {
                    window.UIFeatures.pureReplaceTemplate(thisRef.orderTemplateContainer, null, null, res.template, thisRef.orderRequestUrl);
                    if (!res.action.Result) {
                        var messagesContainer = $(messagesContainerSelector);
                        window.app.temporaryMessage(messagesContainer, window.UIFeatures.makeMessageHtml(res.action, 'warning'));
                    }
                    thisRef.recalculationRequired = false;
                });
            }

 


Undo

Aktion, mit der ein Antrag auf Rückgängigmachung aller Änderungen an einem Auftrag gestellt werden kann.

Parameter:

  • orderId (int, Pflichtfeld).
     this.undo = function (aditionalRequestData) {
                var data = {
                    __action: 'OrderEdit/Undo',
                    __csrf: __CSRF,
                    orderId: this.orderId,
                    __template: this.orderTemplateUrl,
                    __collection: 'customer-profile.Order.RecalculationRequired'
                };

                if (aditionalRequestData) {
                    data = $.extend(data, aditionalRequestData);
                }

                var thisRef = this;

                return window.UIFeatures.makePostRequest(data, thisRef.orderRequestUrl, function (res) {
                    window.UIFeatures.pureReplaceTemplate(thisRef.orderTemplateContainer, null, null, res.template, thisRef.orderRequestUrl);
                    if (!res.action.Result) {
                        var messagesContainer = $(messagesContainerSelector);
                        window.app.temporaryMessage(messagesContainer, window.UIFeatures.makeMessageHtml(res.action, 'warning'));
                    }
                    thisRef.recalculationRequired = res.collection;
                });
            }

 


FbAccountLink

Aktion, die für die Verknüpfung des Shop-Kontos mit dem Facebook-Konto verantwortlich ist.

Parameter:

  • userID (int).
    function connectFb(e) {
    if (fbLoginStatus.status === 'connected') {
        var userIdNum = fbLoginStatus.authResponse.userID;
        var data = {
            __csrf: __CSRF,
            __action: 'External/FbAccountLink',
            userID: userIdNum
        };
        $.post(null, data, function (result) {
            if (result.action.Result) {
                location.reload();
            } else {
                application.createMessage(result.action);
            }
        });
    } else {
        var loginMessage = $(e.currentTarget).data('error-msg');
        application.createMessage(loginMessage);
    }
}

 


FbAccountUnlink

Die Aktion, die für das Trennen des Shop-Kontos vom Facebook-Konto verantwortlich ist.

function disconnectFb() {
    var data = {
        __csrf: __CSRF,
        __action: 'External/FbAccountUnlink'
    };
    $.post(null, data, function (result) {
        if (result.action.Result) {
            location.reload();
        } else {
            application.createMessage(result.action);
        }
    });
}

 


FbLogin

Die Aktion, die für Anmeldung verantwortlich ist.

Parameter:

  • response (string, Pflichtfeld).
function connectToFb(response) {
    FB.api('/me', {
        fields: 'email,name'
    }, function (u) {
        response.user = u;
        $.post(null, {
            __csrf: __CSRF,
            __action: 'external/fblogin',
            response: JSON.stringify(response)
        }, function (result) {
            if (result.action.Result) {
                window.location.replace('');
            } else if (result.action.Code != 100) {
                application.createMessage(result.action);
            }
        });
    });
}

 


GoogleAccountLink

Aktion, die für die Verknüpfung des Shop-Kontos mit dem Google-Konto verantwortlich ist.

Parameter:

  • userID (int).
  $('#linkGoogleAccount').off().click(function(){
                bodyTag.style.cursor = 'wait';
                au.signIn().then(function(googleUser){
                    return googleUser.getBasicProfile().getId();
                }).then(function (value) {
                    setTimeout(function() {
                        $.post(null,{ __action: 'External/GoogleAccountLink', __csrf: __CSRF, userID: value },function(result){
                            if (result.action.Result) {
                                location.reload();
                            } else {
                                createMessage(result);
                                bodyTag.style.cursor = 'default';
                            }
                        });
                    }, 1000);
                });
            });

 


GoogleAccountUnlink

Die Aktion, die für das Trennen des Shop-Kontos vom Google-Konto verantwortlich ist.

 $('#unlinkGoogleAccount').off().click(function(){
                $.post(null,{ __action: 'External/GoogleAccountUnlink', __csrf: __CSRF },function(result){
                    if (result.action.Result) {
                        location.reload();
                    } else {
                        createMessage(result);
                        bodyTag.style.cursor = 'default';
                    }
                });
            });

 


Exec

Die Aktion, die Daten direkt aus dem ERP abholt.

Parameter:

  • message (string, Pflichtfeld),
  • worker (string) – Die maximale Länge beträgt 32 Zeichen.
  var data = {
    __action: 'sync/exec',
    __CSRF: __CSRF,
    worker: 'erpData',
    message: JSON.stringify({
        command: 'CDN.eShop_GetOrders',
        parameters: { 
            DateFrom: '2019-01-01', 
            DateTo: '2019-12-31', 
            LanguageId: __lngId, 
            PageNo: '1'
       }
    }) 
};

function getData() {
  $.post(null, data, function (d) {
	 if (!d.action.Result) {  
		console.log(JSON.stringify(d));
		return;
	 } else {
		console.log(JSON.stringify(d));

		var res = d.action.Object[0];
		console.log(JSON.stringify(res));

		var res2 = d.action.Object[1];
		console.log(JSON.stringify(res2));

		var res3 = d.action.Object[2];
		console.log(JSON.stringify(res3));
	 }
  });
}

 


Add

Die Aktion, die für das Hinzufügen von Angebotsanfragen verantwortlich ist.

Parameter:

  • email (string, Pflichtfeld) –
  • Die maximale Länge beträgt 192 Zeichen,
  • phoneNo (string) – Die maximale Länge beträgt 20 Zeichen.
  • name (string, Pflichtfeld) – Die maximale Länge beträgt 128 Zeichen,
  • message (string) – Die maximale Länge beträgt 2000 Zeichen,
  • tos (int),
  • channelKey (string).
<input aria-label="action-inquiry-add" type="hidden" name="__action" value="Inquiry/Add" />
{% for tos in config.TOS.Consents.Inquiries -%}
    <div class="tos-container-js {% if tos.Statement -%} statement-ui statement-lq {% endif -%}" >
        {% if tos.Statement -%}
            {{ tos.Text }}
        {% else -%}
            <label class="checkbox-ui tos-js">
                <input aria-label="tos" type="checkbox" name="tos" value="{{ tos.Id }}" {% if tos.Required -%} required {% endif -%} />
                <span class="label-ui">{% if tos.Required -%}<span class="required-ui">*</span> {% endif -%}{{ tos.Text }}</span>
                {% if tos.Required -%}
                    <span class="error-ui validation-info-js validation-required-js hidden-js">{{ translations.RequiredField }}</span>
                {% endif -%}
            </label>
        {% endif -%}
        {% assign channelsSize = tos.Channels | Size -%}
        {% if channelsSize > 0 -%}
            {% assign onlyEmail = false -%}
            {% if channelsSize == 1 and tos.Channels[0].Type == 1 -%}
                {% assign onlyEmail = true -%}
            {% endif -%}
            {% if onlyEmail == false -%}
                <span class="error-ui validation-info-js validation-channel-js hidden-js">{{ translations.ChooseOption }}</span>
            {% endif -%}
        {% endif -%}
        {% for channel in tos.Channels -%}
            <label class="checkbox-ui channel-ui {% if onlyEmail == false -%} channel-js {% endif -%} {% if tos.Statement == false -%} disabled-channel-js {% endif -%}">
                {% if onlyEmail == false -%}
                    <input aria-label="channelKey" type="checkbox" name="channelKey" value="{{ channel.Key }}" {% if tos.Statement == false -%} disabled {% endif -%} />
                {% else -%}
                    <input aria-label="channelKey" type="hidden" name="channelKey" value="{{ channel.Key }}" checked />
                    <input aria-label="channelKey" type="checkbox" checked disabled />
                {% endif -%}
                <span class="label-ui">{{ channel.Name }}</span>
            </label>
        {% endfor -%}
    </div>
{% endfor -%}
<small class="mb10-ui block-ui"><span class="required-ui">*</span> {{ translations.RequiredFields }}</small>
<button aria-label="inquiry-recalculate" class="order-button-ui parent-container-reload-js add-inquiry-js" data-products-quantity="{{order.Products | Size}}" data-date="{{config.Now | Date:dateFormat}}">
    {{translations.AddInquiry}}
</button>

 


CartMerge

Die Aktion, die für das Hinzufügen des Warenkorbs zur Angebotsanfrage verantwortlich ist.

Parameter:

  • inquiryId (int, Pflichtfeld).
function produceOffer(e) {
    var id = $(e.currentTarget).data('id');
    var url = $(e.currentTarget).data('redirect-url');
    var data = {
        __action: 'Inquiry/CartMerge',
        __csrf: __CSRF,
        inquiryId: id
    }
    $.post('', data, function(result) {
        if (result.action.Result) {
            app.replace(url);
        }
    });
};

Set

Die Aktion, die für das Setzen des Warenkorbs als Abfrage verantwortlich ist.

Parameter:

  • inquiry (bool),
  • cartId (int lub null).
toggleCartType: async function() {
    const trigger = this;
    if(trigger.classList.contains('change-into-cart-js')){
        var inquiry = false;
        if(document.getElementsByClassName('last-inquiry-js').length > 0){
            window.app.setCookie('lastCartId', window.app.getCookie('activeInquiryId'));
            window.app.setCookie('activeInquiryId', -1);
        }
    } else {
        var inquiry = true;
        if(document.getElementsByClassName('last-cart-js').length > 0){
            window.app.setCookie('activeInquiryId', window.app.getCookie('lastCartId'));
            window.app.setCookie('lastCartId', -1);
        }
    }
    const message = trigger.dataset.message;
    const result = await js.post({__action: 'Inquiry/Set', inquiry: inquiry});
    document.body.innerHTML += '<div class="toggle-cart-type-succeed-js message-popup-background-ui">'+
                                    '<div class="message-popup-ui box-ui">'+
                                        '<div class="box-ui" style="padding: 50px">'+
                                            '<i class="va-mid-ui ti-check" style="margin-right: 10px; font-size: 30px; color: #7fba00"></i>'+
                                            '<span class="va-mid-ui line-height-1-ui" style="font-weight: 500; font-size: 18px">'+message+'</span>'+
                                        '</div>'+
                                    '</div>'+
                                '</div>'
},

Ping

Die Aktion ist für die Aufrechterhaltung der Sitzung des Nutzers des Webshops verantwortlich. Standardmäßig beträgt die Inaktivitätszeit für eine Benutzersitzung 15 Minuten. Nach Ablauf dieser Zeit wird die Sitzung gelöscht. In Comarch-Vorlagen wird die Sitzung beibehalten. Nachfolgend findest du ein Beispielskript, das du entsprechend in deiner Vorlage in einer der js-Dateien implementieren solltest.

setInterval(() => fetch(document.baseURI + 'xhr?__action=svc/ping'), 600000);

Czy ten artykuł był pomocny?