Instrukcje dotyczące pracy z platformą

Wskazówki dotyczące pracy z systemem można znaleźć podczas rozwijania sekcji w celu zarządzania nimi, a także po najechaniu kursorem na ikonę

Krótko o platformie
Przedsiębiorcy i kupcy

Dla przedsiębiorców i sprzedawców

Na platformie Hotlist.biz możesz za darmo stworzyć stronę internetową lub sklep internetowy, stworzyć indywidualny projekt, wypełnić go unikalną treścią (pełna obsługa HTML). Będziesz mógł przesyłać pliki i korzystać z wielu wbudowanych modułów dla Twojej wygody. Będziesz mieć własne statystyki sprzedaży, śledzenie źródeł zamówień, testy A/B, własne metody dostawy, możliwość stworzenia filtra wyszukiwania (jak w Yandex Market ) dla różnych grup towarów, twórz własne nagłówki i nagłówki producentów, prowadź własnego bloga, kanał informacyjny, zbieraj bazę danych subskrybentów poczty e-mail, importuj / eksportuj towary i usługi, dodawaj menedżerów do swojej witryny (dostęp współdzielony), twórz bazę klientów z indywidualnymi rabatami, korzystaj z systemów płatności, przesyłaj dane z witryny w formacie xml, twórz własne formularze (formularz), umożliwiaj automatyczną wymianę danych z 1C i innymi programami handlowymi oraz wiele, wiele więcej …

Przedsiębiorcy i sprzedawcy

  • Po zarejestrowaniu swojego sklepu/firmy w naszym katalogu możesz bezpłatnie dodać do niego do 300 produktów, jednocześnie zwiększ limit dodawanych produktów. (Limit do 1000 produktów możesz zwiększyć za darmo)
  • We właściwościach produktu możesz określić jego cenę, walutę płatności, okres gwarancji, podmiot odpowiedzialny za gwarancję, szczegółowy opis, zdjęcie produktu, producenta, zakładki z dodatkowymi opcjami, indywidualne cechy produktu oraz więcej.
  • Podczas rejestracji firmy lub (jeśli nie podłączyłeś domeny podczas rejestracji to wtedy) po dodaniu pierwszych 20 produktów, będziesz miał możliwość zmiany własnej własnej domeny drugiego i trzeciego poziomu ZA DARMO (Adres.hotlist.biz). Możesz również bezpłatnie poprosić o domenę bez dodawania 20 produktów. Podłączając domenę osobistą będziesz mieć więcej możliwości promocji swojego sklepu w Internecie.

    • Na Hotlist.biz możesz samodzielnie zaprojektować stronę firmową lub sklep internetowy
    • Możesz tworzyć własne menu i wymaganą liczbę stron.
    • Będziesz mógł dostosowywać i zmieniać wygląd swojej witryny.
    • Będziesz mógł umieszczać kody HTML na stronie
    • Będziesz mógł blogować i publikować oraz nadawać kanały RSS.
    • Możesz przesyłać swoje pliki, śledzić zamówienia i komunikować się z klientem bezpośrednio na stronie.

  • Wyłączną odpowiedzialność za treść opisu, ceny i dostępność towaru oraz za prawdziwość podanych przez niego informacji ponosi firma/Użytkownik, który umieścił towar.
  • Uwaga, zabrania się tworzenia duplikatów przedsiębiorstw/sklepów. W przypadku takiego naruszenia profil użytkownika i jego firmy są trwale blokowane
  • Pamiętaj o podaniu kategorii odpowiadającej produktowi/usłudze, inaczej produkt nie będzie wyświetlany w katalogu głównym. Możesz również poprosić o wyłączenie automatycznego dodawania Twoich produktów do międzynarodowego katalogu za pomocą formularza zwrotnego.
  • Zabrania się dodawania towarów i usług, które naruszają prawo obowiązujące w Twoim kraju.
Zarządzanie witryną
Centrum administracyjne/Panel administracyjny Administracja witryną odbywa się w Centrum administracyjnym (Otwórz Centrum administracyjne) lub poprzez panel administratora, który znajduje się po lewej stronie, po autoryzacji w serwisie.
Logowanie administratora Ścieżka logowania administratora witryny:

hotlist.biz/admin/


Jeśli ukryjesz menu autoryzacji na stronie, to aby wejść do administratora, wystarczy wpisać ścieżkę wskazaną powyżej w pasku adresu.
Przykład linku uwierzytelniającego użytkownika
Udostępnianie Aby umożliwić innemu użytkownikowi zarządzanie witryną, musisz dodać Menedżera i ustawić uprawnienia.
Główne moduły
Typ danych/stron

Strony


Strona - blok znajdujący się w centrum serwisu, w obszarze treści, który może zawierać dowolne dane HTML (HTML, XHTML, JAVASCRIPT, CSS lub inne).

Ładowanie zawartości strony Ajax.

Katalog artykułów


Katalog artykułów to ten sam blok co strony, które dodatkowo zawierają krótkie opisy wyświetlane w formie listy z linkiem umożliwiającym wyświetlenie pełnego tekstu artykułu, a także możliwość podziału list artykułów według kategorii.
Oprócz wyświetlania list artykułów w kategoriach możesz także generować własne listy.

Ajax ładuje treść artykułu

Przykład skryptu Ajax do ładowania własnej listy artykułów

Przykład ładowania artykułu przez Ajax w formacie JSON

Blok/Menu


Blok/Menu to blok, w którym można wstawić dowolne kody HTML. Możesz także korzystać z menu z predefiniowanymi funkcjami, takimi jak koszyk, filtr wyszukiwania, bestsellery, najnowsze artykuły i nie tylko.

Block/Menu można wykorzystać do stworzenia własnego stylu/projektu strony internetowej. Na przykład możesz utworzyć nagłówek witryny, umieścić w nim niezbędne elementy (logo, kontakty, linki nawigacyjne witryny, formularz wyszukiwania itp.) i napisać CSS dla nich style w edytorze projektu. Za pomocą bloków/menu można umieszczać skrypty, w tym w metatagach, a także włączać/wyłączać wyświetlanie tych danych na określonych stronach lub urządzeniach. W większości przypadków wystarczy skorzystać z Nagłówka/Nagłówka i Stopki/Dółu strony, a także np. lewego lub prawego Bloku/Menu, aby umieścić filtr wyszukiwania. Możesz umieścić skrypty witryny w jednym Bloku/Menu i umieścić je np. w Service tags.

Blok menu można umieścić w 7 głównych częściach serwisu:
  • "Nagłówek witryny (Header)" - blok nagłówka witryny, wyświetlany nad głównym blokiem treści, wewnątrz elementu "#hotengine-header".
  • "Dół serwisu (stopka)" - blok dolnej części serwisu, wyświetlany pod głównym blokiem z treścią, wewnątrz elementu "#hotengine-footer".
  • "Prawo" - blok jest wyświetlany po prawej stronie obok głównego bloku z treścią i nie wykracza poza treść.
  • "Lewy" - blok wyświetlany jest po lewej stronie obok głównego bloku z treścią i nie wykracza poza treść.

  • «Góra» - blok jest wyświetlany u góry treści i nie wykracza poza jego obszar.
  • «Dół» - blok jest wyświetlany na dole treści i nie wykracza poza jego obszar.

  • "Tagi usługi przed tagiem Body (Meta nagłówka)" - blok znajduje się pod metatagami usługi i może być używany do wstawiania JavaScript, metatagów i innych danych usługi.

  • Wszystkie menu będą miały dodaną klasę elementu, a także unikalny ID menu_id. Podstawowe znaczniki blokowania witryn
    Aby utworzyć rozszerzoną wersję mobilnego menu (w stylu aplikacji), użyj «Mobile Menu Builder». Konstruktor umożliwia utworzenie wielopoziomowego menu, wyskakującego okienka «Filtr wyszukiwania», a także własnych ikon.



Sklep


Sklep może zawierać uporządkowaną listę produktów wraz z przyciskami służącymi do ich zamawiania. Sklep dostarcza dużo dodatkowych danych, podział według producentów, kategorie, typy produktów, cechy i inne właściwości.

Pamiętaj, że Twoje produkty będą dodatkowo umieszczane w naszym międzynarodowym katalogu, a kupujący będą mogli zostawić opinię na temat jakości Twojej pracy.

Listy produktów mogą być wyświetlane nie tylko w ramach kategorii, ale także na stronach, blokach/menu i artykułach. W tym celu utwórz stronę, a w tekście dodaj kod Generator bloków/menu, slider z produktami sklepu

Listy kategorii mogą być wyświetlane na stronach lub blokach/menu. W tym celu utwórz stronę lub Blok/Menu, a w tekście umieść kod Widżet z kategoriami sklepu


Ładowanie produktu Ajax

Ajax ładuje recenzje produktów

Przykład skryptu Ajax do ładowania listy towarów + "Generator listy towarów"

Wózek ładujący Ajax

Przykład skryptu Ajax do ładowania wózka po najechaniu myszką

Ajax ładuje listę obrazów kart produktów

Lista ładowania Ajax wszystkich kategorii w formacie JSON

Ajax ładuje produkt w formacie JSON


Formularz (Form) Formularz – część dokumentu, która umożliwia użytkownikowi wprowadzenie informacji do dalszego przetwarzania przez system. Na platformie HotList.biz możesz tworzyć pełnoprawne formularze, z powiązaniem nazw, id i klas dla pól. Dane formularzy mogą być przetwarzane na naszej platformie lub przesyłane do dowolnego innego zasobu.

Ładowanie formularza Ajax (formularze wyskakujące)

Jak utworzyć formularz opinii?
Istnieją 3 sposoby tworzenia formularza.
  • 1) Najbardziej elastycznym sposobem jest otwarcie kreatora formularzy i utworzenie formularza z wymaganymi polami. Wszystkie instrukcje są dostępne w konstruktorze formularza.
  • 2)Utwórz funkcjonalną stronę (informacje zwrotne), która po otwarciu wyświetli standardowy formularz opinii.
  • 3)Użyj wyskakującego formularza zwrotnego utworzonego za pomocą następującego kodu:

    Code: html
    <a class="hotengine-dialog-email" data-site="XXXX" href="javascript://">Napisz do nas</a>


    class="hotengine-dialog-email" - oznacza, że ​​przycisk służy do wyskakującego formularza opinii, a rel="XXXX" to ID witryny.
    XXXX zastąp identyfikatorem swojej witryny, który możesz znaleźć po najechaniu kursorem na przycisk PANEL ADMINISTRACYJNY.

    Możesz także określić nazwę wyskakującego okienka oraz treść przycisku «Zamknij». W tym celu dodaj data-close-button="Zamknij" i data-title="Feedback" do linku z klasą e-mail.
    Szerokość i wysokość okna można ustawić za pomocą data-width="600" i data-height="640".
    Tekst przycisków w formularzu można ustawić za pomocą atrybutów data-send-button="Submit" i data-clear-button="Clear"
    Możesz zmienić nazwy pól wejściowych za pomocą stylów CSS (tekst jest wprowadzany w formie treści, w css nie ma poklas after).
    Przykład

    /*FORM TEXT TITTLES*/

    Code: CSS
    
    

    html:lang(ru) .hotengine-form-feedback-text-title:after{ content:"Текст:"; } html:lang(en) .hotengine-form-feedback-text-title:after{ content:"Text:"; } html:lang(uk) .hotengine-form-feedback-text-title:after{ content:"Текст:"; } html:lang(de) .hotengine-form-feedback-text-title:after{ content:"Text:"; } html:lang(es) .hotengine-form-feedback-text-title:after{ content:"Texto:"; } html:lang(fr) .hotengine-form-feedback-text-title:after{ content:"Texte:"; } html:lang(kk) .hotengine-form-feedback-text-title:after{ content:"Мәтін:"; } html:lang(be) .hotengine-form-feedback-text-title:after{ content:"Тэкст:"; } html:lang(ro) .hotengine-form-feedback-text-title:after{ content:"Text:"; } html:lang(tr) .hotengine-form-feedback-text-title:after{ content:"Metin:"; } html:lang(it) .hotengine-form-feedback-text-title:after{ content:"Testo:"; } html:lang(sk) .hotengine-form-feedback-text-title:after{ content:"Text:"; } html:lang(da) .hotengine-form-feedback-text-title:after{ content:"Tekst:"; } html:lang(pl) .hotengine-form-feedback-text-title:after{ content:"Tekst:"; } html:lang(zh) .hotengine-form-feedback-text-title:after{ content:"文本:"; } html:lang(hi) .hotengine-form-feedback-text-title:after{ content:"पाठ:"; } html:lang(ar) .hotengine-form-feedback-text-title:after{ content:"النص:"; } html:lang(pt) .hotengine-form-feedback-text-title:after{ content:"Texto:"; } html:lang(bn) .hotengine-form-feedback-text-title:after{ content:"টেক্সট:"; }

    html:lang(ru) .hotengine-form-feedback-yourname-title:after{ content:"Ваше имя:"; } html:lang(en) .hotengine-form-feedback-yourname-title:after{ content:"Your name:"; } html:lang(uk) .hotengine-form-feedback-yourname-title:after{ content:"Ваше ім'я:"; } html:lang(de) .hotengine-form-feedback-yourname-title:after{ content:"Ihr name:"; } html:lang(es) .hotengine-form-feedback-yourname-title:after{ content:"Su nombre:"; } html:lang(fr) .hotengine-form-feedback-yourname-title:after{ content:"Votre nom:"; } html:lang(kk) .hotengine-form-feedback-yourname-title:after{ content:"Сіздің атыңыз:"; } html:lang(be) .hotengine-form-feedback-yourname-title:after{ content:"Ваша імя:"; } html:lang(ro) .hotengine-form-feedback-yourname-title:after{ content:"Numele dvs.:"; } html:lang(tr) .hotengine-form-feedback-yourname-title:after{ content:"Adınız:"; } html:lang(it) .hotengine-form-feedback-yourname-title:after{ content:"Il tuo nome:"; } html:lang(sk) .hotengine-form-feedback-yourname-title:after{ content:"Vaše meno:"; } html:lang(da) .hotengine-form-feedback-yourname-title:after{ content:"Dit navn:"; } html:lang(pl) .hotengine-form-feedback-yourname-title:after{ content:"Twoje imię:"; } html:lang(zh) .hotengine-form-feedback-yourname-title:after{ content:"你的名称:"; } html:lang(hi) .hotengine-form-feedback-yourname-title:after{ content:"आपका नाम:"; } html:lang(ar) .hotengine-form-feedback-yourname-title:after{ content:"اسمك:"; } html:lang(pt) .hotengine-form-feedback-yourname-title:after{ content:"Seu nome:"; } html:lang(bn) .hotengine-form-feedback-yourname-title:after{ content:"আপনার নাম:"; }

    html:lang(ru) .hotengine-form-feedback-yoursoname-title:after{ content:"Ваша фамилия:"; } html:lang(en) .hotengine-form-feedback-yoursoname-title:after{ content:"Your name:"; } html:lang(uk) .hotengine-form-feedback-yoursoname-title:after{ content:"Ваше прізвище:"; } html:lang(de) .hotengine-form-feedback-yoursoname-title:after{ content:"Ihr name:"; } html:lang(es) .hotengine-form-feedback-yoursoname-title:after{ content:"Su nombre:"; } html:lang(fr) .hotengine-form-feedback-yoursoname-title:after{ content:"Votre nom:"; } html:lang(kk) .hotengine-form-feedback-yoursoname-title:after{ content:"Сіздің аты-жөні:"; } html:lang(be) .hotengine-form-feedback-yoursoname-title:after{ content:"Ваша прозвішча:"; } html:lang(ro) .hotengine-form-feedback-yoursoname-title:after{ content:"Numele dumneavoastră:"; } html:lang(tr) .hotengine-form-feedback-yoursoname-title:after{ content:"Adınız:"; } html:lang(it) .hotengine-form-feedback-yoursoname-title:after{ content:"Il tuo nome:"; } html:lang(sk) .hotengine-form-feedback-yoursoname-title:after{ content:"Vaše meno:"; } html:lang(da) .hotengine-form-feedback-yoursoname-title:after{ content:"Dit navn:"; } html:lang(pl) .hotengine-form-feedback-yoursoname-title:after{ content:"Imię i nazwisko:"; } html:lang(zh) .hotengine-form-feedback-yoursoname-title:after{ content:"你的名称:"; } html:lang(hi) .hotengine-form-feedback-yoursoname-title:after{ content:"आपका नाम:"; } html:lang(ar) .hotengine-form-feedback-yoursoname-title:after{ content:"اسمك:"; } html:lang(pt) .hotengine-form-feedback-yoursoname-title:after{ content:"O seu apelido:"; } html:lang(bn) .hotengine-form-feedback-yoursoname-title:after{ content:"আপনার নাম:"; }

    html:lang(ru) .hotengine-form-feedback-yourphone-title:after{ content:"Ваш телефон:"; } html:lang(en) .hotengine-form-feedback-yourphone-title:after{ content:"Your phone:"; } html:lang(uk) .hotengine-form-feedback-yourphone-title:after{ content:"Ваш мобільний телефон:"; } html:lang(de) .hotengine-form-feedback-yourphone-title:after{ content:"Ihr Telefon:"; } html:lang(es) .hotengine-form-feedback-yourphone-title:after{ content:"Su teléfono:"; } html:lang(fr) .hotengine-form-feedback-yourphone-title:after{ content:"Votre téléphone:"; } html:lang(kk) .hotengine-form-feedback-yourphone-title:after{ content:"Телефон:"; } html:lang(be) .hotengine-form-feedback-yourphone-title:after{ content:"Ваш тэлефон:"; } html:lang(ro) .hotengine-form-feedback-yourphone-title:after{ content:"Telefonul dvs.:"; } html:lang(tr) .hotengine-form-feedback-yourphone-title:after{ content:"Telefon:"; } html:lang(it) .hotengine-form-feedback-yourphone-title:after{ content:"Il telefono:"; } html:lang(sk) .hotengine-form-feedback-yourphone-title:after{ content:"Váš telefón:"; } html:lang(da) .hotengine-form-feedback-yourphone-title:after{ content:"Din telefon:"; } html:lang(pl) .hotengine-form-feedback-yourphone-title:after{ content:"Telefon:"; } html:lang(zh) .hotengine-form-feedback-yourphone-title:after{ content:"你的电话:"; } html:lang(hi) .hotengine-form-feedback-yourphone-title:after{ content:"अपने फोन:"; } html:lang(ar) .hotengine-form-feedback-yourphone-title:after{ content:"الهاتف:"; } html:lang(pt) .hotengine-form-feedback-yourphone-title:after{ content:"Seu telefone:"; } html:lang(bn) .hotengine-form-feedback-yourphone-title:after{ content:"আপনার ফোন:"; }

    html:lang(ru) .hotengine-form-feedback-youremail-title:after{ content:"Ваш e-mail:"; } html:lang(en) .hotengine-form-feedback-youremail-title:after{ content:"Your e-mail:"; } html:lang(uk) .hotengine-form-feedback-youremail-title:after{ content:"Ваш e-mail:"; } html:lang(de) .hotengine-form-feedback-youremail-title:after{ content:"Ihre e-mail:"; } html:lang(es) .hotengine-form-feedback-youremail-title:after{ content:"Su e-mail:"; } html:lang(fr) .hotengine-form-feedback-youremail-title:after{ content:"Votre e-mail:"; } html:lang(kk) .hotengine-form-feedback-youremail-title:after{ content:"Сіздің e-mail:"; } html:lang(be) .hotengine-form-feedback-youremail-title:after{ content:"Ваш e-mail:"; } html:lang(ro) .hotengine-form-feedback-youremail-title:after{ content:"Adresa de e-mail:"; } html:lang(tr) .hotengine-form-feedback-youremail-title:after{ content:"E-mail:"; } html:lang(it) .hotengine-form-feedback-youremail-title:after{ content:"Il tuo indirizzo e-mail:"; } html:lang(sk) .hotengine-form-feedback-youremail-title:after{ content:"E-mail:"; } html:lang(da) .hotengine-form-feedback-youremail-title:after{ content:"Din e-mail:"; } html:lang(pl) .hotengine-form-feedback-youremail-title:after{ content:"Twój e-mail:"; } html:lang(zh) .hotengine-form-feedback-youremail-title:after{ content:"你的电子邮件:"; } html:lang(hi) .hotengine-form-feedback-youremail-title:after{ content:"अपने ई-मेल:"; } html:lang(ar) .hotengine-form-feedback-youremail-title:after{ content:"البريد الإلكتروني:"; } html:lang(pt) .hotengine-form-feedback-youremail-title:after{ content:"Seu e-mail:"; } html:lang(bn) .hotengine-form-feedback-youremail-title:after{ content:"আপনার ই-মেইল:"; }

    html:lang(ru) .hotengine-form-feedback-youraddress-title:after{ content:"Ваш адрес:"; } html:lang(en) .hotengine-form-feedback-youraddress-title:after{ content:"Your address:"; } html:lang(uk) .hotengine-form-feedback-youraddress-title:after{ content:"Ваша адреса:"; } html:lang(de) .hotengine-form-feedback-youraddress-title:after{ content:"Ihre Adresse:"; } html:lang(es) .hotengine-form-feedback-youraddress-title:after{ content:"Su dirección:"; } html:lang(fr) .hotengine-form-feedback-youraddress-title:after{ content:"Votre adresse:"; } html:lang(kk) .hotengine-form-feedback-youraddress-title:after{ content:"Сіздің мекен-жайы:"; } html:lang(be) .hotengine-form-feedback-youraddress-title:after{ content:"Ваш адрас:"; } html:lang(ro) .hotengine-form-feedback-youraddress-title:after{ content:"Adresa:"; } html:lang(tr) .hotengine-form-feedback-youraddress-title:after{ content:"Adresi:"; } html:lang(it) .hotengine-form-feedback-youraddress-title:after{ content:"Indirizzo:"; } html:lang(sk) .hotengine-form-feedback-youraddress-title:after{ content:"Adresa:"; } html:lang(da) .hotengine-form-feedback-youraddress-title:after{ content:"Din adresse:"; } html:lang(pl) .hotengine-form-feedback-youraddress-title:after{ content:"Adres:"; } html:lang(zh) .hotengine-form-feedback-youraddress-title:after{ content:"你的地址:"; } html:lang(hi) .hotengine-form-feedback-youraddress-title:after{ content:"आपके पते की:"; } html:lang(ar) .hotengine-form-feedback-youraddress-title:after{ content:"العنوان الخاص بك:"; } html:lang(pt) .hotengine-form-feedback-youraddress-title:after{ content:"O seu endereço:"; } html:lang(bn) .hotengine-form-feedback-youraddress-title:after{ content:"আপনার ঠিকানা:"; }

    /*FORM TEXT TITTLES*/



Uwaga! Witryna zapewnia możliwość tworzenia własnych formularzy w trybie automatycznym, a także wykorzystania wyskakujących okienek do wysyłania niezbędnych danych od odwiedzającego. Aby to zrobić, użyj projektant form.


Komentarze / Recenzje Komentarze można zostawiać na wszystkich typach stron. Komentarze mają elastyczne ustawienia, z możliwością określenia ich zarówno do określonej sekcji w serwisie, jak i do osobnej strony. Możliwe jest dodanie „Oceny” do komentarzy, a także obrazu zabezpieczającego Captcha. Dla kart produktów zaimplementowano osobny formularz komentarza – recenzje.

Ajax ładuje komentarze

Ajax загрузка отзывов к товарам


Multilanding / Strony dynamiczne Multilanding to automatyczna zmiana treści strony w zależności od kluczowego zapytania odwiedzającego, zmiennych ustawionych w reklamie czy jego lokalizacji.

Jak korzystać z wielu lądowań?


Na platformie HotList.biz możesz skonfigurować strony Multilanding, aby w przypadku dopasowania żądania (częściowego lub pełnego) zmieniała się zawartość całych bloków na stronie (na stronach, w produktach iw menu). Zapytaniem mogą być dane zapytania wyszukiwania (ustalane automatycznie) jak również własne ustawione zmienne GET. Np. dodając tagi UTM w reklamach możesz użyć tagu "utm_term", dzięki czemu strona Multilanding będzie aktywna dla zmiennej GET "utm_term". Dane źródła skierowań są przechowywane maksymalnie przez 24 godziny. Jednocześnie dane dotyczące źródła skierowania do programu partnerskiego są przechowywane przez 120 dni.


Przykład pracy z Blokiem/Menu Przykład użycia Blokady/Menu do weryfikacji witryny w Centrum dla webmasterów.
Aby potwierdzić witrynę w centrum webmasterów (na przykład Google lub Yandex), musisz dodać tag <meta> kod.
Aby to zrobić, utwórz blok/menu, wstaw wymagany metakod i umieść go w znacznikach usług. Następnie Twoja witryna zostanie zweryfikowana.
W ten sam sposób możesz stworzyć własny nagłówek i dół strony. Do menu można wstawić prawie dowolny kod HTML.



Przykład udostępniania kategorii i producentów (kategorie dodatkowe) Dla każdego produktu możesz wybrać rubrykę (osobista rubryka Twojego sklepu), a także Producenta. Tym samym jeden produkt może znajdować się na liście głównej kategorii sklepu, jak również w nagłówku Producent*. Na przykład telefon Samsung może mieć dwa nagłówki, główny to «Smartfony», a dodatkowy to «Samsung». Możesz także wyświetlać w głównym nagłówku produkty tylko określonego producenta**.

* - nagłówek «Producent» można zastąpić słowem, którego potrzebujesz.

Zalecamy wywołanie nadrzędnej (pierwszej) rubryki «Sklep» (Store).


Przykład tworzenia kategorii sklepu:
Na początek zalecamy utworzenie kategorii głównej, w której utworzysz podkategorie.
Otwórz Edytor kategorii Sklepu w Centrum administracyjnym i kliknij «Dodaj kategorię».
Wybierz swoją witrynę i kliknij OK.
Następnie wprowadź nazwę (będzie to adres Twojej kategorii). Na przykład dla kategorii głównej utwórzmy grupę «Sklep» o nazwie «store».
Gotowe.

Podobnie możesz zarządzać kategoriami Producenci (dodatkowe kategorie).


** - Dodatkowo, jeśli chcesz otworzyć listę produktów określonej kategorii i określonego producenta, wystarczy dodać zmienną GET PRODUCER. Wystarczy podać w zmiennej ID producenta lub jego nazwę. Przykład: "/pers_shop/water/?producer=bonaqua" W tym przypadku zostanie wyświetlona lista produktów pod nagłówkiem "water", których producentem jest "bonaqua".



Wyszukiwanie w witrynie
Wyszukiwanie odbywa się po przesłaniu formularza ze zmienną «szukaj». Typ danych do wyszukania ustalany jest za pomocą ścieżki (strony), do której przesyłany jest formularz. Aby wyszukać w "Katalogu towarów" należy dokonać wysyłki na stronie "/sklep/".

Jak dodać formularz wyszukiwania do nagłówka strony?

W Bloku/Menu znajdującym się w nagłówku strony możesz dodać następujący kod:

Code: html
<div align="center" id="hotengine-search_form_block" itemscope itemtype="https://schema.org/WebSite">
<link itemprop="url" href="//{HOTENGINE-SC:site_url}/"/>
<form id="hotengine-search-searchinput" name="hotengine-search-searchinput" method="post" action="/pl/shop/" itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction">
<meta itemprop="target" content="//{HOTENGINE-SC:site_url}/pl/shop/?search={search}"/>
<label>
<input class="input" name="search" type="text" placeholder="Szukaj..." id="hotengine-smart_search_input" value="" itemprop="query-input">
</label>
<label>
<button type="submit" class="search-button">Odnaleźć</button>
	">
</label></form>
</div>


Kod natychmiast zawiera Micromarkup dla Google. W drodze do wysłania formularza (//{HOTENGINE-SC:site_url}/pl/shop/?search={search}) określony pl język, możesz go zmienić.

Przykład:


CSS blokowy, zastępując przycisk wysyłania obrazem:

Code: Css
#hotengine-search_form_block{
position: relative;
width:300px;
float: right;
z-index:2;
height: 41px;
margin:33px 0px 33px 10px;
}

#hotengine-search_form_block input{   
height: 20px;
vertical-align: middle;
border: 1px solid #e5e5e5;
padding: 0.15em;
width: 20.0em;
color:#9c9b9b;
height: 20px;
background: #fff;
padding: 0 13px;
height: 41px;
}
#hotengine-search_form_block input[type="text"]{
text-indent:4px;height: 39px;
}
#hotengine-search_form_block .search-button{
background:#41474c;
border-radius:0px;
vertical-align:middle;
display:block;
position:absolute;
top:0px;
right:0px;
border:none;
color:#fff;
width:41px; height:41px;
text-align:center;
font-size:12px;
line-height:25px; 
cursor:pointer; overflow:hidden; 
}

#hotengine-search_form_block .search-button:after{
content:""; width:41px; height:41px; display:block; position: absolute; right:0px; top:0px; 
background:none; background-color:#d6d6d6;
-webkit-mask:url("data:image/svg+xml;base64,PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KDTwhLS0gVXBsb2FkZWQgdG86IFNWRyBSZXBvLCB3d3cuc3ZncmVwby5jb20sIFRyYW5zZm9ybWVkIGJ5OiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIj4KDTxnIGlkPSJTVkdSZXBvX2JnQ2FycmllciIgc3Ryb2tlLXdpZHRoPSIwIi8+Cg08ZyBpZD0iU1ZHUmVwb190cmFjZXJDYXJyaWVyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KDTxnIGlkPSJTVkdSZXBvX2ljb25DYXJyaWVyIj4KDTxwYXRoIGZpbGw9IiMwMDAwMDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMjUgMmE1LjI1IDUuMjUgMCAxMDMuMTQ0IDkuNDU1bDIuMzI2IDIuMzI1YS43NS43NSAwIDEwMS4wNi0xLjA2bC0yLjMyNS0yLjMyNkE1LjI1IDUuMjUgMCAwMDcuMjUgMnpNMy41IDcuMjVhMy43NSAzLjc1IDAgMTE3LjUgMCAzLjc1IDMuNzUgMCAwMS03LjUgMHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgoNPC9nPgoNPC9zdmc+") center center no-repeat; 
-webkit-mask-size:20px;
}
#hotengine-search_form_block .search-button:hover:after{
	background-color:#fff;
}
#hotengine-search_form_block .search-button:active:after{ top:1px; }




Filtr wyszukiwania i typy produktów (cechy produktu). W kartach produktów możesz określić cechy, które będą dodatkowo wyświetlane w opisie produktu, a także według których będzie następnie przeprowadzane wyszukiwanie. Aby to zrobić, najpierw utwórz «Typ produktu».

Tworzenie typu produktu i cech produktu Na przykład:
Utwórz «Typ produktu» – «Trampki».
"Charakterystyka" - określ kilka pól, "Wielokrotnego wyboru (pole wyboru)" z nazwami: "Kolor", "Miejsce docelowe", "Producent".
Po zapisaniu nazw pól, po prawej stronie będziesz mógł wypełnić możliwe opcje.
Twórz wartości.
Kolor: biały, czerwony, zielony.
Przeznaczenie: bieganie, koszykówka, piłka nożna.
Producent: Adidas, Asics, Nike

Teraz w karcie produktu w zakładce "Parametry i charakterystyki" określ "Typ produktu" i podaj odpowiednie wartości.


Tworzenie filtra wyszukiwania dla kategorii.
Jeśli potrzebujesz utworzyć filtr wyszukiwania, to w sekcji «Moje bloki/menu» utwórz «Menu funkcyjne» - «Wyszukiwanie z filtrem według typów produktów».
Ten blok będzie wyświetlany wszędzie tam, gdzie włączysz wyświetlanie.
Aby wymagany typ produktu został automatycznie otwarty w określonej kategorii, w tekście «Blok funkcjonalny / menu» należy podać ID odpowiedniego typu produktu, a także dodać tekst «autopath» , aby podczas wyszukiwania odbywało się ono na tej samej stronie i nie przechodziło do ogólnego wyszukiwania witryny.
Na przykład, jeśli ID wcześniej utworzonego typu produktu wynosił 1123, tekst bloku/menu brzmiałby «1123autopath».
Teraz określ ścieżkę, gdzie ma być wyświetlany blok/menu za pomocą filtra wyszukiwania
"Wprowadź znaki, aby wyświetlić blok/menu po znalezieniu:"
/category_name/
Gdzie category_name – nazwę kategorii, ścieżkę, wzdłuż której się znajduje.
Aby ukryć filtr wyszukiwania podczas przeglądania karty produktu, w pozycji «Wprowadź znaki, po wykryciu których nie wyświetla się Blok / Menu:» wpisz
.htm


Przykład filtra wyszukiwania:

Aby ukryć pole wyszukiwania nad Typem produktu, w Edytorze wzornika w stylach CSS, dodaj «.menu_position_left .hotengine-smart_search_input_label { display: none;}»

Aby ukryć pole wyszukiwania wyboru Typu produktu, w Edytorze wzornika w stylach CSS, dodaj «.menu_position_left .shop_catalog_product_types_id_label { display: none;}»

.menu_position_left - oznacza, że ukrywamy pola w lewym bloku strony.


Aby wyświetlić liczbę produktów z podanym parametrem, można użyć parametru «count» przy tworzeniu Funkcjonalnego Bloku/Menu z filtrem wyszukiwania.
Aby ukryć nieznalezione cechy - «hideempty» (szczegóły są opisane na stronie tworzenia Funkcjonalnego Bloku/Menu).

Aby wyświetlić wybrane przez użytkownika wartości filtra wyszukiwania w górnej części strony, można użyć parametru «checkedlist». Tę funkcję można również aktywować w sekcji «Menu mobilne: Aplikacja» na karcie «Filtr wyszukiwania». Ułatwia ona użytkownikowi dostęp do wybranych wartości wyszukiwania, co jest szczególnie wygodne podczas przeglądania strony na urządzeniach mobilnych lub ekranach o niższej rozdzielczości. Funkcję wystarczy włączyć tylko raz — albo za pomocą parametru «checkedlist» w sekcji «Moje Bloki/Menu» - «Filtr wyszukiwania», albo w sekcji «Menu mobilne: Aplikacja» na karcie «Filtr wyszukiwania».
Demo:
Value1 ×
Value2 ×
Demo 2:
Value 3 ×
Value4 ×
Twórz automatyczne opisy. Korzystając z typów i funkcji produktów, możesz tworzyć artykuły i dodawać je do kart produktów. Opisy będą dodawane w zależności od charakterystyki lub kategorii ustawionej dla produktu. Zarządzanie i szczegółowe instrukcje dostępne są na stronie «Sklep» – «Automatyczne opisy».


Przykład funkcji `callback` po wykonaniu Java Script Strona korzysta z wielu funkcji, po których może być konieczne wykonanie własnych skryptów. W tym celu dodaliśmy zestaw funkcji `callback`, które są wywoływane po wykonaniu skryptów, ze wstępnym sprawdzeniem ich istnienia.
Np. po dodaniu produktu do koszyka funkcja jest wywoływana callback_hotengine_cart_plus_after, jeśli istnieje

Code: JavaScript
if(typeof(callback_hotengine_cart_plus_after) === "function"){ 
callback_hotengine_cart_plus_after(); 
}


Aby uruchomić własny skrypt funkcji callback_hotengine_cart_plus_after, musisz go utworzyć.

Code: JavaScript
function callback_hotengine_cart_plus_after(){
  // twój scenariusz 
}



Lista niektórych dostarczonych funkcji `Callback`:
callback_hotengine_ajax_load_products_list - po załadowaniu listy produktów (uniwersalna funkcja w każdym przypadku ładowania listy produktów przez skrypt)
callback_hotengine_ajax_load_products - po załadowaniu listy produktów, po naciśnięciu przycisku "Pokaż więcej".
callback_hotengine_shop_products_list_div_button - po przewinięciu listy produktów w slajdzie
callback_hotengine_shop_page_boughtwith_loaded($id) - po załadowaniu listy, "z towarem kupują" ($id-ID załadowanych towarów)

Sklep / Opis automatyczny
callback_hotengine_shop_autodescription($type) - po wyświetleniu opisu automatycznego ($type - html,ajax)
callback_hotengine_shop_autodescription_readmore($id,$job) - po załadowaniu rozwiniętego tekstu opisu automatycznego ($job - show,hide,load)

Sklep / Koszyk
callback_hotengine_cart_plus - po wysłaniu żądania dodania towaru do koszyka
callback_hotengine_cart_addresult($result,$item_id) - po dodaniu towaru do koszyka, różne warianty wyniku ($result-wartość wyniku. Wartości: "added" - dodany, "removed" - usunięty, "instock_smaller" - pozostałość mniejsza niż dodawana, "instock_smaller_exists" - pozostałość mniejsza niż już dodana do koszyka)
callback_hotengine_cart_plus_after($items_in_cart) - po dodaniu towaru do koszyka ($items_in_cart - liczba towarów w koszyku po wykonaniu)
callback_hotengine_cart_plus_after_boughtwith($ids) - po dodaniu towaru do koszyka przesyła listę "Z towarem kupują" w zmiennej $ids
callback_hotengine_cart_plus_after_boughtwith_email($ids) - po dodaniu towaru do koszyka przesyła "Listę do wysyłki" w zmiennej $ids (E-mail do wysyłki innych towarów)
callback_hotengine_cart_count_product_num - po wyborze produktu do zmiany jego ilości w koszyku

Sklep / Wariant
callback_hotengine_shop_product_variaty_select - po wyborze wariantu
callback_hotengine_variety_change_price($price) - po wyborze wariantu i zmianie ceny ($price - nowa cena)
callback_hotengine_variety_change_sku($sku) - po wyborze wariantu i zmianie kodu towaru ($sku - nowy sku)
callback_hotengine_variety_change_skuimage($img) - po wyborze wariantu, jeśli podano nowe zdjęcie ($img - nowa ścieżka do zdjęcia)
callback_hotengine_variety_change_stock_count($stock) - po wyborze wariantu i zmianie ilości w magazynie ($stock - nowa ilość w magazynie). Ta funkcja nie jest inicjowana, jeśli nie została stworzona, ponieważ nie zawsze konieczne jest zmienianie ilości towaru w magazynie.
callback_hotengine_variety_require() - jeśli nie wybrano wariantu, przed wywołaniem okna dialogowego wiadomość
callback_hotengine_variety_require_list($href) - jeśli nie wybrano wariantu, przed wywołaniem okna dialogowego z wiadomością, przy przeglądaniu listy towarów ($href - link do przeglądania karty towaru)

Sklep / Ulubione / Porównaj
callback_hotengine_favorite_addresult($result,$count_favorite) - po dodaniu towaru do ulubionych, różne warianty wyniku ($result-wartość wyniku. Wartości: "added" - dodany, "removed" - usunięty; $count_favorite - liczba towarów w ulubionych)
callback_hotengine_compare_plus() - po dodaniu towaru do listy porównawczej


Sklep / Wyszukiwanie
callback_hotengine_shop_catalog_product_types - po wyborze typu produktu w filtrze wyszukiwania

Sklep / Stan
callback_hotengine_shop_product_stock_inform- po wywołaniu okna "Poinformuj o dostępności"
callback_hotengine_shop_product_stock_inform_send - po wysłaniu żądania "Poinformuj o dostępności"

Sklep / Dostawa
callback_hotengine_loading_delivery_type - po wyborze sposobu dostawy
callback_hotengine_loading_delivery_type_finalvalues - po wyborze sposobu dostawy wartości końcowe

Użytkownik
callback_hotengine_authorize_result($result) - funkcja po autoryzacji użytkownika ($result - rezultat wykonania: 2-błąd logowania lub hasła, 3-konto zablokowane, 4-konieczna aktywacja,5-Aktywacja powiodła się,6-Niepoprawny kod Captcha)

Sklep / Statystyki sprzedaży
callback_hotengine_statisticsell_printorder($a) - po wywołaniu okna wydruku zamówienia. $a=1 - przed wyświetleniem okna. $a=2 - po wyświetleniu okna.

Blog
callback_hotengine_blog_page_list_div_button - po przewinięciu listy artykułów w slajdzie

Dialog
callback_hotengine_dialog_email- po wywołaniu okna dla informacji zwrotnej
callback_hotengine_form_submit_result($a) - po wysłaniu formularza przez okno dialogowe. $a=0 - błąd. $a=1 - ok.

Mobilny
callback_hotengine_mobilemenu_click($a,$href) - naciśnięcie na linki w mobilnym menu. $a=0 - linki punktów i górne ikony. $a=1 - linki podkategorii. $a=2 - po wyświetleniu okna ajax z treścią.
callback_hotengine_mobilemenu_show - funkcja wyświetlania zawartości menu mobilnego (w celu stworzenia efektu wyglądu). Domyślny $("#hotengine-mobile-outer").show(0);
Przykład
Przykład wyglądu od prawej do lewej.
Code: html
let $element = $("#hotengine-mobile-outer");
let elementWidth = $element.outerWidth();
$element.css({ right: -elementWidth, display: "block" }).animate({ right: 0 }, 500);




Gotowe skrypty
Większość rozwiązań możesz zaimplementować za pomocą skryptów (JavaScript). Niektóre z nich są opisane na stronie instrukcji, inne na stronie ustawień. Dodatkowo na stronie można znaleźć gotowe rozwiązania Skrypty do użytku na stronach internetowych.
Rozładunek XML/RSS/YML
XML pliki do pobrania dostępne w Twojej witrynie Rozładunek jest dostępny w różnych formatach, zarówno skróconych, jak i rozszerzonych danych z charakterystyką produktu.
Dostępne formaty:
  • Sitemap.xml Mapa witryny ze wszystkimi danymi
  • XML Google Merchant (Rozszerzone i skrócone)
  • XML Yandex Market
  • CSV Price
  • JSON Wszystkie dane katalogowe sklepu
  • Cena za Hotline.ua + marża własna
  • Cennik dla Prom.ua + marża własna
  • XML dla Rozetka.ua + marża własna

Generator i lista linków dostępnych w panelu administracyjnym - «XML/CSV/XLS/JSON»

Dodatkowo przy rozładunku towaru możesz określić opcje sortowania i filtrowania według poniższych parametrów:

  • sort_by - sortowanie
  • order_by - sortowanie
  • sort_instock_priority - priorytet sortowania
  • price_from – Cena od
  • price_to – cena do
  • producer – producent (jedna lub więcej wartości oddzielonych przecinkami)
  • stock - obecność
  • collection - kolekcja (jedna lub więcej wartości oddzielonych przecinkami)
  • pers_shop_cat_page_catid - ID kategorii sklepu (co najmniej jedna wartość oddzielona przecinkami)

Parametry można podać jako zmienną GET, po głównej ścieżce do pliku XML. Na przykład «ścieżka.xml?producent=1» Możesz znaleźć opcje wartości na stronie importu produktu w instrukcjach.


Domeny
Parkowanie domeny Możesz bezpłatnie podłączyć swoją osobistą domenę najwyższego poziomu (na przykład: example.com).

Aby to zrobić, określ nasze serwery NS w ustawieniach swojej domeny:
NS1.HOTLIST.BIZ
NS2.HOTLIST.BIZ

Lub adres IP 88.218.28.193 we wpisie «A» rekord.

W takim razie skontaktuj się z nami za pomocą formularza opinii . W żądaniu podaj witrynę, do której chcesz podłączyć domenę *, oraz adres tej domeny.

* - nie sprzedajemy domen, aby podłączyć swoją domenę, musisz wstępnej rejestracji/zakupu.

Domeny w strefie .RU nie są obecnie obsługiwane.
SSL/HTTPS

SSL

SSL oznacza Secure Socket Layer i jest standardową technologią bezpieczeństwa internetowego, która służy do zapewnienia szyfrowanego połączenia między serwerem (stroną) a przeglądarką. Certyfikat SSL pozwala nam korzystać z protokołu HTTPS (po podłączeniu certyfikatu SSL Twoja strona nie otworzy się przez HTTP, ale przez protokół HTTPS).


Co to jest HTTPS?

HTTPS (Hypertext Transport Protocol Secure) – jest to protokół zapewniający bezpieczeństwo i prywatność w wymianie informacji pomiędzy serwisem a urządzeniem użytkownika. Odwiedzający serwis oczekują, że podane przez nich dane nie wpadną w ręce oszustów. Aby chronić dane, które odwiedzający zostawiają w Twojej witrynie, zacznij korzystać z protokołu HTTPS.



Jak podłączyć certyfikat SSL


Możesz podłączyć nasz certyfikat SSL przy płaceniu za hosting, zaznaczając pole «SSL certyfikat».

Ponadto możesz podłączyć certyfikat SSL dla swojej domeny, kupując go od dowolnego rejestratora. Koszt podłączenia i korzystania z certyfikatu wynosi 1 USD miesięcznie (minimalny okres płatności to 12 miesięcy).

Dla sklepu internetowego wystarczy certyfikat Comodo Positive SSL.

Płatne połączenie SSL.


Poczta/E-mail
Twórz skrzynki pocztowe w zaparkowanej domenie Po podłączeniu domeny możesz np. korzystać z poczty z adresem swojej strony mail@example.com.
Możesz podłączyć usługę pocztową Google.com, Zoho.com, Yandex, Mail.ru i inne do swojej domeny.

Podłączenie poczty korporacyjnej do Zoho.eu 1)Zarejestruj się https://www.zoho.eu/mail/
2)Wybierz odpowiedni plan, np. 5GB - ZA DARMO, za darmo
3) Dodaj swoją domenę @twojadomena. W celu weryfikacji musisz utworzyć zawijanie CNAME lub TXT w rekordach NS domeny. Możesz przesłać dane, a my je dodamy, lub wprowadź je samodzielnie. Prześlij zarówno dane TXT, jak i CNAME.
4) Dodaj rekordy MX z nazwą @ lub pustą nazwą.
Wartości w poniższej tabeli:

Host/ Domain Address/ Mail Server/ MX Entries/ Value Priority
@/ Blank/ Domain name mx.zoho.eu. 10
@/ Blank/ Domain name mx2.zoho.eu. 20
@/ Blank/ Domain name mx3.zoho.eu. 50


5) W rekordach NS domeny utwórz wpis tekstowy o wartości "v=spf1 ip4:88.218.28.193 include:zoho.eu ~all"
6) Opcjonalnie możesz dodać Podpis DKIM https://www.zoho.eu/mail/help/adminconsole/dkim-configuration.html
7) Utwórz adresy e-mail i użytkowników.
8) Określ utworzoną skrzynkę jako serwer SMTP na stronie.

SMTP server: smtp.zoho.eu
Port: 465
Security Type: SSL

Lub
SMTP server: smtp.zoho.eu
Port: 587
Security Type: TLS

https://www.zoho.eu/mail/help/zoho-smtp.html.

Instrukcja podłączenia na www.zoho.eu.
Ustawienia SMTP Możesz użyć własnego serwera SMTP (ZALECANE) do wysyłania poczty ze swojej witryny. W tym celu przejdź do Ustawień, w zakładce «Poczta» i określ ustawienia serwera SMTP.
Powiadomienia
Viber Bot Możesz włączyć powiadamianie o nowych wiadomościach i zamówieniach z serwisu.

Aby połączyć się z kanałem z powiadomieniem o nowych zamówieniach, musisz wysłać hotlist_viber_key (gdzie klucz to twój klucz) na kanał https://viber.com/hotlistbiz. Możesz udostępnić ten klucz i używać go z różnych urządzeń z Viber.
Możesz zainstalować klucz w "Ustawieniach", w zakładce "Powiadomienia". Alternatywnie można użyć klucza formularza, który można określić w Edytorze formularzy.

Aby wyłączyć powiadomienia, musisz albo zmienić klucze, albo wysłać DISABLE hotlist_key (gdzie klucz to Twoja strona lub klucz formularza) do Viber.
Telegram Bot Możesz włączyć powiadamianie o nowych wiadomościach i zamówieniach z serwisu.

Aby połączyć się z kanałem z powiadomieniem o nowych zamówieniach, musisz wysłać hotlist_telegram_key (gdzie klucz to twój klucz) na kanał https://t.me/ hotlistbiz_bot. Możesz udostępnić ten klucz i używać go z różnych urządzeń z Telegramem.
Klucz możesz ustawić w "Ustawieniach", w zakładce "Powiadomienia". Alternatywnie można użyć klucza formularza, który można określić w Edytorze formularzy.

Aby wyłączyć powiadomienia, musisz albo zmienić klucze, albo wysłać DISABLE hotlist_key (gdzie klucz to Twoja witryna lub klucz formularza) do Telegrama.
Ukryte dane (znaczniki systemowe / mikroznaczniki)
Specjalne znaczniki hotengine-marking Ten znacznik znajduje się na wszystkich stronach (stronach, sklepie, katalogu artykułów itp.), a także w elementach menu, które używają listy danych, takich jak najnowsze artykuły i wiadomości.

Ten znacznik zawiera następujące dane:
data-hotengine-marking-type= typ strony
data-hotengine-marking-timestamp= data utworzenia strony
data-hotengine-marking-view= liczba wyświetleń

Dane są wymagane, jeśli chcesz wyłączyć lub wyświetlić dodatkowe dane, na określonej stronie, przy określonym typie strony lub jeśli potrzebujesz wyświetlić liczbę wyświetleń lub datę materiału (aktualność, artykuł, produkt). Dodatkowo, sprawdzając ten element, możesz znaleźć ID wpisu (strony, artykułu lub produktu), a także inne dodatkowe dane.

Jeśli potrzebujesz więcej danych w znacznikach, daj nam znać.
Code: html
<span class="hotengine-marking" data-hotengine-marking-type="shop_catalog_page" data-hotengine-marking-timestamp="1422368197" data-hotengine-marking-view="6" data-hotengine-marking-shop_catalog_page_id="71111" data-hotengine-marking-shop_catalog_page_price="1" data-hotengine-marking-shop_catalog_page_price_currency="USD" data-hotengine-marking-shop_catalog_page_complectation="22323" data-hotengine-marking-video="https://youtu.be/tAyVrZ1jzC4">


Dodatkowo przy ustalaniu indywidualnych parametrów dostawy dodawane są kolejne atrybuty:
data-hotengine-marking-delivery="xxx"
data-hotengine-marking-delivery_price="xxx"
data-hotengine-marking-delivery_note="xxx"


W obecności wymiarów i wagi towarów dodaje się następujące atrybuty: data-hotengine-marking-shop_cat_page_deliv_width="XX"
data-hotengine-marking-shop_cat_page_deliv_height="XX"
data-hotengine-marking-shop_cat_page_deliv_length="XX"
data-hotengine-marking-shop_cat_page_deliv_units="XX"
data-hotengine-marking-shop_cat_page_deliv_weight="XX"
data-hotengine-marking-shop_cat_page_deliv_weight_units="XX"
data-hotengine-marking-shop_cat_page_deliv_capacity="XX"



Przykład skryptu sprawdzającego stronę pod kątem obecności obiektu znaczników i typu strony «shop_catalog_page» (strona karty produktu).
Code: html
let product_marking = $(".hotengine-marking[data-hotengine-marking-type='shop_catalog_page']");
  if(typeof product_marking !== typeof undefined && product_marking !== false && product_marking !='undefined' && product_marking !=''){
 let product_id = product_marking.attr("data-hotengine-marking-shop_catalog_page_id");
  console.log("ID PRODUCT IS "+product_id);
}

Jeśli strona jest zdefiniowana jako karta produktu, to wyodrębniamy ID produktu - data-hotengine-marking-shop_catalog_page_id.

Dostępne typy stron:

Shop:
  • shop_catalog_page - karta produktu
  • shop_catalog_page_incategory - karta produktu na stronie z listą *
  • shop_catalog_page_incategory_search - karta produktu na stronie wyników wyszukiwania
  • shop_catalog_page_cart_products_list - karta produktu w koszyku
  • pers_shop_catalog_category - kategoria sklepu
  • shop_catalog_category_collection - kategoria kolekcji, sklep
  • shop_catalog_category_producer - kategoria producenta, sklep
  • shop_statistic_sale - statystyki sprzedaży
  • shop_catalog_page_cart_bought_with - kup z towarem (podczas przeglądania koszyka)
Blog:
  • blog_catalog_page - artykuł
  • blog_catalog_page_incategory – lista artykułów *
News:
  • news_catalog_page - Aktualności
  • news_catalog_page_incategory - lista aktualności *
  • news_catalog_page_incategory_menu - Blok/Menu, generowana lista wiadomości *

* - te obiekty listy mają dodane atrybuty mikroznaczników bez użycia oddzielnego elementu oznaczania hotengine.

Przykład znaczników (Wyświetlanie daty utworzenia wpisu + timeConverter)
Code: html
<!--HTML-start-->
<script>
  function timeConverter(UNIX_timestamp) {
  const metaLang = document.querySelector("meta[http-equiv='content-language']");
  let lang = metaLang ? metaLang.getAttribute("content").toLowerCase() : "en";
  const a = new Date(UNIX_timestamp * 1000);
  const year = a.getFullYear();
  const monthIndex = a.getMonth();
  const date = a.getDate();
 const months = {
  "ru": ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],
  "uk": ["січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"],
  "pl": ["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],
  "en": ["January","February","March","April","May","June","July","August","September","October","November","December"]
  };
 if (!months[lang]) lang = "en";
  return { day: date, month: months[lang][monthIndex], year: year };
  }
$(document).ready(function () {
  $("#hotengine-content-page .hotengine-blog-page-list-block, #hotengine-content-blog .hotengine-blog-page-list-block").each(function () {
  const timestamp = $(this).attr("data-hotengine-marking-timestamp");
  if (timestamp) {
  const t = timeConverter(timestamp);
  const dateHtml = `
  <div class="hotengine_add_date">
  <span class="day">${t.day}</span>
  <span class="month">${t.month}</span>
  <span class="year">${t.year}</span>
  </div>`;
  $(this).find(".contenth_i").prepend(dateHtml);
  }
  });
  });
  </script>

Ten skrypt wyszukuje element znaczników, #hotengine-content-blog .hotengine-blog-page-list-block (artykuł z listy) i wstawia datę wcześniej przekonwertowaną z TIMESTAMP przez funkcję timeConverter na początek elementu .contenth_i .
CSS style
Code: CSS
.hotengine_add_date { font-size:10px; float:right; color:#555;
  display: inline-block;
  width: 60px;
  padding: 8px 5px;
  background-color: #f4f4f4;
  border-radius: 8px;
  text-align: center;

  box-shadow: 0 0 5px rgba(0,0,0,0.1);
  margin: 8px 10px 12px 8px;
  color: #333;
}

.hotengine_add_date span {
  display: block;
  line-height: 1.2;
}

.hotengine_add_date span.day {
  font-size: 20px;
  font-weight: bold;
}

.hotengine_add_date span.month {
  font-size: 13px;
  font-weight: 500;
}

.hotengine_add_date span.year {
  font-size: 11px;
  color: #777;
}

@media screen and (max-width: 600px) {
  .hotengine_add_date {
    width: 48px;
    padding: 6px 4px;
    margin: 6px 8px 10px 0;
  }

  .hotengine_add_date span.day {
    font-size: 16px;
  }

  .hotengine_add_date span.month {
    font-size: 11px;
  }

  .hotengine_add_date span.year {
    font-size: 10px;
  }
}




Ponadto <HTML> znaczniki są dodawane dla użytkowników data-hotengine-marking-userid, z identyfikatorem użytkownika.
Jeśli użytkownik jest dodany jako «Klient» z własnym rabatem, to dodawany jest również znacznik data-hotengine-marking-user-group-discount z wielkością jego rabatu.

Code: html
<html lang="pl" data-hotengine-marking-userid="USERID" data-hotengine-marking-user-group-discount="-10%">
Gdzie:
pl - język strony
USERID - ID użytkownika
10% - rabat dla klienta.


Jeżeli użytkownik jest dodany do Grupy Klientów, to dodatkowo wskazywany jest ID grupy, do której należy.
Code: html
<html lang="pl" data-hotengine-marking-userid="XXXXX" data-hotengine-marking-user-group-discount="-20%" data-hotengine-marking-user-group-id="XXXXX">



Przykład dodatkowej marży w odmianie produktu
Code: html
<ul class="hotengine-shop-product-variety_select" size="1" data-vpid="XXXXX" >
<li value="0" title="Różnorodność" >Różnorodność</li>
<li value="XXXXXX" data-hotengine-variety-disable-add="1" data-hotengine-variety-pricechange="+10" data-hotengine-variety-stockcount="10" class="">Różnorodność 1</li>
<li value="XXXXX" data-hotengine-variety-disable-add="0" data-hotengine-variety-pricechange="=500" data-hotengine-variety-stockcount="10" class="hotengine-shop-product-variety_hilight">Różnorodność 2</li>
<li value="XXXXX" data-hotengine-variety-disable-add="0" data-hotengine-variety-pricechange="-110" data-hotengine-variety-stockcount="10" class="hotengine-shop-product-variety_hilight-selected">Różnorodność 3</li>
</ul>

data-hotengine-variety-disable-add - włączenie/wyłączenie możliwości dodania odmiany do koszyka (1-zakaz, 0-zezwalanie). Po kliknięciu na odmianę, której dodawanie jest wyłączone, nic się nie dzieje, a cena produktu i numer artykułu nie ulegają zmianie.

data-hotengine-variety-pricechange - dane o zmianach cen, możesz go użyć do wyróżnienia danych o zmianach cen (używając javascript).
data-hotengine-variety-stockcount - Ilość w magazynie

CSS klasy dla elementów:
.hotengine-shop-product-variety_hilight - wybrany obiekt (po najechaniu myszką).

.hotengine-shop-product-variety_hilight-selected - wybrany obiekt, na który kliknięto (wariant aktywny).

Dodatkowo dla wszystkich elementów potomnych bloku z wyłączoną funkcją dodawania do koszyka [data-hotengine-variety-disable-add="1"] dodano stylizację desaturacji i normalny kursor najechania.

Przykład etykiety dla zapytania w sklepie
Code: html
<span class="hotengine-marking" 
data-hotengine-marking-type="shop_catalog_page_incategory_search"
data-hotengine-marking-search="oddzielne zapytanie wyszukiwania"
data-hotengine-marking-searchparam="?&search=pełny ciąg zapytania wyszukiwania (+ sortowanie i inne dane)"
data-hotengine-marking-sortparam="dodatkowe dane sortowania"
data-hotengine-marking-smart_search_price_from="cena od"
data-hotengine-marking-smart_search_price_to="cena do"
data-hotengine-marking-smart_search="zapytanie wyszukiwania podczas korzystania z filtra wyszukiwania"
data-hotengine-marking-searchresult-num="55">

data-hotengine-marking-searchparam - zapytanie wyszukiwania, może służyć do tworzenia linku do strony z zapytaniem.
data-hotengine-marking-searchresult-num - ilość znalezionych produktów dla wprowadzonego zapytania.

Przykład etykiety w kategoriach sklepów sklepowych
Code: html
<span class="hotengine-marking" 
data-hotengine-marking-type="pers_shop_catalog_category"
data-hotengine-marking-view="9999"
data-hotengine-marking-pers_shop_catalog_category_parent_id="222"
data-hotengine-marking-pers_shop_catalog_category_child_count="2"
data-hotengine-marking-pers_shop_catalog_page_count="999"
data-hotengine-marking-pers_shop_catalog_page_child_count="1299"
data-hotengine-marking-pers_shop_catalog_category_name="nameofcategory"
data-hotengine-marking-pers_shop_catalog_category_id="8342">

data-hotengine-marking-pers_shop_catalog_category_parent_id - ID kategorii nadrzędnej
data-hotengine-marking-pers_shop_catalog_category_child_count - liczba podkategorii (tylko do tego rodzica)
data-hotengine-marking-pers_shop_catalog_page_count - ilość produktów w tej kategorii
data-hotengine-marking-pers_shop_catalog_page_child_count - liczba produktów w tej i podkategoriach podrzędnych
data-hotengine-marking-pers_shop_catalog_category_name - Nazwa Kategorii.
data-hotengine-marking-pers_shop_catalog_category_id - ID kategorii.
Podobne znaczniki są używane dla producentów.

Przykład wyszukiwania etykiety z zapytaniem w sklepie
Code: JavaScript
<script type="text/javascript"><!--
  $(function(){
let $search = $('.hotengine-marking[data-hotengine-marking-type="shop_catalog_page_incategory_search"]');
  if (typeof $search !== typeof undefined && $search !== false && $search !== "undefined" && $search.length > 0){
  let $search_query = $search.attr("data-hotengine-marking-search");
  $("#hotengine-search-searchinput #hotengine-smart_search_input").val($search_query);
  }});
  //-->
  </script>

data-hotengine-marking-search - wyszukiwana fraza


Ponadto do niektórych bloków witryny dodano znaczniki "data-hotengine-..." z dodatkowymi danymi.
Na przykład "data-hotengine-product-images-count" - ilość zdjęć produktu.

W koszyku znaczniki wskazują ilość towarów, koszt całkowity oraz walutę (data-hotengine-cart-count, data-hotengine-cart-total-price, data-hotengine-cart-currency)

Dodatkowe znaczniki, «data-» zaimplementowane bezpośrednio w elementach znaczników, na przykład element class="hotengine-categories-list-block" (blok ikon kategorii) może zawierać znaczniki: data-image="1" -wskazany jest obraz kategorii, data-child-cat="7" - liczba podkategorii data-child-items="5114" - Ilość produktów we wszystkich działach wewnętrznych, a także ilość podkategorii, data-cid="44" - ID kategorii. (data-cid - kategorie sklepu, data-pcid - kategorie producentów, data-ccid - kategorie kolekcji, data-bcid - kategorie katalogu artykułów)

W statystykach sprzedaży, przeglądając zamówienie osobno, pojawia się również mikronarzut.

Przykład sprawdzania obecności elementu znaczników
Code: html
let $catergory = $('.hotengine-marking[data-hotengine-marking-type="pers_shop_catalog_category"]');
if (typeof $catergory !== typeof undefined && $catergory !== false && $catergory !== "undefined" && $catergory.length > 0){
let $nemecat = $catergory.attr("data-hotengine-marking-pers_shop_catalog_category_name");
alert("Category name is "+$nemecat);
}

Instrukcja tworzenia Sortowania towarów w sklepie wraz z przykładem

Użyj łącza, aby utworzyć automatycznie menu funkcyjne «Sortuj» lub wypełnij Blok/Menu zgodnie z instrukcją poniżej:

Utwórz «Blok/Menu», pozycja «góra».
Nazwa bloku/Menu: hotengine_sort_products
Nagłówek/menu bloku: hotengine_sort_products
Pozycja bloku/menu: Góra
Pokaż blok/menu na stronach: wszędzie
Wprowadź znaki, po wykryciu których wyświetli się blok/menu: (bez spacji)
/pers_shop/ /producer/ /collection/ /shop/

Wprowadź znaki, które, jeśli zostaną znalezione, nie wyświetlają bloku/menu: (bez spacji)
.htm
Tekst menu:
Code: JavaScript
<form id="hotengine-sort-products-generated" name="hotengine-sort-products-generated" method="get" action="">
  <span>
  <label>
  <select name="sort_by" id="sort_by" onchange="this.form.submit()"> 
  <option value="ASC">Сортировать:</option>
  <option value="ASC">Rosnąco</option>
  <option value="DESC">Malejąco</option>
  </select>
  </label>
<label>
  <select name="order_by" id="order_by" onchange="this.form.submit()"> 
  <option value="5">Sortować:</option>
  <option value="0">Według ID produktu</option>
  <option value="4">Nazwa</option>
  <option value="1">Według daty</option>
  <option value="2">Według ceny</option>
  </select>
  </label>

<label>
  <select name="NUM_ONPAGE" id="NUM_ONPAGE" onchange="this.form.submit()">
  <option value="10">10</option>
  <option value="20">20</option>
  <option value="30">30</option>
  <option value="50">50</option> 
  </select>
  </label>
  <input class="smart_search" name="smart_search" type="hidden" value="">
  <input class="search" name="search" type="hidden" value="">
  </span>
  </form> 
  
  <script type="text/javascript" src="/templates/scripts/hotengine-script-sort-shop-products.js"></script>


CSS styl do sortowania (dodaj w edytorze projektów do stylów css):
Code: JavaScript
.hotengine_sort_products #menu_c .headm{ display:none; }
  .hotengine_sort_products #menu_c { border: none; background: none; text-align: right;}
.hotengine_sort_products #menu_c  select { 
  background: transparent; 
  padding: 5px 8px 5px 5px; 
  font-size: 12px;
  line-height: 1;
  border-radius: 2px;
  height: 24px;
  -webkit-appearance: none;
  overflow: hidden;
  background: url(/templates/styles/menu_arrow/arrow-down.svg) no-repeat 95%; background-size: 16px;
  }
  .hotengine_sort_products #menu_c select[name="NUM_ONPAGE"] { background:none;}
  @-moz-document url-prefix(){ 
  .hotengine_sort_products #menu_c select {
    padding:0px!important;
    background:none!important;

  }
  .menu_position_top_000000 #menu_c span:before{ content:"Sortować:"; display:inline-block;  padding: 5px; font-size: 12px; }
}

Gdzie 000000 należy zastąpić identyfikatorem utworzonego menu z kodem rozliczeniowym.

Instrukcja zmiany komunikatu o niewyselekcjonowanej odmianie

Tekst błędu wyboru odmiany:
Komunikat o konieczności wyboru rodzaju produktu jest realizowany w oknie dialogowym za pomocą elementu CSS. Możesz zastąpić napisy w stylach CSS:
Code: CSS
html:lang(ru) .hotengine-shop_cart_add_error_wrong_variety:after{ content:"Вы не выбрали разновидность товара."; }
html:lang(en) .hotengine-shop_cart_add_error_wrong_variety:after{ content:"You did not select a complete set of goods."; }
html:lang(uk) .hotengine-shop_cart_add_error_wrong_variety:after{ content:"Вы не обрали різновид товару."; }
html:lang(pl) .hotengine-shop_cart_add_error_wrong_variety:after{ content:"Nie wybrałeś typu produktu."; }

Ponadto, zanim wiadomość zostanie wyświetlona, ​​dzwoni callback funkcjonować callback_hotengine_variety_require.
Podczas przeglądania listy produktów, przed wyświetleniem komunikatu, jest to tzw callback funkcjonować callback_hotengine_variety_require_list($href), mając na uwadze, że $href wysyłany jest link do karty produktu.

Przykład funkcji z oknem dialogowym, które jest domyślne i można je zmienić:
Code: JavaScript
<script>
 function callback_hotengine_variety_require(){

 $("body").append('<div id="hotengine-shop_cart_add_error_wrong_variety"><a class="hotengine-shop_cart_add_error_wrong_variety-btn-close" data-micromodal-close onclick=\'(function() { $("#hotengine-shop_cart_add_error_wrong_variety,#hotengine-shop_cart_add_error_wrong_variety-data").remove(); return false; })();\'></a></div>');
  
  
  
hotengine_micromodal({
    id: "hotengine-shop-cart-add-error-wrong-variety",
    content: $("#hotengine-shop_cart_add_error_wrong_variety-data").html(),
    defaultWidth: $(window).width() > 410 ? "410px" : "90%",
	defaultHeight: "",
    minWidth: "290px",
    onCloseRemove: false,
	unsetContentHeight: true,
	onCloseEvent: function(){ $("#hotengine-shop-cart-add-error-wrong-variety,#hotengine-shop_cart_add_error_wrong_variety-data").remove(); }
});
  
  return false; 
  }

 </script>



W parametrach produktu możesz określić tytuł nad listą odmian. Długość nagłówka jest dodawana jako klasa CSS. Na przykład, jeśli tytuł to «Wybierz wagę», to jego długość wynosi 24 znaki. W związku z tym określona jest klasa hotengine-shop-product-variety-title_24. Możesz użyć tekstu lub długości nagłówka nad odmianą. Na przykład:
Code: JavaScript
<script>												 
	function callback_hotengine_variety_require(){

if($(".hotengine-shop-product-variety-title_24").length > 0){
  $text = "Nie wybrałeś wagi!";
  } else if($(".hotengine-shop-product-variety-title_38").length > 0){
  $text = "Nie wybrałeś ilości!";
  } else if($(".hotengine-shop-product-variety-title_26").length > 0){
  $text = "Nie wybrałeś koloru!";
  } else {
  $text = "Nie wybrałeś odmiany!";
  }
 
 
 $("body").append('<div id="hotengine-shop_cart_add_error_wrong_variety"><b>'+$text+'</b><a class="hotengine-shop_cart_add_error_wrong_variety-btn-close" data-micromodal-close onclick=\'(function() { $("#hotengine-shop_cart_add_error_wrong_variety,#hotengine-shop_cart_add_error_wrong_variety-data").remove(); return false; })();\'></a></div>');
  
  
  
hotengine_micromodal({
    id: "hotengine-shop-cart-add-error-wrong-variety",
    content: $("#hotengine-shop_cart_add_error_wrong_variety-data").html(),
    defaultWidth: $(window).width() > 410 ? "410px" : "90%",
	defaultHeight: "",
    minWidth: "290px",
    onCloseRemove: false,
	unsetContentHeight: true,
	onCloseEvent: function(){ $("#hotengine-shop-cart-add-error-wrong-variety,#hotengine-shop_cart_add_error_wrong_variety-data").remove(); }
});
  
  return false; 
  }


</script>
Podobna funkcja podczas przeglądania listy produktów, callback_hotengine_variety_require_list($href), uzupełniony o link do karty produktu i odpowiednio może być wykorzystany w wyświetlonym oknie dialogowym.

Instrukcja dodawania linku do recenzji / rating w towarach


Aby utworzyć link do ikon ocen na liście produktów, musisz znaleźć wszystkie elementy listy i dodać link wokół elementów oceny.
Dodatkowo po załadowaniu listy produktów w sliderze lub skorzystaniu z przycisku "Pokaż więcej" należy ponownie dodać link (callback_hotengine_ajax_load_products i callback_hotengine_shop_products_list_div_button).
Code: JavaScript
<script type="text/javascript">
  <!-- 
  $(function(){

$(".hotengine-shop-product-list-block .hotengine-shop-product-rating-block").each(function(){
  let $urlr = $(this).parent().find(".hotengine-shop-product-read_more a").attr("href");
  $(this).wrap('<a class="hotengine-shop-product-rating-block-url" href="'+$urlr+'#tabs-review"></a>');
  });
});

function callback_hotengine_ajax_load_products(){
  $(".hotengine-shop-products-list-content-append .hotengine-shop-product-list-block :not([.hotengine-shop-product-rating-block-url]) .hotengine-shop-product-rating-block").each(function(){
  let $urlr = $(this).parent().find(".hotengine-shop-product-read_more a").attr("href");
  $(this).wrap('<a class="hotengine-shop-product-rating-block-url" href="'+$urlr+'#tabs-review"></a>');
  });
  }

function callback_hotengine_shop_products_list_div_button(){
$(".hotengine-shop-products-list-content .hotengine-shop-product-list-block .hotengine-shop-product-rating-block").each(function(){
  let $urlr = $(this).parent().find(".hotengine-shop-product-read_more a").attr("href");
  $(this).wrap('<a class="hotengine-shop-product-rating-block-url" href="'+$urlr+'#tabs-review"></a>');
  });
  }
 
-->
  </script>



Obiekt linku musi być np. umieszczony CSS:
Code: JavaScript
.hotengine-shop-product-list-block .hotengine-shop-product-rating-block{ position:relative; display: block; bottom: 0px;}
	.hotengine-shop-product-list-block .hotengine-shop-product-rating-block-url{ position:relative; display: block; bottom: 1px;}
	


Dodatkowe klocki w wózku: Jeśli produkt ma cenę hurtową, tworzony jest element SPAN .hotengine-shop-product-price_bulk_inform_block.
Code: html
<span class="hotengine-shop-product-price_bulk_inform_block"><span class="hotengine-shop-product-price_bulk_inform_block_title"></span><span class="hotengine-shop-product-price_bulk_inform_original_price">100</span><span class="hotengine-shop-product-price_bulk_inform_original_price_bulk">100</span></span>



.hotengine-shop-product-price_bulk_inform_block_title - blok z tekstem "Cena hurtowa" (możesz zmienić za pomocą stylów CSS, treści).
.hotengine-shop-product-price_bulk_inform_block - blok informacji o zniżkach
.hotengine-shop-product-price_bulk_inform_original_price - cena
.hotengine-shop-product-price_bulk_inform_original_price_bulk - cena hurtowa


Jeśli produkt ma Promocję, tworzony jest element SPAN .hotengine-shop-product-price_sale_inform_block.
Code: html
<span class="hotengine-shop-product-price_sale_inform_block"><span class="hotengine-shop-product-price_sale_inform_block_title"></span><span class="hotengine-shop-product-price_sale_inform_original_price">100</span><span class="hotengine-shop-product-price_sale_inform_original_price_old">120</span></span>



.hotengine-shop-product-price_sale_inform_block_title - blok z tekstem «Cena promocyjna» (możesz zmienić za pomocą stylów CSS, treści).
.hotengine-shop-product-price_sale_inform_block - blok informacji o zniżkach
.hotengine-shop-product-price_sale_inform_original_price - cena
.hotengine-shop-product-price_sale_inform_original_price_old - stara cena produktu (wyświetlana tylko jeśli wartość jest podana i różna od zera)


ShortCode (autokorekty danych)
ShortCode (autokorekty danych)
Na wszystkich stronach i Blokach/Menu istnieje możliwość automatycznej zamiany kodu na dane statyczne.
Każda strona posiada unikalne dane, np. może to być ID strony (artykuł, produkt, strona).

Poniżej znajduje się lista podstawowych danych dla Autokorekty.


{HOTENGINE-SC:current_page_id} - ID bieżącej strony (artykuły, strony, produkty, aktualności)
{HOTENGINE-SC:site_url} - URL Twojej witryny (adres)
{HOTENGINE-SC:lang} - Otwórz język strony
{HOTENGINE-SC:site_tagline} - Slogan strony internetowej
{HOTENGINE-SC:contacts} - Blokuj z kontaktami
{HOTENGINE-SC:slide_menu_widget:XX} - Blokuj za pomocą widżetu Menu slajdów
{HOTENGINE-SC:slider_widget:XX} — blok z widżetem suwaka
{HOTENGINE-SC:smart_search_widget:PARAM} - Blokuj z filtrem wyszukiwania widgetów
{HOTENGINE-SC:main_menu_widget} - Menu główne
{HOTENGINE-SC:langmenu} - zmiana języka

{HOTENGINE-SC:user_nickname} - Nazwa użytkownika (jeśli jest autoryzowana)
{HOTENGINE-SC:user_id} - ID użytkownika (jeśli jest autoryzowany)
{HOTENGINE-SC:user_login} - Login użytkownik (jeśli ma autoryzację)
{HOTENGINE-SC:user_discount} - Niestandardowy rabat
{HOTENGINE-SC:user_cashback} - Balansować Cashback
{HOTENGINE-SC:user_group_id} - ID grupy użytkowników

{HOTENGINE-SC:shop_cart_menu} - koszyk (Koszyk z blokami/menu)
{HOTENGINE-SC:favorites} - link do wybranych produktów
{HOTENGINE-SC:shop_compare_menu} - porównanie towarów
{HOTENGINE-SC:shop_cat_page_image} - Ścieżka do obrazu produktu (jeśli strona produktu jest otwarta)
{HOTENGINE-SC:shop_cat_page_id} - ID produktu (jeśli strona produktu jest otwarta). Możesz też użyć {HOTENGINE-SC:current_page_id}
{HOTENGINE-SC:shop_cat_page_sku} - Kod produktu (jeśli strona produktu jest otwarta)
{HOTENGINE-SC:shop_cat_page_currency} - Waluta produktu (skrócona) (jeśli strona produktu jest otwarta)
{HOTENGINE-SC:shop_cat_page_currency_iso} - Waluta produktu (ISO) (jeśli strona produktu jest otwarta)
{HOTENGINE-SC:shop_cat_page_price} - Cena produktu (jeśli strona produktu jest otwarta)
{HOTENGINE-SC:shop_cat_page_title} - Nazwa produktu
{HOTENGINE-SC:shop_cat_page_video} – Video URL (link do filmu)

{HOTENGINE-SC:pers_shop_cat_val_name} - Nazwa kategorii sklepu (tylko wewnątrz kategorii i przycisku na liście podkategorii)
{HOTENGINE-SC:pers_shop_cat_val_title} - Tytuł kategorii sklepu (tylko wewnątrz kategorii i przycisku na liście podkategorii)
{HOTENGINE-SC:pers_shop_cat_val_id} - ID kategorii sklepu (tylko wewnątrz kategorii i przycisku na liście podkategorii)
{HOTENGINE-SC:shop_cat_producer_val_name} - Nazwa kategorii producenta (tylko wewnątrz kategorii i przycisku na liście podkategorii)
{HOTENGINE-SC:shop_cat_producer_val_id} - ID kategorii dostawcy (tylko wewnątrz kategorii i przycisku na liście podkategorii)
{HOTENGINE-SC:shop_cat_collection_val_name} - Nazwa kategorii kolekcji (tylko wewnątrz kategorii i przycisku na liście podkategorii)
{HOTENGINE-SC:shop_cat_collection_val_id} - ID kolekcja kategorii (tylko wewnątrz kategorii i przycisku na liście podkategorii)
{HOTENGINE-SC:blog_cat_val_name} - Nazwa kategorii katalogu artykułów (tylko wewnątrz kategorii i przycissku na liście podkategorii)
{HOTENGINE-SC:blog_cat_val_id} - ID kategorii katalogu artykułów (tylko w przycisku kategorii)

{HOTENGINE-SC:blog_cat_page_id} - ID artykułu (tylko w katalogu artykułów)
{HOTENGINE-SC:blog_cat_page_title} - Tytuł artykułu (tylko w katalogu artykułów)
{HOTENGINE-SC:blog_cat_val_id} - ID kategorii katalogu artykułów (tylko wewnątrz kategorii i przycisku na liście podkategorii)




Możesz na przykład użyć tego kodu do wyświetlenia nazwy autoryzowanego użytkownika na stronie internetowej:
Code: html
<span class="user_login_name">Witamy {HOTENGINE-SC:user_login}</span>


Możesz też użyć tego kodu do wygenerowania metadanych dla mediów społecznościowych (takich jak znaczniki Open Graph):
Code: html
<meta property="og:image" content="{HOTENGINE-SC:shop_cat_page_image}"/>
<meta property="og:title" content="{HOTENGINE-SC:shop_cat_page_title}>



Przykład utworzenia linku do profilu autoryzowanego użytkownika:
Code: html
https://hotlist.biz/{HOTENGINE-SC:lang}/users.php?p=user_profile&action=userprofile&userid={HOTENGINE-SC:user_id}



Języki
Wielojęzyczność i wyszukiwarki Jeśli masz wiele wersji strony w różnych językach lub regionach, pomóż Google je zidentyfikować. W wynikach wyszukiwania zostaną wyświetlone wersje Twoich stron, które najlepiej pasują do języka i regionu użytkownika.
Jednym ze sposobów implementacji witryn wielojęzycznych jest użycie tasgu z atrybutem hreflang. Przykład takiego tagu:
<link rel="alternate" hreflang="lang_code" href="url_of_page" />

Na różnych stronach serwisu (kategorie, strony, artykuły, karty produktów i inne) zaimplementowana jest funkcja wielojęzyczności. Jeśli np. posiadasz dodatkową kartę produktu w języku angielskim, białoruskim, rosyjskim i ukraińskim, to wystarczy, że we wszystkich kartach produktów w komórce «Produkt w innych językach» wpiszesz tę samą wartość, np. «1». W takim przypadku podczas otwierania strony w jednym z języków zostaną dodane tagi hreflang z linkami do stron w innych językach. Zaleca się użycie identyfikatora pierwszej karty produktu, aby uniknąć zduplikowanych wartości i kolejnych błędów. Na przykład, jeśli dodałeś produkt «Trampki» o numerze identyfikacyjnym «12345», a następnie dodałeś podobny produkt w języku angielskim, w pozycji «Produkt w innych językach» podaj «12345».

Główny wybrany język strony zostanie oznaczony dodatkowym znacznikiem hreflang="x-default".
Jak stworzyć stronę wielojęzyczną? Utwórz stronę w jednym języku, następnie tę samą stronę w innym języku i wypełnij pole «Strona w innych językach» tą samą wartością, na przykład identyfikatorem pierwszej utworzonej strony. W ten sam sposób wypełnij artykuły i karty produktów. Witryna automatycznie poinformuje wyszukiwarkę o stronie w innych językach, a także o stronie głównej (strona główna będzie odpowiadać głównemu językowi witryny, który możesz określić w sekcji «Ustawienia», «Strona początkowa» ).

Aby utworzyć nagłówki dla katalogu artykułów lub sklepu, zalecamy użycie prefiksu języka. Na przykład nagłówek «sukienka» można utworzyć w innych językach za pomocą przedrostka «dress_ua», «dress_de», «dress_fr»…
Możliwe jest użycie tej samej ścieżki do kategorii w innych językach, jednak podczas importu danych, np. produktu, mogą wystąpić błędy, ponieważ platforma nie będzie w stanie rozpoznać języka kategorii, do której jest dodana. Dlatego zalecamy stosowanie przedrostków w działach z nagłówkami, katalogu artykułów i sklepie internetowym. W przypadku stosowania przedrostków językowych opisanych powyżej zmienna «Kategoria w innych językach» zostanie ustawiona automatycznie.

Podczas tworzenia kart produktów «Kod produktu» musi być unikalny, dlatego w innym języku możesz użyć np. własnych końcówek «SKU/CODE_EN». W przypadku określenia «Produkt w innym języku» to przy zmianie podstawowych danych (koszt, dostępność, nowość, bestseller, dostęp) zostaną również zaktualizowane wszystkie tagi produktów wskazane jako alternatywna wersja produktu głównego.
«Filtr wyszukiwania» i «Bloki / menu» mogą być używane jednocześnie dla wszystkich języków i można osobno określić język, w którym ma być wyświetlany. Na przykład utwórz «Blocks/Menu», nagłówek witryny i umieść go na wszystkich stronach, określając język «polski (pl)». Taki blok będzie się wyświetlał wszędzie tylko wtedy, gdy otwarta będzie polska wersja serwisu. W ten sam sposób możesz utworzyć nagłówek dla innych języków. Jeśli trzeba umieścić jakiś kod, to nie trzeba tworzyć takich «Bloków / menu» dla każdego języka, można określić język «Wszystkie (wszystkie)», a blok będzie wyświetlany niezależnie od wybranego języka gość.
Prefiks języka na platformie Hotlist.biz jest wskazany na początku, na przykład, «/pl/page.htm».

Szybkie tłumaczenie katalogu produktów na stronie Wyeksportuj kategorie Sklepu. Zmień wartość języka «Poprzedni» w komórce języka na wartość języka «NOWY», a także przetłumacz tytuły i opisy (na przykład za pomocą usługi Tłumacz Google dla dokumentów, po zapisaniu pliku w formacie XLSX). W takim przypadku «Język» wszystkich kategorii podrzędnych będzie taki sam jak język kategorii głównej, do której zostały dodane. Dlatego dla kategorii głównej (której rodzicem jest «główny») należy zmienić wartość komórki «Język» na «NOWY JĘZYK». W celu wyeliminowania ewentualnych błędów podczas późniejszego importu towarów, zalecamy stosowanie unikatowych nazw lub dodanie nowej kategorii «_NOWY JĘZYK» do «nazwy». Na przykład «category_en», gdzie «en» to dodawany nowy język.

Przed importem musisz zapisać plik w formacie «XLS» lub «CSV». Po zaimportowaniu sprawdź, czy język nowych kategorii jest odpowiedni. Jeśli z jakiegoś powodu określono niewłaściwy język, zmień język głównej kategorii swojego katalogu, do którego zostały dodane, w sekcji «Sklep» - «Kategorie sklepu». We wszystkich podkategoriach podrzędnych język również zostanie zastąpiony. Jeśli nie ma wielu kategorii, możesz skopiować kategorie, zastępując w nich język i nazwę, w sekcji «Sklep» - «Kategorie sklepu».


Dodawanie produktów Wykonaj eksport towarów w sekcji «Sklep» - «Eksport towarów». Zaznacz pole wyboru «Prześlij wszystko». Usuń zaznaczenie pola wyboru «Nie eksportuj produktów, których nie ma w magazynie», a także zaznacz pole wyboru «Eksportuj kategorie bez transliteracji» - aby uprościć wybór kategorii produktów do tłumaczenia. Przetłumacz plik za pomocą Tłumacza Google dla dokumentów po zapisaniu pliku w formacie XLSX. Użyj formuł, aby dodać «_language» do kategorii lub zastąp ich nazwy nowo utworzonymi kategoriami. Przenieś wartości z kolumny «ID» do kolumny «Produkty w innych językach». Pamiętaj, aby usunąć wartości z kolumny «Identyfikator», aby nie nadpisać istniejących produktów. A także zastąp «Kod produktu», na przykład dodając «_język» w ten sam sposób za pomocą formuł, ponieważ produkty o tym samym «ID» lub «Kod produktu» zostaną nadpisane.
Dokonaj importu, w dziale "Sklep" - "Importuj towary". Możesz szybko uzupełnić korespondencję komórek, klikając «Pola z pliku, określ korespondencję» - «Wypełnij wybór pól korespondencji zgodnie z plikiem eksportu (pola« Wyładuj wszystko )».

Dodatkowo w celu tworzenia poprawnych znaczników dla wyszukiwarek, a także przekierowania między produktami w różnych językach, w produktach głównego języka należy eksportować i ponownie importować poprzez skopiowanie wartości komórki «ID» do pola «Produkty w inne języki». (W tym przypadku można zaimportować tylko jedną komórkę «Produkt w innych językach» i określić identyfikator lub «Kod produktu», według którego zostaną znalezione produkty do nadpisania). Zatem zarówno nowe, jak i poprzednie utworzone produkty będą miały identyczne znaczenie «Produkt w innych językach».
Wielojęzyczne menu wyboru języka Możesz umieścić krótki kod {HOTENGINE-SC:langmenu} i określić listę dostępnych języków w ustawieniach serwisu lub umieścić kod z przykładu poniżej.
Kod z poniższego przykładu generuje przycisk przełączania na alternatywne języki, a jeśli dla strony/artykułu/kartki produktu zostanie podana alternatywna wersja językowa, to zostanie ona aktywowana.


1) Wklej kod CSS do Edytora projektu, w zakładce CSS.
2) Dodaj JavaScript do bloku/menu, które jest wyświetlane na wszystkich stronach.
3) Wklej kod listy rozwijanej języka do bloku/menu, w którym chcesz go umieścić, na przykład w nagłówku witryny.
4) Usuń niepotrzebne języki z bloku (class hotengine-shop-select-language-val)



Kod menu wyboru języka:
Code: html
<span class="hotengine-shop-select-language-box">
  <span class="hotengine-shop-select-language" data-lang="pl"></span>
  <span class="hotengine-shop-select-language-values">
  <a class="hotengine-shop-select-language-val" data-lang="be"></a>
  <a class="hotengine-shop-select-language-val" data-lang="de"></a>
  <a class="hotengine-shop-select-language-val" data-lang="en"></a>
  <a class="hotengine-shop-select-language-val" data-lang="es"></a>
  <a class="hotengine-shop-select-language-val" data-lang="fr"></a>
  <a class="hotengine-shop-select-language-val" data-lang="kk"></a>
  <a class="hotengine-shop-select-language-val" data-lang="pl"></a>
  <a class="hotengine-shop-select-language-val" data-lang="ru"></a>
  <a class="hotengine-shop-select-language-val" data-lang="uk"></a>
  </span>
  </span>

CSS style:
Code: CSS
/*LANGUAGE BLOCK*/
.hotengine-shop-select-language-box { display:inline-block; width:71px; height:auto; overflow:hidden; border:1px solid transparent;  line-height:30px; position:relative; z-index:1000; }
.hotengine-shop-select-language { display:block; width:100%; text-align:center; cursor:pointer; }
.hotengine-shop-select-language-values { display:block; width:100%; vertical-align: top; position:absolute; background:rgba(255, 255, 255, 0.80); }
.hotengine-shop-select-language-box:hover{ overflow:visible;}
.hotengine-shop-select-language-values:hover .hotengine-shop-select-language-val{ position:relative; }
.hotengine-shop-select-language-val { width:auto; display:block; margin:0px; vertical-align:top; cursor:pointer; text-align:center; color:inherit; text-decoration:none; }
.hotengine-shop-select-language-val:hover {background:inherit;color:inherit;}


.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="ru"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="ru"]:after { content: "RU"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="en"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="en"]:after { content: "EN"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="uk"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="uk"]:after { content: "UA"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="de"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="de"]:after { content: "DE"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="es"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="es"]:after { content: "ES"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="fr"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="fr"]:after { content: "FR"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="kk"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="kk"]:after { content: "KK"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="be"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="be"]:after { content: "BE"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="ro"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="ro"]:after { content: "RO"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="tr"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="tr"]:after { content: "TR"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="it"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="it"]:after { content: "IT"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="sk"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="sk"]:after { content: "SK"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="da"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="da"]:after { content: "DA"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="pl"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="pl"]:after { content: "PL"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="zh"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="zh"]:after { content: "ZH"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="hi"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="hi"]:after { content: "HI"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="ar"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="ar"]:after { content: "AR"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="pt"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="pt"]:after { content: "PT"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[data-lang="bn"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[data-lang="bn"]:after { content: "BN"; }

/*LANGUAGE BLOCK*/

Plik jest automatycznie pobierany na stronie, jeśli wskazane są dostępne języki:
Code: JavaScript
<script type="text/javascript" src="/templates/scripts/hotengine-script-language.js"></script>

Zawartość pliku
Zmień elementy tekstowe na stronie
Wielojęzyczność i zastąpienie standardowych napisów Większość etykiet i elementów na stronie jest renderowana przy użyciu pseudoelementów CSS. Na przykład element z klasą .hotengine-form-feedback-yourname-title ma pseudoelement z tekstem.
Tekst jest rozdzielany za pomocą nadrzędnego atrybutu lang elementu html.

Przykład
Code: CSS

html:lang(ru) .hotengine-form-feedback-yourname-title:after{ content:"Ваше имя:"; }
html:lang(en) .hotengine-form-feedback-yourname-title:after{ content:"Your name:"; }
html:lang(uk) .hotengine-form-feedback-yourname-title:after{ content:"Ваше ім'я:"; }
html:lang(de) .hotengine-form-feedback-yourname-title:after{ content:"Ihr name:"; }
html:lang(es) .hotengine-form-feedback-yourname-title:after{ content:"Su nombre:"; }
html:lang(fr) .hotengine-form-feedback-yourname-title:after{ content:"Votre nom:"; }
html:lang(kk) .hotengine-form-feedback-yourname-title:after{ content:"Сіздің атыңыз:"; }
html:lang(be) .hotengine-form-feedback-yourname-title:after{ content:"Ваша імя:"; }
html:lang(ro) .hotengine-form-feedback-yourname-title:after{ content:"Numele dvs.:"; }
html:lang(tr) .hotengine-form-feedback-yourname-title:after{ content:"Adınız:"; }
html:lang(it) .hotengine-form-feedback-yourname-title:after{ content:"Il tuo nome:"; }
html:lang(sk) .hotengine-form-feedback-yourname-title:after{ content:"Vaše meno:"; }
html:lang(da) .hotengine-form-feedback-yourname-title:after{ content:"Dit navn:"; }
html:lang(pl) .hotengine-form-feedback-yourname-title:after{ content:"Twoje imię:"; }
html:lang(zh) .hotengine-form-feedback-yourname-title:after{ content:"你的名称:"; }
html:lang(hi) .hotengine-form-feedback-yourname-title:after{ content:"आपका नाम:"; }
html:lang(ar) .hotengine-form-feedback-yourname-title:after{ content:"اسمك:"; }
html:lang(pt) .hotengine-form-feedback-yourname-title:after{ content:"Seu nome:"; }
html:lang(bn) .hotengine-form-feedback-yourname-title:after{ content:"আপনার নাম:"; }


Jak przetłumaczyć całą witrynę?
Tworząc witrynę wielojęzyczną, określ język w tworzonych treściach (strona, menu, kategorie...)
I użyj ścieżek językowych na początku, /pl/ /en/ ...
Głównym językiem będzie język określony podczas rejestracji na stronie.
Podczas dodawania produktów język ustalany jest zgodnie z kategorią, w której jest dodawany.
Większość elementów na stronie możesz zastąpić stylami CSS i pseudoelementami.

Napisy o liczbie towarów
html:lang(pl).hotengine-shop-product-price_for-lang-1:after{ content:"za 1 sztukę";}
Zastąp liczbę lang-1, gdzie 1 oznacza wybraną jednostkę miary, a (pl) to język.

Lista wartości:
  • 1 - 1 sztuka;
  • 2 - 100 sztuk;
  • 3 - 1000 sztuk;
  • 4 - za 1 opakowanie;
  • 5 - 1 kg;
  • 6 - 1000 kg;
  • 7 - 1 m2;
  • 8 - za 1 metr;
  • 9 - za 1 km;
  • 10 - za zestaw;
  • 11 - za 1 godzinę;
  • 12 - za 1 dzień;
  • 13 - za 1 miesiąc;
  • 14 - za 1 rok;
  • 15 - za 100 jednostek;
  • 16 - za akr;
  • 17 - za hektar;
  • 18 - za działkę;
  • 19 - za obiekt;
  • 30 - za 1 ml;
  • 31 - za 1 litr;
  • 32 - za 1 km3;
  • 33 - za 1 m3;
  • 34 - za 1 dm3;
  • 35 - za 1 cm3;
  • 36 - za 1 mm3;
  • 37 - za 1 hl;
  • 38 - za 100 gramów;
  • 39 - 1 funt;
  • 40 - za 1 gram;
  • 41 - za 10 kg;
  • 42 - za 1 kwintal;
  • 43 - za 1 tonę;
  • 44 - za 1 ar;
  • 45 - za 1 parę;
  • 46 - za 1 tuzin;
  • 47 - za 1 galon;
  • 48 - za 1 beczkę;
  • 49 - za 1 minutę;
  • 50 - za 1 tydzień;
  • 51 - za 1 usługę;
  • 52 - za 1 podróż;
  • 53 - za 1 osobę;
  • 54 - za 1 maszynę;
  • 55 - za 1 metr bieżący;

Tłumaczenie przycisków za pomocą JavaScript Niektóre elementy są implementowane bez pseudoklas i elementów CSS. Na przykład taki element jak przycisk „Wyślij” w koszyku. Do przetłumaczenia takiego elementu można użyć Javascript.
Code: JavaScript
<script>
$(document).ready(function(){ $("#hotengine-shop-cart-form .hotengine-form-submit input[type='submit']").val('Wyślij zamówienie'); });
</script>

Czytaj więcej...
Na przykład w tym przypadku zmieniamy tekst przycisku wysyłania formularza. Kod należy umieścić na stronie, na której znajduje się przycisk. Aby to zrobić, musisz stworzyć funkcjonalną stronę - koszyk. I wklej kod pokazany w przykładzie do tekstu strony.
Wyszukaj filtr tłumaczenia Możesz użyć jednego filtra wyszukiwania dla wielu języków. Uprości to proces importu / eksportu towarów i wypełniania witryny.
Tłumaczenie odbywa się za pomocą narzędzia Tłumaczenie wartości charakterystycznych.

Możesz także tłumaczyć za pomocą JavaScript. Jednak przy takim tłumaczeniu XML charakterystyka zostanie przesłana do MarketPlac w jednym języku.
Weźmy na przykład tłumaczenie z angielskiego na polski.
W takim przypadku, aby przesłać XML do MarketPlac, użyj głównego języka filtra wyszukiwania.
Показать

Utwórz «Blok/Menu» i umieść go na stronach, na których włączony jest filtr wyszukiwania.
Na przykład w akapicie «Wprowadź znaki, po wykryciu których ma zostać wyświetlony Blok / Menu:» określ:
/pl/shop/
/pl/pers_shop/

Przykład tłumaczenia napisów, a także przycisk «Zastosuj»..
Code: JavaScript
<script>
  $(function(){
let $dict =  {
  'Color': 'Kolor',
  'Blue': 'Niebieski',
  'Green': 'Zielony',
  'Black': 'Czarny'
  }
 
$.each($dict, function(txtorig, txtnew){
  $("#shop_catalog_product_types_id_ajax .product_types_valuebox_checkbox span:contains('"+txtorig+"')").html(txtnew);
  $("#shop_catalog_product_types_id_ajax .shop_catalog_product_types_block_title:contains('"+txtorig+"')").html(txtnew);
  $(".shop_catalog_product_properties_block .shop_catalog_product_types_block_title:contains('"+txtorig+"')").html(txtnew);
  $(".shop_catalog_product_properties_block .product_types_valuebox_checkbox:contains('"+txtorig+"')").html(txtnew);
  });
setTimeout(() => {
  $(".hotengine-smart_search_submit_button").find("input").val("Apply");
  $("#searchinp_smart_search .button").val("Apply");
}, 100);
 
});
  </script>


Przykład tłumaczenia z przepisywaniem słów:
Code: JavaScript
<script>
  $(function(){
let $dict =  {
  'Color': 'Kolor',
  'Blue': 'Niebieski',
  'Green': 'Zielony',
  'Black': 'czarny'
  }
 
$.each($dict, function(txtorig, txtnew){
$("#shop_catalog_product_types_id_ajax").html(function() { return $(this).html().replace(txtorig, txtnew);  });
});

});
  </script>

Podobnie możesz dodać inne języki i nowe słowa, umieszczając kod w odpowiednich wersjach językowych serwisu.
Promocje (minutnik w sklepie) Tłumaczenie na przykładzie timera. Produkty zapewniają możliwość automatycznego tworzenia minutnika. Podczas dodawania produktu zaznacz pole wyboru «Produkt promocyjny», aw wyświetlonym bloku kliknij «Włącz timer». Ustaw licznik czasu na wygaśnięcie. Po upływie wskazanego okresu możesz ustawić akcję, np. usunąć stan magazynowy lub zmienić cenę...

Jak zmienić napisy w timerze?

Korzystając ze stylów CSS, możesz zastąpić słowa w liczniku czasu. Aby to zrobić np. w produkcie wstaw kod css html:
Code: CSS
<style type="text/css">
<!--

/*napis pozostawiono do końca*/

html:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-day:after{
   content:"дней";
}
html:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-hourse:after{
   content:"часов";
}
html:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-minute:after{
   content:"минут";
}
html:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-seconds:after{
   content:"секунд";
}
html:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-left:after{
   content:"осталось до конца акции!";
}
html:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-done:after{
   content:"Акция завершена!";
}


html:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-day:after{
   content:"days";
}
html:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-hourse:after{
   content:"hours";
}
html:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-minute:after{
   content:"minute";
}
html:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-seconds:after{
   content:"seconds";
}
html:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-left:after{
   content:"left before the end of the campaign!";
}
html:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-done:after{
   content:"Сampaign complete!";
}


html:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-day:after{
    content:"dni";
}
html:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-hourse:after{
    content:"godziny";
}
html:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-minute:after{
    content:"minuty";
}
html:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-seconds:after{
    content:"sekundy";
}
html:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-left:after{
    content:"pozostało do końca promocji!";
}
html:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-done:after{
    content:"Ackia ukończona!";
}






html:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-days:after{
   content:"дней";
}
html:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-hours:after{
   content:"часов";
}
html:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-minutes:after{
   content:"минут";
}
html:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-seconds:after{
   content:"секунд";
}




html:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-days:after{
   content:"days";
}
html:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-hours:after{
   content:"hours";
}
html:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-minutes:after{
   content:"minute";
}
html:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-seconds:after{
   content:"seconds";
}



html:lang(uk) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-days:after{
   content:"днів";
}
html:lang(uk) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-hours:after{
   content:"годин";
}
html:lang(uk) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-minutes:after{
   content:"хвилин";
}
html:lang(uk) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-seconds:after{
   content:"секунд";
}


html:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-days:after{
   content:"dni";
}
html:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-hours:after{
   content:"godziny";
}
html:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-minutes:after{
   content:"minuty";
}
html:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-seconds:after{
   content:"sekundy";
}


-->
</style>


lang(en) lub lang(pl) - jest to język, dla którego będzie odpowiedni napis, a następnie określa się sam blok, dla którego zostanie zmieniony napis.


Jak korzystać z Timera na innych stronach?
Wklej poniższy kod, aby użyć naszego licznika odliczania:
Code: JavaScript
<div id="hotengine-shop-product-description-akciya-countdown-block"><div id="hotengine-shop-product-description-akciya-countdown"></div><div class="hotengine-shop-product-akciya-countdown-numbers"><span class="hotengine-shop-product-akciya-countdown-numbers-days"><i></i></span><span class="hotengine-shop-product-akciya-countdown-numbers-hours"><i></i></span><span class="hotengine-shop-product-akciya-countdown-numbers-minutes"><i></i></span><span class="hotengine-shop-product-akciya-countdown-numbers-seconds"><i></i></span></div><span class="hotengine-shop-product-description-akciya-countdown-l-left"></span></div>  
											  
<script type="text/javascript" src="/modules/jquery.cookie/jquery.cookie.min.js"></script>
<link rel="stylesheet" type="text/css" href="/templates/javascript_timer_countdown/hotengine_timer_countdown.css" />
<script src="/templates/javascript_timer_countdown/hotengine_timer_countdown.js"></script>
<script type="text/javascript">
<!--
$(function(){


    let timerperiod = 5*12*60*60*1000; // okres timera, w przykładzie 5 dni 12 godzin ( 5 * 12 ...) (przykładowo tutaj data ciągle się przesuwa, czyli data bieżąca + XX dni.)

	// cookies ostatnia wizyta (odejmij czas ostatniej wizyty)
	if($.cookie("cookie_lastvisit_countdown_timer") && $.cookie("cookie_lastvisit_countdown_timer")!="null"){ 
	  let cookie_lastvisit_minus = (new Date()).getTime() - $.cookie("cookie_lastvisit_countdown_timer");
	} else {
	  let cookie_lastvisit_minus = 0; 
	}
	 let checkdate = timerperiod-cookie_lastvisit_minus; // aby sprawdzić datę ostatniej wizyty i zakończenie promocji
	 if(checkdate>0){ counterdisable = false; } else { let cookie_lastvisit_minus = 0; counterdisable = true; };

	 let cookie_lastvisit_countdown_timerv = new Date().getTime() - cookie_lastvisit_minus;
	 $.cookie("cookie_lastvisit_countdown_timer", cookie_lastvisit_countdown_timerv, {expires:  null, path: "/"}); 
	// cookies ostatnia wizyta (odejmij czas ostatniej wizyty)

	ts = (new Date()).getTime() + timerperiod - cookie_lastvisit_minus; //ustaw datę ważności	
	hotengine_inittimer("hotengine-shop-product-description-akciya-countdown-block", new Date(ts));
	
});


//-->
</script>



Aby zmienić etykiety licznika, otwórz plik stylu /templates/javascript_timer_countdown/hotengine_timer_countdown.css, skopiuj jego kod i wklej go na stronie i zmień napisy.
Zmiana bloków witryny i edytora projektów
Główne bloki witryny i sposoby zmiany projektu

Główne bloki witryny

ID i Class główne bloki witryny.





#hotengine-wrapper

#hotengine-header

GRID *
#hotengine-content-container
.hotengine-wrap-container-side-left .menu_position_top .hotengine-wrap-container-side-right
#hotengine-content
.hotengine-wrap-container-side-center
«typ strony»


.menu_position_buttom


#hotengine-footer


* - Główny wewnętrzny blok z treścią jest realizowany za pomocą CSS Grid:
CSS Grid
Code: CSS
/*CONTENT GRID*/

#hotengine-content-container { display: grid;
  grid-template-areas:"container-left container-center container-right";
  grid-template-columns:0% 1fr 0%;
  margin:0 auto; width:100%;
}

#hotengine-content-container[data-hasside="both"]{
  grid-template-areas:"container-left container-center container-right";
  grid-template-columns: auto 1fr auto;
}
#hotengine-content-container[data-hasside="left"]{
  grid-template-areas:"container-left container-center";
  grid-template-columns: auto 1fr;
}
#hotengine-content-container[data-hasside="right"]{
  grid-template-areas:"container-center container-right";
  grid-template-columns: 1fr auto;
}

.hotengine-wrap-container-side-center { grid-area: container-center; vertical-align:top; margin:0 auto; width:100%;}
.hotengine-wrap-container-side-left   { grid-area: container-left; vertical-align:top; margin:0 auto; width:auto; max-width:270px;  }
.hotengine-wrap-container-side-right  { grid-area: container-right; vertical-align:top; margin:0 auto; width:auto; max-width:270px; }

.menu_position_top { display:block;    width:100%;  }
.menu_position_buttom { display:block; width:100%; }

@media (max-width:767px){
#hotengine-content-container[data-hasside="both"]{
  grid-template-areas:"container-center container-left container-right";
  grid-template-columns: 1fr auto auto;
}
#hotengine-content-container[data-hasside="left"]{
  grid-template-areas:"container-center container-left";
  grid-template-columns: 1fr auto ;
}
#hotengine-content-container[data-hasside="right"]{
  grid-template-areas:"container-center container-right";
  grid-template-columns: 1fr auto ;
}
}
/*CONTENT GRID*/

data-hasside - dodatkowy atrybut elementu #hotengine-content-container, który wskazuje na obecność lewego i prawego bloku.
  • [data-hasside="left"] - lewy blok/menu jest obecny
  • [data-hasside="right"] - obecny jest prawy blok/menu
  • [data-hasside="both"] - jest lewy i prawy blok/menu
Jak zmienić wygląd strony internetowej Możesz zmienić wygląd strony w Edytor projektu. Dzięki niemu możesz ustawić główne kolory elementów, rozmiary i położenie niektórych elementów, zmienić nagłówek strony i nie tylko.
Za pomocą wskaźnika myszy możesz zmienić wysokość nagłówka strony, rozmiar logo, położenie menu głównego oraz slogan.


Jak stworzyć własny projekt nagłówka strony internetowej?


Utwórz Blok/Menu znajdujący się w Nagłówku (Nagłówku strony) i umieść w nim niezbędne elementy. Na przykład Div z numerem telefonu i Div z nazwą firmy (nie zapomnij nadać im odpowiedniej klasy lub identyfikatora, aby można było się do nich później odwołać).
Otwórz edytor projektu, ustaw położenie i właściwości projektowe tworzonych elementów w stylach CSS.
W ten sam sposób możesz stworzyć dowolne elementy graficzne na stronie i umieścić je w potrzebnych miejscach.

Wewnątrz tych bloków będzie utworzona treść lub menu.
Każdy «typ strony» wyróżnione odpowiednim blokiem, z nadaniem określonego identyfikatora.
Na przykład:
  • Strony - #hotengine-content-page
  • Aktualności - #hotengine-content-news
  • Katalog artykułów - #hotengine-content-blog
  • Katalog produktów - #hotengine-content-shop
  • Katalog produktów (producenci) - #hotengine-content-shop
  • Katalog produktów (kolekcje) - #hotengine-content-shop

Ten blok jest tworzony wewnątrz elementu #hotengine-content

Ponadto na stronach kategorii, na których znajduje się podrzędna lista stron, dodawana jest klasa:
  • Katalog produktów — .hotengine-content-shop-category
  • Katalog produktów (kolekcja) - .hotengine-content-shop-collection
  • Katalog produktów (producenci) - .hotengine-content-shop-producer
  • Katalog artykułów - .hotengine-content-blog-category
  • Katalog wiadomości — .hotengine-content-news-category

Dodatkowo dla bloków/menu listy aktualności lub artykułów tworzony jest dodatkowy blok:
Menu ostatnich artykułów - #hotengine-content-menu-lastblogpost
Menu najnowszych wiadomości #hotengine-content-menu-lastnewspost
Jak zresetować projekt? Aby przywrócić wartość domyślną, otwórz Edytor projektu i usuń bieżącą wartość dla żądanego elementu lub kliknij przycisk «Przywróć wartość domyślną».
CSS style Możesz użyć CSS do stylizowania dowolnego elementu w swojej witrynie. Aby wybrać element, kliknij go prawym przyciskiem myszy i «Sprawdź element». Skopiuj ID lub klasę obiektu i wklej go na karcie «Style CSS» w edytorze projektu.

Jeśli używasz dołączonego szablonu, jego style mają pierwszeństwo przed niektórymi z powyższych wartości. Przed użyciem szablonu wtyczki zalecamy zresetowanie projektu do wartości domyślnej.

Css style domyślne: CSS plik Bloki strony głównej

Szablonowanie W tej chwili używamy specjalnych znaczników dla elementów, oznaczonych klasami "hotengine-", uporządkowaną strukturę do wyświetlania elementów, a także ukryte dane. Prawie wszystkie napisy na stronie są realizowane za pomocą CSS after elementy.
Jeśli przesunięcia i pozycjonowania elementów nie można wykonać za pomocą CSS, możesz użyć Javascript i przesuwać obiekty po stronie.
Zmiana położenia niektórych elementów za pomocą Javascript.
Code: html
<script type="text/javascript">
  $(function(){
  let newproducer = $(".hotengine-shop-product-desc-block .hotengine-shop-product-producer").html();
if(typeof newproducer !== typeof undefined && newproducer !== false && newproducer !='undefined' && newproducer !=''){
  $(".hotengine-shop-product-desc-block .hotengine-shop-product-producer").hide();
  $(".hotengine-shop-product-sku-box").after('<span class="hotengine-shop-product-producer">'+newproducer+'</span>');
 }
});
</script>


W tym przykładzie sprawdzamy, czy producent jest określony. Jeśli producent jest określony, ukryj go i umieść za polem «Kod produktu».

«Zawijanie» elementów za pomocą Javascript.
Code: html
<script type="text/javascript">
  $(function(){
  $(".element").wrap("<div class='new'></div>");

});
</script>

W rezultacie obiekt z elementem klasy zostanie «owinięty» w element div z klasą new (<div class="new"><span class="element"></span></div>)

Szablony Oprócz podstawowych stylów w edytorze projektów możesz zainstalować gotowe szablony.
Katalog szablonów - https://templates.hotlist.biz/
Redaktor Platforma udostępnia edytor HTML TynyMce, za pomocą którego można projektować strony, karty produktów, saty i bloki/menu. Edytor realizuje wstawianie obrazków oraz gotowych «Kodów»; do wyświetlania nagłówków sklepów, listy produktów, listy artykułów, na dowolnej stronie. Kody osadzone pozwalają na wstawienie np. na stronę główną listy określonych produktów o określonych parametrach (osobna instrukcja generatora listy produktów) lub listę kategorii, w tym w Bloki/Menu (Widget z kategoriami sklepu).
Statystyka
Google Analytics:
Możesz włączyć śledzenie odwiedzających Google Analytics na stronie Ustawienia, w zakładce Statystyki/Google Analytics.

Tagi śledzenia będą wysyłać standardowe zdarzenia e-commerce dla Google Analytics 4 lub Google Tag Manager. Dodatkowo na stronie realizacji zamówienia lub przesłania formularza możesz dodatkowo ustawić własne kody konwersji.
Opisy zdarzeń:
Google Analytics 4: https://developers.google.com/analytics/devguides/collection/ga4/events
Google Tag Manager: https://developers.google.com/tag-platform/gtagjs
Ponadto będziesz mógł zaimplementować transfer własnych tagów za pomocą JavaScript, Shortcodes i Mikroznakowanie hotengine-markers, które umożliwiają zastępowanie danych dynamicznych.

  • add_to_cart - dodanie produktu do koszyka
  • add_to_wishlist - dodanie produktu do ulubionych
  • begin_checkout - początek kasy
  • purchase – udane zamówienie
  • remove_from_cart – usunięcie towaru z koszyka
  • search – Wyszukiwanie w witrynie
  • select_item – wybór rodzaju produktu
  • generate_lead - wyślij dane przez formularz
  • sign_up - rejestracja
  • view_cart - wyświetl koszyk
  • view_item - wyświetl kartę przedmiotu
Facebook Pixel:
 ID śledzenia Facebook Pixel można określić w ogólnych ustawieniach serwisu, w zakładce «Statystyki». Piksel będzie przesyłał dane o wizytach na stronie (PageView), zdarzeniach dodania produktu do koszyka (AddToCart), wyświetlenia produktu (ViewContent), rozpoczęcia (InitiateCheckout) i zakończenia kasy (Purchase). Koszt towarów jest tworzony w USD według kursu Twojej witryny.

Dodatkowo możesz utworzyć blok menu, aby samodzielnie wygenerować piksel z danymi produktu.
Instrukcja

Uwaga! Tworząc kod piksela nie za pomocą ustawień witryny, musisz najpierw dodać główny kod piksela. Aby to zrobić, utwórz blok/menu z głównym kodem piksela i umieść go w znacznikach usług, które są wyświetlane na wszystkich stronach. W takim przypadku w ogólnych ustawieniach witryny nie trzeba określać kodu piksela. Jeśli kod piksela jest określony w ustawieniach głównych, oznacza to, że kod sprzedawcy produktów Facebooka jest już zainstalowany w witrynie.

Blok menu do generowania piksela z danymi produktu


Utwórz blok/menu z następującym kodem:
Code: JavaScript
<script>
fbq('track', 'ViewContent', {
content_name: '{HOTENGINE-SC:shop_cat_page_title}',
content_ids: ['{HOTENGINE-SC:shop_cat_page_id}'],
content_type: 'product',
value: {HOTENGINE-SC:shop_cat_page_price},
currency: '{HOTENGINE-SC:shop_cat_page_currency_iso}'
});
</script>


Pokaż blok/menu na stronach: tylko na stronach sklepu
Wprowadź znaki, po wykryciu których ma zostać wyświetlony Blok/Menu: htm
Wprowadź znaki, które, jeśli zostaną znalezione, nie wyświetlają Bloku/Menu:koszyk



Jeżeli chcesz dodać zdarzenie po złożeniu wniosku przez Formularz, po tekście o pomyślnym przesłaniu danych dodaj poniższy kod:
Code: html
<script>
fbq('track', 'Purchase');
</script>

Ogony referencyjne:
    Witryna jest dostępna do korzystania z ogonów poleceń. Podczas zamawiania towaru lub wysyłania listu za pośrednictwem informacji zwrotnej do listu zostanie dodana informacja o źródle przejścia na Twoją stronę. Również podczas używania końcówek UTM (Łącznik URL) dane te zostaną dodane do pisma.
    Oprócz standardowych danych linkera dostępny jest podział źródeł na grupy, które wykorzystywane są w statystykach sprzedaży do wyodrębnienia źródeł i wygodniejszego obliczania konwersji. Wartość grupy można ustawić za pomocą zmiennej GET «hotengine_referral_group». Jeśli nie określono żadnej wartości, a podano utm_source, zostanie ona użyta do określenia grupy hotengine_referral_group.
    Dane źródła odesłania mogą być ukryte w ustawieniach przeglądarki odwiedzającego lub przy użyciu bezpiecznego protokołu strony źródłowej. Dodatkowo możesz dodatkowo grupować zamówienia za pomocą zmiennej "shop_cart_statistic_group" w linku, lub ręcznie po złożeniu zamówienia.

    Możesz włączyć ogony skierowań na stronie Ustawienia, w zakładce Statystyki.

    Przykład linku ze znacznikami UTM:
    https://hotlist.biz/?utm_source=google&utm_medium=cpc&utm_term=slova&utm_content=soderjimoe&utm_campaign=nazvnie

    Przykład linku z automatycznym znacznikiem Yandex Direct i znacznikiem UTM:
    https://hotlist.biz/?utm_source=yandex_{source_type}&utm_medium=cpc&utm_term={keyword}&utm_campaign=id:{campaign_id}&utm_content=ad:{ad_id}|gbid:{gbid}|phrase:{phrase_id}|param1:{param1}|position_type:{position_type}|position:{position}|source:{source}|source_type:{source_type}|param2:{param2}
    Pełne instrukcje

    Przykład linku z automatycznym tagowaniem Google Adwords i znacznikami UTM:
    https://hotlist.biz/?utm_source=google_adwords_{network}&utm_medium=cpc&utm_term={keyword}&utm_campaign={campaignid}&utm_content=creative:{creative}|from:{ifsearch:search}{ifcontent:content}|matchtype:{matchtype}|adgroupid:{adgroupid}|feeditemid:{feeditemid}|targetid:{targetid}|device:{device}|adposition:{adposition}|placement:{placement}|network:{network}|param1:{param1}|param2:{param2}
    Pełne instrukcje

Integracja z «1C», «ERP», systemami CRM i CommerceAPI
Automatyczny eksport przy składaniu zamówienia / Wysyłanie danych POST o zamówieniu w formacie JSONMożesz włączyć automatyczny eksport podczas składania zamówienia w ustawieniach serwisu, w zakładce «Sklep», określając ścieżkę przesyłania danych.
Na podany adres zostanie wysłane zapytanie POST, zawierające wszystkie dane dotyczące zamówienia, w tym dane kontaktowe klienta oraz listę towarów. Dane kontaktowe i informacje o zamówieniu zostaną przesłane w formacie JSON, żądanie POST.
Na przykład w 1s możesz zaimplementować przyjmowanie zamówień przez «HTTP usługa»->«SiteExchange» -> «POSTData»

Po złożeniu zamówienia na powyższy adres zostanie wysłane żądanie POST z następującymi danymi:

 Code: JSON
{
  "ORDER": {
    "buyer_name": "NAME",
    "buyer_soname": "SONAME",
    "buyer_phone": "PHONENUMBER123",
    "buyer_email": "email@email.com",
    "buyer_address": "ADDRESS",
    "delivery_storehouse_title": "Extend PICKUP POINT (Selected)",
    "buyer_address_eform0": "Extend ADDRESS (Selected)",
    "buyer_address_eform1": "Extend ADDRESS (Region)",
    "buyer_address_eform2": "Extend ADDRESS (City)",
    "buyer_address_eform3": "Extend ADDRESS (Street)",
    "buyer_address_eform4": "Extend ADDRESS (Home number)",
    "buyer_address_eform5": "FLAT",
    "buyer_address_eform6": "Extend ADDRESS (Branch number)",
    "buyer_sendedtext": "ADD TEXT",
    "post": "1596538754",
    "lang": "en",
    "form_delivery": "",
    "form_delivery_country_code": "",
    "order_id": "XXXXX",
    "customer_id": "XXXX",
    "order_discount": "",
    "order_hash": "55d4ed2ed42b2c116d9927c2b2ce7fef",
    "time": "2025-06-28T12:31:49+00:00",
    "delivery": "",
    "delivery_id": 0,
    "abtesting": 0,
    "referral_group": "",
    "group": "",
    "referral_url": "https://hotlist.biz/....",
    "referral_utm": "",
    "site_id": "10954",
    "site_url": "hotlist.biz",
    "transaction_id": "XXXXX",
    "total": 2264,
    "currency": "UAH",
    "shipping": "0",
    "items": [
      {
        "id": "284430",
        "name": "Adidas Originals Streetball Trainers FX9701 (42)",
        "sku": "200976_42",
        "sku_parent": "200976",
        "variant": "42",
        "category": "sport_shoes",
        "quantity": "1",
        "price": "686",
        "currency": "UAH",
        "variations_id": "409151"
      },
      {
        "id": "284436",
        "name": "Shoe bag with pocket Kite Education College",
        "sku": "200982",
        "sku_parent": "200982",
        "variant": "",
        "category": "bags_for_shoes",
        "quantity": "1",
        "price": "736",
        "currency": "UAH",
        "variations_id": 0
      },
      {
        "id": "284438",
        "name": "ASICS Gel-Venture 8 Gs Trainers (43)",
        "sku": "200984_43",
        "sku_parent": "200984",
        "variant": "43",
        "category": "sport_shoes",
        "quantity": "1",
        "price": "842",
        "currency": "UAH",
        "variations_id": "409154"
      }
    ]
  }
}


Jeśli po wysłaniu żądania Twój serwis zwróci dane JSON zawierające "Number" lub "crm_order_id", to do zamówienia zostanie dodany zewnętrzny numer zamówienia.
Automatyczny eksport statystyk sprzedaży / Wysyłanie danych zamówienia POST w formacie JSONMożesz włączyć automatyczny eksport statystyk sprzedaży w ustawieniach serwisu, w zakładce «Sklep», określenie ścieżki do wysłania danych.
Na podany adres zostanie wysłane żądanie POST ze wszystkimi danymi zamówienia, które uległy zmianie w Statystyce sprzedaży. Informacje zostaną przesłane żądaniem POST w formacie JSON.
Na przykład w 1s możesz zaimplementować przyjmowanie zamówień przez «HTTP usługa»->«SiteExchange» -> «POSTData»
Ponadto możesz włączyć zewnętrzny dostęp do swoich statystyk, określając «Klucz dostępu do statystyk sprzedaży».

Po zmianie statusu zamówienia na powyższy adres zostanie wysłane zapytanie POST w formacie JSON z następującymi danymi:

 Code: JSON
{
  "ORDER": {
    "crm_order_id": "123",
    "total": "2264",
    "currency": "UAH",
    "discount": "",
    "discount_before": "",
    "total_before": "2264",
    "currency_before": "UAH",
    "shop_cart_statistic_selldone_datestump_unsted": "0",
    "status": "0",
    "status_pay": "0",
    "allow_online_pay": "0",
    "status_for_customer": "0",
    "delivery_status": "0",
    "products_preview": "",
    "admin_note": "",
    "delivery_selected_id_before": "3482",
    "delivery_selected_id": "3482",
    "delivery_track_id": "",
    "delivery_track_id_link": "",
    "buyer_name": "NAME SONAME",
    "buyer_phone": "PHONENUMBER123",
    "buyer_address": "ADDRESS",
    "buyer_address_eform0": "Extend ADDRESS (Selected)",
    "buyer_address_eform1": "Extend ADDRESS (Region)",
    "buyer_address_eform2": "Extend ADDRESS (City)",
    "buyer_address_eform3": "Extend ADDRESS (Street)",
    "buyer_address_eform4": "Extend ADDRESS (Home number)",
    "buyer_address_eform5": "Extend ADDRESS (Flat)",
    "buyer_address_eform6": "Extend ADDRESS (Branch number)",
    "buyer_email": "email@email.com",
    "payment_method": "PaymentMethod (Selected)",
    "group": "",
    "referral_group": "",
    "referral_url": "http://hotlist.biz",
    "referral_utm": "",
    "site_manager_id_operator": "1",
    "buyer_id": "16532",
    "manager_id_operator": "0",
    "order_products": "284430|284436|284438",
    "order_products_sku": "200976_42|200982|200984_43",
    "order_products_num": "1|1|1",
    "order_products_variations_id": "409151|407678|409154",
    "order_products_prices": "686|736|842",
    "order_products_currency": "UAH|UAH|UAH",
    "order_products_titles": "Adidas Originals Streetball Trainers FX9701|Shoe bag with pocket Kite Education College|ASICS Gel-Venture 8 Gs Trainers",
    "order_products_variations_titles": "42||43",
    "order_products_prices_without_discount": "||",
    "post": "1596578917",

    "Save": "Save",
    "order_id": 63738,
    "order_discount": "",
    "time": "2025-06-28T12:31:49+00:00",
    "delivery": null,
    "delivery_id": "3482",
    "referral_group": "",
    "group": "",
    "referral_url": "http://hotlist.biz/ru/pers_shop/sport_shoes/284438.htm",
    "referral_utm": "",
    "site_url": "hotlist.biz",
    "transaction_id": 63738,
    "crm_oder_id": "123",
    "total": "2264",
    "currency": "UAH",
    "items": [
      {
        "id": "284430",
        "name": "Adidas Originals Streetball Trainers FX9701",
        "sku": "200976_42",
        "variant": "42",
        "quantity": "1",
        "price": "686",
        "currency": "UAH",
        "variations_id": "409151",
        "price_without_discount": ""
      },
      {
        "id": "284436",
        "name": "Shoe bag with pocket Kite Education College",
        "sku": "200982",
        "variant": "",
        "quantity": "1",
        "price": "736",
        "currency": "UAH",
        "variations_id": "407678",
        "price_without_discount": ""
      },
      {
        "id": "284438",
        "name": "ASICS Gel-Venture 8 Gs Trainers",
        "sku": "200984_43",
        "variant": "43",
        "quantity": "1",
        "price": "842",
        "currency": "UAH",
        "variations_id": "409154",
        "price_without_discount": ""
      }
    ]
  }
}

'status' - '3', status transakcji //0 - Niezrealizowane, 1 - Zamówienie w trakcie realizacji, 3 - Zrealizowane, 2 - Anulowane, 5 - Anulowane (brak w magazynie), 6 - Anulowane (Anulowane), usuń - Usuń zamówienie
'status_pay' - '0', Status zamówienia //0-Nie określono, 1 - Zapłacono online, niezweryfikowano, 4 - Zapłacono online i zweryfikowano, 2 - Zapłacono, 3 - Przedpłacono, 5 - Oczekuje na płatność
'status_for_customer' - '1', Status dla kupującego //0 - Nie przetworzone, 1 - Przetwarzane, 3 - Wysłane / Przetworzone, 2 - Anulowane
'admin_note' - 'Uwaga dla administratora',
'delivery_status' - '0', '0 - Nie określono, 1 - Dostarczono, 2 - Nie dostarczono, 3 - Oczekuje na przesyłkę, 4 - Przekazano kurierowi, 5 - W drodze, 6 - Wysłano na pocztę, 7 - Wysłano na adres odbiorcy, 8 - Dostarczono pocztą Office, 9 - Dostarczone na adres odbiorcy'
'crm_order_id' - 'XXX', 'Zewnętrzny kod zamówienia (do użytku w zewnętrznych systemach CRM)'

Więcej o polach w statystykach sprzedaży możesz dowiedzieć się podczas edycji zamówienia.

Podczas zmiany produktów w zamówieniu wysyłane jest żądanie JSON z listą item, a także numer zamówienia:
 Code: JSON
{
  "ORDER": {
    "crm_order_id": "123",
    "order_id": 63738,
    "total": "2264",
    "currency": "UAH",
    "discount": "",
    "discount_before": "",
    "total_before": "2264",
    "currency_before": "UAH",
    "shop_cart_statistic_selldone_datestump_unsted": "0",
    "status": "0",
    "status_pay": "0",
    "allow_online_pay": "0",
    "status_for_customer": "0",
    "delivery_status": "0",
    "products_preview": "",
    "admin_note": "",
    "delivery_selected_id_before": "3482",
    "delivery_selected_id": "3482",
    "delivery_track_id": "",
    "delivery_track_id_link": "",
    "buyer_name": "NAME SONAME",
    "buyer_phone": "PHONENUMBER123",
    "buyer_address": "ADDRESS",
    "buyer_address_eform0": "Extend ADDRESS (Selected)",
    "buyer_address_eform1": "Extend ADDRESS (Region)",
    "buyer_address_eform2": "Extend ADDRESS (City)",
    "buyer_address_eform3": "Extend ADDRESS (Street)",
    "buyer_address_eform4": "Extend ADDRESS (Home number)",
    "buyer_address_eform5": "Extend ADDRESS (Flat)",
    "buyer_address_eform6": "Extend ADDRESS (Branch number)",
    "buyer_email": "email@email.com",
    "payment_method": "PaymentMethod (Selected)",
    "group": "",
    "referral_group": "",
    "referral_url": "http://hotlist.biz",
    "referral_utm": "",
    "site_manager_id_operator": "1",
    "buyer_id": "16532",
    "manager_id_operator": "0",
    "order_products": "284430|284436|284438",
    "order_products_sku": "200976_42|200982|200984_43",
    "order_products_num": "1|1|1",
    "order_products_variations_id": "409151|407678|409154",
    "order_products_prices": "686|736|842",
    "order_products_currency": "UAH|UAH|UAH",
    "order_products_titles": "Adidas Originals Streetball Trainers FX9701|Shoe bag with pocket Kite Education College|ASICS Gel-Venture 8 Gs Trainers",
    "order_products_variations_titles": "42||43",
    "order_products_prices_without_discount": "||",
    "post": "1596578917",

    "Save": "Save",
    
    "order_discount": "",
    "time": "2025-06-28T12:31:49+00:00",
    "delivery": null,
    "delivery_id": "3482",
    "referral_group": "",
    "group": "",
    "referral_url": "http://hotlist.biz/ru/pers_shop/sport_shoes/284438.htm",
    "referral_utm": "",
    "site_url": "hotlist.biz",
    "transaction_id": 63738,
    

    "items": [
      {
        "id": "284430",
        "name": "Adidas Originals Streetball Trainers FX9701",
        "sku": "200976_42",
        "variant": "42",
        "quantity": "1",
        "price": "686",
        "currency": "UAH",
        "variations_id": "409151",
        "price_without_discount": ""
      },
      {
        "id": "284436",
        "name": "Shoe bag with pocket Kite Education College",
        "sku": "200982",
        "variant": "",
        "quantity": "1",
        "price": "736",
        "currency": "UAH",
        "variations_id": "407678",
        "price_without_discount": ""
      },
      {
        "id": "284438",
        "name": "ASICS Gel-Venture 8 Gs Trainers",
        "sku": "200984_43",
        "variant": "43",
        "quantity": "1",
        "price": "842",
        "currency": "UAH",
        "variations_id": "409154",
        "price_without_discount": ""
      }
    ]
  }
}
Dostęp do statystyk sprzedaży / JSON
Określ klucz dostępu do statystyk sprzedaży w ustawieniach, w zakładce «Sklep»;. Jeśli potrzebujesz uzyskać dostęp do statystyk sprzedaży przez zewnętrzną aplikację, możesz wykonać żądanie (POST/GET lub AJAX) do «/ajax.php?statistic_sell»

W takim przypadku musisz podać klucz w żądaniu z szyfrowaniem MD5. Na przykład, jeśli masz klucz «123», wtedy w zapytaniu będzie «202cb962ac59075b964b07152d234b70».

W takim przypadku prośba będzie wyglądać następująco: «/ajax.php?statistic_sell&key=202cb962ac59075b964b07152d234b70»
W żądaniu możesz określić dane do sortowania lub wyszukiwania (parametry GET / POST), które możesz pobrać ze swojej strony statystyk sprzedaży w centrum administracyjnym (/page.php?p=statistic_sell&mystat). Sortowanie i selekcja parametrów odbywa się za pomocą żądania GET/POST, na przykład, «&sort_dateperiod=1week» oznacza, że ​​będą wyświetlane tygodniowe statystyki sprzedaży.

Dane są wyświetlane w formacie JSON.

Pamiętaj, że jeśli korzystasz z żądań stron otwartych dla odwiedzających, będą oni mogli uzyskać dostęp do Twoich statystyk sprzedaży za pomocą Twojego klucza .
Dostęp do cennika sklepu / Pełne pobranie cennika w CSV
Określ klucz dostępu do cennika sklepu w ustawieniach, w zakładce «Sklep». Pełna wersja cennika do pobrania znajduje się pod adresem «/csv_export_products.csv»

W takim przypadku musisz podać klucz w żądaniu z szyfrowaniem MD5. Na przykład, jeśli masz klucz «123», wtedy w zapytaniu będzie «202cb962ac59075b964b07152d234b70».

В таком случае запрос будет выглядеть так: «/csv_export_products.csv?key=202cb962ac59075b964b07152d234b70»
W żądaniu możesz określić dane do sortowania i wybierania pól, które możesz pobrać na swojej stronie eksportu w centrum administracyjnym (/page.php?p=submit_catalog_page&subpage&export_from_shop). Sortowanie i selekcja parametrów odbywa się za pomocą żądania GET/POST, na przykład, «&export_product_access=export_product_access» oznacza, że ​​wyładuje pole z danymi o dostępie do produktu.

Dane są wyświetlane w formacie CSV.

Przesyłany plik jest zapisywany w pamięci podręcznej w celu zmniejszenia obciążenia i jest aktualizowany raz dziennie. Możesz usunąć pamięć podręczną za pomocą przycisku «Wyczyść pamięć podręczną przesyłania plików XML/CSV».

Przykład: https://blog.hotlist.biz/csv_export_products.csv?key=202cb962ac59075b964b07152d234b70

Ponadto wdrożono mechanizm wymiany danych za pośrednictwem API, podobny do WooCommerce API. API umożliwia otrzymywanie i aktualizowanie informacji o zamówieniach i produktach, a także kategoriach. Instrukcje i ustawienia w sekcji «Sklep» - «Wymiana danych API Json».
Commerce API (Products/Sales Statistics)

Commerce API — Krótki przewodnik po metodach

Klucz dostępu

Aby korzystać z API, potrzebny jest klucz dostępu (Consumer Secret), który tworzysz w sekcji „Ustawienia”, „Sklep”, „Dostęp do statystyk sprzedaży”. Klucz generowany jest na podstawie klucza dostępu do statystyk sprzedaży.

Metody API (HTTP)

Wszystkie zapytania wykorzystują bazowy URL Twojej strony, na przykład: https://site.com/api/commerce/ lub https://site.com/wp-json/wc/v3/

1. Statystyki sprzedaży

MetodaURLOpis
GET/ordersPobierz statystyki zamówień
GET/orders/{id}Pobierz pojedyncze zamówienie według ID
DELETE/orders/{id}Usuń zamówienie według ID
POST/ordersDodaj nowe zamówienie
UPDATE/orders/{id}Zaktualizuj zamówienie (PATCH/PUT/UPDATE)

2. Produkty

MetodaURLOpis
GET/productsPobierz listę produktów
GET/products/{id}Wyświetl pojedynczy produkt według ID
POST/productsMasowe dodawanie nowych produktów
DELETE/products/{id}Usuń produkt według ID

3. Kategorie sklepu

MetodaURLOpis
GET/products/categoriesPobierz listę kategorii produktów
GET/products/categories/{id}Pobierz kategorię według ID

4. Sortowanie i paginacja

Dla metod /orders i /products dostępne są parametry stronicowania i sortowania:

Parametry paginacji

ParametrTypOpis
pageintNumer strony (domyślnie 1)
per_pageintLiczba elementów na stronę (domyślnie 90, maksymalnie 2000)

Parametry sortowania

ParametrTypDozwolone wartościOpis
orderbystringid, title, price, date, viewsPole do sortowania
orderstringasc, descKierunek sortowania

Opcje językowe

ParametrТипDozwolone wartościOpis
lstringru, ua, en, de, fr, es, it, plJęzyk wyświetlania wartości

Dodatkowo dla zamówień

Można filtrować zamówienia według daty i statusu:

  • ?after=YYYY-MM-DD — Data początkowa (format ISO)
  • ?before=YYYY-MM-DD — Data końcowa
  • ?status=pending|processing|on-hold|completed|cancelled|0|1|2|3|5|6|7|8 — Status zamówienia (można podać status WooCommerce lub kod liczbowy)
    • 0 — Oczekujące (pending)
    • 1 — W trakcie realizacji (processing)
    • 7 — Wstrzymane (on-hold)
    • 3 — Zrealizowane (completed)
    • 8 — Zrealizowane i zakończone (completed)
    • 2 — Anulowane (cancelled)
    • 5 — Anulowane: brak na stanie (cancelled)
    • 6 — Anulowane: odrzucone (cancelled)
  • ?show_deleted=1 — Pokaż usunięte (ukryte) zamówienia

Przykłady

GET /orders?page=2&per_page=100&after=2024-06-01&before=2024-06-30
GET /products?orderby=price&order=asc&per_page=50

Przykład autoryzacji

W zapytaniu należy podać klucze:

 Kod: PHP
?consumer_secret=TWOJ_SEKRET (uwaga, nie udostępniaj tego klucza publicznie!)

Lub przez nagłówek Authorization z OAuth 1.0a.



Dodaj nowe zamówienie (POST /orders)

Aby utworzyć nowe zamówienie przez API, wyślij żądanie POST na /orders z treścią JSON.
Minimalnie musisz podać:

  • email — Email klienta (wymagane!)
  • line_items — Lista produktów do dodania

Parametry zamówienia

Podczas tworzenia zamówienia możesz podać dodatkowe pola, na przykład:

{
  "first_name": "Imię",
  "last_name": "Nazwisko",
  "email": "alex@example.com",
  "phone": "+487001112233",
  "address": "Pełny adres jeśli nie używasz eform",
  "buyer_address_eform1": "Województwo",
  "buyer_address_eform2": "Miasto",
  "buyer_address_eform3": "Ulica",
  "buyer_address_eform4": "Numer domu",
  "buyer_address_eform5": "Mieszkanie",
  "postcode": "01-001",
  "total": "999",
  "status": "processing",
  "status_for_customer": "processing",
  "line_items": [ ... ]
}

Opis pola total:

  • total — końcowa kwota zamówienia (ciąg lub liczba). Jeśli podana, będzie użyta jako ostateczna cena zamówienia.
  • Jeśli total nie jest podane, kwota zamówienia zostanie automatycznie obliczona na podstawie sumy line_items.
  • Pole total nie jest wymagane i może być użyte do zamówień bez produktów.

Format line_items

Parametr line_items to tablica produktów. Każdy produkt to obiekt z następującymi polami:

"line_items": [
  {
    "product_id": 478734,
    "quantity": 1,
    "price": 100,
    "currency": "USD"
  },
  {
    "product_id": 478268,
    "quantity": 10,
    "variation": "51"
  },
  {
    "product_id": 478266,
    "quantity": 1,
    "variation_id": 735302
  }
]
  • product_id — ID produktu (wymagane!).
  • quantity — Ilość sztuk (wymagane!).
  • price — (opcjonalne) Jeśli podana cena — będzie użyta ta wartość zamiast ceny wyliczonej na stronie.
  • currency — (opcjonalne) Waluta konkretnego produktu (np. USD lub PLN). Jeśli podana i różna od głównej waluty zamówienia (currency), system automatycznie przeliczy cenę.
  • variation_id — ID wariantu produktu — sposób wskazania wariantu, jeśli istnieje.
  • variation — Nazwa lub kod wariantu — używane, jeśli nie ma variation_id. Jeśli podane oba — priorytet ma variation_id.

Ważne: Jeśli główna waluta zamówienia (currency) nie jest podana — użyta zostanie domyślna waluta sklepu.

Jeśli waluta produktu różni się od głównej — cena zostanie przeliczona automatycznie.


Aktualizacja produktów

Aktualizacja produktu odbywa się przez HTTP UPDATE (lub PATCH/PUT) z użyciem URL z ID lub SKU produktu, albo wielu produktów jednym żądaniem:

  • /products/{id} — aktualizacja produktu po ID
  • /products/sku/{sku} — aktualizacja produktu po kodzie SKU
  • /products — masowa aktualizacja wielu produktów (do 5000 w jednym żądaniu)

Przy masowej aktualizacji ścieżka /products nie zawiera ID ani SKU. W tym przypadku należy przesłać tablicę obiektów produktów w parametrze products. Każdy element musi zawierać co najmniej id lub sku. Jeśli podane jest id, ma ono priorytet i może zastąpić sku. Jeśli id nie jest podane, wyszukiwanie odbywa się po sku.

Aktualizacja przesyła pełny zestaw danych produktu w formacie JSON. Wszystkie przesłane dane zastępują istniejące wartości, w tym:

  • Główne właściwości produktu (nazwa, opis, ceny, status itp.)
  • Atrybuty
  • Warianty
  • Obrazy
  • Kategorie i tagi
  • Ustawienia dodatkowe i meta pola

Warianty są aktualizowane zgodnie z poniższym algorytmem dla każdego wariantu w tablicy variations:

  1. Jeśli podane jest id, aktualizacja odbywa się po nim.
  2. Jeśli id brak, ale podane jest sku, aktualizacja odbywa się po kodzie.
  3. Jeśli nie ma ani id, ani sku, ale jest title, aktualizacja odbywa się po nazwie.
  4. Jeśli wariant nie zostanie znaleziony, zostanie utworzony nowy z podanymi parametrami.

Aktualizacja po SKU jest wygodna, gdy ID wariantu nie jest znane, ale znany jest unikalny kod.

Przy aktualizacji wszystkie pola w JSON zastąpią aktualne wartości produktu; aby zachować dane bez zmian, po prostu ich nie wysyłaj.

  • Duplikaty wariantów: jeśli w tablicy variations występują powtarzające się po SKU lub nazwie warianty — zostaną pominięte (ten sam wariant nie zostanie dodany dwa razy).
  • Główny obraz: w tablicy images obraz pod indeksem 0 jest uznawany za główny. Jeśli images[0] nie istnieje lub nie jest przesłany — głównym zostanie pierwszy poprawnie załadowany obraz.
  • Maksymalna liczba obrazów: dla jednego produktu można przesłać maksymalnie 10 obrazów. Próba przesłania większej liczby spowoduje pominięcie nadmiarowych plików.
  • Zarządzanie obrazami:
    • Usuwanie obrazów: aby usunąć obraz po indeksie, ustaw w tablicy images wartość "delete". Na przykład images[2] = "delete" usunie obraz o indeksie 2. Możesz jednocześnie usuwać i przesyłać, wskazując wiele kluczy: images[3] = "delete", images[1] = "https://...".
    • Puste indeksy: jeśli podasz pusty ciąg lub false, ten indeks zostanie pominięty bez błędu.
    • Nadpisanie obrazów: parametr images_replace: jeśli true, system nadpisze istniejące pliki obrazów pod podanymi indeksami (usunie stary plik i cache). Jeśli false lub brak — nadpisanie jest wyłączone.
    • Pomijanie zajętych indeksów: parametr images_skip_index: jeśli true, a indeks jest zajęty i nadpisanie jest wyłączone — system znajdzie kolejny wolny indeks i zapisze tam plik. Jeśli false lub brak — indeks jest brany dokładnie jak podany.
    • Nowy indeks przy konflikcie: parametr images_replace_new_index: jeśli true, a indeks jest zajęty i zarówno nadpisanie, jak i auto-pomijanie są wyłączone — plik zostanie zapisany pod nowym wolnym indeksem. Jeśli wszystkie trzy parametry to false lub brak i indeks jest zajęty — plik nie zostanie przesłany.

Parametry produktu


Dostępne wartości można zobaczyć w przykładowym kodzie poniżej. Znajdują się tam również dodatkowe wyjaśnienia niektórych wartości, które mogą być przydatne.
  • Dostępne wartości price_for

    Dla każdego produktu można określić parametr price_for, który ustala jednostkę rozliczeniową ceny. Dozwolone jest użycie kodu liczbowego lub tekstu (na przykład „Za 1 kg”). Oto pełna lista wartości:

    Pokaż / Ukryj
    • 0 — Nie określono
    • 1 — Za 1 szt.
    • 2 — Za 100 szt.
    • 3 — Za 1000 szt.
    • 4 — Za 1 opakowanie
    • 5 — Za 1 kg
    • 6 — Za 1000 kg
    • 7 — Za 1 m² (metr kwadratowy)
    • 8 — Za 1 metr
    • 9 — Za 1 km
    • 10 — Za zestaw
    • 11 — Za 1 godzinę
    • 12 — Za 1 dzień
    • 13 — Za 1 miesiąc
    • 14 — Za 1 rok
    • 15 — Za ar
    • 16 — Za akr
    • 17 — Za hektar
    • 18 — Za działkę
    • 19 — Za obiekt
    • 30 — Za 1 ml (mililitr)
    • 31 — Za 1 l (litr)
    • 32 — Za 1 km³ (kilometr sześcienny)
    • 33 — Za 1 m³ (metr sześcienny)
    • 34 — Za 1 dm³ (decymetr sześcienny)
    • 35 — Za 1 cm³ (centymetr sześcienny)
    • 36 — Za 1 mm³ (milimetr sześcienny)
    • 37 — Za 1 hl (hektolitr)
    • 38 — Za 100 gramów
    • 39 — Za 1 funt
    • 40 — Za 1 gram
    • 41 — Za 10 kg
    • 42 — Za 1 centnar (100 kg)
    • 43 — Za 1 tonę
    • 44 — Za 1 ar
    • 45 — Za 1 parę
    • 46 — Za 1 tuzin
    • 47 — Za 1 galon
    • 48 — Za 1 baryłkę
    • 49 — Za 1 minutę
    • 50 — Za 1 tydzień
    • 51 — Za 1 usługę
    • 52 — Za 1 podróż
    • 53 — Za 1 osobę
    • 54 — Za 1 pojazd
    • 55 — Za 1 metr bieżący

    Można użyć wartości liczbowej lub tekstowej — system automatycznie rozpozna i przypisze właściwy kod.

  • Dostępne wartości stock_status

    Dla każdego produktu możesz ustawić parametr stock_status, który określa status dostępności produktu i jego zachowanie na stronie. Można użyć kodu liczbowego lub słowa kluczowego — system rozpoznaje obie wersje.

    Pokaż / Ukryj
    • 0 — Dostępny
    • 1 — Niedostępny
    • 2 — Na zamówienie
    • 3 — Niedostępny + Ukryj produkt z listy
    • 4 — Niedostępny + Zablokuj możliwość dodania do koszyka
    • 5 — Dostępność do potwierdzenia

    Można podać wartość liczbową lub tekst — system automatycznie rozpozna i przekształci na odpowiedni kod.

    Jeśli dla produktu ustawiono 3, zostanie on ukryty na liście produktów na stronie. Jeśli ustawiono 4, produkt będzie widoczny, ale nie będzie można go dodać do koszyka. Opcja 5 informuje kupującego, że dostępność należy potwierdzić.

  • Promocja i dostępne wartości promotion_expires_job

    Dla każdego produktu możesz ustawić parametr promotion_expires_job, który określa, co zrobić z promocją po upływie jej terminu.
    Można użyć kodu liczbowego lub słowa kluczowego — system rozpoznaje obie wersje.

    Pokaż / Ukryj
    • 0 — Nic nie robić (ukryj licznik)
    • 1 — Przenieś „Starą cenę” do ceny głównej i usuń starą cenę
    • 2 — Usuń oznaczenie „Promocja”
    • 3 — Przenieś „Starą cenę” do ceny głównej i usuń oznaczenie „Promocja”
    • 5 — Uruchom licznik ponownie na 1 dzień
    • 6 — Uruchom licznik ponownie na 10 dni
    • 7 — Uruchom licznik ponownie z poprzednim czasem trwania (data licznika minus data ostatniej edycji)
    • 8 — Usuń oznaczenie „Promocja” i usuń „Starą cenę”

    Można podać wartość liczbową lub tekst — system automatycznie rozpozna i przekształci na odpowiedni kod.

    Ważne: Aby aktywować licznik promocji, pamiętaj, aby ustawić promotion na 1 — to oznacza, że promocja jest aktywna.

    Należy również podać datę zakończenia promocji w parametrze promotion_expires — można ją ustawić jako czas UNIX (np. time()) lub w formacie YYYY-MM-DDTHH:MM:SS+00:00 (np. 2025-06-28T00:00:00+00:00).

  • Więcej wartości

    Dostępne wartości title

    Tekst (maks. 255 znaków) — nazwa produktu


    Dostępne wartości sku

    Tekst (maks. 100 znaków) — kod produktu


    Dostępne wartości status
    • 1 — Dostęp otwarty
    • 0 — Dostęp zamknięty (403)

    Dostępne wartości yml

    Włącz/Wyłącz eksport produktu do XML (Google Merchant i inne)

    • 1 — Eksport włączony
    • 0 — Eksport wyłączony

    Dostępne wartości noimport

    Włącz/Wyłącz aktualizację produktu podczas importu (Sklep → Importuj produkty)

    • 1 — Aktualizuj podczas importu
    • 0 — Nie aktualizuj podczas importu

    Dostępne wartości delete
    • 0 — Nie usuwaj
    • 1 — Usuń produkt

    Dostępne wartości show_period

    Okres wyświetlania produktu. Pozwala ukryć produkt po upływie określonego czasu.

    • 0 — Na zawsze
    • 1 — 1 dzień
    • 2 — Tydzień
    • 3 — Miesiąc
    • 4 — Pół roku
    • 5 — Rok

    Dostępne wartości priority

    Liczba od 0 do 100. Im wyższa — tym wyżej produkt na liście.


    Dostępne wartości custom_label_4

    Tekst (maks. 95 znaków)


    Dostępne wartości meta_title

    Tekst (maks. 255 znaków)


    Dostępne wartości meta_description

    Tekst (maks. 500 znaków)


    Dostępne wartości meta_keywords

    Tekst (maks. 2000 znaków)


    Dostępne wartości multilangid

    Tekst (maks. 50 znaków)


    Dostępne wartości categories

    Tablica z wartościami

    • id — ID kategorii
    • name — Nazwa kategorii
    • lang — Język kategorii

    Dostępne wartości producer

    Tablica z wartościami

    • id — ID producenta
    • name — Nazwa producenta
    • lang — Język producenta

    Dostępne wartości producer_country

    Tekst (maks. 100 znaków)


    Dostępne wartości collection

    Tablica z wartościami

    • id — ID kolekcji
    • name — Nazwa kolekcji
    • lang — Język kolekcji

    Dostępne wartości short_description

    Tekst (maks. 2000 znaków) — krótki opis produktu (jeśli włączony w szablonie sklepu, wyświetlany na liście produktów)


    Dostępne wartości description

    Tekst długi — pełny opis produktu, widoczny na stronie produktu


    Dostępne wartości description_tab_1

    Tekst długi — zakładka 1 z opisem (tytuł zakładki ustaw w ustawieniach sklepu)


    Dostępne wartości description_tab_2

    Tekst długi — zakładka 2


    Dostępne wartości description_tab_3

    Tekst długi — zakładka 3


    Dostępne wartości description_tab_4

    Tekst długi — zakładka 4


    Dostępne wartości description_tab_5

    Tekst długi — zakładka 5


    Dostępne wartości bought_with

    Tekst (maks. 255 znaków) — lista ID lub SKU produktów, które kupowane są razem, oddzielone przecinkami


    Dostępne wartości bought_with_email

    Tekst (maks. 255 znaków) — lista ID lub SKU produktów, które kupowane są razem, wysyłana klientowi w mailu z zamówieniem


    Dostępne wartości discount

    Tekst (maks. 20 znaków) — wysokość rabatu (pole informacyjne, widoczne na liście i na stronie produktu)


    Dostępne wartości new

    Oznacz produkt jako Nowość

    • 0 — Nie ustawione
    • 1 — Ustawione

    Dostępne wartości featured

    Oznacz produkt jako Bestseller

    • 0 — Nie ustawione
    • 1 — Ustawione

    Dostępne wartości promotion

    Oznacz produkt jako Promocja

    • 0 — Nie ustawione
    • 1 — Ustawione

    Dostępne wartości reducedprice

    Oznacz produkt jako Obniżona cena

    • 0 — Nie ustawione
    • 1 — Ustawione

    Dostępne wartości shipping
    • 0 — Nie określono
    • 1 — Włączono

    Dostępne wartości shipping_settings (związane z shipping)
    • 2 — Z ustawień ogólnych
    • 0 — Brak dostawy
    • 1 — Dostawa dostępna
    • 3 — Tylko notatka o dostawie

    Dostępne wartości shipping_price (związane z shipping_settings)

    Tekst (maks. 40 znaków)


    Dostępne wartości shipping_note (związane z shipping_settings)

    Tekst (długi)


    Dostępne wartości shipping_days (związane z shipping_settings)

    Tekst (maks. 10 znaków)


    Dostępne wartości shipping_sum (związane z shipping_settings)
    • 0 — Nie uwzględniaj ilości produktów
    • 1 — Uwzględnij ilość produktów
    • 2 — Nie doliczaj dostawy do sumy zamówienia

    Dostępne wartości attributes

    Tablica z atrybutami — widoczne w karcie produktu, wykorzystywane do porównania i filtrów

    • id — ID atrybutu (jeśli jest)
    • name — Nazwa atrybutu (wyszukiwanie może być po name lub value_parent_id / value_ints)
    • options — Tablica wartości atrybutu
    • value_ints — Tablica numerycznych ID wartości (jeśli są)
    • value_parent_id — ID nadrzędny atrybutu (jeśli jest)

    Przykład:
    [
      {
        "id": 1298,
        "name": "Rodzaj produktu",
        "options": ["Sneakersy"]
      },
      {
        "name": "Producent",
        "options": ["Adidas"],
        "value_ints": [10081],
        "value_parent_id": 1762
      },
      {
        "name": "Rozmiar",
        "options": ["43", "43.5"],
        "value_ints": [10107, 10108],
        "value_parent_id": 1763
      }
    ]

    Inne wartości

    Inne wartości możesz uzyskać metodą GET /products lub w przykładach poniżej


Dodawanie produktów

Ta metoda pozwala dodać jeden lub kilka produktów jednym żądaniem (do 3000 w jednym żądaniu). Format żądania jest identyczny jak przy aktualizacji: możesz przesłać tablicę products lub pojedynczy produkt.

  • Sprawdzanie ID: podczas dodawania nowego produktu pole id powinno być puste lub pominięte. Jeśli id jest podane i produkt z tym ID już istnieje — system zaktualizuje ten produkt zamiast tworzyć nowy.
  • Sprawdzanie SKU: przed dodaniem system sprawdzi, czy istnieje produkt z tym SKU. Jeśli tak — zostanie zaktualizowany, a nie dodany ponownie.

Możesz dodać nowe produkty i zaktualizować istniejące jednym żądaniem.

To podstawowy opis głównych metod pracy z Commerce API / WooCommerce API v3 dla zamówień, produktów i kategorii.
Poniżej znajdują się przykładowe skrypty, które pomogą prawidłowo używać metod API w praktyce.


  • Script: Api: ORDER DETAILS

     Code: PHP
    ORDER DETAILS
      $url = "https://yourdomain.com/api/commerce/orders/ORDERID"; // Set the endpoint URL (replace with your actual API endpoint)
      $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
      $ch = curl_init($url); // Initialize cURL session
      // Set cURL options
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Return response as string
      curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer " . $authKey, // Set Authorization header
      "Content-Type: application/json" // Optional: declare expected response type
      ]);
      // Execute request
      $response = curl_exec($ch);
      // Check for cURL error
      if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
      } else {
      // Parse and print the JSON response
      $data = json_decode($response, true);
      print_r($data); // Output server response
      }
      // Close cURL session
      curl_close($ch);
      
  • Script: Api: UPDATE ORDER

     Code: PHP
    UPDATE ORDER
      $url = "https://yourdomain.com/api/commerce/orders/ORDERID";// Order API endpoint
      $authKey = "your_authorization_token_here"; // Authorization token
    // Data to update (use API keys, not raw DB field names)
      $updateData = [
      "first_name"  => "Alex",
      "last_name"   => "Las",
      "email"       => "alex@example.com",
      "phone"       => "+380671112233",
     // Full address in plain text (if needed)
      "address"   => "Full address not tied to structured eform fields",
     // Structured address fields (eform system)
      "buyer_address_eform1" => "Region / State",         
      "buyer_address_eform2" => "City",                   
      "buyer_address_eform3" => "Street",                 
      "buyer_address_eform4" => "House number",           
      "buyer_address_eform5" => "Apartment",              
      "buyer_address_eform6"             => "01001",       // Zip/Postal code/Department
     // Order details
      "total" => "999",                        // Total price
      "status" => "processing",                // Internal status or number
      "status_for_customer" => "completed",    // Customer-facing status or number
      ];
      $ch = curl_init($url); 
    // cURL options
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");
      curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($updateData, JSON_UNESCAPED_UNICODE));
      curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer " . $authKey,
      "Content-Type: application/json"
      ]);
      $response = curl_exec($ch);
      if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
      } else {
      $data = json_decode($response, true);
      print_r($data); 
      }
    curl_close($ch);
  • Script: Api: CREATE ORDER

     Code: PHP
    CREATE ORDER
      $url = "https://yourdomain.com/api/commerce/orders"; // Order API endpoint
      $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Order data + products
      $orderData = [
      // Buyer info
      "first_name"  => "Name",                // Buyer's first name
      "last_name"   => "Soname",              // Buyer's last name
      "email"       => "alex@example.com",    // Buyer's email (required)
      "phone"       => "+380671112233",       // Buyer's phone number
      "address"     => "Full address of not used address eform", // General address
      "buyer_address_eform1" => "State",      // State / Region
      "buyer_address_eform2" => "City",       // City
      "buyer_address_eform3" => "Street",     // Street
      "buyer_address_eform4" => "house number", // House number
      "buyer_address_eform5" => "flat",       // Apartment / Flat
      "postcode"    => "01001",               // Postcode / ZIP
     // Total order amount (optional)
      // If you set "total", it will be used as the final order total.
      // If you skip "total", the system will calculate the total automatically
      // based on the products in "line_items".
      //"total"       => "999",
     "status"      => "processing",          // Internal status
      "status_for_customer" => "processing",  // Status shown to the customer
     "currency"   => "USD",                  // Order currency / an optional currency parameter that is specified by default in the site settings
     // Products in the order
      "line_items" => [
        [
         "product_id" => 478734,         // Product ID (required)
         "quantity"   => 0,              // Quantity (required) / default - 1
         "price"      => 100,            // Custom price (optional, overrides site price)
        ],
        [
         "product_id" => 478268,
         "quantity"   => 10,
         "variation" => "51"             // Variation name or code
        ],
        [
         "product_id" => 478266,
         "quantity"   => 1,
         "variation_id" => 735302        // Variation ID (priority over "variation")
        ]
       ]
      ];
      
      $ch = curl_init($url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
      curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($orderData, JSON_UNESCAPED_UNICODE));
      curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer " . $authKey,
      "Content-Type: application/json"
      ]);
    
      $response = curl_exec($ch);
      if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
      } else {
      $data = json_decode($response, true);
      print_r($data);
      }
    curl_close($ch);
    
  • Script: Api: UPDATE PRODUCT

     Code: PHP
    UPDATE PRODUCT
     $url = "https://yourdomain.com/api/commerce/products/PRODUCT_ID";// Product API update endpoint
      $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Product data
    $productData = [
      "id" => 479077, // Product ID is ignored here because it's specified in the URL
      "name" => "Basketballshoesconverseallstarbbprototypecx", // Internal name for database  (does not affect front-end display)
      "title" => "Basketball shoes Converse All Star BB Prototype CX", // Product title (required for new)
      "type" => 1298, // Product type for filtering and attributes
      "access" => true, // Product availability (true = active)
      "description" => "<p>Sneakers Converse All Star BB Prototype CX — Basketball shoes...</p>", // Full product description (HTML allowed)
      "short_description" => "", // Short description of product 
      "sku" => "AO2515C", // Product SKU code
      "sku_show" => 0, // Whether to show SKU publicly (0 = no)
      "price" => "3000", // Current price
      "currency" => "UAH", // Currency code
      "regular_price" => "5760", // Old (regular) price 
      "price_for" => "0", // Unit for pricing (see documentation for accepted values  https://hotlist.biz/en/user_guide.html#autohrefinside13_7)
      "stock_quantity" => 0, // Quantity in stock (0 - unlimited)
      "stock_status" => 0, // Stock status (0 = in stock, 1 = out of stock, others see docs)
      "weight" => 0, // Weight value
      "weight_units" => 0, // Weight units: 0 = grams, 1 = kilograms
      "dimensions" => [
        "length" => 0, // Length
        "width"  => 0, // Width
        "height" => 0, // Height
        "units"  => "0", // Dimension units: 0 = centimeters, 1 = meters
     ],
     "categories" => [
        ["id" => 30519, "name" => null], // Product category (by ID, name, or both)
      ],
      "tags" => "tag1, tag2", // Tags, comma separated, max 8 tags
     "images" => [
        "0" => "-uploadshopcat-s16572/479077/479077_1.webp", // Local image path (won`t be uploaded)
        "1" => "https://hotlist.biz/upload/shop_catalog/s16572/479077/479077_2.webp", // Remote image URL (will be downloaded and attached)
      ],
     "images_replace" => false, // By default: do NOT replace images with the same index. If true, replace existing images by index.
     "images_skip_index" => false, // If true, find next free index if the given index is occupied and save image there.
     "images_replace_new_index" => false, // If true, even if replace and skip are false, save under new free index if original index is occupied.
     "variations_only_update" => false, // If true, new variations will be added without deleting old ones; otherwise all old variations are removed before adding new
     "variations" => [
      [
        "priority" => 0, // Display priority of the variation
        "id" => 736413, // Variation ID for updating existing variation; if not provided, search by SKU or title
        "sku" => "SKU1234", // Variation SKU (recommended)
        "title" => "42", // Variation name (required)
        "status" => "true", // access ( true / false / forbidden)
        "description" => "",
        "stock_status" => 0, // Stock status, same logic as main product
        "show_stock" => 0, // Whether to show stock count
        "instock" => 10, // Quantity in stock for this variation
        "image_num" => 0, // Image index linked to this variation
        "price" => "+100", // Price adjustment: absolute, or relative (+/-)
        "price_old" => "120", // Old price
        "price_cost" => "80", // Cost price
        "bulk_prices" => [ // Bulk pricing rules
          [
          "moq" => 10, 
           "price" => 5000
          ], // Price if order >= 10 units
          [
          "moq" => 15, 
          "price" => 4500
          ], // Price if order >= 15 units
      ],
      "dimensions" => [ // Variation dimensions, same units as product
        "length" => 0, // Length
        "width" => 0,  // Width
        "height" => 0, // Height
        "units" => 0,  // Dimension units: 0 = centimeters, 1 = meters
      ],
      ],
      [
        "priority" => 0,
        "title" => "43",
        "description" => "",
        "stock_status" => 0,
        "show_stock" => 1,
        "instock" => 1,
        "image_num" => 2,
        "price" => "+100",
        "price_old" => "120",
        "price_cost" => "80",
        "bulk_prices" => [
      ["moq" => 10, "price" => 5000],
      ["moq" => 15, "price" => 4500],
      ],
      "dimensions" => [
        "length" => 0,
        "width" => 0,
        "height" => 0,
        "units" => 0,
      ],
    
      ],
      ],
     "products_synonyms" => "", // Comma-separated list of grouped or similar product IDs or SKUs
     "priority" => 12, // Sorting priority (higher number = higher position, max 99)
     "producer" => ["id" => 4713, "name" => null], // Producer category by ID and/or name
     "producer_show" => 0, // Show producer on product page
     "producer_country" => "", // Producer country (text)
     "collection" => ["id" => null, "name" => null], // Collection category (ID and/or name)
     "collection_show" => 0, // Show collection flag
     "supplier" => ["id" => null, "name" => null], // Supplier info
     "bulk_prices" => [ // Bulk prices for main product
        ["moq" => 10, "price" => 5000],
        ["moq" => 15, "price" => 4500],
      ],
     "price_cost" => "", // Cost price for the main product
     "settings_comments" => "e_shop_page_hoteng_com|e_shop_page_hoteng_rating_com|e_shop_page_hoteng_show_rating_com|e_shop_page_hoteng_com_captcha|e_shop_page_hoteng_vis_com|e_shop_page_hoteng_num30",
     "password" => "", // Password protection (if any)
     "show_tree" => 0, // Category tree display setting
     "show_stock" => 0, // Show stock on product page
     "moq" => 0, // Minimum order quantity
     "shipping" => 0, // Shipping enabled flag
     "shipping_settings" => 0, // Shipping configuration
     "shipping_price" => 0, // Shipping cost
     "shipping_note" => "", // Notes about shipping
     "shipping_days" => 0, // Delivery time in days
     "shipping_sum" => 0, // Combine shipping for same products flag
     "show_period" => 0, // Product display period
     "bought_with" => "", // Comma-separated list of products often bought together
     "bought_with_email" => "", // Email to send bought-together product lists
     "new" => 1, // Is product new (1 = yes, 0 = no)
     "reduced_price" => 0, // Price reduced flag
     "discount" => "-20%", // Discount text (informational)
     "featured" => 1, // Featured product flag
     "promotion" => 1, // Has promotion flag
     "promotion_text" => "", // Promotion text
     "promotion_expires" => 1751113909, // Promotion end timestamp
     "promotion_expires_job" => 0, // Job to execute after promotion ends
     "variations_title" => "", // Title above variation selectors
     "variations_type" => 0, // Variation type (Google Merchant Size Type): 0=default from category settings, 1=color, 2=pattern, 3=material, 4=age_group, 5=gender, 6=size
     "variations_require" => 0, // Require variation selection before purchase
     "variations_cartexplode" => 0, // Variation display method settings
     "yml" => 0, // Export to YML/XML flag
     "noimport" => "0", // Disable import via admin panel flag
     "custom_label_4" => "", // Custom label for Google Merchant
     "description_tab_1" => "", // Description tab 1 content
     "description_tab_2" => "", // Description tab 2 content
     "description_tab_3" => "", // Description tab 3 content
     "description_tab_4" => "", // Description tab 4 content
     "description_tab_5" => "", // Description tab 5 content
     "video" => "", // Video URL
     "video_duration" => "", // Video duration in HH:MM:SS format
     "delete" => "delete", // delete product ( true or delete )
     // Product attributes for filtering and characteristics
     "attributes" => [
       [
      // "id"      => 1298,  // Attribute name You can use or NAME or ID
        "name" => "Product type", // Attribute name
        "options" => ["Sneakers"] // Attribute values (multiple allowed)
       ],
       [
        "name" => "Producer", //  Attribute name
        "options" => ["Converse"] //Attribute values (multiple allowed)
       ],
       [
        "name" => "Size", //Attribute name
        "options" => ["37,5", "40"] //Attribute values (multiple allowed)
         // "value_ints"      => [10096, 10101], //You can use or NAME or ID
         // "value_parent_id" => 1763 You can use or NAME or ID
       ],
      ]
     ];
    
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "UPDATE"); // Use UPDATE method for update operation (UPDATE / PUT / PATCH)
      curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($productData, JSON_UNESCAPED_UNICODE));
      curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer " . $authKey,
      "Content-Type: application/json"
      ]);
    
      $response = curl_exec($ch);
      if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
      } else {
      $data = json_decode($response, true);
      print_r($data);
      }
    curl_close($ch);
    
  • Script: Api: UPDATE MULTIPLE PRODUCT

     Code: PHP
    UPDATE MULTIPLE PRODUCT (up to 5000 same time)
    $url = "https://yourdomain.com/api/commerce/products"; // Product API update endpoint
    $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Product data
      $productsData = [
      "products" => [
       [
        "id" => 479077,
        "title" => "New Product Title 1"
        ...
       ],
       [
        "sku" => "SKU123456",
        "title" => "New Product Title 2"
        ...
       ],
       [
        "id" => 479078,
        "title" => "New Product Title 3"
        ...
       ]
      ]
     ];
     
    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "UPDATE"); // UPDATE / PUT / PATCH
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($productsData, JSON_UNESCAPED_UNICODE));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer " . $authKey,
    "Content-Type: application/json"
    ]);
    $response = curl_exec($ch);
    if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
    } else {
      $data = json_decode($response, true);
      print_r($data);
    }
    curl_close($ch);
Promocja witryny i SEO
Promocja witryny Na platformie HotList.biz stworzono dodatkowe funkcje do promocji strony SEO, na przykład możesz automatycznie dodawać potrzebne słowa do wszystkich produktów z określonej kategorii.

Więcej informacji o sposobach reklamy i promocji znajduje się na tej stronie. https://hotlist.biz/pl/user_guide_seo.html

Zalecamy włączenie «przekierowania z powiązaniem języka». Ta funkcja pomaga uniknąć duplikatów strony początkowej (duplikaty są szkodliwe dla SEO). Ze względu na fakt, że strona startowa domain.com i strona domena.com/pl/ w określonym języku to ta sama strona, zalecamy włączenie przekierowań 301 na stronę w określonym języku. Można to zrobić w Centrum administracyjnym, Ustawienia, Strona początkowa.
Dostęp do strony
Dostęp do strony Możesz ograniczyć dostęp do serwisu w «Ustawieniach», w zakładce «O serwisie».

Jeśli planujesz używać własnej domeny, zalecamy tymczasowe ograniczenie dostępu do witryny i otwarcie jej po zakupie domeny.

Jeśli chcesz usunąć informacje o witrynie / firmie, otwórz stronę do zmiany informacji o witrynie / firmie i zaznacz pole «Usuń witrynę i wszystkie dane» u dołu. Po pewnym czasie informacje o firmie / stronie znikną z emisji wyszukiwarek.
Buforowanie
Buforowanie Dzięki buforowaniu użytkownicy, którzy ponownie odwiedzają Twoją witrynę, spędzają mniej czasu na ładowaniu stron. Nagłówki buforowania powinny dotyczyć wszystkich zasobów statycznych, które można buforować, a nie tylko niektórych z nich (takich jak obrazy). Zasoby przechowywane w pamięci podręcznej obejmują pliki JavaScript i CSS, grafikę i inne pliki (treści multimedialne).

Buforowanie plików multimedialnych

W oparciu o zalecenia wyszukiwarek i dla wygody odwiedzających włączyliśmy w Twojej witrynie «Kompresję danych» oraz Buforowanie plików graficznych i skryptów JavaScript. Czas pamięci podręcznej dla tych plików – jeden tydzień.  

Jeśli prześlesz nowy obraz na stary, zobaczysz stary obraz, dopóki pamięć podręczna przeglądarki nie zostanie wyczyszczona. Każda przeglądarka ma swój własny sposób czyszczenia pamięci podręcznej. Na przykład w Chrome, aby wymusić wyczyszczenie, musisz nacisnąć «CTRL + F5» w oknie przeglądarki, w Twojej witrynie.

Buforowanie serwera

Dodatkowo, aby przyspieszyć pracę serwisów, wdrożyliśmy również buforowanie niektórych danych tekstowych, które jest czyszczone automatycznie w przypadku ich zmiany. Jeśli jednak zmieniłeś zawartość strony/produktu/artykułu/menu, ale zmiany nie zostały wyświetlone na stronie, to musisz wymusić wyczyszczenie pamięci podręcznej za pomocą linku w panelu administracyjnym «Wyczyść pamięć podręczną» na stronie, na której zmiany nie były wyświetlane.

Utrzymanie witryny i czyszczenie Buforowanie

Witryna przechowuje w pamięci podręcznej takie dane, jak «Typ produktu», «Promocje» (w tym licznik czasu), przesłane pliki «RSS/XML/CSV» oraz liczba produktów w kategorii. Aby wyczyścić pamięć podręczną RSS/XML/CSV, wybierz «XML/CSV/XLS/JSON» - «Wyczyść pamięć podręczną przesłanych plików XML/CSV» w panelu administratora.

Aby przeliczyć odmiany, liczbę produktów w kategoriach i wyczyścić pamięć podręczną Promocji, przejdź do «Ustawień», «Sklepu» i na dole listy w pozycji «Przeliczanie produktów i kategorii» wybierz parametry niezbędne do ponownego obliczenia i konserwacji.
Ta procedura jest zalecana po większej aktualizacji danych w sklepie, zmianie kategorii, dodaniu i zmianie lub usunięciu dużej liczby odmian, dodaniu i zmianie kategorii, przeniesieniu tagów produktów do innych kategorii lub gdy timer wygasa w promocjach .
Warunki korzystania
Administracja serwisu nie prowadzi działalności handlowej i nie ponosi odpowiedzialności za jakość usług/towarów sprzedawanych w ramach Hotlist.biz. Odpowiedzialność za wszystkie opublikowane towary i usługi ponoszą użytkownicy, którzy je dodali.
Łączność: https://hotlist.biz/pl/feedback.html