W Comarch e-Sklep udostÄ™pniliÅ›my do PaÅ„stwa dyspozycji Akcje –  sÄ… to dziaÅ‚ania na stronie zwiÄ…zane z interakcjÄ… użytkownika (kupujÄ…cego jak i zarzÄ…dzajÄ…cego sklepem), takie jak np. dokonywanie zakupów, dodawanie produktów do koszyka czy zmiana waluty.
Lista dostępnych akcji znajduje się w Panelu Administracyjnym sklepu w następującej ścieżce: Panel administracyjny/Wygląd sklepu/Dokumentacja.
ZwiÄ…zane z Klientem
Akcje te możemy określić jako powiązane z Klientem i jego działaniami na stronie.
W skład tych akcji wchodzą:
Dotyczące zamówienia
Akcje w tej grupie dotyczą składanych zamówień.
W skład tych akcji wchodzą:
Newsletter
Akcja odpowiada za działanie związane z newsletterem.
W skład tych akcji wchodzą:
Subscribe | Unsubscribe |
Akcje GET
Akcje te umożliwiają pobieranie danych z serwera celem utworzenia np. breadcrumbs.
W skład tych akcji wchodzą:
CollectionPointCities | SearchAdvanced |
CollectionPoints | SearchAutocomplete |
Groups | SearchFilters |
Search | ProductId |
Produkty
Akcje te odpowiadają za działania związane z produktami, takimi jak możliwość dodania opinii na temat produktu.
W skład tych akcji wchodzą:
Koszyk
Akcje te odpowiadają za działania związane z koszykiem, np. dodaniem produktu do koszyka.
W skład tych akcji wchodzą:
Add | NameSet |
AttributesSet | PositionDelete |
Change | QuantityChange |
Create | Recalculate |
Delete | SetAdd |
ExternalAdd | SetExtAdd |
ImportCSV |
Kontakt
Akcje te odpowiadajÄ… za kontakt, np. w celu zapytania o dany produkt.
W skład tych akcji wchodzą:
AskAboutProduct | TellFriendAboutProduct |
Send |
Edycja zamówienia
Akcje te związane są z edycją zamówienia.
W skład tych akcji wchodzą:
Accept | PositionAttributesSet |
AttributesSet | PositionDelete |
Cancel | PositionQuantityChange |
CartCreate | PositionUndo |
CartMerge | Recalculate |
Edit | Undo |
External
Akcje te odpowiedzialne są za możliwość logowania się poprzez Facebook lub Google.
W skład tych akcji wchodzą:
FbAccountLink | GoogleAccountLink |
FbAccountUnlink | GoogleAccountUnlink |
FbLogin | GoogleLogin |
Sync
Akcje te odpowiadajÄ… za dziaÅ‚ania zwiÄ…zane z pobieraniem danych z baz systemów. WiÄ™cej informacji można znaleźć klikajÄ…c w odnoÅ›nik – Comarch e-Sklep Sync.
W skład tych akcji wchodzą:
Exec |
Zapytania ofertowe
Akcje te odpowiadają za działania związane ze składaniem zapytań ofertowych.
W skład tych akcji wchodzą:
Add | Set |
CartMerge |
Sesja użytkownika
Akcje te odpowiadają za działania związane z utrzymywaniem sesji użytkownika.
W skład tych akcji wchodzą:
Ping |
Opis używanych akcji:
Akcja odpowiada za zmianÄ™ firmy.
Parametry:
- id (int, pole obowiÄ…zkowe).
0 1 2 3 4 5 |
<form action="{{ page.Url }}{{ page.QueryString | H }}" method="post"> <input type="hidden" name="__action" value="Customer/CompanyChange"/> <input type="hidden" name="id" value=""/> </form> |
Akcja odpowiada za wczytanie domyślnych ustawień firmy.
Parametry:
- id (int, pole obowiÄ…zkowe).
0 1 2 3 4 5 |
<form action="{{ page.Url }}{{ page.QueryString | H }}" method="post"> <input type="hidden" name="__action" value="Customer/CompanyDefaultUpdate"/> <input type="hidden" name="id" value=""/> </form> |
Akcja odpowiadająca za akceptację zgody, na przykład podczas składania zamówienia.
Parametry:
- tos (int lub null),
- channelKey (string).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
{% 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 -%} |
Akcja odpowiadajÄ…ca za akceptacjÄ™ zgody obowiÄ…zkowej podczas logowania.
Parametry:
- tos (int[]) – może zostac przekazane wielokrotnie w ramach jednej akcji (int),
- channelKey (string[]) – może zostać przekazane wielokrotnie w ramach jednej akcji (string).
0 1 2 3 4 5 6 7 8 9 10 |
<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> |
Akcja odpowiada za wycofanie zgody.
Parametry:
- tos (int lub null),
- channelKey (string).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
{% 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 -%} |
Akcja odpowiada za zmianÄ™ waluty.
Parametry:
- currency (string, pole obowiÄ…zkowe).
0 1 2 3 4 5 6 7 8 9 10 11 |
<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> |
Akcja odpowiada za dodanie adresu do dostawy.
Parametry:
- addresId (int lub null),
- default (bool),
- name (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 64 znaki,
- name2 (string) – maksymalna dÅ‚ugość to 64 znaki,
- name3 (string) – maksymalna dÅ‚ugość to 250 znaków,
- countryCode (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 2 znaki,
- zipCode (string)- maksymalna długość to 20 znaków,
- city (string) – maksymalna dÅ‚ugość to 50 znaków,
- street (string) – maksymalna dÅ‚ugość to 150 znaków,
- streetNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- unitNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- state (string) – maksymalna dÅ‚ugość to 50 znaków,
- phoneNo (string) – maksymalna dÅ‚ugość to 50 znaków.
0 1 2 3 4 5 6 7 8 |
<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> |
Umożliwia usunięcie adresu dostawy.
Parametry:
- addressId (int, pole obowiązkowe).
0 1 2 3 4 5 6 7 |
{% 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> |
Akcja umożliwia edycję adresu.
Parametry:
- addresId (int lub null),
- default (bool),
- name (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 64 znaki,
- name2 (string) – maksymalna dÅ‚ugość to 64 znaki,
- name3 (string) – maksymalna dÅ‚ugość to 250 znaków,
- countryCode (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 2 znaki,
- zipCode (string) – maksymalna dÅ‚ugość to 20 znaków,
- city (string) – maksymalna dÅ‚ugość to 50 znaków,
- street (string) – maksymalna dÅ‚ugość to 150 znaków,
- streetNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- unitNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- state (string) – maksymalna dÅ‚ugość to 50 znaków,
- phoneNo (string) – maksymalna dÅ‚ugość to 50 znaków.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<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> |
Akcja odpowiadajÄ…ca zmianie adresu e-mail.
Parametry:
- email (string, pole obowiÄ…zkowe, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki,
- emailRepeat (string, pole obowiÄ…zkowe, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki,
- password (string, pole obowiązkowe),
- doNotChangeCompanyEmail (bool) – wystÄ™puje tylko w wersji enterprise.
0 1 2 3 4 5 6 7 8 9 10 11 |
<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> |
Akcja odpowiada za dodanie pracownika.
Parametry:
- email (string, pole obowiÄ…zkowe, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki.
0 1 2 3 4 5 6 7 |
<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> |
Akcja odpowiada za usunięcie pracownika.
Parametry:
- id (int, pole obowiązkowe).
0 1 2 3 4 5 6 7 |
<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> |
Akcja odpowiada za zablokowanie pracownika.
Parametry:
- id (int, pole obowiÄ…zkowe).
0 1 2 3 4 5 6 |
<form method="POST"> <input type="hidden" name="__csrf" value="{{ page.CSRF }}"/> <input type="hidden" name="__action" value="Customer/EmployeeLock" /> <input type="number" name="id" placeholder="" required /> <button>Zatwierdź</button> </form> |
Akcja odpowiada za odblokowanie pracownika.
Parametry:
- id (int, pole obowiązkowe).
0 1 2 3 4 5 6 |
<form method="POST"> <input type="hidden" name="__csrf" value="{{ page.CSRF }}"/> <input type="hidden" name="__action" value="Customer/EmployeeUnock" /> <input type="number" name="id" placeholder="" required /> <button>Zatwierdź</button> </form> |
Akcja ta odpowiada za aktualizację danych pracowników w profilu.
Parametry:
- name (string) – maksymalna dÅ‚ugość to 50 znaków,
- name2 (string) – maksymalna dÅ‚ugość to 50 znaków,
- phoneNo (string) – maksymalna dÅ‚ugość to 50 znaków,
- languageId (short lub null).
0 1 2 3 4 5 6 7 8 9 |
<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> |
Odpowiada za wybór i zmianę języka w sklepie.
Parametry:
- languageId (short, pole obowiÄ…zkowe).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 |
{% 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> |
Odpowiada za ustawienie domyślnego języka.
Parametry:
- languageId (short, pole obowiÄ…zkowe).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 |
{% 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> |
Akcja odpowiadajÄ…ca za logowanie.
Parametry:
- email (string, pole obowiÄ…zkowe, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki,
- password (string, pole obowiązkowe),
- remember (bool).
0 1 2 3 4 5 6 7 8 9 10 11 12 |
<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> |
Akcja ta odpowiada za wylogowanie zalogowanego użytkownika (Klienta).
0 1 2 3 4 5 6 |
<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> |
Akcja odpowiadająca za zmianę hasła.
Parametry:
- oldPassword (string, pole obowiązkowe),
- password (string, pole obowiÄ…zkowe),
- passwordRepeat (string, pole obowiązkowe).
0 1 2 3 4 5 6 7 8 9 |
<form method="POST"> <input type="hidden" name="__action" value="Customer/OldPasswordChange" /> <input type="hidden" name="__template" value="customer/profile-account.html" /> <input type="password" name="oldPassword" placeholder="" required /> <input type="password" name="password" placeholder=" " required /> <input type="password" name="passwordRepeat" placeholder=" " required /> <button>Zatwierdź</button> </form> |
Akcja odpowiadajÄ…ca za zmianÄ™ hasÅ‚a (np. przy pomocy formularza ,,zapomniaÅ‚em hasÅ‚a”).
Parametry:
- password (string, pole obowiązkowe),
- passwordRepeat (string, pole obowiÄ…zkowe),
- hash (string, pole obowiązkowe).
0 1 2 3 4 5 6 7 8 9 |
<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> |
Akcja której zadaniem jest odzyskanie hasła.
Parametry:
- email (string, pole obowiÄ…zkowe, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki.
0 1 2 3 4 5 6 7 |
<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> |
Akcja ta odpowiada za rejestrację użytkownika.
Parametry:
- company (bool),
- email (string, pole obowiÄ…zkowe, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki,
- password (string, pole obowiązkowe),
- passwordRepeat (string),
- phoneNo (string) – maksymalna dÅ‚ugość to 50 znaków,
- name (string) – maksymalna dÅ‚ugość to 64 znaki,
- name2 (string) – maksymalna dÅ‚ugość to 64 znaki,
- name3 (string) – maksymalna dÅ‚ugość to 250 znaków,
- countryCode (string) – maksymalna dÅ‚ugość to 2 znaki,
- zipCode (string) – maksymalna dÅ‚ugość to 20 znaków,
- city (string) – maksymalna dÅ‚ugość to 50 znaków,
- street (string) – maksymalna dÅ‚ugość to 150 znaków,
- streetNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- unitNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- state (string) – maksymalna dÅ‚ugość to 50 znaków,
- tin (string) – maksymalna dÅ‚ugość to 20 znaków,
- ssn (string) – maksymalna dÅ‚ugość to 20 znaków,
- tos (int[]) – może zostać przekazane wielokrotnie w ramach jednej akcji (int),
- channelKey (string[]) – może zostać przekazane wielokrotnie w ramach jednej akcji (string),
- vateu (string) – wystÄ™puje tylko w wersji Enterprise, maksymalna dÅ‚ugość to 2 znaki.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<form method="POST"> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input type="hidden" name="__action" value="Customer/Register" /> <input type="hidden" name="company" value="{% if registerCompany %}1{% endif %}" /> {% if registerCompany == 0 %} <input type="email" name="email" value="{{ customer.Email }}" {% if customer.Email == blank %} placeholder=" " {% endif %} required autofocus /> <input type="password" name="password" placeholder="* {{ translations.Com_Password }}" required /> {% if registerCompany %} {% if config.ENTERPRISE %} <select name="vateu" class="small"> {% for v in config.VATEU %} <option value="{{ v.Value }}">{{ v.Name }}</option> {% endfor %} </select> {% endif %} <input type="text" name="tin" class="small nm" placeholder=" " /> {% endif %} {% if registerConf.AddressVisible %} <input type="text" name="name" placeholder=" " {% if customerAddressRequired %} required {% endif %} /> <input type="text" name="name2" /> <select name="countryCode" placeholder=" " {% if customerAddressRequired %} required {% endif %} > {% for c in config.Countries %} <option {% if config.DefaultCountry == c.ISOCode %} selected {% endif %} value="{{ c.ISOCode }}">{{ c.Name }}</option> {% endfor %} </select> <input type="text" name="street" placeholder=" " {% if customerAddressRequired %} required {% endif %} /> <input type="text" name="streetNo" placeholder=" " {% if customerAddressRequired %} required {% endif %} /> <input type="text" name="unitNo" placeholder=" " /> <input type="text" name="zipCode" placeholder=" " {% if customerAddressRequired %} required {% endif %} /> <input type="text" name="city" placeholder=" " {% if customerAddressRequired %} required {% endif %} /> {% comment %} <input type="text" name="state" placeholder=" " {% if customerAddressRequired %} required {% endif %} /> {% endcomment %} {% endif %} {% if registerConf.PhoneVisible %} <input type="tel" name="phoneNo" placeholder=" " {% if registerConf.PhoneRequired %} required {% endif %} /> {% endif %} <div class="switch"> {% for tos in config.TOS.Consents.Registration -%} {% if tos.Statement %} <label>{{tos.Text}}</label> {% else %} <input name="tos" id="tos{{ tos.Id }}" type="checkbox" value="{{ tos.Id }}" {% if tos.Required %} required {% endif %} /> <label for="tos{{ tos.Id }}">{% if tos.Required %}*{% endif %} {{tos.Text}}</label> {% endif %} {% endfor -%} </div> <a href="{{ config.DefinedPages.Login.Url }}">{{ translations.Lgn_LoginB }}</a> </form> |
Odpowiada za dodanie nicku dla użytkownika który dodaje opinie o produkcie.
Parametry:
- author (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 50 znaków.
0 1 2 3 4 5 6 7 8 9 |
<form method="POST"> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input type="hidden" name="__action" value="Customer/ReviewAuthorUpdate" /> <input type="hidden" name="__template" value="customer/profile-account.html" /> <input type="text" name="author" value="{{ customer.ReviewAuthor }}" placeholder=" " required /> <button>Zatwierdź</button> </form> |
Akcja odpowiadajÄ…ca za zmianÄ™ danych konta.
Parametry:
- email (string, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki,
- company (bool),
- name (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 64 znaki,
- name2 (string) – maksymalna dÅ‚ugość to 64 znaki,
- name3 (string) – maksymalna dÅ‚ugość to 250 znaków,
- countryCode (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 2 znaki,
- zipCode (string) – maksymalna dÅ‚ugość to 20 znaków,
- city (string) – maksymalna dÅ‚ugość to 50 znaków,
- street (string) – maksymalna dÅ‚ugość to 150 znaków,
- streetNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- unitNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- state (string) – maksymalna dÅ‚ugość to 50 znaków,
- phoneNo (string) – maksymalna dÅ‚ugość to 50 znaków,
- tin (string) – maksymalna dÅ‚ugość to 20 znaków,
- ssn (string) – maksymalna dÅ‚ugość to 20 znaków,
- invoice (bool),
- vateu (string) – wystÄ™puje tylko w wersji Enterprise, maksymalna dÅ‚ugość to 2 znaki,
- subtotalPrices (bool) – wystÄ™puje tylko w wersji enterprise.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<form action="{{ page.Url }}{{ page.QueryString | H}}" method="post" novalidate> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input type="hidden" name="__action" value="Customer/Update" /> <input type="hidden" name="__template" value="customer/profile-data.html" /> <input type="hidden" name="company" value="{% if customer.Company %}1{% endif %}" /> <input type="hidden" name="invoice" value="{% if customer.Invoice %}1{% endif %}" /> <div> {% if customer.Address.Street <> "" %} {% include 'customer/profile-data-address-pr.html' with -1 %} {% if customer.Company %} {% include 'customer/profile-data-compaddr-pr.html'%} {% endif %} {% else %} {% include 'customer/profile-data-address.html' with -1 %} {% if customer.Company %} {% include 'customer/profile-data-compaddr.html'%} {% endif %} {% endif %} </div> <button>Zatwierdź</button> {% if customer.Address.Street <> "" %}<button>Zatwierdź</button>{% endif %}<div> {{ translations.Prf_AccountFor }}: {% if customer.Company == false %}{{ translations.Prf_RetailCustomer }}{%else%}{{ translations.Prf_Company }}{%endif%} </div> </form> |
Umożliwia akceptację zamówienia w sytuacji, gdy mamy do czynienia z np. negocjowalnym kosztem transportu.
Parametry:
- id (int, pole obowiązkowe),
- hash (string).
0 1 2 3 4 5 6 7 8 9 |
<div class="form-js no-message-lq"> <input type="hidden" name="__action" value="Order/Accept" /> <input type="hidden" name="id" value="{{ order.Id }}" /> <input type="hidden" name="hash" value="{{ order.Hash }}" /> <button class="post-lq parent-container-reload-js"> {{ translations.OrderAccept }} </button> </div> |
Odpowiada za dodanie zamówienia.
Parametry:
- tos (int[]) – może zostać przekazane wielokrotnie w ramach jednej akcji (int),
- channelKey (string[]) – może zotać przekazane wielokrotnie w ramach jednej akcji (string).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
<div class="form-js adding-order-form-js tos-form-ui {% if settings.cartVersion == 'comfortable' -%} comfortable-tos-ui {% endif -%}"> <input aria-label="action-order-add" type="hidden" name="__action" value="Order/Add" /> {% for tos in config.TOS.Consents.Order -%} {% 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 -%} <div class="tos-container-js {% if tos.Statement -%} statement-ui statement-lq {% endif -%}" > {% if tos.Statement -%} {% unless channelsSize == 1 -%} {% if tos.Required-%}<span class="required-ui">* </span>{% endif -%} {{tos.Text | Remove: '.' }} {{translations.Consents_InTheFormOf}}: {% endunless -%} {% else -%} <label class="checkbox-ui tos-js"> {% if channelsSize == 1 -%} <input aria-label="tos" type="checkbox" name="tos" value="{{ tos.Id }}" {% if tos.Required -%} required {% endif -%} /> {% elsif channelsSize > 0 -%} <input aria-label="tos" type="checkbox" name="tos" value="{{ tos.Id }}" {% if tos.Required -%} required {% endif -%} /> <span>{% if tos.Required-%}<span class="required-ui">* </span>{% endif -%} {{tos.Text | Remove: '.' }} {{translations.Consents_InTheFormOf}}:</span> {% if tos.Required -%} <span class="error-ui validation-info-js validation-required-js hidden-js">{{ translations.RequiredField }}</span> {% endif -%} {% else -%} <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 -%} {% endif -%} </label> {% endif -%} {% if channelsSize > 0 -%} {% 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 channelsSize > 0 -%} channel-js {% endif -%}"> {% if tos.Statement -%} {% if channelsSize == 1 -%} <input aria-label="channelKey" type="hidden" name="channelKey" value="{{ channel.Key }}" checked /> <input aria-label="channelKey" type="checkbox" checked disabled /> <span class="statementLabel-ui">{% if tos.Required-%}<span class="required-ui">* </span>{% endif -%} {{tos.Text | Remove: '.' }} {{translations.Consents_InTheFormOf}} {% unless channel.Name == "SMS" -%} {{ channel.Name | Downcase }}. {% else -%} {{ channel.Name }}. {% endunless -%}</span> {% elsif channelsSize > 0 -%} <input aria-label="channelKey" type="checkbox" name="channelKey" value="{{ channel.Key }}" checked /> <span class="statementLabel-ui" >{{ channel.Name }}</span> {% endif -%} {% else -%} {% if channelsSize == 1 -%} <input aria-label="channelKey" type="checkbox" name="channelKey" value="{{ channel.Key }}" /> <span class="label-ui" style="margin-left: 0 !important;">{% if tos.Required-%}<span class="required-ui">* </span>{% endif -%} {{tos.Text | Remove: '.' }} {{translations.Consents_InTheFormOf}} {% unless channel.Name == "SMS" -%} {{ channel.Name | Downcase }}. {% else -%} {{ channel.Name }}. {% endunless -%}</span> {% elsif channelsSize > 0 -%} <input aria-label="channelKey" type="checkbox" name="channelKey" value="{{ channel.Key }}" /> <span class="label-ui">{{ channel.Name }}</span> {% endif -%} {% endif -%} </label> {% endfor -%} </div> {% endfor -%} <small class="mb10-ui block-ui"><span class="required-ui">*</span> {{ translations.RequiredFields }}</small> <div class="order-validation-lq hidden-js message-bar-ui warning-bar-ui">{{translations.ConfirmAll}}</div> {% if customer.CreditLimit and creditStatus == 2 -%} <div class="order-validation-lq credit-limit-error-ui message-bar-ui error-bar-ui">{{ translations.CreditLimitStatus_2 }}</div> {% elsif customer.CreditLimit and creditStatus == 1 -%} <div class="order-validation-lq credit-limit-error-ui message-bar-ui warning-bar-ui">{{ translations.CreditLimitStatus_1 }}</div> {% endif -%} {% if usr.Authenticated or notAuthWithData -%} <div class="summary-with-btn-js summary-with-btn-ui" {% if settings.cartVersion == "comfortable" -%} style="display: none;" {% endif -%}> <div class="clear-after-ui box-ui"> <div class="f-left-ui half-ui total-amount-label-ui"><strong>{{ translations.AmountDue }}</strong></div> <div class="f-right-ui half-ui total-amount-ui">{{ order.OrderTotalValue | ToPrice }} {{ order.CurrencyExt }}</div> </div> <button aria-label="order-recalculate" class="order-button-ui parent-container-reload-js {% if creditStatus != 2 -%} add-order-lq {% endif -%}" {% if creditStatus == 2 -%}disabled{% endif -%}> {{translations.PayAndOrder}} </button> </div> {% endif -%} </div> |
Akcja ta odpowiada za anulowanie zamówienia.
Parametry:
- id (int, pole obowiązkowe),
- hash (string).
0 1 2 3 4 5 6 7 8 9 |
<div class="form-js form-into-data-lq" data-success="{{ translations.OrderCanceled }}"> <input type="hidden" name="__action" value="Order/Cancel" /> <input type="hidden" name="id" value="{{ order.Id }}" /> <input type="hidden" name="hash" value="{{ order.Hash }}" /> <button class="btn-gray-ui parent-container-reload-js cancel-order-lq"> {{ translations.OrderCancel }} </button> </div> |
Akcja odpowiada za dodawanie załącznika do zamówienia.
Parametry:
- file – pole do wczytywania plików.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
function processFilesList(fileInput, fileList) { var file = fileList.pop(); if (file) { var fd = new FormData(); fd.append('__csrf',__CSRF); fd.append('__action','Order/AttachmentAdd'); fd.append('__template','order/attachements.html'); fd.append('file', file); $.ajax({data: fd, processData: false, contentType: false, type: 'POST', success: function(data){ fileInput.val(''); if(data.action.Result){ $('.attachements-lq').html(data.template); } else { if(window.AttachementsNotAdded == undefined){ window.AttachementsNotAdded = []; } var attachement = '<div style="padding: 20px;"><strong>'+file.name+'</strong>: '+data.action.Message+'</div>'; window.AttachementsNotAdded.push(attachement); } processFilesList(fileInput, fileList); } }); |
Akcja odpowiada za usuwanie załącznika do zamówienia.
Parametry:
- id (guid, pole obowiązkowe).
0 1 2 3 4 5 6 |
function removeAttachementInOrder(e) { $.post('', {__csrf: __CSRF, __action: 'Order/AttachmentDelete', id: $(e.currentTarget).data('id')}, function(result) { $(e.currentTarget).parents('.file-container-lq').remove(); }); }; |
Akcja odpowiada za ustawienie atrybutów zamówienia.
Parametry:
- attribute (string[]) – może zotać przekazane wielokrotnie w ramach jednej akcji (string), maksymalna dÅ‚ugość to 1000 znaków.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
{% assign headerSize = config.Orders.AttributesCart.Header | Size -%} {% if headerSize > 0 and settings.cartVersion != "comfortable" -%} <div class="form-js header-attributes-set-form-js"> <input aria-label="action-order-attributesset" type="hidden" name="__action" value="Order/AttributesSet" /> <div class="box-ui mt20-ui clear-after-ui address-ui"> {% for headerAttr in config.Orders.AttributesCart.Header -%} <div class="header-attribute-cart-ui"> <label> {{ headerAttr.Name }} {% if headerAttr.Required -%} <span class="required-ui">*</span> {% endif -%} </label> {% case headerAttr.Format -%} {% when 1 -%} <input aria-label="attribute" type="text" name="attribute" value="" maxlength="50" {% if headerAttr.Required -%} required {% endif -%} {% if positionAttr.Editable -%} data-editable="true" {% endif -%} /> {% when 2 -%} <input aria-label="attribute" type="number" name="attribute" value="" maxlength="50" {% if headerAttr.Required -%} required {% endif -%} {% if positionAttr.Editable -%} data-editable="true" {% endif -%} /> {% when 3 -%} <span class="select-background-ui"> <select aria-label="attribute" name="attribute" {% if positionAttr.Editable -%} data-editable="true" {% endif -%}> {% for val in headerAttr.Values %} <option {% if val.ValueId == headerAttr.Values[0].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 aria-label="attribute" type="date" name="attribute" value="" placeholder="rrrr-mm-dd" {% if headerAttr.Required -%} required {% endif -%} {% if positionAttr.Editable -%} data-editable="true" {% endif -%} /> {% endcase -%} <div class="error-ui validation-info-js validation-required-js hidden-js"> {{ translations.FillAttributeValue }} </div> </div> {% endfor -%} </div> </div> {% endif -%} |
Akcja odpowiada za dodanie reklamacji.
Parametry:
- orderId (int, pole obowiązkowe),
- no (int, pole obowiązkowe),
- quantity (decimal) – może przyjąć wartość od 0.01 do 99999,
- message (string) – maksymalna dÅ‚ugość to 1000 znaków,
- accountNumber (string) – maksymalna dÅ‚ugość to 50 znaków,
- defectId (int lub null),
- requestId (int lub null),
- defectDate (string, pole obowiązkowe, wyrażenie regularne),
- files – pole do wczytywania plików.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<form method="POST"> <input type="text" name="quantity" min="1" placeholder="{{translations.Com_Quantity}}" /> {% if config.Complaints.Defects <> null -%} {% assign defectsSize = config.Complaints.Defects | Size -%} <select name="defectId"> {% if defectsSize > 1 -%} <option value="">{% if defectsSize > 1 -%}* {% endif -%} {{translations.Prf_Defect}}</option> {% endif -%} {% for def in config.Complaints.Defects -%} <option value="{{def.Id}}">{{def.Name}}</option> {% endfor -%} </select> {% endif -%} <input type="date" name="defectDate" placeholder="RRRR-MM-DD" data-placeholder="year-month-day" value="{{config.Now | Date: "yyyy-MM-dd"}}" max="{{config.Now | Date: "yyyy-MM-dd"}}" min="{{order.Date | Date: "yyyy-MM-dd"}}"/> <textarea name="message" placeholder="{{translations.Com_AditionalInfo}}"></textarea> {% if config.Complaints.Requests <> null -%}{% assign requestsSize = config.Complaints.Requests | Size -%} <select name="requestId"> {% if requestsSize > 1 -%} <option value="">{% if requestsSize > 1 -%}* {% endif %} {{translations.Prf_ComplainRequest}}</option> {% endif %} {% for req in config.Complaints.Requests -%} <option value="{{req.Id}}">{{req.Name}}</option> {% endfor -%} </select> {% endif -%} <input type="text" name="accountNumber" placeholder="{{translations.Crt_BankAccountNumber}}" />send <button>{{translations.Prf_SubmitAComplaint}}</button> <input type="hidden" name="no" value="{{ product.No }}"/> <input type="hidden" name="orderId" value="{{ order.Id }}"/> <input type="hidden" name="__action" value="Order/ComplaintAdd" /> <input type="hidden" name="__CSRF" value="{{page.CSRF}}"/> </form> |
Akcja odpowiedzialna za zmianÄ™ nabywcy.
Parametry:
- buyer (bool).
0 1 2 3 4 5 6 |
{% if order.Customer.Buyer == null -%} <script> $.post('', {__action: 'Order/BuyerChange', buyer: true, __csrf: __CSRF}); </script> {% endif -%} |
Akcja odpowiedzialna za aktualizacjÄ™ danych nabywcy.
Parametry:
- name (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 64 znaki,
- name2 (string) – maksymalna dÅ‚ugość to 64 znaki,
- name3 (string) – maksymalna dÅ‚ugość to 250 znaków,
- countryCode (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 2 znaki,
- zipCode (string) – maksymalna dÅ‚ugość to 20 znaków,
- city (string) – maksymalna dÅ‚ugość to 50 znaków,
- street (string) – maksymalna dÅ‚ugość to 150 znaków,
- streetNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- unitNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- state (string) – maksymalna dÅ‚ugość to 50 znaków,
- phoneNo (string) – maksymalna dÅ‚ugość to 50 znaków,
- vateu (string) – maksymalna dÅ‚ugość to 2 znaki,
- tin (string),
- ssn (string) – maksymalna dÅ‚ugość to 20 znaków,
- invoice (bool),
- company (bool).
0 1 2 3 4 5 6 7 8 9 10 11 12 |
<form method="POST"> <input type="text" name="name" value="{% if customerDeliveryAddress.Name != "" -%}{{ customerDeliveryAddress.Name | H }}{% else -%}{{ customerAddress.Name | H }}{% endif -%}" required/> <input type="text" name="street" value="{% if customerDeliveryAddress.Street != "" -%}{{ customerDeliveryAddress.Street | H }}{% else -%}{{ customerAddress.Street | H }}{% endif -%}" required/> <input type="text" name="streetNo" value="{% if customerDeliveryAddress.StreetNo != "" -%}{{ customerDeliveryAddress.StreetNo }}{% else -%}{{ customerAddress.StreetNo }}{% endif -%}" required/> <input type="text" name="countryCode" value="{% if customerDeliveryAddress.CountryCode != "" -%}{{ customerDeliveryAddress.CountryCode }}{% else -%}{{ customerAddress.CountryCode }}{% endif -%}" required/> <input type="text" name="unitNo" value="{% if customerDeliveryAddress.UnitNo != "" -%}{{ customerDeliveryAddress.UnitNo }}{% else -%}{{ customerAddress.UnitNo }}{% endif -%}"/> <input type="text" name="zipCode" value="{% if customerDeliveryAddress.ZipCode != "" -%}{{ customerDeliveryAddress.ZipCode }}{% else -%}{{ customerAddress.ZipCode }}{% endif -%}" required/> <input type="text" name="city" value="{% if customerDeliveryAddress.City != "" -%}{{ customerDeliveryAddress.City | H }}{% else -%}{{ customerAddress.City | H }}{% endif -%}" required/> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input type="hidden" name="__action" value="Order/BuyerUpdate" /> </form> |
Akcja ta odpowiada za anulowanie reklamacji.
Parametry:
- complaintId (int, pole obowiązkowe).
0 1 2 3 4 5 6 7 8 |
<div class="form-js form-into-data-lq"> <input type="hidden" name="__action" value="Order/ComplaintCancel" /> <input type="hidden" name="complaintId" value="{{ complaint.ComplaintId }}" /> <button class="btn-gray-ui parent-container-reload-js cancel-complaint-lq"> {{ cancel }} </button> </div> |
Akcja odpowiadająca za kopiowanie zamówienia.
Parametry:
- orderId (int, pole obowiązkowe),
- hash (string).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
async function copyToCart(trigger, changeToInquiry){ document.getElementsByClassName('during-ajax-modal-js')[0].classList.remove('hidden-js'); if(trigger.classList == undefined){ var trigger = this; } const id = trigger.dataset.id; const hash = trigger.dataset.hash; const data = { orderId: id, hash: hash, __action: 'Order/Copy' }; const result = await js.post(data); |
Akcja pozwalajÄ…ca na dodanie kuponu.
Parametry:
- code (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 40 znaków,
- email (string, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 |
<div class="form-js form-into-data-lq block-ui clear-after-ui {% if settings.cartVersion == 'comfortable' -%} comfortable-coupon-container-ui {% endif -%}"> <input aria-label="action-order-couponadd" type="hidden" name="__action" value="Order/CouponAdd" /> <div class="inputs-wrapper-ui clear-after-ui f-left-ui"> <input aria-label="email" type="hidden" name="email" value="{{ customer.Email }}" /> <div class="f-left-ui input-wrapper-ui full-ui"> <span class="f-left-ui">{{ translations.DiscountCode }}</span> <input aria-label="code" type="text" class="f-left-ui no-email-ui" name="code" maxlength="50"/> <div class="error-ui validation-info-js validation-required-js hidden-js">{{ translations.FillDiscountCode }}</div> </div> </div> <button aria-label="add-coupon" class="add-coupon-lq enter-key-trigger-lq parent-container-reload-js add-coupon-ui f-right-ui">{{ translations.Calculate }}</button> </div> |
Akcja umożliwiająca usunięcie kuponu.
0 1 2 3 4 5 6 |
<div class="form" id="coupon-delete"> <button aria-label="deleteCouponButton" type="submit" class="coupon-delete-post"><span class="glyphicon glyphicon-remove"></span> {{translations.Crt_CouponDelete}}</button> <p>{{cart.Coupon}}</p> <input aria-label="action" type="hidden" name="__action" value="Order/CouponDelete"/> </div> |
Akcja odpowiada za uaktualnienie adresu dostawy.
Parametry:
- email (string, pole obowiÄ…zkowe, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki,
- name (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 64 znaki,
- name2 (string) – maksymalna dÅ‚ugość to 64 znaki,
- name3 (string) – maksymalna dÅ‚ugość to 250 znaków,
- zipCode (string) – maksymalna dÅ‚ugość to 20 znaków,
- city (string) – maksymalna dÅ‚ugość to 50 znaków,
- street (string) – maksymalna dÅ‚ugość to 150 znaków,
- streetNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- unitNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- state (string) – maksymalna dÅ‚ugość to 50 znaków,
- phoneNo (string) – maksymalna dÅ‚ugość to 50 znaków.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<form method="POST"> <input type="email" name="email" value="{% if cart.Customer.Email != "" -%}{{ cart.Customer.Email }}{% else -%}{{ customer.Email }}{% endif -%}" required/> <input type="text" name="name" value="{% if customerDeliveryAddress.Name != "" -%}{{ customerDeliveryAddress.Name | H }}{% else -%}{{ customerAddress.Name | H }}{% endif -%}" required/> <input type="text" name="name2" value="{% if customerDeliveryAddress.Name != "" -%}{{ customerDeliveryAddress.Name2 | H }}{% else -%}{{ customerAddress.Name2 | H }}{% endif -%}"/> <input type="text" name="name3" value="{% if customerDeliveryAddress.Name != "" -%}{{ customerDeliveryAddress.Name3 | H }}{% else -%}{{ customerAddress.Name3 | H }}{% endif -%}"/> <input type="text" name="street" value="{% if customerDeliveryAddress.Street != "" -%}{{ customerDeliveryAddress.Street | H }}{% else -%}{{ customerAddress.Street | H }}{% endif -%}" required/> <input type="text" name="streetNo" value="{% if customerDeliveryAddress.StreetNo != "" -%}{{ customerDeliveryAddress.StreetNo }}{% else -%}{{ customerAddress.StreetNo }}{% endif -%}" required/> <input type="text" name="unitNo" value="{% if customerDeliveryAddress.UnitNo != "" -%}{{ customerDeliveryAddress.UnitNo }}{% else -%}{{ customerAddress.UnitNo }}{% endif -%}"/> <input type="text" name="zipCode" value="{% if customerDeliveryAddress.ZipCode != "" -%}{{ customerDeliveryAddress.ZipCode }}{% else -%}{{ customerAddress.ZipCode }}{% endif -%}" required/> <input type="text" name="city" value="{% if customerDeliveryAddress.City != "" -%}{{ customerDeliveryAddress.City | H }}{% else -%}{{ customerAddress.City | H }}{% endif -%}" required/> <input type="text" name="countryCode" value="{{ config.Countries[customerDeliveryAddress.Country].Name }}" readonly/> <input type="tel" name="phoneNo" value="{% if customerDeliveryAddress.PhoneNo != "" -%}{{ customerDeliveryAddress.PhoneNo }}{% else -%}{{ customerAddress.PhoneNo }}{% endif -%}" {% if cart.SelectedDelivery.PhoneRequired -%} required {% endif -%}/> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input type="hidden" name="__action" value="Order/DeliveryAddressUpdate" /> </form> |
Akcja odpowiedzialna za zmianÄ™ metody dostawy towaru.
Parametry:
- id (int, pole obowiązkowe),
- channel (string).
0 1 2 3 4 5 |
<div class="form-js no-message-lq delivery-form-js"> <input aria-label="action-order-deliverychange" type="hidden" name="__action" value="Order/DeliveryChange" /> <input aria-label="id" type="hidden" name="id" data-type="{{ order.SelectedDelivery.CollectionPointTypeId }}" value="{{order.SelectedDeliveryPaymentId}}" /> </div> |
Pozwala na wybranie miejsca odbioru paczki (np. przy korzystaniu z paczkomatów).
Parametry:
- id (int, pole obowiązkowe),
- data (string).
0 1 2 3 4 5 6 7 8 9 10 |
function chooseCollectionPointOnList(e) { var id = $(e.currentTarget).data('id'); $.post(null, {__csrf: __CSRF, __action: 'order/DeliveryCollectionPointChange', id: id}); window.choosenCollectionPointId = true; window.pointChoosen = true; $('.choose-collection-point-lq').removeClass('grey-ui'); $(e.currentTarget).addClass('grey-ui'); app.replaceTemplate(e); } |
Akcja odpowiedzialna za zmianÄ™ kraju dostawy.
Parametry:
- countryCode (string).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<div class="{% if settings.cartVersion != 'comfortable' -%} f-left-ui golden-big-ui {% else -%} comfortable-country-ui {% endif -%} country-ui"> <div class="form-js no-message-lq half-ui-with-space-ui choose-country-in-cart-ui"> {% if settings.cartVersion == "comfortable" -%} <label class="label-ui">{{ translations.DelivCountry }}</label> <div> {% else -%} <span>{{ translations.DelivCountryInfo }}:</span> <span> {% endif -%} {% assign countriesSize = config.Countries | Size -%} {% if countriesSize > 1 -%} <span class="select-background-ui"> <select aria-label="change-delivery-country" class="change-delivery-country-lq parent-container-reload-js" name="countryCode"> {% if order.Customer.DeliveryAddress.Country != '' -%} {% assign countryCode = order.Customer.DeliveryAddress.Country -%} {% elseif customer.Address.Country != '' -%} {% assign countryCode = customer.Address.Country -%} {% else -%} {% assign countryCode = config.DefaultCountry -%} {% endif -%} {% for country in config.Countries -%} <option class="parent-container-reload-js" {% if country.ISOCode == countryCode -%} selected="selected" {% endif -%} value="{{ country.ISOCode }}"> {{ config.Countries[country.ISOCode].Name }} </option> {% endfor -%} </select> </span> <i class="ti-angle-down select-arrow-ui"></i> {% else -%} {{ config.Countries[0].Name }} <input type="hidden" name="countryCode" value="{{config.Countries[0].ISOCode}}"> {% endif -%} {% if settings.cartVersion == "comfortable" -%} </div> {% else -%} </span> {% endif -%} <input aria-label="action-order-deliverycountrychange" type="hidden" name="__action" value="Order/DeliveryCountryChange" /> </div> </div> |
Akcja odpowiada za zmianÄ™ terminu dostawy.
Parametry:
- date (string, wyrażenie regularne).
0 1 2 3 4 5 6 7 8 9 10 |
<label class="mt20-ui labeui">{{ translations.ScheduledDeliveryDate }}</label> <div class="form-lq delivery-date-change-form-lq"> <input type="hidden" name="__action" value="Order/DeliveryDateChange" /> <input type="{{type}}" name="date" min="{{minDate}}" max="{{maxDate}}" value="{{dateValue}}" /> </div> {% elseif order.SelectedDelivery.DateText != "" -%} <label class="mt20ui labelui">{{ translations.ScheduledDeliveryDate }}</label> {{ order.SelectedDelivery.DateText }} {% endif -%} |
Akcja odpowiada za ustawienie adresu email.
Parametry:
- email (string, pole obowiÄ…zkowe, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki.
0 1 2 3 4 5 6 7 |
<form method="POST"> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input type="hidden" name="__action" value="Order/EmailSet" /> <input id="email" type="text" name="email" /> <button>Zatwierdź</button> </form> |
Akcja ta odpowiada za sprawdzenie możliwości szybszej dostawy kurierskiej.
Parametry:
- zipCode (string) – maksymalna dÅ‚ugość to 50 znaków.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<div class="info-ui"> <div class="mb30-ui">{{ translations.DeligooTextInCart }}</div> <div class="mb30-ui form-js form-js check-deligoo-availability-form-js"> <label>{{ translations.ZipCode }} <span class="required-ui">*</span></label> <input aria-label="zipCode" type="text" name="zipCode" value="{{ order.Customer.DeliveryAddress.ZipCode }}" required maxlength="20" {% if order.Customer.DeliveryAddress.ZipCode != '' -%} readonly {% endif -%}/> <input aria-label="countryCode" type="hidden" name="countryCode" value="" data-zip-regex="^\d{2}-\d{3}$"/> <input aria-label="action" type="hidden" name="__action" value="Order/FastDeliveryCheck"/> <button class="check-deligoo-availability-ui check-deligoo-availability-js {% if deligooSelected and order.Customer.DeliveryAddress.ZipCode != '' -%} check-deligoo-when-enter-cart-js {% endif -%} {% if order.Customer.DeliveryAddress.ZipCode != '' -%} hidden-js {% endif -%}">{{ translations.Check }}</button> <i class="va-mid-ui ti-check deligoo-success-icon-ui deligoo-success-icon-js hidden-js"></i> <i class="va-mid-ui ti-close deligoo-error-icon-ui deligoo-error-icon-js hidden-js"></i> <div class="validation-info-js validation-required-js hidden-js register-login-validation-error-text-ui small-input-error-ui small-input-error-ui"> {{ translations.FillZipCode }} </div> <div class="validation-info-js validation-zip-code-lq hidden-js register-login-validation-error-text-ui small-input-error-ui"> {{ translations.FillProperZipCode }} XX-XXX </div> </div> <div class="deligoo-success-js hidden-js">{{ translations.DeligooSuccessInCart }}</div> <div class="deligoo-error-js hidden-js">{{ translations.DeligooErrorInCart }}</div> </div> |
Akcja ta odpowiada za zmianÄ™ danych faktury.
Parametry:
- name (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 64 znaki,
- name2 (string) – maksymalna dÅ‚ugość to 64 znaki,
- name3 (string) – maksymalna dÅ‚ugość to 250 znaków,
- countryCode (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 2 znaki,
- zipCode (string) – maksymalna dÅ‚ugość to 20 znaków,
- city (string) – maksymalna dÅ‚ugość to 50 znaków,
- street (string) – maksymalna dÅ‚ugość to 150 znaków,
- streetNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- unitNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- state (string) – maksymalna dÅ‚ugość to 50 znaków,
- phoneNo (string) – maksymalna dÅ‚ugość to 50 znaków,
- tin (string),
- ssn (string) – maksymalna dÅ‚ugość to 20 znaków,
- invoice (bool),
- company (bool),
- vateu (string) – wystÄ™puje tylko w wersji Enterprise, maksymalna dÅ‚ugość to 2 znaki.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<form id="invoice-address-data"> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input type="hidden" name="__action" value="Order/InvoiceAddressUpdate" /> <input type="hidden" name="company-or-not" value="{% if customer.Company -%}company{% endif -%}" /> <input type="checkbox" name="invoice" {% if cart.Customer.Invoice == true -%}checked{% endif -%}/> <input id="company" type="checkbox" name="company" {% if cart.Customer.Company -%} checked {% endif -%} /> <input type="hidden" name="company-change" /> <input type="text" name="tin" value="{{ cart.Customer.TIN }}" {% if cart.Customer.Company == false -%} class="hidden" required {% endif -%}/> <input type="text" name="name" value="{{ cart.Customer.InvoiceAddress.Name | H }}" required/> <input type="text" name="street" value="{{ cart.Customer.InvoiceAddress.Street | H }}" required/> <input type="text" name="streetNo" value="{{ cart.Customer.InvoiceAddress.StreetNo }}" required/> <input type="text" name="unitNo" value="{{ cart.Customer.InvoiceAddress.UnitNo }}"/> <input type="text" name="zipCode" value="{{ cart.Customer.InvoiceAddress.ZipCode }}" required/> <input type="text" name="city" value="{{ cart.Customer.InvoiceAddress.City | H }}" required/> <input type="hidden" name="countryCode" value="{{ country.ISOCode }}" required/> <select id="select-country"> {% for country in config.Countries -%} {% if country.ISOCode == customerDeliveryAddress.Country -%} <option selected="selected" name="countryCode" value="{{ country.ISOCode }}">{{ config.Countries[country.ISOCode].Name }}</option> {% else -%} <option name="countryCode" value="{{ country.ISOCode }}">{{ config.Countries[country.ISOCode].Name }} </option> {% endif -%} {% endfor -%} </select> <button>Zatwierdź</button> </form> |
Akcja odpowiada za wybranie opcji wystawienia faktury.
Parametry:
- invoice (bool).
0 1 2 3 4 5 6 |
<form method="POST"> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input type="hidden" name="__action" value="Order/InvoiceChange" /> <input type="checkbox" name="invoice"/> </form> |
Akcja odpowiada za dodanie wiadomości do zamówienia.
Parametry:
- note (string) – maksymalna dÅ‚ugość to 500 znaków.
0 1 2 3 4 5 6 |
<form method="POST"> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input type="hidden" name="__action" value="Order/NoteAdd" /> <textarea name="note"></textarea> </form> |
Akcja odpowiada za dokonywanie płatności.
Parametry:
- id (int, pole obowiązkowe),
- hash (string, pole obowiązkowe).
0 1 2 3 4 5 6 7 |
<form method="POST"> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input type="hidden" name="__action" value="Order/PaymentMake" /> <input type="hidden" name="id" value="{{ order.Id }}" /> <input type="hidden" name="hash" value="{{ customer-profile.Order.Hash }}" /> </form> |
Akcja odpowiada za płacenie punktami.
0 1 2 3 4 5 6 7 8 |
<div class="flex-ui vertically-centered-ui"> <p class="f-left-ui">{{translations.WantToUsePoints}}</p> <div class="form-lq no-message-lq block-ui"> <input type="hidden" name="__action" value="Order/PointsUse" /> <button class="post-lq parent-container-reload-lq f-right-ui wider-button-ui"><i class="ti-cup"></i> {{ translations.PayViaLoyaltyPoints }}</button> </div> </div> |
Akcja odpowiada za możliwość opłacenia zamówienia gdy wcześniej się to nie udało (np. w wyniku awarii internetu).
Parametry:
- id (int, pole obowiązkowe),
- hash (string).
0 1 2 3 4 5 6 7 8 9 |
<div class="form-lq form-into-data-lq"> <input type="hidden" name="__action" value="Order/RestorePayment" /> <input type="hidden" name="id" value="{{ order.Id }}" /> <input type="hidden" name="hash" value="{{ order.Hash }}" /> <button class="post-lq parent-container-reload-lq" data-url="{{ page.Url }}?{{ orderString | H }}={{ order.Id }}{% if tab -%}&tab={{tab}}{% endif -%}"> {{ translations.Pay }} </button> </div> |
Akcja odpowiedzialna za zwrot.
Parametry:
- orderIDÂ (int, pole obowiÄ…zkowe),
- no (int, pole obowiązkowe),
- quantity (decimal) – może przyjąć wartość od 0.01 do 99999,
- message (string) – maksymalna dÅ‚ugość to 1000 znaków,
- accountNumber (string) – maksymalna dÅ‚ugość to 50 znaków,
- returnId (int lub null),
- files – pole do wczytywania plików.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<form method="POST"> <input type="text" name="quantity" min="1" placeholder="{{translations.Com_Quantity}}"/> <span class="unit"></span> {% assign returnTyppes = config.Complaints.Returns | Size -%} {% if returnTyppes > 1 -%} <select name="returnId" placeholder="{{ translations.Prf_ChooseReturn }}"> <option value="">* {{ translations.Prf_ChooseReturn }}</option> {% for ret in config.Complaints.Returns -%} <option value="{{ret.Id}}">{{ret.Name}}</option> {% endfor -%} </select> <span class="cs-validation" data-field="returnId" data-validator="required">{{translations.Com_RequiredField}}</span> {% endif -%} <textarea name="message" placeholder="{{translations.Com_AditionalInfo}}"></textarea> <span data-field="message" data-validator="maxLength" data-value="1000">{{translations.Com_MaxLenghtExceeded}}: 1000</span> <input type="text" name="accountNumber" placeholder="{{translations.Crt_BankAccountNumber}}" /> <span data-field="accountNumber" data-validator="maxLength" data-value="50">{{translations.Com_MaxLenghtExceeded}}: 50</span> <button>Zatwierdź</button> <input type="hidden" name="no" value=""/> <input type="hidden" name="orderId" value=""/> <input type="hidden" name="__action" value="Order/ReturnAdd" /> <input type="hidden" name="__CSRF" value="{{page.CSRF}}"/> </form> |
Akcja odpowiedzialna za pobranie statusu zamówienia.
Parametry:
- id (int, pole obowiązkowe),
- email (string, pole obowiÄ…zkowe, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki.
0 1 2 3 4 5 6 7 8 |
<form> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input type="hidden" name="__action" value="Order/StatusGet" /> <input type="hidden" name="id" value="{{ customer-profile.Order.Id }}" /> <input type="email" name="email" placeholder="" required /> <button>Zatwierdź</button> </form> |
Akcja odpowiedzialna za aktualizacjÄ™ numeru TIN.
Parametry:
- vateu (string) – maksymalna dÅ‚ugość to 2 znaki,
- tin (string),
- ssn (string) – maksymalna dÅ‚ugość to 20 znaków.
0 1 2 3 4 5 6 7 |
<form> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input type="hidden" name="__action" value="Order/TinUpdate" /> <input type="email" name="tin" value="{{ config.Shop.TIN }}"/> <button>Zatwierdź</button> </form> |
Akcja odpowiedzialna za kolejny krok w przypadku składania zamówienia.
0 1 2 3 4 5 6 7 |
<div class="no-message-lq"> <input type="hidden" name="__action" value="Order/StepNext" /> <button class="post-lq parent-container-reload-lq"> <i class="fa fa-angle-right"></i> </button> </div> |
Akcja odpowiedzialna za powrót do poprzedniego kroku podczas składania zamówienia.
0 1 2 3 4 5 6 7 |
<div class="no-message-lq"> <input type="hidden" name="__action" value="Order/StepPrev" /> <button class="post-lq parent-container-reload-lq"> <i class="fa fa-angle-left"></i> </button> </div> |
Kod odpowiadajÄ…cy za subskrypcjÄ™ do newslettera.
Parametry:
- email (string, pole obowiÄ…zkowe, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki,
- tos (int[]) – może zostać przekazane wielokrotnie w ramach jednej akcji (int),
- channelKey (string[]) – może zostać przekazane wielokrotnie w ramach jednej akcji (string).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<form id="NewsletterSubscribeForm" action="{{ page.Url }}{{ page.QueryString | H}}" method="post" novalidate> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input type="hidden" name="__action" value="Newsletter/Subscribe" /> <input type="email" name="email" value="{{ customer.Email }}" {% if customer.Email == blank -%} placeholder="* {{ translations.Com_EmailAddress }}" {% endif -%} required /> <button title="{{ translations.Nls_NewsletterSubscribeTooltip }}">+</button> <div class="switch "> {% for tos in config.TOS.Consents.Newsletter -%} {% if tos.Statement -%} <label>{{tos.Text}}</label> {% else -%} <input name="tos" id="tos{{ tos.Id }}" type="checkbox" value="{{ tos.Id }}" {% if tos.Required -%} required {% endif -%} /> <label for="tos{{ tos.Id }}">{% if tos.Required -%}*{% endif -%} {{tos.Text}}</label> {% endif -%} {% endfor -%} </div> <span class="legend">* {{ translations.Reg_RequiredFieldsExp }} </span> </form> {% for channel in tos.Channels -%} <label class="checkbox-ui channel-ui {% if onlyEmail == false -%} channel-lq {% endif -%} {% if tos.Statement == false -%} disabled-channel-lq {% endif -%}"> {% if onlyEmail == false -%} <input type="checkbox" name="channelKey" value="{{ channel.Key }}" {% if tos.Statement == false -%} disabled {% endif -%} /> {% else -%} <input type="hidden" name="channelKey" value="{{ channel.Key }}" checked /> <input type="checkbox" checked disabled /> {% endif -%} <span class="label-ui">{{ channel.Name }}</span></label> {% endfor -%} |
Kod odpowiedzialny za wypisanie siÄ™ z subskrypcji mailowej.
0 1 2 3 4 5 6 7 8 |
<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> |
Akcja odpowiada za pobranie miast, w których znajdują się punkty odbioru.
Parametry:
- country (string) – maksymalna dÅ‚ugość to 2 znaki,
- typeId (short),
- all (bool),
- stockLevels (bool).
0 1 2 3 4 5 6 7 8 9 |
$.get('', {__csrf:__CSRF, __action:'Get/CollectionPointCities', stockLevels: true}, function(res){ window.CitiesWithPOO = res.action.Object; $('.show-shops-infos-lq').html(''); var size = window.CitiesWithPOO.length; for(i=0; i<size; i++){ $('.show-shops-infos-lq').append(''+window.CitiesWithPOO[i]+''); } }); |
Akcja odpowiada za pobranie punktów odbioru towarów.
Parametry:
- country (string) – maksymalna dÅ‚ugość to 2 znaki,
- city (string) – maksymalna dÅ‚ugość to 50 znaków,
- typeId (short),
- all (bool),
- stockLevels (bool).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<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> |
Pobiera grupy podrzędne dla wskazanej grupy. Akcja ta umożliwia zbudowanie dynamicznego menu czy breadcrumbs.
Parametry:
- groupId (int),
- languageId (short),
- levels (int).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<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> |
Akcja odpowiada za wyszukiwarkÄ™.
Parametry:
- search (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 100 znaków.
0 1 2 3 4 5 6 |
<div class="form-js input-field-search-ui {{ noSearchOnMobile }} quick-search-form-js {% if settings.autofill == 'yes' %} autocomplete-form-js {% endif -%}"> <input type="hidden" name="__action" aria-label="get/search-action" value="Get/Search" /> <input placeholder="{{ translations.SearchArticleDots }}" aria-label="search" type="search" class="search-ui" value="" name="search" maxlength="100" {% if settings.autofill == 'yes' %} autocomplete="off" data-max-autocomplete-products="{{settings.autofillQuantity}}" {% endif -%} /> <button class="ti-search search-btn-ui quick-search-js enter-key-trigger-lq" title="{{ translations.Search }}"></button> </div> |
Akcja odpowiada za zaawansowanÄ… wyszukiwarkÄ™.
Parametry:
- search (string) – maksymalna dÅ‚ugość to 100 znaków,
- searchAll (string) – maksymalna dÅ‚ugość to 100 znaków,
- searchAny (string) – maksymalna dÅ‚ugość to 100 znaków,
- searchWild (string) – maksymalna dÅ‚ugość to 100 znaków,
- fields (int) – przyjmuje jednÄ… z podanych niżej wartoÅ›ci:
-
-
- 2 – szukaj w opisie,
- 4 – szukaj w atrybutach,
- 8 – szukaj w kodzie produktu,
- 128 – szukaj w symbolu,
- 256 – szukaj w EAN,
- 512 – szukaj w kodzie u producenta.
-
- flags (int) – przyjmuje jednÄ… z podanych niżej wartoÅ›ci:
-
-
- 1 – ma zdjÄ™cie,
- 2 – nowość,
- 4 – promocja,
- 8 – produkt z gazetki,
- 16 – produkt polecany,
- 32 – wyprzedaż,
- 64 – super jakość,
- 128 – super cena,
- 256 – najlepiej oceniany,
- 512 – rekomendacja sprzedawcy.
- 1024 – towar za punkty.
-
- priceFrom (long lub null),
- priceTo (long lub null),
- groupId (int lub null),
- manufactureId (int lub null),
- brandId (int lub null).
- nowość,
- promocja,
- produkt z gazetki.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<div class='element-attached-lq search-inputs-ui'> <input aria-label="action-searchAdvanced" type='hidden' name='__action' value='Get/SearchAdvanced' /> <input aria-label="search" type='search' name='search' class='attach-on-mobile-lq advanced-search-input-ui advanced-search-input-lq' placeholder="{{translations.SearchPhrase}}" maxlength="100" /> <select aria-label="groupId" name="groupId" class='groupId'> <option value="" >{{translations.AllCategories}}</option> {% for category in page.GroupNodes -%} {% assign t = category.Id | Split:',' %} <option value="{{ t[1] }}">{{category.Name}}</option> {% endfor -%} </select> <i class="ti-angle-down select-arrow-ui"></i> <button aria-label="advanced-search-button" class="attach-on-mobile-lq post-lq advanced-search-button-ui"> <span>{{ translations.Search }}</span> <i class="ti-search"></i> </button> </div> <div class="categories-adv-search-mobile-ui">{{ translations.SearchIn }}</div> <div class='price-and-phrase-container'> <label class="checkbox-ui control-ui control-radio-ui"> <input aria-label="tos-search" name="tos" type="radio" class='search-radio-ui search-radio-lq' value='search' checked> {{translations.WithSequence}} <span class="control-indicator-ui"></span> </label> <label class="checkbox-ui control-ui control-radio-ui"> <input aria-label="tos-searchall" name="tos" type="radio" class='search-radio-ui search-radio-lq' value="searchAll"> {{ translations.WithAllWords }} <span class="control-indicator-ui"></span> </label> <label class="checkbox-ui control-ui control-radio-ui" > <input aria-label="tos-searchany" name="tos" type="radio" class='search-radio-ui search-radio-lq' value="searchAny"> {{ translations.WithAnyWord }} <span class="control-indicator-ui"></span> </label> <label class="checkbox-ui control-ui control-radio-ui"> <input aria-label="tos-searchwild" name="tos" type="radio" class='search-radio-ui search-radio-lq' value="searchWild" > {{ translations.WithPartOfWord }} <span class="control-indicator-ui"></span> </label> </div> |
Akcja odpowiada za wyświetlanie podpowiedzi 5 towarów w trakcie wyszukiwania.
Parametry:
- search (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 100 znaków.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
function autocomplete(e) { let phrase = e.target.value.replace(/[*]*/gi, ''); const maxAutocompleteProducts = e.target.dataset.maxAutocompleteProducts; 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-js.autocomplete-form-js').append(loader); var url = res.action.Redirect302; $.get(url, {__collection:'products.Products|page.BaseHref|currencyExt.Symbol|config.Products.ShowCode'}, function(res) { $('.autocomplete-js').remove(); var list = res.collection['products.Products']; var showCode = res.collection['config.Products.ShowCode']; if (list.length > 0){ if (list.length > maxAutocompleteProducts) { var size = maxAutocompleteProducts; } else { var size = list.length; } var baseHref = res.collection['page.BaseHref']; var currency = res.collection['currencyExt.Symbol']; |
Akcja odpowiada za zastosowanie filtrów wyszukiwania.
Parametry:
- __skipParameter (string[]) – może zostać przekazane wielokrotnie w ramach jednej akcji (string).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<input type="hidden" name="__action" value="Get/SearchFilters"> <button class="selected-filter-item-ui selected-filter-item-js" data-field="all"> <i class="ti-close filter-delete-ui"></i> <span>{{translations.ResetFilters}}</span> </button> {% unless customer.HidePrices -%} {% if products.FilteringOptions.PriceFrom != null and products.FilteringOptions.PriceFrom > 0 -%} <button class="selected-filter-item-ui selected-filter-item-js" data-field="$minPrice"> <i class="ti-close filter-delete-ui"></i> <span>{{translations.PriceFrom}} <strong>{{products.FilteringOptions.PriceFrom}}</strong> {{customer.CurrencyExt}}</span> </button> <input aria-label="minPrice" name="$minPrice" type="hidden" value="{{products.FilteringOptions.PriceFrom}}" maxlength="12"> {% endif -%} {% if products.FilteringOptions.PriceTo != null -%} <button class="selected-filter-item-ui selected-filter-item-js" data-field="$maxPrice"> <i class="ti-close filter-delete-ui"></i> <span>{{translations.PriceTo}} <strong>{{products.FilteringOptions.PriceTo}}</strong> {{customer.CurrencyExt}}</span> </button> <input aria-label="maxPrice" name="$maxPrice" type="hidden" value="{{products.FilteringOptions.PriceTo}}" maxlength="12"> {% endif -%} {% endunless -%} |
Akcja ta pozwala na zwrócenie wartości ID towaru znajdującego się w bazie e-Sklepu na podstawie ID towaru w bazie systemu ERP (GIDNumber). Może być przydatna podczas pisania własnych dodatków dla Comarch e-Sklep Sync.
Parametry:
- gidNumbers (int[], pole obowiązkowe).
0 1 2 3 4 5 6 7 8 9 |
<script type="text/javascript"> function getProductID(...gidNumbers) { jQuery.get(null, jQuery.param( {__action:'Get/ProductId', gidNumbers: gidNumbers}, true), res => res.action.Object ); }, </script> |
Akcja odpowiada za złożenie zapytania o cenę produktu.
Parametry:
- productId (int, pole obowiązkowe),
- email (string, pole obowiÄ…zkowe, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki,
- phoneNo (string) – maksymalna dÅ‚ugość to 20 znaków,
- quantity (decimal, pole obowiÄ…zkowe) – może przyjąć wartość od 0.01 do 99999,
- unitId (int lub null),
- message (string) – maksymalna dÅ‚ugość to 500 znaków.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<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" min="1" max="99999"/> <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> |
Akcja odpowiada za pobieranie stanów magazynowych w salonach danego towaru.
Parametry:
- products (string, pole obowiązkowe),
- country (string) – maksymalna dÅ‚ugość to 2 znaki,
- city (string) – maksymalna dÅ‚ugość to 50 znaków,
- pointTypeId (short),
- pointId (int lub null).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
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); } } }; |
Akcja odpowiadająca za dodanie produktu do porównania z innym produktem.
Parametry:
- productId (int, pole obowiązkowe).
0 1 2 3 4 5 6 7 |
<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> |
Akcja odpowiada za usunięcie przedmiotu z porównania.
Parametry:
- productId (int, pole obowiązkowe).
0 1 2 3 4 5 6 7 8 9 |
{% 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 -%} |
Akcja odpowiada za pobranie najniższej ceny dostawy dla danego towaru.
Parametry:
- id (int, pole obowiązkowe),
- unitId (int lub null, pole obowiązkowe).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<p class="delivery hidden">{{translations.Com_DeliveryFrom}}: {{currency}}</p> <script> Number.prototype.format = function(n, x, s, c) { var re = '\\d(?=(\\d{' + (x || 3) + '})+' + (n > 0 ? '\\D' : '$') + ')', num = this.toFixed(Math.max(0, ~~n)); return (c ? num.replace('.', c) : num).replace(new RegExp(re, 'g'), '$&' + (s || ',')); }; Number.prototype.toPrice = function () { var decimalPlaces = __decimalPlacesPrice || 2; return this.format(decimalPlaces, 3, __decThoSep, __decSep); } $.get('', {__action:'Product/DeliveryCostGet', id: '{{_pd.Id}}' },function(res){ if(res.action.Object.Cost > 0){ $('.delivery').removeClass('hidden'); $('.delivery-cost').text(res.action.Object.Cost.toPrice()); } }); </script> |
Akcja odpowiadająca za sprawdzenie dostępności usługi szybkiej dostawy w podanej lokalizacji.
Parametry:
- products (string, pole obowiązkowe),
- country (string) – maksymalna dÅ‚ugość to 2 znaki,
- zipCode (string) – maksymalna dÅ‚ugość to 50 znaków.
0 1 2 3 4 5 6 7 8 9 |
<form action="{{ page.Url }}{{ page.QueryString | H }}" method="post"> <input type="hidden" name="__csrf" value="{{ page.CSRF }}" /> <input aria-label="action" type="hidden" name="__action" value="Product/FastDeliveryCheck" /> <input aria-label="zipCode" type="text" name="zipCode" value="{{ customer.Address.ZipCode }}" maxlength="50"/> <input aria-label="country" type="hidden" name="country" value="" /> <input aria-label="products" type="hidden" name="products" value='[{"ProductId":{{ product.Id }}}]' /> <button>Zatwierdź</button> </form> |
Akcja odpowiadająca za złożenie zapytania odnośnie poinformowania użytkownika o ponownej dostępności towaru.
Parametry:
- productId (int, pole obowiązkowe),
- name (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 50 znaków,
- email (string, pole obowiÄ…zkowe, wyrażenie regularne) – maksymalna dÅ‚ugość to 192 znaki,
- phoneNo (string) – maksymalna dÅ‚ugość to 20 znaków.
0 1 2 3 4 5 6 7 8 9 10 |
<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> |
Akcja odpowiadajÄ…ca za dodanie opinii na temat produktu.
Parametry:
- rating (short, pole obowiÄ…zkowe) – może przyjąć wartość od 1 do 5,
- comment (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 4000 znaków,
- author (string, pole obowiÄ…zkowe) – maksymalna dÅ‚ugość to 50 znaków,
- productId (int, pole obowiązkowe),
- orderHash (string).
0 1 2 3 4 5 6 7 8 9 10 11 |
<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="5"/> <input type="hidden" name="productId" value="{{ product.Id }}"/> <input type="hidden" name="orderHash" value=""/> <button>Zatwierdź</button> </form> |
Akcja odpowiada za pobieranie stanów magazynowych z podziałem na magazyny (e-Sklepu i hurtowni).
Parametry:
- id (int, pole obowiązkowe).
0 1 2 3 4 5 6 |
$.get(null, {__action:'Product/StockLevelsGet', id: product.Id}, function(res) { if(res.action.Object) { console.log(res.action.Object); } }); |
> WarehouseId,
> WarehouseName.
WÅ‚aÅ›ciwoÅ›ci mogÄ… być puste (null) – jeÅ›li jest to stan z ERP, a nie z hurtowni.
Akcja odpowiedzialna za dodanie produktu do listy życzeń.
Parametry:
- productId (int, pole obowiązkowe),
- quantity (decimal) – może przyjąć wartość od 1 do 99999,
- note (string) – maksymalna dÅ‚ugość to 500 znaków.
0 1 2 3 4 5 6 7 8 9 10 |
<form method="POST"> <input type="hidden" name="__csrf" value="{{ page.CSRF }}"/> <input type="hidden" name="__action" value="product/WishListAdd" /> <input type="hidden" name="productId" value="{{ product.Id }}" required /> <input type="text" name="quantity" value="1"/> <input type="button" value="+" field="quantity"/> <textarea name="note"></textarea> <button>Zatwierdź</button> </form> |
Akcja odpowiedzialna za sprawdzenie czy produkt należy do listy życzeń.
Parametry:
- products (int[]).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$.get(null, { __action: 'Product/WishListCheck', products: JSON.stringify([parseInt(productId)]) }, function (result) { if (result.action.Object != '') { //Product in wishlist if (!($('.productDetails-buttons--wishList').hasClass('wishListPopup-js'))) { $('input[aria-label="wishListAdd"]').val('Product/WishListDelete'); $('.productDetails-buttons--wishList__removeProduct').removeClass('hidden'); $('.productDetails-buttons--wishList__addProduct').addClass('hidden'); $('.productDetails-buttons--wishList__svgIcon').html('<use xlink:href="css/img/icons-sprite.svg#heart-solid"></use>'); $('.productDetails-buttons--wishList').removeClass('productWishListAdd-js').addClass('productWishListRemove-js'); } } else { //Product not in wishlist if (!($('.productDetails-buttons--wishList').hasClass('wishListPopup-js'))) { $('input[aria-label="wishListAdd"]').val('Product/WishListAdd'); $('.productDetails-buttons--wishList__removeProduct').addClass('hidden'); $('.productDetails-buttons--wishList__addProduct').removeClass('hidden'); $('.productDetails-buttons--wishList__svgIcon').html('<use xlink:href="css/img/icons-sprite.svg#heart-light"></use>'); $('.productDetails-buttons--wishList').removeClass('productWishListRemove-js').addClass('productWishListAdd-js'); } } }); |
Akcja odpowiadająca za usuwanie przedmiotu z listy życzeń.
Parametry:
- productId (int lub null).