Instrukcje dotyczące pracy z platformą BooStore.pro

Temu
Wskazówki dotyczące pracy z systemem można znaleźć po rozwinięciu sekcji zarządzania, a także po najechaniu na ikonę

Krótko o platformie

Przedsiębiorcy i sprzedawcy

Przedsiębiorcy i sprzedawcy

Na platformie BooStore.pro możesz bezpłatnie utworzyć stronę lub sklep internetowy, zaprojektować indywidualny wygląd, wypełnić go unikalnymi treściami (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ść tworzenia filtra wyszukiwania (jak w Yandex Market) dla różnych grup produktów, tworzyć własne rubryki i rubryki producentów, prowadzić blog, kanał informacyjny, zbierać bazę subskrybentów e-mail, importować/eksportować produkty i usługi, dodawać menedżerów do swojej strony (dostęp współdzielony), tworzyć bazę klientów z indywidualnymi rabatami, korzystać z systemów płatności, eksportować dane ze strony w formacie XML, tworzyć własne formularze (Form), włączyć automatyczną wymianę danych z ERP, programami handlowymi i wiele, wiele więcej…

Przedsiębiorcy i sprzedawcy

  • Po rejestracji Twojego sklepu będziesz mógł dodać do niego do 300 produktów za darmo, przy czym możesz zwiększyć limit dodawanych produktów. (Limit do 1000 produktów można zwiększyć bezpłatnie)
  • We właściwościach produktu można określić jego cenę, walutę płatności, okres gwarancji, odpowiedzialnego za gwarancję, szczegółowy opis, obraz produktu, producenta, zakładki z dodatkowymi opcjami, indywidualne charakterystyki produktu i inne.
    • Na BooStore.pro możesz samodzielnie skonstruować stronę swojej firmy lub sklep internetowy
    • Będziesz mógł tworzyć własne menu i niezbędną liczbę stron.
    • Będziesz mógł poprawiać i zmieniać wygląd swojej strony.
    • Będziesz mógł umieszczać na stronie kody HTML
    • Będziesz mógł prowadzić blogi i kanały informacyjne, a także transmitować kanały RSS.
    • Będziesz mógł przesyłać swoje pliki, śledzić zamówienia i komunikować się z klientem bezpośrednio na stronie.

  • Przedsiębiorstwo/Użytkownik, który umieścił produkt, ponosi samodzielnie odpowiedzialność za treść opisu, cen i dostępność produktów, a także za prawdziwość przekazanych informacji.
  • Zabrania się dodawania produktów i usług naruszających ustawodawstwo Twojego kraju.

Zarządzanie stroną

Centrum administracyjne/Panel administracyjny

Administrowanie stroną odbywa się w Centrum Administracyjnym (Otwórz Centrum administracyjne) lub przez Panel administracyjny, który znajduje się po lewej stronie po zalogowaniu na stronie.

Logowanie administratora

Ścieżka logowania administratora strony:
boostore.pro/admin/
Jeśli ukryjesz menu autoryzacji na stronie, to aby zalogować się jako administrator, wystarczy wpisać w pasku adresu ścieżkę wskazaną powyżej.
Przykład tworzenia linku do autoryzacji użytkowników

Dostęp współdzielony

Aby umożliwić zarządzanie stroną innemu użytkownikowi, musisz dodać Menedżera i ustawić prawa dostępu.

Główne moduły

Typy danych/stron

📄

Strony

System Block

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



Ajax ładowanie treści strony.

Ajax ładowanie treści strony.



Link posiadający klasę ajax_load_page będzie otwierać treść Ajax wewnątrz bloku określonego w atrybucie data-content-block.
Ścieżka do ładowanej strony jest określona w parametrze href.
Ścieżka do strony może być względna lub pełna, z http.
Możesz także używać własnych skryptów, przekazując parametr GET lub POST p, z nazwą
(lub pełnym adresem) strony, pod adresem /ajax.php

Ponadto możliwe jest użycie bezpośrednich zapytań bez użycia Ajax.
Na przykład do ładowania danych w iframe. Ścieżka jest taka sama jak przy użyciu Ajax.

Skrypt ładowania danych w oknie popup:
Skrypt okna popup z ładowaniem treści Ajax


📰

Katalog artykułów

Content Module

Katalog artykułów — taki sam blok jak strony, który dodatkowo posiada krótkie opisy wyświetlane w formie listy z linkiem do pełnego tekstu, a także możliwością dzielenia list według kategorii.

Listy artykułów można wyświetlać nie tylko wewnątrz kategorii, ale także generować własne listy.
Ajax ładowanie treści artykułu

Ajax ładowanie treści artykułu.



Link posiadający klasę ajax_load_blog będzie otwierać treść Ajax wewnątrz bloku określonego w atrybucie data-content-block.
Ścieżka do ładowanej strony jest określona w parametrze href.
Ścieżka do strony może być względna lub pełna, z http.
Możesz także używać własnych skryptów, przekazując parametr GET lub POST blog_cat_p, z pełnym adresem
artykułu, pod adresem /ajax.php

Ponadto możliwe jest użycie bezpośrednich zapytań bez użycia Ajax.
Na przykład do ładowania danych w iframe. Ścieżka jest taka sama jak przy użyciu Ajax.

Skrypt ładowania danych w oknie popup:
Skrypt okna popup z ładowaniem treści Ajax

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

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


📐

Blok / Menu

Layout Module

Blok/Menu — to uniwersalny kontener dla dowolnych kodów HTML i funkcji systemowych (koszyk, filtr, bestsellery). Pozwala kształtować strukturę witryny, umieszczać skrypty w meta-tagach i zarządzać ich widocznością na różnych urządzeniach.

Używaj Header i Footer dla wspólnych elementów projektu (logo, kontakty), a boczne lub wewnętrzne bloki — dla modułów treści i skryptów.
Pozycje umieszczenia:
  • Nagłówek witryny (Header): wewnątrz elementu #hotengine-header, nad treścią.
  • Stopka witryny (Footer): wewnątrz elementu #hotengine-footer, pod treścią.
  • Lewo / Prawo: panele boczne obok głównego bloku z treścią.
  • Góra / Dół: wewnątrz obszaru treści, w górnej lub dolnej części.
  • Nad > cat_tree: pozycja bezpośrednio pod drzewem kategorii.
  • Tagi pomocnicze (Header Meta): pod Meta-tagami do wstawiania JavaScript i danych systemowych.
Do wszystkich menu automatycznie dodawana jest klasa CSS pozycji i unikalny menu_id.

📋 Podstawowe rozmieszczenie bloków witryny

Do rozszerzonego menu mobilnego użyj Konstruktora menu mobilnego.

Przykład użycia bloków i menu

🛒

Sklep

E-commerce Module

Sklep — moduł do organizacji katalogu produktów z funkcjonalnością zamówień. Obsługuje segmentację według producentów, kategorii, typów i cech.

Widget z produktami

Listy można osadzać w stronach, blokach lub artykułach poprzez Generator sliderów. Przykład działania widgetu z produktami

Widgety kategorii

Wyświetlanie struktury działów w dowolnym miejscu witryny za pomocą Widgeta kategorii.



Dodawanie produktów


Ajax ładowanie produktu

Ajax ładowanie produktu.



Link posiadający klasę ajax_load_shop będzie otwierać treść Ajax wewnątrz bloku określonego w atrybucie data-content-block.
Ścieżka do ładowanej strony jest określona w parametrze href.
Ścieżka do strony może być względna lub pełna, z http.
Możesz także używać własnych skryptów, przekazując parametr GET lub POST shop_cat_p, z pełnym adresem
produktu, pod adresem /ajax.php

Ponadto możliwe jest użycie bezpośrednich zapytań bez użycia Ajax.
Na przykład do ładowania danych w iframe. Ścieżka jest taka sama jak przy użyciu Ajax.
Skrypty dodawania produktu do koszyka należy ładować dodatkowo, jeśli używasz iframe.

Skrypt ładowania danych w oknie popup:
Skrypt okna popup z ładowaniem treści Ajax

Ajax ładowanie opinii do produktów

Przykład skryptu Ajax do ładowania listy produktów + «Generator listy produktów»

Ajax ładowanie koszyka

Ajax ładowanie koszyka.



Link posiadający klasę ajax_load_cart będzie otwierać treść Ajax wewnątrz bloku określonego w atrybucie data-content-block.
Do załadowania koszyka wystarczy wykonać zapytanie do strony «/ajax.php?cart&load_cart_ajax»


Przykład skryptu Ajax do ładowania koszyka po najechaniu kursorem myszy

Ajax ładowanie listy obrazów karty produktu

Ajax ładowanie listy wszystkich kategorii w formacie JSON

Ajax ładowanie listy wszystkich kategorii w formacie JSON.

Aby uzyskać listę wszystkich kategorii sklepu wystarczy wykonać zapytanie pod adres /ajax.php?json&shop_categories&start=0&param=:products

Gdzie
  • &start= - ID kategorii, od której rozpocząć wyświetlanie.
  • &param= parametry, które można uzyskać w Widgetcie kategorii (parametr opcjonalny)
  • Zapytanie działa tylko z podaniem Twojej domeny, np. http://example.com/ajax.php?json&shop_categories&start=0

Przykład wyniku: {"id":"ID kategorii","parentID":"ID kategorii nadrzędnej","child_cat":"Liczba podkategorii","child_items":"Liczba produktów w kategorii","image":"Ścieżka do obrazu kategorii","title":"Nazwa kategorii"},

Ajax ładowanie produktu w formacie JSON

Ajax ładowanie produktu w formacie JSON.

Aby uzyskać dane kart produktów w formacie JSON, wystarczy wykonać zapytanie pod adres /ajax.php?json&shop_products&id=0

Przy eksporcie produktów można określić parametry sortowania i filtrowania według następujących parametrów:
  • id - ID karty produktu (jedna lub kilka wartości, oddzielone przecinkami).
  • pers_shop_cat_page_catid - ID kategorii sklepu (jedna lub kilka wartości, oddzielone przecinkami)
  • producer – producent (jedna lub kilka wartości, oddzielone przecinkami)
  • collection - kolekcja (jedna lub kilka wartości, oddzielone przecinkami)
  • sort_by – sortowanie
  • order_by – sortowanie
  • sort_instock_priority – priorytet sortowania
  • price_from – cena od
  • price_to – cena do
  • stock - dostępność

Zapytanie działa tylko z podaniem Twojej domeny, np. http://example.com/ajax.php?json&shop_products&id=0


Demonstracja konfiguracji kategorii i menu nawigacyjnego

Formularz (Form)

📝

Formularze

Data Capture Module

Formularz — sekcja dokumentu, pozwalająca użytkownikowi wprowadzać informacje do późniejszego przetworzenia przez system. Na platformie BooStore.pro możesz tworzyć pełnoprawne formularze z przypisaniem nazw, id i class dla pól. Dane formularzy można przetwarzać na naszej platformie lub wysyłać na dowolny inny zasób.

Elastyczna konfiguracja

Przypisanie unikalnych nazw i identyfikatorów dla każdego pola formularza.

Przetwarzanie danych

Możliwość lokalnego przetwarzania w systemie lub wysyłania na zewnętrzne zasoby.



Przykład tworzenia i umieszczania formularza

Ajax ładowanie formularzy (formularze popup)

3 sposoby tworzenia formularza:
1 Konstruktor formularzy (Najbardziej elastyczny)

Otwórz konstruktor formularzy i utwórz strukturę, ustawiając potrzebne pola. Wszystkie instrukcje są dostępne wewnątrz modułu.

2 Strona funkcyjna

Utwórz stronę typu feedback. Po jej otwarciu wyświetli się standardowy formularz kontaktowy.

3 Formularz popup (przez kod)
HTML
<a class="hotengine-dialog-email" data-site="XXXX" href="javascript://">Napisz do nas</a>
class="hotengine-dialog-email" — wywołanie okna. data-site="XXXX" — Twój ID witryny (określony w panelu administracyjnym).
Dodatkowo można użyć: data-title (tytuł), data-close-button (tekst zamknięcia), data-width i data-height.
Przykład stylizacji pól (CSS)

Zmiana nazw pól dla różnych języków za pomocą pseudoelementów:

CSS

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

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

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

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

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

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

/*FORM TEXT TITTLES*/

Uwaga! Na stronie istnieje możliwość tworzenia własnych formularzy w trybie automatycznym, a także używania okien popup do wysyłania danych od odwiedzających. W tym celu skorzystaj z Konstruktora formularzy.

Komentarze / Opinie

💬

Komentarze i Opinie

Social & Feedback Module

System umożliwia pozostawianie komentarzy na wszystkich typach stron. Obsługiwane są elastyczne ustawienia przypisania do sekcji, system ocen (rating) i ochrona Captcha. Dla produktów przewidziana jest specjalistyczna forma — Opinie.

Oceny

Możliwość włączenia oceny gwiazdkowej dla przejrzystej informacji zwrotnej.

🔒 Ochrona

Wbudowane sprawdzanie za pomocą obrazka ochronnego w celu zapobiegania spamowi.



Ajax ładowanie komentarzy

Ajax ładowanie komentarzy.



Element posiadający klasę "ajax_load_comments" będzie otwierać treść Ajax wewnątrz bloku określonego w atrybucie data-content-block.
ID ładowanej strony jest określone w parametrze data-page-id. Dodatkowo można filtrować komentarze według oceny, przekazując zmienną starrating_quality, np. starrating_quality=5.

Dla komentarzy używane są 4 parametry:
  • hotengine_comments_hotengine_page_id - ID strony.
  • nc - numer strony komentarzy.
  • snc_on_page - liczba komentarzy na stronie (od 1 do 50).
  • hotengine_comments_page_type - typ strony.

Dostępne typy stron (parametr wymagany):
  • page - strony
  • shop_category - kategorie sklepu
  • shop_collection - kolekcje sklepu
  • shop_producer - producenci
  • blog_category - kategoria katalogu artykułów
  • blog_page - artykuł


Możesz używać własnych skryptów, przekazując parametry GET lub POST hotengine_comments_hotengine_page_id i hotengine_comments_page_type, pod adresem /ajax.php. nc - numer strony, snc_on_page - liczba komentarzy na stronie.

Aby uzyskać dane w formacie JSON, wystarczy dodać zmienną GET/POST json.

Ajax ładowanie opinii do produktów

Ajax ładowanie opinii do produktów.



Link posiadający klasę ajax_load_shop_comments będzie otwierać treść Ajax wewnątrz bloku określonego w atrybucie data-content-block.
Ścieżka do ładowanej strony jest określona w parametrze href.

Dla opinii używane są trzy parametry:
hotengine_shop_comments_shop_cat_page_id - ID produktu.
nc - numer strony komentarzy.
snc_on_page - liczba komentarzy na stronie (od 1 do 50).
Ścieżka do strony może być względna lub pełna, z http. Ścieżka powinna być albo ścieżką do produktu, albo można od razu podać ID produktu, dla którego należy załadować opinie.
Możesz także używać własnych skryptów, przekazując parametr GET lub POST hotengine_shop_comments_shop_cat_page_id, z pełnym adresem
produktu (lub ID produktu), pod adresem /ajax.php. nc - numer strony, snc_on_page - liczba komentarzy na stronie. Dodatkowo można filtrować komentarze według oceny, przekazując zmienną starrating_quality, np. starrating_quality=5.

Ponadto możliwe jest użycie bezpośrednich zapytań bez użycia Ajax.
Na przykład do ładowania danych w iframe. Ścieżka jest taka sama jak przy użyciu Ajax.
Skrypty dodawania produktu do koszyka należy ładować dodatkowo, jeśli używasz iframe.

Skrypt ładowania danych w oknie popup:
Skrypt okna popup z ładowaniem treści Ajax
Aby uzyskać dane w formacie JSON, wystarczy dodać zmienną GET/POST json.
Można skonfigurować komentarze dla każdej sekcji indywidualnie lub w ogólnych ustawieniach witryny. Konfiguracja jest dostępna dla kategorii sklepu, producentów, kolekcji, a także dla stron, kart produktów lub artykułów.

Multilanding / Strony dynamiczne

🎯

Multilanding / Strony dynamiczne

Dynamic Content Module

Multilanding — to technologia automatycznej zmiany treści strony w zależności od zapytania kluczowego odwiedzającego, zmiennych ustawionych w reklamie (UTM) lub jego lokalizacji.

🔄 Elastyczna podmiana

Przy dopasowaniu zapytania system zmienia zawartość całych bloków na stronach, w produktach lub elementach menu.

📊 Źródła danych

Używane są frazy wyszukiwania lub zmienne GET, takie jak utm_term w reklamach.

Jak używać Multilanding?

Ustawiasz reguły podmiany tak, aby przy częściowym lub pełnym dopasowaniu słowa kluczowego odwiedzający widział maksymalnie odpowiednią treść. Na przykład, jeśli w URL występuje utm_term=kup_laptop, tytuł i baner na stronie mogą automatycznie zmienić się dla tego zapytania.

Okresy przechowywania danych:
• Informacja o zwykłym źródle przejścia jest przechowywana 24 godziny.
• Dane o przejściach z programu partnerskiego są przechowywane przez 120 dni.
Indywidualne ustawienia Multilanding pozwalają znacząco zwiększyć konwersję ruchu reklamowego dzięki dokładnemu dopasowaniu do oczekiwań użytkownika.

Przykład pracy z Blokiem/Menu

📑

Praca z Blokami i Menu

Layout & Meta Module

Narzędzie Bloki/Menu pozwala elastycznie zarządzać strukturą witryny, od potwierdzenia praw własności w wyszukiwarkach po tworzenie unikalnych elementów projektu.

Weryfikacja

Dodawanie tagów <meta> dla Google Search Console, Yandex.Webmaster i innych usług.

Personalizacja

Tworzenie własnego Header (nagłówek) i Footer (stopka) witryny z użyciem dowolnego kodu HTML.

Przykład potwierdzenia witryny:

  1. Utwórz nowy Blok/Menu w panelu zarządzania.
  2. Wklej kod <meta> dostarczony przez usługę w pole treści.
  3. W ustawieniach wyświetlania wybierz lokalizację w tagach pomocniczych (head).
Automatyczna optymalizacja: Możesz wstawiać JavaScript i CSS bezpośrednio do bloków. System inteligentnie je przetworzy i przekształci w osobne pliki w celu przyspieszenia ładowania stron.

Przykład wspólnego używania kategorii i producentów (kategorii dodatkowych)

📦

Kategorie i Producenci

Store Structure Module

Dla każdego produktu można ustawić główną Rubrykę (kategorię osobistą) i Producenta (kategorię dodatkową). Pozwala to jednemu produktowi znajdować się jednocześnie na różnych listach: na przykład telefon Samsung będzie dostępny zarówno w dziale «Smartfony», jak i w dziale «Samsung».

💡 Elastyczność nazw

Rubrykę «Producent» można przemianować na dowolne odpowiednie dla Ciebie słowo.

📌 Zalecenie

Pierwszą rubrykę nadrzędną zaleca się nazywać «Sklep» (Store).

Tworzenie głównej kategorii:

1. Otwórz edytor kategorii sklepu.
2. Kliknij «Dodaj kategorię», wybierz witrynę i potwierdź.
3. Wprowadź nazwę systemową (URL). Na przykład dla grupy «Sklep» podaj store.

Zarządzanie sekcją Producenci (kategorie dodatkowe) odbywa się w analogiczny sposób.

Filtrowanie przez URL:
Aby pokazać produkty konkretnej rubryki i konkretnego producenta, dodaj zmienną GET producer (ID lub nazwa).
Przykład: /pers_shop/water/?producer=bonaqua — wyświetli produkty z kategorii «water» tylko marki «bonaqua».

Widgety

🧱

Widgety i ShortCodes

Interactive UI Module

«Widget» — to interaktywny blok z danymi do umieszczenia na stronie. Widget można generować za pomocą specjalnego krótkiego kodu («ShortCode»), który może zawierać dodatkowe parametry. Otrzymany kod można wstawić bezpośrednio do tekstu strony lub do «Bloki/Menu».

Konfiguracja widgetu odbywa się w specjalnym interaktywnym bloku zarządzania. Możesz szczegółowo skonfigurować wygląd i zachowanie elementu przed otrzymaniem gotowego kodu do wstawienia.

Dynamika

Treść w widgetach aktualizuje się automatycznie przy zmianie danych w bazie (nowe produkty, artykuły).

📋 Uniwersalność

Ten sam ShortCode można używać w różnych częściach witryny, zachowując jedność stylu.

Generatory widgetów:

📁 Kategorie sklepu

Generowanie listy lub siatki Twoich kategorii.

📦 Produkty sklepu

Slider lub siatki produktów z filtrami.

🏭 Producenci

Wyświetlanie logo i nazw marek.

📝 Artykuły i aktualności

Widget do wyświetlania najnowszych publikacji.

Jak to działa: Przejdź do potrzebnego generatora, skonfiguruj wygląd i skopiuj otrzymany kod typu [MENU:...]. Wstaw go w dowolne miejsce na stronie, gdzie ma pojawić się blok.




Wyszukiwanie na stronie


Wyszukiwanie odbywa się po wysłaniu formularza ze zmienną «search». Typ danych dla wyszukiwania ustawia się za pomocą ścieżki (strony), na którą wysyłany jest formularz. Dla wyszukiwania w «Katalogu produktów» wysyłkę należy wykonać na stronę «/shop/».

Jak dodać formularz wyszukiwania w nagłówku 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">Szukaj</button>
</label></form>
</div>


Kod od razu zawiera mikrodane dla Google. W ścieżce wysyłania formularza (//{HOTENGINE-SC:site_url}/pl/shop/?search={search}) podany jest pl język, możesz go zmienić.

Przykład:


Styl CSS bloku z zastąpieniem przycisku 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{transform: translateY(1px);}

Jeśli zastąpisz ścieżkę /shop/ na /blog/, wyszukiwanie będzie odbywać się po katalogu artykułów.
Nadpisanie value pola input name="search" następuje automatycznie.






Filtr wyszukiwania i Typy produktu (Cechy produktu).

W kartach produktu można określić cechy, które będą dodatkowo wyświetlane w opisie produktu, a także według których później będzie odbywać się wyszukiwanie. W tym celu najpierw utwórz «Typ produktu».

Tworzenie Typu produktu i Cech produktu

Na przykład:
Tworzymy «Typ produktu» – «Buty sportowe».
«Cecha» – określamy kilka pól, «Wybór wielokrotny (Checkbox)» z nazwami: «Kolor», «Przeznaczenie», «Producent».
Po zapisaniu nazw pól, po prawej stronie pojawi się możliwość wypełnienia możliwych wariantów.
Utwó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 Cechy» określ «Typ produktu» i wybierz odpowiednie wartości.


Tworzenie filtru wyszukiwania dla kategorii.


Jeśli potrzebujesz utworzyć filtr wyszukiwania, to w sekcji «Moje bloki/menu» utwórz «Menu funkcjonalne» – «Wyszukiwanie z filtrem według typów produktów».
Ten blok będzie wyświetlany wszędzie, gdzie włączysz jego wyświetlanie.
Aby w określonej kategorii automatycznie rozwijany był odpowiedni typ produktu, w tekście «Bloku funkcjonalnego/menu» należy podać ID odpowiedniego typu produktu, a także dodać tekst «autopath», aby wyszukiwanie odbywało się na tej samej stronie, a nie przechodziło do ogólnego wyszukiwania na stronie.
Na przykład, jeśli ID utworzonego wcześniej typu produktu to 1123, to tekst Bloku/Menu będzie «1123autopath».
Teraz określ ścieżkę, na której wyświetlać blok/menu z filtrem wyszukiwania
«Wprowadź znaki, przy wykryciu których wyświetlać Blok/Menu:»
/category_name/
Gdzie category_name – nazwa kategorii, ścieżka pod którą się znajduje.
Aby ukryć Filtr wyszukiwania podczas przeglądania karty produktu, w punkcie «Wprowadź znaki, przy wykryciu których nie wyświetlać Bloku/Menu:» wpisz
.htm


Przykład filtru wyszukiwania:

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

Aby ukryć pole wyboru Typu produktu, w Edytorze projektu 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.


Do wyświetlania liczby produktów z określonym parametrem można użyć parametru («count») podczas tworzenia Bloku Funkcjonalnego/Menu z filtrem wyszukiwania.
Do ukrywania nieznalezionych cech – «hideempty» (szczegółowo opisano na stronie tworzenia Bloku Funkcjonalnego/Menu).
Aby wyświetlać wybrane przez odwiedzającego wartości filtru 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» w zakładce «Filtr wyszukiwania». Ułatwi ona użytkownikowi dostęp do wybranych wartości do wyszukiwania, co jest szczególnie wygodne podczas przeglądania strony na urządzeniach mobilnych lub ekranach o małej rozdzielczości. Funkcję wystarczy włączyć raz — albo za pomocą parametru «checkedlist» w sekcji «Moje bloki/Menu» – «Filtr wyszukiwania», albo w sekcji «Menu mobilne: Aplikacja» w zakładce «Filtr wyszukiwania».
Demo:
Value1 ×
Value2 ×
Demo 2:
Value 3 ×
Value4 ×

Tworzenie automatycznych opisów.

Przy użyciu typów produktów i cech możesz utworzyć artykuły i wykorzystać je do dodawania do kart produktów. Opisy zostaną dodane w zależności od ustawionych cech produktu lub kategorii. Zarządzanie i szczegółowe instrukcje są dostępne na stronie «Sklep» – «Automatyczne opisy».

Wstawianie filtru wyszukiwania na zwykłej stronie.

Jeśli konieczne jest umieszczenie bloku z filtrem wyszukiwania wewnątrz tekstu strony (opis, artykuł, strona treściowa itd.), użyj następującego shortcodu:
{HOTENGINE-SC:smart_search_widget:PARAM}

Zamiast PARAM podaje się parametry, które kontrolują działanie i wyświetlanie filtru.

Dostępne parametry shortcodu


  • autopath — automatyczne podstawianie ścieżki wysyłania zapytania
  • checkedlist — dodawanie listy wybranych w filtrze wartości u góry strony
  • hide_input — ukrycie pola tekstowego zapytania (można ukryć parametrem lub za pomocą stylów CSS)
  • all — nie uwzględniaj kategorii podczas wyszukiwania
  • child_cat — przeprowadzaj wyszukiwanie we wszystkich podkategoriach
  • count — wyświetlaj liczbę produktów
  • count_all — wyświetlaj liczbę produktów bez uwzględniania kategorii
  • hideempty — ukrywaj parametr, jeśli nie znaleziono dla niego produktów
  • hideempty_all — ukrywaj parametr, jeśli nie znaleziono dla niego produktów (bez uwzględniania kategorii)

Wszystkie ustawienia widżetu filtru wyszukiwania są zgodne z parametrami menu funkcjonalnego «Filtr wyszukiwania».

Format podawania parametrów


Parametry można podawać za pomocą symbolu «|»

Przykład użycia


{HOTENGINE-SC:smart_search_widget:autopath|count_all|hideempty|ID typu produktu|checkedlist|all|hideempty_all|pathurl=/ua/pers_shop/snakers/|}

Wyjaśnienia do przykładu


  • ID typu produktu — podaje się identyfikator typu produktów, dla których ma działać filtr (obowiązkowe)
  • pathurl=/ua/pers_shop/snakers/ — względna ścieżka do kategorii, w której dodatkowo umieszczono blok funkcjonalny menu z filtrem wyszukiwania

Ścieżka /ua/pers_shop/snakers/ jest względną ścieżką do kategorii i służy do prawidłowego tworzenia zapytań i linków.


Przykład funkcji callback po wykonaniu JavaScript

Na stronie używanych jest wiele funkcji, po wykonaniu których może być konieczne uruchomienie własnych skryptów. W tym celu dodaliśmy zestaw funkcji callback, które są wywoływane po wykonaniu skryptów, z wcześniejszym sprawdzeniem ich istnienia.
Na przykład, po dodaniu produktu do koszyka wywoływana jest funkcja 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, należy go utworzyć.

Code: JavaScript
window.callback_hotengine_cart_plus_after = function(){
  // your script
};



Lista niektórych przewidzianych funkcji Callback:

Shop
callback_hotengine_ajax_load_products_list - po załadowaniu listy produktów (funkcja uniwersalna we wszystkich przypadkach ładowania listy produktów skryptem)
callback_hotengine_ajax_load_products - po załadowaniu listy produktów, przyciskiem "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 "kupowane razem z produktem" ($id - ID ładowanych produktów)
callback_hotengine_shop_page_products_synonyms_loading($id) - przed załadowaniem listy "produkty synonimiczne" ($id - ID ładowanych produktów)

Shop / Automatic description
callback_hotengine_shop_autodescription($type) - po wyświetleniu automatycznego opisu ($type - html,ajax)
callback_hotengine_shop_autodescription_readmore($id,$job) - po załadowaniu rozszerzonego tekstu automatycznego opisu ($job - show,hide,load)

Shop / Cart
callback_hotengine_cart_plus - po wysłaniu zapytania o dodanie produktu do koszyka
callback_hotengine_cart_addresult($result,$item_id) - po dodaniu produktu do koszyka, różne warianty wyniku ($result - wartość wyniku. Wartości: "added" - dodany, "removed" - usunięty, "instock_smaller" - stan mniejszy niż dodawana ilość, "instock_smaller_exists" - stan mniejszy niż już dodano do koszyka)
callback_hotengine_cart_plus_after($items_in_cart) - po dodaniu produktu do koszyka ($items_in_cart - liczba produktów w koszyku po wykonaniu)
callback_hotengine_cart_plus_after_boughtwith($ids) - po dodaniu produktu do koszyka przekazywana jest lista "Kupowane razem" w zmiennej $ids
callback_hotengine_cart_plus_after_boughtwith_email($ids) - po dodaniu produktu do koszyka przekazywana jest "Lista do newslettera" w zmiennej $ids (E-mail wysyłka innych produktów)
callback_hotengine_cart_count_product_num - po wyborze produktu do zmiany jego ilości w koszyku
callback_hotengine_cart_error_wrong_num - podano nieprawidłową ilość produktu podczas dodawania do koszyka
callback_hotengine_shop_update_cart_menu - aktualizacja liczby produktów w koszyku (dla menu z koszykiem, np. w menu mobilnym)
callback_hotengine_cart_menu_hover_block - funkcja wykonywana po najechaniu na ikonę koszyka po wyświetleniu jego zawartości

Shop / Variant
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 produktu ($sku - nowy sku)
callback_hotengine_variety_change_skuimage($img) - po wyborze wariantu, jeśli określono nowy obraz ($img - nowa ścieżka do obrazu)
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 inicjalizowana, jeśli nie została utworzona, ponieważ nie zawsze konieczna jest zmiana ilości produktu w magazynie.
callback_hotengine_variety_require() - jeśli nie wybrano wariantu, przed wywołaniem okna dialogowego z komunikatem
callback_hotengine_variety_require_list($href) - jeśli nie wybrano wariantu, przed wywołaniem okna dialogowego z komunikatem, podczas przeglądania listy produktów ($href - link do karty produktu)

Shop / Favorite / Compare
callback_hotengine_favorite_addresult($result,$count_favorite) - po dodaniu produktu do ulubionych, różne warianty wyniku ($result - wartość wyniku. Wartości: "added" - dodany, "removed" - usunięty; $count_favorite - liczba produktów w ulubionych)
callback_hotengine_compare_plus() - po dodaniu produktu do listy porównania

Shop / Search
callback_hotengine_shop_catalog_product_types - po wyborze typu produktu w filtrze wyszukiwania

Shop / Stock
callback_hotengine_shop_product_stock_inform- po wywołaniu okna "Powiadom o dostępności"
callback_hotengine_shop_product_stock_inform_send - po wysłaniu zapytania "Powiadom o dostępności"

Shop / Delivery
callback_hotengine_loading_delivery_type - po wyborze sposobu dostawy
callback_hotengine_loading_delivery_type_finalvalues - po wyborze ostatecznej wartości dostawy

Shop / Storehouse
callback_hotengine_shop_cart_change_storehouse - po wyborze punktu odbioru

User
callback_hotengine_authorize_result($result) - funkcja po autoryzacji użytkownika ($result - wynik wykonania: 2 - błąd loginu lub hasła, 3 - konto zablokowane, 4 - wymagana aktywacja, 5 - aktywacja przebiegła pomyślnie, 6 - nieprawidłowy kod Captcha)

Shop / Sell Statistic
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 do kontaktu zwrotnego (wbudowany formularz kontaktowy)
callback_hotengine_form_loaded - po załadowaniu formularza (Konstruktor formularzy / Okno wyskakujące)
callback_hotengine_form_submit_result($a) - po wysłaniu formularza przez okno dialogowe. $a=0 - błąd. $a=1 - ok.

Mobile
callback_hotengine_mobilemenu_click($a,$href) - kliknięcie linków w menu mobilnym. $a=0 - linki pozycji 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 treści menu mobilnego (do tworzenia efektu pojawiania się). Domyślnie document.getElementById("hotengine-mobile-outer")?.style.setProperty("display", "block");

Przykład
Przykład pojawiania się z prawej strony na lewą.
Code: html
let $element = $("#hotengine-mobile-outer");
let elementWidth = $element.outerWidth();
$element.css({ right: -elementWidth, display: "block" }).animate({ right: 0 }, 500);




Other
callback_hotengine_loadGoogleReviews_after - funkcja podczas ładowania bloku z opiniami Google Place
callback_hotengine_booking_form($a) - funkcja podczas pracy z rezerwacjami. Wartości $a: 2 - przed pobraniem wolnych slotów. 3 - po utworzeniu listy wolnych slotów. 4 - po kliknięciu przycisku wstecz. 4 - pokaż wolne sloty od podanej daty, 6 - rozpoczęcie procesu potwierdzenia rezerwacji. 7 - przed wysłaniem potwierdzenia rezerwacji. 8 - przed wysłaniem potwierdzenia rezerwacji, po utworzeniu listy danych. 9 - przed wysłaniem potwierdzenia wybranego slotu rezerwacji. 10 - wysłanie formularza - potwierdzenie rezerwacji. 1 - wysłanie rezerwacji, wynik.

Gotowe skrypty


Większość rozwiązań możesz zrealizować za pomocą skryptów (JavaScript). Niektóre z nich są opisane na stronie instrukcji, niektóre na stronie ustawień. Dodatkowo możesz znaleźć gotowe rozwiązania na stronie Skrypty do użycia na stronach.

Ukryte dane (Systemowe oznaczenia / Mikrodane)

Specjalne oznaczenia hotengine-marking

Te oznaczenia znajdują się na wszystkich stronach (stronach, sklepie, katalogu artykułów itp.), a także w pozycjach menu, gdzie używana jest lista danych, np. ostatnie artykuły i aktualności.

Te oznaczenia zawierają 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 te są niezbędne w przypadku, gdy chcą Państwo ukryć lub wyświetlić dodatkowe informacje na określonej stronie o konkretnym typie, bądź gdy zachodzi potrzeba wyświetlenia liczby wyświetleń lub daty publikacji materiału (aktualności, artykułu, produktu). Ponadto, po przeprowadzeniu inspekcji danego elementu, można zidentyfikować ID wpisu (strony, artykułu lub produktu), a także inne dodatkowe dane.

Jeśli potrzebujesz jeszcze jakichś danych w oznaczeniach, poinformuj nas o tym.
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-name="slug_url_name" 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">


Ponadto, przy ustawianiu indywidualnych parametrów dostawy, dodawane są dodatkowe atrybuty:
data-hotengine-marking-delivery="xxx"
data-hotengine-marking-delivery_price="xxx"
data-hotengine-marking-delivery_note="xxx"


W przypadku podania wymiarów i wagi produktu dodawane są 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, który sprawdza stronę pod kątem obiektu oznaczeń 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, 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 listy *
  • 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-kolekcja sklepu
  • shop_catalog_category_producer - kategoria-producent sklepu
  • shop_statistic_sale - statystyka sprzedaży
  • shop_catalog_page_cart_bought_with - z produktem kupują (przy przeglądaniu koszyka)
Blog:
  • blog_catalog_page - artykuł
  • blog_catalog_page_incategory - lista artykułów *

* - dla tych obiektów listy atrybuty mikrodanych zostały dodane bez użycia oddzielnego elementu hotengine-marking.

Przykład użycia oznaczeń (Wyświetlanie daty utworzenia rekordu + timeConverter)
Code: html

<script>
(function(){
  function timeConverter(UNIX_timestamp) {
  const metaLang = document.querySelector(`html`);
  let lang = metaLang ? metaLang.getAttribute(`lang`).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.querySelectorAll(`#hotengine-content-page .hotengine-blog-page-list-block, #hotengine-content-blog .hotengine-blog-page-list-block`).forEach(block => {
    const timestamp = block.getAttribute(`data-hotengine-marking-timestamp`);
    if(timestamp){
        const t = timeConverter(timestamp);
        const dateHtml = `
            
${t.day} ${t.month} ${t.year}
`; const contentElem = block.querySelector(`.contenth_i`); if(contentElem){ contentElem.insertAdjacentHTML(`afterbegin`, dateHtml); } } }); })(); </script>

Ten skrypt znajduje element oznaczeń #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 do tagu <HTML> dla użytkowników dodawane jest oznaczenie data-hotengine-marking-userid z ID użytkownika.
Jeśli użytkownik został dodany jako "Klient" z własnym rabatem, dodawana jest również etykieta data-hotengine-marking-user-group-discount z wielkością jego rabatu.

Code: html
<html lang="ru" data-hotengine-marking-userid="USERID" data-hotengine-marking-user-group-discount="-10%">
Gdzie:
ru - język strony
USERID - ID użytkownika
10% - wielkość rabatu klienckiego.


Jeśli użytkownik został dodany do Grupy klientów, dodatkowo podawane jest ID grupy do której należy.
Code: html
<html lang="ru" data-hotengine-marking-userid="XXXXX" data-hotengine-marking-user-group-discount="-20%" data-hotengine-marking-user-group-id="XXXXX">



Przykład dodatkowych oznaczeń w wariancie produktu
Code: html
<ul class="hotengine-shop-product-variety_select" size="1" data-vpid="XXXXX" >
<li value="0" title="Rodzaj" >Rodzaj</li>
<li value="XXXXXX" data-hotengine-variety-disable-add="1" data-hotengine-variety-pricechange="+10" data-hotengine-variety-stockcount="10" class="">Rodzaj 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">Rodzaj 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">Rodzaj 3</li>
</ul>

data-hotengine-variety-disable-add - włącz/wyłącz możliwość dodania wariantu do koszyka (1-zabroń, 0-zezwól). Po kliknięciu na wariant wyłączony z dodawania - nic się nie dzieje, a cena produktu i kod nie ulegają zmianie.

data-hotengine-variety-pricechange - dane o zmianie ceny, możesz ich użyć do stworzenia podświetlenia danych o zmieniającej się cenie (za pomocą javascript).
data-hotengine-variety-stockcount - ilość w magazynie

Klasy CSS dla elementów:
.hotengine-shop-product-variety_hilight - podświetlony obiekt (przy najechaniu myszką).

.hotengine-shop-product-variety_hilight-selected - podświetlony obiekt na który kliknięto (aktywny wariant).

Ponadto, dla wszystkich elementów podrzędnych bloku z wyłączoną funkcją dodawania do koszyka [data-hotengine-variety-disable-add="1"] dodano stylizację odbarwienia i zwykły kursor przy najechaniu.

Przykład etykiety przy zapytaniu wyszukiwania 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=zapytanie wyszukiwania pełny ciąg (+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 przy użyciu filtra wyszukiwania"
data-hotengine-marking-searchresult-num="55">

data-hotengine-marking-searchparam - zapytanie wyszukiwania, można użyć do utworzenia linku do strony z zapytaniem.
data-hotengine-marking-searchresult-num - liczba znalezionych produktów według wprowadzonego zapytania.

Przykład etykiety w kategoriach sklepu
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 dla tego rodzica)
data-hotengine-marking-pers_shop_catalog_page_count - liczba produktów w tej kategorii
data-hotengine-marking-pers_shop_catalog_page_child_count - liczba produktów w tej i podrzędnych podkategoriach
data-hotengine-marking-pers_shop_catalog_category_name - nazwa kategorii.
data-hotengine-marking-pers_shop_catalog_category_id - ID kategorii.
Podobne oznaczenia są używane dla Producentów.

Przykład wyszukiwania etykiety z zapytaniem w sklepie
Code: JavaScript
<script><!--
document.addEventListener("DOMContentLoaded", () => {
    const searchMark = document.querySelector(`.hotengine-marking[data-hotengine-marking-type="shop_catalog_page_incategory_search"]`);
    if (searchMark) {
        const searchQuery = searchMark.getAttribute("data-hotengine-marking-search");
        const input = document.querySelector(`#hotengine-search-searchinput input[name="search"]`);
        if (input && searchQuery) {
            input.value = searchQuery;
        }
    }
});
  //-->
  </script>

data-hotengine-marking-search - zapytanie wyszukiwania Uwaga! To tylko przykład. Przy umieszczaniu bloku wyszukiwania w nagłówku strony wartość pola ustawiana jest automatycznie w momencie renderowania strony.


Ponadto do niektórych bloków strony dodano oznaczenia "data-hotengine-..." z dodatkowymi danymi.
Na przykład data-hotengine-product-images-count - liczba zdjęć produktu.

W koszyku oznaczenia wskazują liczbę produktów, całkowitą wartość i walutę (data-hotengine-cart-count, data-hotengine-cart-total-price, data-hotengine-cart-currency)

Dodatkowe oznaczenia «data-» są zaimplementowane bezpośrednio w elementach znaczników, na przykład element class="hotengine-categories-list-block" (blok ikony kategorii) może zawierać oznaczenia: data-image="1" - wskazano obrazek do kategorii, data-child-cat="7" - liczba podkategorii, data-child-items="5114" - liczba produktów we wszystkich kategoriach wewnętrznych, a także liczba 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 statystyce sprzedaży, przy oddzielnym przeglądaniu zamówienia również występują mikrodane.

Przykład sprawdzania obecności elementu oznaczeń
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 produktów w sklepie z przykładem

Skorzystaj z linku do automatycznego utworzenia menu funkcjonalnego «Sortowanie» lub wypełnij Blok/Menu według instrukcji Skrypt menu funkcjonalnego «Sortowanie».

Instrukcja zmiany komunikatu o nie wybranej odmianie

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

Ponadto, przed wyświetleniem komunikatu, wywoływana jest funkcja callback callback_hotengine_variety_require.
Podczas przeglądania listy produktów, przed wyświetleniem komunikatu, wywoływana jest funkcja callback callback_hotengine_variety_require_list($href), gdzie jako $href przekazywany jest link do karty produktu.

Przykład funkcji z oknem dialogowym, która jest używana domyślnie i może być zmieniona:
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: (id) => {
                setTimeout(() => {
                   const m = document.getElementById(id);
                   if (m && m.getAttribute("aria-hidden") === "true") m.remove();
                }, 500);
                }
});
  
  return false; 
  }

 </script>



W parametrach produktu można określić tytuł nad listą odmian. Długość tytułu jest dodawana w postaci klasy CSS. Na przykład, jeśli tytuł "Wybierz wagę", to jego długość wynosi 24 znaki. Odpowiednio podawana jest klasa hotengine-shop-product-variety-title_24. Możesz użyć tekstu lub długości tytułu 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: (id) => {
                setTimeout(() => {
                   const m = document.getElementById(id);
                   if (m && m.getAttribute("aria-hidden") === "true") m.remove();
                }, 500);
                }
});
  
  return false; 
  }


</script>
Analogiczna funkcja przy przeglądaniu listy produktów, callback_hotengine_variety_require_list($href), jest uzupełniona linkiem do karty produktu i odpowiednio może być wykorzystana w wyświetlanym oknie dialogowym.

Instrukcja dodawania linku do opinii / rating w produktach


Aby utworzyć link do ikon Oceny na liście produktów, należy znaleźć wszystkie elementy listy i dodać link wokół elementów oceny.
Ponadto, po załadowaniu listy produktów w sliderze lub przyciskiem "Pokaż więcej", należy ponownie dodać link (callback_hotengine_ajax_load_products i callback_hotengine_shop_products_list_div_button).
Code: JavaScript
<script>
  <!-- 


window.callback_hotengine_shop_products_list_div_button = function(){
    const blocks = document.querySelectorAll(`.hotengine-shop-product-list-block .hotengine-shop-product-rating-block`);
    blocks.forEach(block => {
        if(block.parentElement && block.parentElement.classList.contains(`hotengine-shop-product-rating-block-url`)) return;
        const parent = block.parentElement;
        if(!parent) return;
        const readMore = parent.querySelector(`.hotengine-shop-product-read_more a`);
        if(!readMore) return;
        const url = readMore.getAttribute(`href`);
        if(!url) return;
        const a = document.createElement(`a`);
        a.className = `hotengine-shop-product-rating-block-url`;
        a.href = `${url}#tabs-review`;
        parent.insertBefore(a, block);
        a.appendChild(block);
    });
};

window.callback_hotengine_ajax_load_products = function(){
    const blocks = document.querySelectorAll(`.hotengine-shop-products-list-content-append .hotengine-shop-product-list-block .hotengine-shop-product-rating-block`);
    blocks.forEach(block => {
        if(block.parentElement && block.parentElement.classList.contains(`hotengine-shop-product-rating-block-url`)) return;
        const parent = block.parentElement;
        if(!parent) return;
        const readMore = parent.querySelector(`.hotengine-shop-product-read_more a`);
        if(!readMore) return;
        const url = readMore.getAttribute(`href`);
        if(!url) return;
        const a = document.createElement(`a`);
        a.className = `hotengine-shop-product-rating-block-url`;
        a.href = `${url}#tabs-review`;
        parent.insertBefore(a, block);
        a.appendChild(block);
    });
};

window.callback_hotengine_shop_products_list_div_button = function(){
    const blocks = document.querySelectorAll(`.hotengine-shop-products-list-content .hotengine-shop-product-list-block .hotengine-shop-product-rating-block`);
    blocks.forEach(block => {
        if(block.parentElement && block.parentElement.classList.contains(`hotengine-shop-product-rating-block-url`)) return;
        const parent = block.parentElement;
        if(!parent) return;
        const readMore = parent.querySelector(`.hotengine-shop-product-read_more a`);
        if(!readMore) return;
        const url = readMore.getAttribute(`href`);
        if(!url) return;
        const a = document.createElement(`a`);
        a.className = `hotengine-shop-product-rating-block-url`;
        a.href = `${url}#tabs-review`;
        parent.insertBefore(a, block);
        a.appendChild(block);
    });
};
 
-->
  </script>



Dla obiektu linku należy ustawić pozycję, na przykład 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 bloki w koszyku: Jeśli produkt ma ustawioną 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żna zmienić przez style CSS, content).
.hotengine-shop-product-price_bulk_inform_block - blok z informacją o rabacie
.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żna zmienić poprzez style CSS, content).
.hotengine-shop-product-price_sale_inform_block - blok z informacją o rabacie
.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 nie jest równa zero)


ShortCode (autozamiana danych)

ShortCode (autozamiana danych)

Na wszystkich stronach i Blokach/Menu możliwa jest automatyczna zamiana kodu na dane statyczne.
Każda strona ma unikalne dane, na przykład może to być ID strony (artykułu, produktu, strony).

Poniżej znajduje się lista głownych danych do autozamiany.


{HOTENGINE-SC:current_page_id} - ID bieżącej strony (artykułu, strony, produktu, newsa)
{HOTENGINE-SC:site_url} - URL Twojej strony (adres)
{HOTENGINE-SC:lang} - Język otwartej strony
{HOTENGINE-SC:site_tagline} - Slogan strony
{HOTENGINE-SC:contacts} - Blok z kontaktami
{HOTENGINE-SC:slide_menu_widget:XX} - Blok z widgetem Slide Menu
{HOTENGINE-SC:slider_widget:XX} - Blok z widgetem Slider
{HOTENGINE-SC:smart_search_widget:PARAM} - Blok z widgetem Filtr wyszukiwania
{HOTENGINE-SC:main_menu_widget} - menu główne
{HOTENGINE-SC:langmenu} - przełączanie języka

{HOTENGINE-SC:user_nickname} - Nazwa użytkownika (jeśli zalogowany)
{HOTENGINE-SC:user_id} - ID użytkownika (jeśli zalogowany)
{HOTENGINE-SC:user_login} - Login użytkownika (jeśli zalogowany)
{HOTENGINE-SC:user_discount} - Rabat użytkownika
{HOTENGINE-SC:user_cashback} - Saldo cashback
{HOTENGINE-SC:user_group_id} - ID grupy użytkownika

{HOTENGINE-SC:shop_cart_menu} - koszyk z towarem (Blok/Menu Koszyk)
{HOTENGINE-SC:favorites} - link do ulubionych produktów
{HOTENGINE-SC:shop_compare_menu} - porównanie produktów
{HOTENGINE-SC:shop_cat_page_image} - Ścieżka do obrazu produktu (jeśli otwarta jest strona produktu)
{HOTENGINE-SC:shop_cat_page_id} - ID produktu (jeśli otwarta jest strona produktu). Można też użyć {HOTENGINE-SC:current_page_id}
{HOTENGINE-SC:shop_cat_page_name} - «Slug URL» nazwa strony dla linku przyjaznego (SEO).
{HOTENGINE-SC:shop_cat_page_sku} - Kod produktu (jeśli otwarta jest strona produktu)
{HOTENGINE-SC:shop_cat_page_currency} - Waluta produktu (skrócona) (jeśli otwarta jest strona produktu)
{HOTENGINE-SC:shop_cat_page_currency_iso} - Waluta produktu (ISO) (jeśli otwarta jest strona produktu)
{HOTENGINE-SC:shop_cat_page_price} - Cena produktu (jeśli otwarta jest strona produktu)
{HOTENGINE-SC:shop_cat_page_title} - Nazwa produktu
{HOTENGINE-SC:shop_cat_page_video} - Video URL (link do wideo)

{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 producenta (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 kategorii kolekcji (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 przycisku na liście podkategorii)
{HOTENGINE-SC:blog_cat_page_id} - ID artykułu (tylko w katalogu artykułów)
{HOTENGINE-SC:blog_cat_page_name} - «Slug URL» nazwa strony dla linku przyjaznego (SEO).
{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)




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


Lub możesz użyć tego kodu do tworzenia Meta danych dla sieci społecznościowych (np. 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 tworzenia linku do profilu zalogowanego użytkownika:
Code: html
https://boostore.pro/{HOTENGINE-SC:lang}/users.php?p=user_profile&action=userprofile&userid={HOTENGINE-SC:user_id}



 

Eksport XML/RSS/YML

Eksport XML dostępny na Twojej stronie

System obsługuje automatyczne generowanie feedów w różnych formatach. Możesz używać zarówno skróconych wersji do szybkiej indeksacji, jak i maksymalnie rozszerzonych danych, obejmujących cechy produktów, atrybuty i wielojęzyczne opisy.

Obsługiwane formaty i platformy:

  • Sitemap.xml – mapa strony dla Google i Bing, zapewniająca szybką indeksację.
  • Google Merchant Center – feedy XML dla Google Shopping i dynamicznego remarketingu.
  • Yandex Market – standard XML (YML) dla sieci reklamowych.
  • Hotline.ua – specjalistyczny cennik z obsługą narzutów do zarządzania marżą.
  • Rozetka.ua – plik XML dostosowany do wymagań marketplace z obsługą wyjątków cenowych.
  • Prom.ua – feed z inteligentną wielojęzycznością: automatyczne łączenie opisów (UA/PL) w jednym pliku zgodnie ze specyfikacją portalu.
  • Epicentr (Epicentrk.ua) – dostosowany feed XML z uwzględnieniem standardów treści marketplace.
  • JSON / CSV Price – uniwersalne formaty do integracji i pracy w Excelu.

Generator i aktualna lista linków dostępna w panelu administracyjnym: «XML/CSV/XLS/JSON».

Elastyczna konfiguracja (Filtrowanie i Sortowanie):

Dodając parametry GET do linku, możesz dynamicznie zmieniać zawartość eksportu:

Parametr Opis
producer ID producenta (można kilka po przecinku).
price_from / price_to Filtr według zakresu cen «od» i «do».
pers_shop_cat_page_catid ID kategorii sklepu (obsługa wielu gałęzi).
stock Status dostępności (tylko w magazynie / wszystkie produkty).
sort_instock_priority Priorytet: produkty dostępne przesuwane na początek listy.
sort_by / order_by Kierunek i pole sortowania danych.

Przykład linku: https://twoja-strona.com/export.xml?producer=10&price_from=500&stock=1

Wszystkie warianty dostępnych wartości i kreator linków znajdują się na stronie «Eksport XML/CSV/XLS/JSON».


Narzuty formułowe

W systemie zaimplementowano możliwość automatycznego obliczania cen według formuł. Zarządzanie marżą dostępne jest na trzech poziomach:

  • Globalnie dla eksportu: Parametr «Dodatkowa narzuta» pozwala ustawić ogólny procent do ceny bazowej produktu bezpośrednio przy tworzeniu linku do feeda.
  • Dla każdej kategorii: W ustawieniach konkretnej kategorii sklepu można określić indywidualną narzutę, która będzie stosowana tylko do produktów tej grupy. Ustawienia pozwalają elastycznie określać różne procenty dla każdej platformy osobno (własna narzuta dla Rozetka, własna dla Prom.ua, własna dla Epicentrk.ua itd.).
  • Indywidualnie w produkcie: W każdej karcie produktu dostępny jest parametr «Narzuta w eksporcie», który pozwala wymusić wyłączenie obliczeń dla konkretnej pozycji:

Warianty wyjątków:

  • Wł. – do produktu stosowane są wszystkie aktywne narzuty (eksport + kategorie).
  • Wył.: Bez narzutów – całkowite ignorowanie narzutów. Do pliku przekazywana jest oryginalna cena strony bez narzutów.
  • Bez narzuty Rozetka / Prom / Epicentr – punktowe wyłączenie narzutów tylko dla konkretnego marketplace.
  • Bez narzuty formułowej – wyłączenie automatycznych reguł przeliczania dla tej pozycji.

Jest to niezwykle przydatne do kontroli cen produktów ze stałą ceną detaliczną (MSRP), gdzie automatyczne podwyższanie ceny jest niedopuszczalne.



Domeny/Domain

Parkowanie domeny

Możesz bezpłatnie podłączyć swoją własną domenę pierwszego poziomu (np.: example.com). W tym celu podaj nasze serwery NS w ustawieniach swojej domeny:

Główne serwery NS zalecane
FRIDA.NS.CLOUDFLARE.COM
JAIME.NS.CLOUDFLARE.COM
DLA DOMEN .UA (.PP.UA, .IN.UA, .OD.UA, .COM.UA I IN.):
JULISSA.NS.CLOUDFLARE.COM
FATTOUCHE.NS.CLOUDFLARE.COM
Lub użyj
NS1.BOOSTORE.PRO
NS2.BOOSTORE.PRO
IP dla rekordu A
88.218.28.193

Po konfiguracji skontaktuj się z nami przez formularz kontaktowy. Podaj swoją stronę i adres nowej domeny.

* — Nie sprzedajemy domen. Aby podłączyć własną domenę, należy ją kupić u rejestratora.
Domeny w strefie .RU nie są obecnie obsługiwane.

SSL/HTTPS

SSL

SSL — to skrót od Secure Socket Layer — to standardowa technologia bezpieczeństwa internetowego, która jest używana do zapewnienia szyfrowanego połączenia pomiędzy serwerem WWW (stroną) a przeglądarką. Certyfikat SSL pozwala nam używać protokołu HTTPS (po podłączeniu certyfikatu SSL Twoja strona będzie otwierana nie przez HTTP, ale przez protokół HTTPS).


Co to jest HTTPS?

HTTPS (Hypertext Transport Protocol Secure) – to protokół zapewniający bezpieczeństwo i poufność podczas wymiany informacji pomiędzy stroną a urządzeniem użytkownika. Odwiedzający stronę oczekują, że podane przez nich dane nie trafią w ręce oszustów. Aby chronić dane, które odwiedzający pozostawiają na Twojej stronie, zacznij stosować protokół HTTPS.



Jak podłączyć certyfikat SSL


Możesz podłączyć nasz certyfikat SSL podczas płatności za hosting, zaznaczając pole «Certyfikat SSL».

Ponadto możesz podłączyć certyfikat SSL dla swojej domeny, uprzednio kupiąc go u dowolnego rejestratora. Koszt podłączenia i używania Twojego certyfikatu wynosi 1$ miesięcznie (minimalny okres płatności — 12 mies.).

Dla sklepu internetowego wystarczy certyfikat Comodo Positive SSL.

Opłać podłączenie SSL.


Poczta/E-mail

Tworzenie skrzynek pocztowych na domenie

Po podłączeniu domeny możesz korzystać z poczty z adresem Twojej strony, np. mail@example.com.
Możesz podłączyć do swojej domeny serwis pocztowy Google.com, Zoho.com i inne.


Podłączenie poczty firmowej na Zoho.eu

1

Zarejestruj się na zoho.eu/mail

2

Wybierz plan taryfowy (np. 5GB — FREE, bezpłatny).

3

Dodaj swoją domenę. Do weryfikacji utwórz CNAME lub TXT rekord w DNS. Możesz przesłać te dane nam do konfiguracji lub wskazać je samodzielnie (zalecane przesłanie obu wariantów).

4

Dodaj rekordy MX (nazwa hosta: @ lub puste). Wartości podane poniżej:

Host / Domain Value / Address Priority
@ / Blank mx.zoho.eu. 10
@ / Blank mx2.zoho.eu. 20
@ / Blank mx3.zoho.eu. 50
5

W rekordach DNS utwórz TXT rekord (SPF):
v=spf1 ip4:88.218.28.193 include:zoho.eu ~all

6

Zalecane jest skonfigurowanie DKIM Signature.

7

Utwórz adresy pocztowe i użytkowników w panelu Zoho.

8

Skonfiguruj wysyłanie przez SMTP w panelu administracyjnym strony:

Wariant 1 (SSL)
  • Server: smtp.zoho.eu
  • Port: 465
  • Security: SSL
Wariant 2 (TLS)
  • Server: smtp.zoho.eu
  • Port: 587
  • Security: TLS

Ustawienia SMTP

Możesz używać własnego serwera SMTP (ZALECANE) do wysyłania poczty ze swojej strony. W tym celu przejdź do Ustawienia, w zakładkę "Poczta" i podaj parametry serwera SMTP.

Powiadomienia

Viber Bot

Powiadomienia w Viber

Możesz włączyć powiadomienia o nowych wiadomościach i zamówieniach ze strony. Zwróć uwagę, że w Viber dostępne jest tylko otrzymywanie powiadomień (zarządzanie statusami zamówień przez ten kanał nie jest wspierane).

Aby podłączyć: należy wysłać boostore_viber_key (gdzie key to Twój klucz) na publiczne konto: viber.com/hotlistbiz.

Możesz udostępnić ten klucz i używać go z różnych urządzeń z Viber.
📍 Ustawienia strony Klucz można ustawić w «Ustawieniach», w zakładce «Powiadomienia».
📝 Edytor formularzy Można użyć klucza dla Formularzy, który podany jest w «Edytorze formularzy».
Aby wyłączyć powiadomienia, należy usunąć konkretnego odbiorcę, zmienić klucze lub wysłać DISABLE hotlist_key (gdzie key to Twój klucz strony lub formularza) w Viber.

Telegram Bot

Powiadomienia i zarządzanie w Telegram

Możesz włączyć powiadomienia o nowych wiadomościach i zamówieniach ze strony. Bot Telegram pozwala nie tylko otrzymywać informacje, ale także zarządzać statusami zamówień, statusami dostawy i płatności bezpośrednio z komunikatora.

Aby podłączyć: należy wysłać boostore_telegram_key (gdzie key to Twój klucz) botowi: @BooStorePro_bot.

Możesz udostępnić ten klucz i używać go z różnych urządzeń z Telegram.
📍 Ustawienia strony Klucz można ustawić w «Ustawieniach», w zakładce «Powiadomienia».
📝 Edytor formularzy Można użyć klucza dla Formularzy, który podany jest w «Edytorze formularzy».
Aby wyłączyć powiadomienia, należy usunąć konkretnego odbiorcę, zmienić klucze lub wysłać DISABLE hotlist_key (gdzie key to Twój klucz strony lub formularza) w Telegram.

Push-powiadomienia

Push-powiadomienia w przeglądarce

Push-powiadomienia to krótkie wiadomości, które pojawiają się na ekranie (komputera lub telefonu), nawet jeśli strona boostore.pro jest zamknięta. Pomagają natychmiast dowiedzieć się o krytycznie ważnych zdarzeniach bez sprawdzania poczty.

Możliwości Push-powiadomień:
  • Natychmiastowe wiadomości o nowych zamówieniach i pytaniach klientów.
  • Kontrola importu: powiadomienia o zakończeniu procesu importu produktów z Excel, Arkuszy Google lub schowka.
  • Powiadomienia systemowe: informacje o pracach technicznych, wygaśnięciu SSL lub salda.
Aby podłączyć, przejdź do «Ustawień», do zakładki «Powiadomień» i postępuj zgodnie z instrukcjami krok po kroku, aby aktywować subskrypcję w przeglądarce.


Języki

Wielojęzyczność i wyszukiwarki

Jeśli masz kilka wersji strony w różnych językach lub dla różnych regionów, pomóż Google je zidentyfikować. Wtedy w wynikach wyszukiwania zostaną przedstawione te wersje Twoich stron, które najlepiej odpowiadają językowi i regionowi użytkownika.
Jednym ze sposobów realizacji wielojęzycznych stron jest tag z atrybutem hreflang. Przykład takiego tagu:
<link rel="alternate" hreflang="lang_code" href="url_of_page" />

Na różnych stronach witryny (kategoriach, stronach, artykułach, kartach produktów i innych) zaimplementowano funkcję wielojęzyczności. Na przykład, jeśli dodałeś kartę produktu w języku angielskim, białoruskim, rosyjskim i ukraińskim, wystarczy we wszystkich kartach produktów w polu «Produkt w innych językach» podać tę samą wartość, na przykład - «1». W takim przypadku, przy otwarciu strony w jednym z języków, zostaną dodane tagi hreflang z linkami do stron w innych językach. Zaleca się używanie ID pierwszej karty produktu, aby uniknąć duplikowania wartości i późniejszych błędów. Na przykład, jeśli dodałeś produkt «Buty sportowe» z ID «12345», to dodając podobny produkt w języku angielskim, wskaż w punkcie «Produkt w innych językach» - «12345».

Główny wybrany język witryny zostanie oznaczony dodatkowym tagiem hreflang="x-default".

Jak utworzyć wielojęzyczną stronę?

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, ID pierwszej utworzonej strony. W ten sam sposób wypełniaj artykuły i karty produktu. Strona 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 strony, który możesz wskazać w sekcji «Ustawienia», «Strona startowa»).

Do tworzenia kategorii katalogu artykułów lub sklepu zalecamy używanie prefiksu języka. Na przykład kategorię «dress» można utworzyć w innych językach, używając prefiksu «dress_ua», «dress_de», «dress_fr»…  
Używanie tej samej ścieżki do kategorii w innych językach jest możliwe, ale przy imporcie danych, na przykład produktu, mogą wystąpić błędy, ponieważ platforma nie będzie w stanie rozpoznać języka kategorii, do której jest dodawany. Dlatego zalecamy używanie prefiksów w sekcjach z kategoriami, katalogu artykułów i sklepie internetowym. Przy użyciu prefiksów językowych jak opisano powyżej, zmienna «Kategoria w innych językach» zostanie ustawiona automatycznie.

Przy tworzeniu kart produktu, «Kod produktu» musi być unikalny, dlatego w innym języku można użyć na przykład własnych końcówek «SKU/CODE_EN». Jeśli określony jest «Produkt w innym języku», to przy zmianie danych podstawowych (koszt, dostępność, nowość, hit sprzedaży, dostęp), zostaną zaktualizowane wszystkie karty produktu wskazane jako alternatywna wersja głównego produktu.
«Filtr wyszukiwania» i «Bloki/menu» można używać jednocześnie dla wszystkich języków i osobno określić język, na którym go wyświetlać. Na przykład, utwórz «Bloki/menu», nagłówek strony i umieść na wszystkich stronach, podając język «Rosyjski (ru)». Taki blok będzie wyświetlany wszędzie, tylko jeśli otwarta jest rosyjska wersja strony. W ten sam sposób można utworzyć nagłówek dla innych języków. Jeśli potrzebujesz umieścić jakiś kod, nie musisz tworzyć takich «Bloków/menu» dla każdego języka, wystarczy określić język «All (Wszystkie)», a blok będzie wyświetlany niezależnie od języka wybranego przez odwiedzającego.
Prefiks języka na platformie BooStore.pro jest podawany na początku, na przykład «/pl/page.htm».

Szybkie tłumaczenie katalogu produktów na stronie

Do szybkiego tłumaczenia sklepu możesz użyć importu/eksportu przez CSV/XLS, a także usługi Google Translate dla dokumentów.

Kategorie sklepu


Wyeksportuj «Kategorie sklepu». Zastąp wartość «POPRZEDNIEGO» języka w komórce język, na wartość «NOWEGO» języka, a także wykonaj tłumaczenie nazw i opisów (na przykład za pomocą usługi Google Translate dla dokumentów, wcześniej zapisując plik w XLSX). Przy tym «Język» wszystkich podrzędnych kategorii będzie taki sam, jak język kategorii głównej, do której są dodawane. Dlatego dla kategorii głównej (której rodzicem jest «main») ważne jest zastąpienie wartości komórki «Język» na «NOWY JĘZYK». Aby uniknąć możliwych błędów przy późniejszym imporcie produktów, zalecamy używanie unikalnych nazw lub dodawanie do «nazwy» nowych kategorii «_NOWYJĘZYK». Na przykład «category_en», gdzie «en» to nowy dodawany język.

Przed wykonaniem importu należy zapisać plik w formacie «XLS» lub «CSV». Po wykonaniu importu sprawdź, czy język nowych kategorii jest odpowiedni. Jeśli z jakiegoś powodu podano nieprawidłowy język, zastąp język kategorii głównej swojego katalogu, do której są dodane, w sekcji «Sklep» - «Kategorie sklepu». Dla wszystkich podrzędnych podkategorii język również zostanie zastąpiony. Jeśli kategorii nie jest dużo, można skopiować kategorie, zastępując w nich język i nazwę, w sekcji «Sklep» - «Kategorie sklepu».


Dodawanie produktów

Wykonaj eksport produktów w sekcji «Sklep» - «Eksport produktów». Zaznacz pole «Wyeksportuj wszystko». Odznacz pole «Nie eksportuj produktów, których nie ma w magazynie», a także zaznacz pole «Eksportuj kategorie bez transliteracji» - w celu uproszczenia doboru kategorii tłumaczonych produktów. Wykonaj tłumaczenie pliku za pomocą usługi Google Translate dla dokumentów, wcześniej zapisując plik w XLSX. Za pomocą formuł dodaj do kategorii «_język» lub zastąp ich nazwy na nowo utworzone kategorie. Przenieś wartości kolumny «ID» do kolumny «Produkty w innych językach». Koniecznie usuń wartości dla kolumny «ID», aby nie nadpisać istniejących produktów. A także zastąp «Kod produktu», na przykład analogicznie dodając «_język» za pomocą formuł, ponieważ produkty z podobnym «ID» lub «Kodem produktu» zostaną nadpisane.
Wykonaj import w sekcji «Sklep» - «Import produktów». Szybko wypełnić zgodność komórek możesz, klikając «Pola z pliku, wskaż zgodność» - «Wypełnij wybór pól zgodnie z plikiem eksportu (pola «Wyeksportuj wszystko»)».

Ponadto, aby utworzyć poprawną strukturę dla wyszukiwarek, a także przekierowania między produktami w różnych językach, w produktach głównego języka wykonaj eksport i ponowny import, kopiując wartość komórki «ID» do kolumny «Produkty w innych językach». (Przy tym można zaimportować tylko jedną komórkę «Produkt w innych językach» i podać ID lub «Kod produktu», po których zostaną znalezione produkty do nadpisania). W ten sposób zarówno nowe, jak i wcześniej utworzone produkty będą miać identyczne wartości «Produkt w innych językach».

Wielojęzyczność i menu wyboru języka

Możesz umieścić krótki kod {HOTENGINE-SC:langmenu} i określić w ustawieniach strony listę dostępnych języków lub umieścić kod z przykładu poniżej.
Kod z przykładu poniżej tworzy przycisk przejścia na alternatywne języki, przy czym jeśli do strony/artykułu/karty produktu określona jest alternatywna wersja językowa, to zostanie ona wykorzystana.


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



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

Style CSS:
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 li{ 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[lang="ru"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="ru"]:after { content: "RU"; }

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

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

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

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="es"]:after,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/*LANGUAGE BLOCK*/

Plik podstawiający ścieżki w linkach (z link[rel="alternate"]):
Code: JavaScript
<script src="/templates/scripts/hotengine-script-language.js"></script>

Zawartość pliku

Zmiana elementów tekstowych na stronie

Wielojęzyczność i zamiana standardowych napisów

Większość napisów i elementów na stronie jest wyświetlana za pomocą pseudoelementów CSS. Na przykład element z klasą .hotengine-form-feedback-yourname-title ma pseudoelement z tekstem.
Tekst jest rozdzielany za pomocą atrybutu lang elementu nadrzędnego html.

Przykład:
Code: CSS

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



Pliki z tłumaczeniem standardowych wartości


Jak można przetłumaczyć całą stronę?

Tworząc wielojęzyczną stronę, wskaż język w tworzonej treści (stronie, menu, kategorii...).

Używaj ścieżek z określeniem języka na początku:

/ua/ /ru/ /en/ /pl/ /kk/ /be/ ...

Główny język: jest wskazywany przy rejestracji (zmieniany w «Ustawienia» → «Języki i strona startowa»).

Produkty: język jest określany automatycznie na podstawie kategorii, do której dodawany jest produkt.

Większość elementów na stronie możesz zastąpić za pomocą stylów CSS i pseudoelementów.

Napisy o ilości produktów

:lang(ru).hotengine-shop-product-price_for-lang-1::after { content: "за 1 szt"; }

Zastępuj lang-1 (gdzie 1 — wybrana jednostka miary) i (ru) — kod języka.

Lista wartości jednostek miary:

  • 1 1 szt
  • 2 100 szt
  • 3 1000 szt
  • 4 za 1 opakowanie
  • 5 1 kg
  • 6 1000 kg
  • 7 1 m²
  • 8 za 1 metr
  • 9 za 1 km
  • 10 za komplet
  • 11 za 1 godzinę
  • 12 za 1 dzień
  • 13 za 1 miesiąc
  • 14 za 1 rok
  • 15 za 1 ar
  • 16 za Akr
  • 17 za Hektar
  • 18 za działkę
  • 19 za obiekt
  • 30 za 1 ml
  • 31 za 1 l
  • 32 za 1 km³
  • 33 za 1 m³
  • 34 za 1 dm³
  • 35 za 1 cm³
  • 36 za 1 mm³
  • 37 za 1 hl
  • 38 za 100 gram
  • 39 1 funt
  • 40 za 1 gram
  • 41 za 10 kg
  • 42 za 1 cetnar
  • 43 za 1 tona
  • 44 za 1 ar
  • 45 za 1 para
  • 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 samochód
  • 55 za 1 m.b.

Tłumaczenie przycisków za pomocą JavaScript

Niektóre elementy są zaimplementowane bez pseudoklas i elementów CSS. Na przykład taki element jak przycisk "Wyślij" w koszyku. Do tłumaczenia takiego elementu można użyć JavaScript.
Code: JavaScript
<script>
(function() {
    const init = () => {
        const submitBtn = document.querySelector(`#hotengine-shop-cart-form .hotengine-form-submit input[type="submit"]`);
        if (submitBtn) {
            submitBtn.value = `Wyślij zamówienie`;
        }
    };

    if (document.readyState === `loading`) {
        document.addEventListener(`DOMContentLoaded`, init);
    } else {
        init();
    }
})();
</script>

Więcej szczegółów ...
Na przykład w tym przypadku zmieniamy tekst przycisku wysyłania formularza. Kod należy umieścić na stronie, gdzie znajduje się przycisk. W tym celu należy utworzyć funkcjonalną stronę - Koszyk. I wstawić podany w przykładzie kod w tekst strony.

Tłumaczenie filtra wyszukiwania

Możesz użyć jednego filtra wyszukiwania dla wielu języków. Uprości to proces importu/eksportu produktów i wypełniania witryny.
Tłumaczenie odbywa się za pomocą narzędzia Tłumaczenie wartości charakterystyk.

Możesz również wykonać tłumaczenie za pomocą JavaScript. Jednak przy takim tłumaczeniu eksport XML charakterystyk na MarketPlac'e będzie w jednym języku.
Na przykład, rozważmy tłumaczenie z Angielskiego na Rosyjski.
Pokaż

Utwórz «Blok/Menu» i umieść go na stronach, gdzie włączony jest filtr wyszukiwania.
Na przykład w punkcie «Wprowadź znaki, przy wykryciu których wyświetlać Blok/Menu:» wskaż:
/ua/shop/
/ua/pers_shop/

Przykład tłumaczenia wierszy oraz przycisku «Zastosuj».
Code: JavaScript
<script>
(function() {
  const $dict = {
    "Color": "Колір",
    "Blue": "Синій",
    "Green": "Зелений",
    "Black": "Чорний"
  };

  /*
  Example translations:
  RU: "Color": "Цвет", "Blue": "Синий", "Green": "Зеленый", "Black": "Черный"
  UA: "Color": "Колір", "Blue": "Синій", "Green": "Зелений", "Black": "Чорний"
  PL: "Color": "Kolor", "Blue": "Niebieski", "Green": "Zielony", "Black": "Czarny"
  */

  const applyTranslations = () => {
    Object.entries($dict).forEach(([txtorig, txtnew]) => {
      const selectors = [
        `#shop_catalog_product_types_id_ajax .product_types_valuebox_checkbox span`,
        `#shop_catalog_product_types_id_ajax .shop_catalog_product_types_block_title`,
        `.shop_catalog_product_properties_block .shop_catalog_product_types_block_title`,
        `.shop_catalog_product_properties_block .product_types_valuebox_checkbox`
      ];

      selectors.forEach(selector => {
        document.querySelectorAll(selector).forEach(el => {
          if (el.textContent.includes(txtorig)) {
            el.innerHTML = txtnew;
          }
        });
      });
    });
  };

  applyTranslations();

  const target = document.getElementById(`shop_catalog_product_types_id_ajax`);
  if (target) {
    const observer = new MutationObserver(() => {
      observer.disconnect();
      applyTranslations();
      observer.observe(target, { childList: true, subtree: true });
    });
    observer.observe(target, { childList: true, subtree: true });
  }

  setTimeout(() => {
    const smartSearchInput = document.querySelector(`.hotengine-smart_search_submit_button input`);
    if (smartSearchInput) smartSearchInput.value = "Застосувати";

    const searchInpButton = document.querySelector(`#searchinp_smart_search .button`);
    if (searchInpButton) searchInpButton.value = "Застосувати";
  }, 100);
})();
  </script>


Przykład tłumaczenia z nadpisywaniem słów:
Code: JavaScript
<script>
 (function() {
  const $dict = {
    "Colour": "Farbe",
    "Blue": "Blau",
    "Green": "Grün",
    "Black": "Schwarz"
  };

  /*
  Example translations:
  RU: "Colour": "Цвет", "Blue": "Синий", "Green": "Зеленый", "Black": "Черный"
  UA: "Colour": "Колір", "Blue": "Синій", "Green": "Зелений", "Black": "Чорний"
  PL: "Colour": "Kolor", "Blue": "Niebieski", "Green": "Zielony", "Black": "Czarny"
  */

  const applyTranslations = (container) => {
    Object.entries($dict).forEach(([txtorig, txtnew]) => {
      const regex = new RegExp(txtorig, "g");
      if (container.innerHTML.includes(txtorig)) {
        container.innerHTML = container.innerHTML.replace(regex, txtnew);
      }
    });
  };

  const target = document.getElementById(`shop_catalog_product_types_id_ajax`);
  if (target) {
    applyTranslations(target);

    const observer = new MutationObserver(() => {
      observer.disconnect();
      applyTranslations(target);
      observer.observe(target, { childList: true, subtree: true });
    });
    observer.observe(target, { childList: true, subtree: true });
  }

  setTimeout(() => {
    const smartSearchInput = document.querySelector(`.hotengine-smart_search_submit_button input`);
    if (smartSearchInput) smartSearchInput.value = "Anwenden";

    const searchInpButton = document.querySelector(`#searchinp_smart_search .button`);
    if (searchInpButton) searchInpButton.value = "Anwenden";
  }, 100);
})();
  </script>

Analogicznie, możesz dodać inne języki i nowe słowa, umieszczając kod na odpowiednie wersje językowe witryny.

Promocje (licznik czasu w sklepie)

Tłumaczenie na przykładzie timera. W produktach przewidziano możliwość automatycznego tworzenia timera odliczania. Przy dodawaniu produktu zaznacz pole "Produkt promocyjny", a w pojawiającym się bloku kliknij "Włącz timer". Ustaw termin wygaśnięcia timera. Po upływie określonego terminu można ustawić działanie, na przykład usunąć promocję lub zmienić cenę...

Jak zmienić napisy w liczniku czasu?

Za pomocą stylów CSS można zastąpić słowa w timerze. W tym celu, na przykład w produkcie, wstaw kod css html:
Code: CSS
<style type="text/css">
<!--

/*napis pozostało do końca*/

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


:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-day:after{
   content:"days";
}
:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-hourse:after{
   content:"hours";
}
:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-minute:after{
   content:"minute";
}
:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-seconds:after{
   content:"seconds";
}
: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!";
}
:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-done:after{
    content:"Campaign complete!";
}


:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-day:after{
    content:"dni";
}
:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-hourse:after{
    content:"godziny";
}
:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-minute:after{
    content:"minuty";
}
:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-seconds:after{
    content:"sekundy";
}
: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!";
}
:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-done:after{
    content:"Ackia ukończona!";
}






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




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



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


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


-->
</style>


lang(en) lub lang(ru) - to język, dla którego będzie odpowiedni napis, a dalej określony jest sam blok, dla którego zmienić napis.


Jak użyć licznika czasu na innych stronach?
Wstaw następujący 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>  

<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>
document.addEventListener("DOMContentLoaded", () => {
    let timerperiod = 5 * 12 * 60 * 60 * 1000; // timer period, in the example 5 days 12 hours ( 5*12 ...) (for example, here the date is constantly shifting, i.e. current date + XX days.)

    // cookies last visit (subtract last visit time)
    let cookieName = `cookie_lastvisit_countdown_timer`;
    let cookieValue = document.cookie.split(`;`).find(c => c.trim().startsWith(`${cookieName}=`))?.split(`=`)[1];
    
    let cookie_lastvisit_minus = 0;
    if (cookieValue && cookieValue !== "null") {
        cookie_lastvisit_minus = new Date().getTime() - parseInt(cookieValue);
    } else {
        cookie_lastvisit_minus = 0;
    }

    let checkdate = timerperiod - cookie_lastvisit_minus; // to check the date of the last visit and the end of the promotion
    let counterdisable = false;

    if (checkdate > 0) {
        counterdisable = false;
    } else {
        cookie_lastvisit_minus = 0;
        counterdisable = true;
    }

    let cookie_lastvisit_countdown_timerv = new Date().getTime() - cookie_lastvisit_minus;
    document.cookie = `${cookieName}=${cookie_lastvisit_countdown_timerv}; path=/;`;
    // cookies last visit (subtract last visit time)

    let ts = new Date().getTime() + timerperiod - cookie_lastvisit_minus; // set the promotion end date
    hotengine_inittimer("hotengine-shop-product-description-akciya-countdown-block", new Date(ts));
});
</script>

Aby zmienić napisy licznika, otwórz plik stylu /templates/javascript_timer_countdown/hotengine_timer_countdown.css, skopiuj jego kod i wstawiając na stronę zmień napisy.


Zmiana bloków strony i edytor projektu

Główne bloki strony i sposoby zmiany projektu

Główne bloki strony

ID i klasy głównych bloków strony.





#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 zaimplementowany 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 informuje o obecności lewego i prawego bloku.
  • [data-hasside="left"] - obecny jest lewy blok/menu
  • [data-hasside="right"] - obecny jest prawy blok/menu
  • [data-hasside="both"] - obecny jest lewy i prawy blok/menu


Wewnątrz tych bloków będzie znajdować się utworzona przez Ciebie treści lub menu.
Każdy «typ strony» jest wyróżniony odpowiednim blokiem z przypisanym konkretnym ID.
Na przykład:
  • Strony - #hotengine-content-page
  • 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, gdzie istnieje podrzędna lista stron, dodawana jest klasa:
  • Katalog produktów - .hotengine-content-shop-category
  • Katalog produktów (kolekcje) - .hotengine-content-shop-collection
  • Katalog produktów (producenci) - .hotengine-content-shop-producer
  • Katalog artykułów - .hotengine-content-blog-category

Dla Bloków/Menu listy artykułów tworzony jest dodatkowy blok (można wyłączyć w ustawieniach):
Menu ostatnich artykułów - #hotengine-content-menu-lastblogpost

Jak zmieniać projekt strony

Możesz zmienić projekt strony w Edytorze projektu. Za jego pomocą można ustawić główne kolory elementów, rozmiary i położenia niektórych elementów, zmienić nagłówek strony i inne.
Za pomocą myszy możesz zmienić wysokość nagłówka strony, rozmiar logo, położenie głównego menu i sloganu.


Jak utworzyć własny projekt nagłówka strony?


Utwórz Blok/Menu z umieszczeniem w Header (Nagłówku strony) i umieścić w nim niezbędne elementy. Na przykład, Div z telefonem i Div z napisem o firmie (nie zapomnij przypisać im odpowiedniej klasy lub id, do pó$niejszego odwoływania się do nich po zadanych wartościach).
Otwórz edytor projektu, ustaw położenie i właściwości projektu do utworzonych elementów w stylach CSS.
W ten sam sposób można tworzyć dowolne elementy graficzne na stronie i umieszczać je w potrzebnych miejscach.
Użycie wbudowanych elementów i krótkich kodów do tworzenia układu.
Oprócz tworzenia własnych elementów, na platformie BooStore.pro istnieje szereg predefiniowanych klas i ID, które pozwalają szybko i wygodnie używać podstawowych elementów sklepu bez konieczności pisania ich od podstaw.

Jakie elementy mają już wbudowane klasy lub ID:
  • Przycisk «Dodaj do koszyka»
  • Koszyk
  • Ikona «Dodaj do ulubionych»
  • Ikona «Dodaj do porównania»
  • Wszystkie podstawowe elementy karty produktu: cena, dostępność, cechy, blok z opisem, zakładki w karcie produktu
  • Nagłówki stron
  • Widżety z produktami
  • Menu mobilne
  • Nagłówki odmian produktu
  • Każda strona ma unikalną klasę lub ID, a element nadrzędny id="hotengine-wrapper" zawiera identyfikator aktualnie otwartej strony.
Większość funkcjonalnych elementów na stronie ma już unikalne identyfikatory (ID) lub klasy, które nie zostaną zmienione podczas aktualizacji platformy i można ich używać przy tworzeniu własnego układu lub projektu stron.

Jak używać wbudowanych elementów we własnym projekcie:
Do wstawiania niektórych elementów do własnego układu lub szablonu można użyć krótkich kodów.
Na przykład:
  • Ikona koszyka z jego zawartością
  • Ikona «Dodaj do koszyka»
  • Ikona «Dodaj do ulubionych»
  • Ikona «Porównanie produktów» z jego zawartością
  • Widżety
Użycie krótkich kodów pozwala szybko i poprawnie zintegrować standardowe elementy sklepu z własnym układem bez błędów.

Zalecenia dotyczące CSS:
  • Pisz style CSS w edytorze projektu platformy.
  • Plik jest automatycznie minifikowany (kompresowany), co przyspiesza działanie strony i poprawia SEO.
  • Można tworzyć indywidualne style dla dowolnych elementów, w tym wbudowanych ID i klas, a także dla własnych bloków, aby w pełni kontrolować wygląd strony.
Za pomocą wbudowanych klas, ID i krótkich kodów możesz tworzyć profesjonalne i unikalne układy, łącząc własne bloki z gotowymi elementami platformy. Pozwala to skrócić czas rozwoju i zagwarantować poprawne wyświetlanie wszystkich funkcji sklepu.

Jak zresetować projekt?

Aby przywrócić wartość domyślną, otwórz Edytor projektu i usuń bieżącą wartość dla wybranego elementu lub kliknij przycisk "Przywróć wartość domyślną".

Style CSS

Możesz używać CSS do stylizacji dowolnych elementów na stronie. Aby wybrać element, kliknij prawym przyciskiem myszy na element i wybierz "Zbadaj element". Skopiuj ID lub Class obiektu i wklej do zakładki «Style CSS» w edytorze projektu.

Jeśli używasz podłączanego szablonu, jego style mają niższy priorytet niż niektóre z powyższych wartości. Przed użyciem podłączanego szablonu zalecamy najpierw przywrócić domyślne wartości projektu.

Domyślne style CSS: Plik CSS Główne bloki strony
Style CSS dla wartości tekstowych:

Szablonizacja

Obecnie używamy specjalnego znacznikowania dla elementów oznaczonych klasami "hotengine-", uporządkowanej struktury wyświetlania elementów, a także ukrytych danych. Praktycznie wszystkie napisy na stronie są zrealizowane za pomocą CSS after elementów.
Jeśli przesunięcie i pozycjonowanie elementów nie udaje się zrobić za pomocą CSS, możesz użyć Javascript i przenosić obiekty po stronie.
Zmiana położenia niektórych elementów za pomocą Javascript.
Code: html
<script>
document.addEventListener("DOMContentLoaded", () => {
    const el = document.querySelector(`.hotengine-shop-product-desc-block .hotengine-shop-product-producer`);
    const newproducer = el ? el.innerHTML : null;

    if (newproducer && newproducer !== "" && newproducer !== "undefined") {
        el.style.display = "none";
        const skuBox = document.querySelector(`.hotengine-shop-product-sku-box`);
        if (skuBox) {
            skuBox.insertAdjacentHTML("afterend", `${newproducer}`);
        }
    }
});
</script>


W tym przykładzie sprawdzamy, czy producent jest określony. Jeśli producent jest określony, ukrywamy go i umieszczamy po polu "Kod produktu".

"Zawijanie" elementów za pomocą Javascript.
Code: html
<script>
  document.addEventListener("DOMContentLoaded", () => {
    document.querySelectorAll(`.element`).forEach(el => {
        const wrapper = document.createElement("div");
        wrapper.className = "new";
        el.parentNode.insertBefore(wrapper, el);
        wrapper.appendChild(el);
    });
});
</script>

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

Szablony

Oprócz podstawowych stylów w edytorze projektu możesz instalować gotowe szablony.
Katalog szablonów - https://templates.boostore.pro/

Edytor

Na platformie dostępny jest edytor HTML TynyMce, za pomocą którego można formatować strony, karty produktów, artykuły i bloki/menu. W edytorze zaimplementowano wstawianie obrazów i gotowych «Kodów» do wyświetlania kategorii sklepu, listy produktów, listy artykułów na dowolnych stronach. Wbudowane kody pozwalają wstawiać, na przykład, na stronę główną listę określonych produktów z zadanymi parametrami (generator listy produktów - osobna instrukcja) lub listę kategorii, w tym również w Blokach/Menu (Widget z kategoriami sklepu).

Demonstracja edytora

Formatowanie tekstu na BooStore.pro za pomocą AI

Projektowanie stron и stylów za pomocą SI

Ten poradnik nauczy Cię tworzyć profesjonalny design dla Twoich produktów, korzystając ze Sztucznej Inteligencji (Gemini, ChatGPT) oraz wbudowanych narzędzi platformy.

1. Teoria: Podstawowe pojęcia (CSS, Klasy, ID)

Zanim dasz zadanie AI, musisz zrozumieć, jak przeglądarka interpretuje wygląd strony.

CSS (Cascading Style Sheets) To „język piękna”. Jeśli HTML to szkielet strony, CSS to ubranie, makijaż i fryzura. Mówi przeglądarce: „Zrób ten tekst czerwonym, a ten przycisk okrągłym”.
ID (#) — Identyfikator Unikalna nazwa elementu. Jak numer PESEL. Na jednej stronie nie mogą istnieć dwa identyczne ID. W CSS oznaczane kratką.
Przykład: #tabs-1
Class (.) — Klasa Nazwa grupowa. Jak mundurki w szkole. Można przypisać jedną klasę do wielu elementów. W CSS oznaczane kropką.
Przykład: .my-price-style

Jak znajdować elementy (Inspektor przeglądarki)

Aby AI wiedziało, co dokładnie ostylować, musisz znaleźć ID bloku w Hotlist:

  1. Otwórz kartę produktu na stronie.
  2. Kliknij prawym przyciskiem myszy na nazwę zakładki lub tekst.
  3. Wybierz „Zbadaj” (lub Inspect).
  4. Otworzy się panel. Szukaj linii podświetlającej odpowiedni blok. Przykład:
    <div id="tabs-1">...</div>

Ważne (Zasada zagnieżdżania): Na platformie BooStore.pro warto używać stylów w połączeniu z blokiem „rodzicem”. Gwarantuje to, że styl zadziała tylko w wybranym miejscu i nie zepsuje wyglądu innych sekcji strony.

W inspektorze zobaczysz hierarchię (drzewo) elementów: każdy blok znajduje się wewnątrz innego, większego kontenera. Dla zakładek produktu takim rodzicem jest blok o ID #hotengine-shop-content-tabs.

Dlatego Twoja ścieżka CSS powinna wyglądać tak: #hotengine-shop-content-tabs #tabs-1.

Taki zapis mówi przeglądarce: „Znajdź blok o ID tabs-1, ale tylko ten wewnątrz rodzica hotengine-shop-content-tabs”.

KROK 1: Zapytanie do AI

Podaj AI tekst i poproś o ostylowanie, wskazując odpowiednie ID.

"Mam tekst opisu produktu. Ostyluj go ładnie. Rozdziel CSS i HTML. Użyj jasnej stylistyki. Wygeneruj wynik w dwóch blokach: CSS wewnątrz <style> dla selektora #hotengine-shop-content-tabs #tabs-1 oraz osobno kod HTML tekstu."
KROK 2: Test i przeniesienie stylu

Wstaw oba bloki (Style i HTML) do produktu, aby sprawdzić efekt.

Gdy design jest gotowy:

  1. Skopiuj zawartość pomiędzy znacznikami <style> (samych znaczników NIE kopiuj).
  2. Przejdź do Panelu Hotlist > Design strony > Edytor designu > Zakładka CSS.
  3. Wklej kod na samym dole. Możesz dodać komentarz: /*Styl tekstu w zakładce produktu*/
KROK 3: Czyszczenie tekstu (Bardzo ważne!)

Gdy zapiszesz styl w Edytorze designu, usuń go z opisu produktu. Inaczej kod będzie się dublował, co spowolni stronę.

Jak to wygląda:

// BYŁO W PRODUKCIE:
<style> #tabs-1 { background: #000; } </style>
<div class="my-content"> Twój tekst... </div>

// JEST W PRODUKCIE (Poprawnie):
<div class="my-content"> Twój tekst... </div>
(Styl znajduje się teraz w Edytorze designu)

Dzięki temu każda zmiana w CSS w Edytorze automatycznie zaktualizuje wszystkie karty produktów — to szybkie i wygodne.

Ściąga: Struktura i selektory BooStore.pro

Treści tworzone są wewnątrz elementu #hotengine-content. Używaj tych danych w AI:

Zakładki w produkcie (Tabs)
Ścieżka rodzic + ID:
• Zakładka 1: #hotengine-shop-content-tabs #tabs-1
• Zakładka 2: #hotengine-shop-content-tabs #tabs-2
• Zakładka 3: #hotengine-shop-content-tabs #tabs-3
• Zakładka 4: #hotengine-shop-content-tabs #tabs-4
Pełny opis produktu (nie w zakładce)
Główny blok opisu:
.hotengine-shop-product-desc-block .hotengine-shop-product-description-text
Blog i Artykuły
• Krótki opis w katalogu:
#hotengine-content-blog #page_content .hotengine-blog-page-list-block .contenth .contenth_i

• Pełny tekst artykułu:
#hotengine-content-blog #page_content .contenth .contenth_i
ID i Klasy sekcji
• Strony: #hotengine-content-page
• Blog: #hotengine-content-blog
• Sklep: #hotengine-content-shop

Klasy szczegółowe:
• Kategorie: #hotengine-content-shop.hotengine-content-shop-category
• Kolekcje: #hotengine-content-shop.hotengine-content-shop-collection
• Producenci: #hotengine-content-shop.hotengine-content-shop-producer

Wskazówka: W ten sam sposób możesz stylizować nie tylko opisy, ale też parametry czy sekcje dostawy. Raz skonfigurowany styl pozwoli Ci tworzyć tysiące spójnych produktów.






Statystyki

Google Analytics:


Możesz włączyć śledzenie odwiedzających za pomocą Google Analytics na stronie Ustawienia, w zakładce Statystyki/Google Analytics.

Przy używaniu tagów śledzących będą przekazywane standardowe zdarzenia e-commerce dla Google Analytics 4 lub Google Tag Manager. Ponadto na stronie realizacji zamówienia lub wysyłki formularza można 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/tag-manager/datalayer
Ponadto będziesz mógł zrealizować przekazywanie własnych tagów, używając JavaScript, Krótkich kodów i Mikrodane hotengine-markers, które pozwalają zastępować dynamiczne dane.

  • add_to_cart – dodanie produktu do koszyka
  • add_to_wishlist – dodanie produktu do ulubionych
  • begin_checkout – rozpoczęcie realizacji zamówienia
  • purchase – pomyślna realizacja zamówienia
  • remove_from_cart – usunięcie produktu z koszyka
  • search – wyszukiwanie na stronie
  • select_item – wybór wariantu produktu
  • generate_lead – wysyłka danych przez formularz
  • sign_up – rejestracja
  • view_cart – podgląd koszyka
  • view_item – podgląd karty produktu
  • view_item_list – podgląd listy produktów (kategoria, zestawienie, rekomendacje itp.)

Facebook Pixel:


 Identyfikator śledzenia Facebook Pixel można wskazać w ogólnych ustawieniach strony, w zakładce «Statystyki». Pixel będzie przekazywać dane o odwiedzinach stron (PageView), zdarzenia dodania produktu do koszyka (AddToCart), podgląd produktu (ViewContent), rozpoczęcie (InitiateCheckout) i zakończenie realizacji zamówienia (Purchase). Koszt produktu jest generowany w USD po kursie Twojej strony.

Ponadto możesz utworzyć blok menu do generowania piksela z danymi o produkcie samodzielnie.
Instrukcja

Uwaga! Podczas tworzenia kodu piksela nie przez ustawienia strony, należy wcześniej dodać główny kod piksela. W tym celu utwórz blok/menu z głównym kodem piksela i umieść w znacznikach serwisowych, wyświetlanych na wszystkich stronach. W takim przypadku w ogólnych ustawieniach strony nie trzeba podawać kodu piksela. Jeśli kod piksela jest określony w ustawieniach głównych, to kod Products Merchant Facebook jest już zainstalowany na stronie.

Blok menu do generowania piksela z danymi o produkcie


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>


Pokazuj blok/menu na stronach:Tylko na stronach Sklepu
Wprowadź znaki, przy wykryciu których wyświetlać blok/menu:htm
Wprowadź znaki, przy wykryciu których nie wyświetlać blok/menu:cart



Jeśli konieczne jest dodanie zdarzenia po wysłaniu zgłoszenia przez formularz, to po tekście o pomyślnej wysyłce danych dodaj następujący kod:
Code: html
<script>
fbq('track', 'Purchase');
</script>

Ogony referencyjne:

    Na stronie dostępne jest używanie ogonów referencyjnych. Przy zamawianiu produktów lub wysyłce wiadomości przez formularz kontaktowy, do wiadomości zostaną dodane dane o źródle przejścia na Twoją stronę. Również przy użyciu końcówek UTM (Kompilator URL) te dane zostaną dodane do wiadomości.
    Oprócz standardowych danych konstruktora dostępny jest podział źródła na grupy, które są używane w statystykach sprzedaży do podziału źródeł i wygodniejszego obliczania konwersji. Wartość grupy można ustawić za pomocą zmiennej GET "hotengine_referral_group". Jeśli wartośść nie jest określona, a utm_source jest określony, zostanie użyta do wskazania grupy hotengine_referral_group.
    Dane o źródle przejścia mogą być ukryte przez ustawienia przeglądarki odwiedzającego lub za pomocą bezpiecznego protokołu strony źródła. Ponadto możesz dodatkowo grupować zamówienia za pomocą zmiennej "shop_cart_statistic_group" w linku lub ręcznie po zakończeniu zamówienia.

    Możesz włączyć Ogony referencyjne na stronie Ustawienia, w zakładce Statystyki.

    Przykład linku z oznakowaniem UTM:
    https://boostore.pro/?utm_source=google&utm_medium=cpc&utm_term=slova&utm_content=soderjimoe&utm_campaign=nazvnie

    Przykład linku z automatycznym oznakowaniem Yandex Direct i oznakowaniem UTM:
    https://boostore.pro/?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łna instrukcja

    Przykład linku z automatycznym oznakowaniem Google Adwords i oznakowaniem UTM:
    https://boostore.pro/?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łna instrukcja



Integracja z 1C, ERP, CRM-systemami i CommerceAPI

Automatyczny eksport przy zamówieniu / Wysyłka danych POST o zamówieniu w formacie JSON

Automatyczny eksport przy zamówieniu możesz włączyć w ustawieniach strony, w zakładce «Sklep», określając ścieżkę do wysyłki danych.
Na podany adres będzie wysyłane żądanie POST, ze wszystkimi danymi o zamówieniu, w tym danymi kontaktowymi zamawiającego i listą produktów. Dane kontaktowe i informacje o zamówieniu będą przekazywane w formacie JSON, żądaniem POST.
Na przykład, w 1c możesz zaimplementować przyjmowanie zamówień przez «HTTP serwis»->«SiteExchange» -> «POSTData»

Po złożeniu zamówienia, na podany powyżej 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://boostore.pro/....",
    "referral_utm": "",
    "site_id": "10954",
    "site_url": "boostore.pro",
    "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, z zawartością «Number» lub «crm_order_id», to do zamówienia zostanie dodany zewnętrzny numer zamówienia.

Automatyczny eksport statystyk sprzedaży / Wysyłka danych POST o zamówieniu w formacie JSON

Automatyczny eksport statystyk sprzedaży możesz włączyć w ustawieniach strony, w zakładce «Sklep», określając ścieżkę do wysyłki danych.
Na podany adres będzie wysyłane żądanie POST, ze wszystkimi danymi o zamówieniu, które zmieniają się w Statystyce sprzedaży. Informacje będą przekazywane żądaniem POST w formacie JSON.
Na przykład, w 1c możesz zaimplementować przyjmowanie zamówień przez «HTTP serwis»->«SiteExchange» -> «POSTData»
Ponadto możesz włączyć zewnętrzny dostęp do swojej statystyki, określając «Klucz dostępu do statystyki sprzedaży».

Po zmianie statusu zamówienia (oprócz szybkiej edycji statusów), na podany powyżej adres zostanie wysłane żądanie 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://boostore.pro",
    "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://boostore.pro/ru/pers_shop/sport_shoes/284438.htm",
    "referral_utm": "",
    "site_url": "boostore.pro",
    "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 - Nie przetworzony, 1 - Zamówienie w trakcie, 3 - Przetworzony, 2 - Anulowany, 5 - Anulowany (Brak na stanie), 6 - Anulowany (Odmowa), delete - Usuń zamówienie

'status_pay' - '0', Status zamówienia // 0-Nie określono, 1 - Opłacony online, nie sprawdzony, 4 - Opłacony online i sprawdzony, 2 - Opłacony, 3 - Przedpłata, 5 - Oczekuje na płatność

'status_for_customer' - '1', Status dla kupującego // 0 - Nie przetworzony, 1 - W trakcie przetwarzania, 3 - Wysłany / Przetworzony, 2 - Anulowany

'admin_note' - 'Uwaga dla administratora'

'delivery_status' - '0', 0 - Nie określono, 1 - Dostarczone, 2 - Nie dostarczone, 3 - Oczekuje na wysyłkę, 4 - Przekazane kurierowi, 5 - W drodze, 6 - Wysłane na pocztę, 7 - Wysłane na adres odbiorcy, 8 - Dostarczone na pocztę, 9 - Dostarczone na adres odbiorcy

'crm_order_id' - 'XXX', Zewnętrzny kod zamówienia (do użycia w zewnętrznych CRM)

Więcej szczegółów na temat pól możesz znaleźć w statystykach sprzedaży, podczas edycji zamówienia.


Przy zmianie produktów w zamówieniu, wysyłane jest żądanie JSON z wykazem 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://boostore.pro",
    "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://boostore.pro/ru/pers_shop/sport_shoes/284438.htm",
    "referral_utm": "",
    "site_url": "boostore.pro",
    "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 zewnętrzną aplikacją, możesz wykonać (POST/GET lub AJAX) żądanie pod adresem «/ajax.php?statistic_sell»

Przy tym należy podać klucz w żądaniu, z szyfrowaniem MD5. Na przykład, jeśli masz określony klucz «123», to w żądaniu będzie to «202cb962ac59075b964b07152d234b70».

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

Dane wyświetlane są w formacie JSON.

Zwróć uwagę, że jeśli używasz otwartych dla odwiedzających żądań strony, to za pomocą Twojego klucza mogą uzyskać dostęp do Twoich statystyk sprzedaży.

Dostęp do cennika sklepu / Pełny wywóz cennika w CSV


Określ klucz dostępu do cennika sklepu w ustawieniach, w zakładce «Sklep». Pełny wywóz cennika znajduje się pod adresem «/csv_export_products.csv»

Przy tym należy podać klucz w żądaniu, z szyfrowaniem MD5. Na przykład, jeśli masz określony klucz «123», to w żądaniu będzie to «202cb962ac59075b964b07152d234b70».

W takim przypadku żądanie będzie wyglądać następująco: «/csv_export_products.csv?key=202cb962ac59075b964b07152d234b70»
W żądaniu można określić dane do sortowania i wyboru pól, które można pobrać na stronie eksportu w centrum administracyjnym (/page.php?p=submit_catalog_page&subpage&export_from_shop). Sortowanie i wybór parametrów odbywa się przez żądanie GET/POST, na przykład «&export_product_access=export_product_access» oznacza, że będzie eksportowane pole z danymi o dostępie do produktu.

Dane wyświetlane są w formacie CSV.

Plik eksportu jest buforowany w celu zmniejszenia obciążenia i aktualizowany raz na dobę. Usunąć bufor można za pomocą przycisku «Wyczyść bufor eksportu XML/CSV».

Przykład: https://templatedemo437544.boostore.pro/csv_export_products.csv?key=202cb962ac59075b964b07152d234b70

Dodatkowo zaimplementowano mechanizm wymiany danych przez API, podobny do WooCommerce API. API pozwala uzyskiwać i aktualizować informacje o zamówieniach i produktach, a także kategoriach. Instrukcje i ustawienia w sekcji «Sklep» - «Wymiana danych JSON Commerce API».

Commerce API (Products/Categories/Sales Statistics)

Commerce API — Krótki podręcznik metod

Klucz dostępu

Do pracy 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 do dostępu do statystyk sprzedaży.

Metody API (HTTP)

Wszystkie zapytania kierowane są na bazowy URL twojej strony, np.: https://site.com/api/commerce/

1. Statystyki sprzedaży

MetodaURLOpis
GET/ordersPobierz statystyki zamówień
GET/orders/{id}Pobierz statystyki pojedynczego zamówienia po ID
GET/crm_orders/{id}Pobierz statystyki pojedynczego zamówienia po zewnętrznym CRM ID
DELETE/orders/{id}Usuń zamówienie po ID
DELETE/crm_orders/{id}Usuń zamówienie po zewnętrznym CRM ID
POST/ordersDodaj nowe zamówienie
UPDATE/orders/{id}Zaktualizuj zamówienie po ID (PATCH/PUT/UPDATE)
UPDATE/crm_orders/{id}Zaktualizuj zamówienie po zewnętrznym CRM ID (PATCH/PUT/UPDATE)

2. Produkty

MetodaURLOpis
POST/productsMasowe dodawanie i aktualizacja produktów
GET/productsPobierz listę produktów
GET/products/{id}Podgląd pojedynczego produktu po ID
GET/products/sku/{sku}Podgląd pojedynczego produktu po SKU (kod produktu)
UPDATE/products/{id}Zaktualizuj produkt po ID (PATCH/PUT/UPDATE)
UPDATE/products/sku/{sku}Zaktualizuj produkt po SKU (kod produktu) (PATCH/PUT/UPDATE)
UPDATE/productsMasowa aktualizacja kilku produktów (PATCH/PUT/UPDATE)
DELETE/products/{id}Usuń produkt po ID
DELETE/products/sku/{sku}Usuń produkt po SKU (kod produktu)

3. Kategorie sklepu

MetodaURLOpis
POST/products/categoriesMasowe dodawanie i aktualizacja kategorii
GET/products/categoriesPobierz listę kategorii produktów
GET/products/categories/{id}Pobierz kategorię według ID
GET/products/categories/id/{id}Pobierz kategorię według ID (alternatywna opcja)
GET/products/categories/name/{name}Pobierz kategorię według nazwy
UPDATE/products/categoriesMasowa aktualizacja kilku kategorii (PATCH/PUT/UPDATE)
UPDATE/products/categories/{id}Zaktualizuj kategorię według ID (PATCH/PUT/UPDATE)
UPDATE/products/categories/id/{id}Zaktualizuj kategorię według ID (alternatywna opcja)
UPDATE/products/categories/name/{name}Zaktualizuj kategorię według nazwy

Parametry kategorii nadrzędnych

ParametrTypOpis
category_parent_id int ID kategorii nadrzędnej. Używany w pierwszej kolejności, jeśli jest podany.
category_parent_name string Łacińska nazwa (alias / slug, adres otwarcia kategorii) kategorii nadrzędnej. Używany, jeśli category_parent_id nie jest podany. W przypadku zbieżności nazw można doprecyzować przez category_lang.
category_lang string Język kategorii. Stosowany do rozwiązywania kolizji takich samych category_parent_name w różnych językach.

Zasada działania:

  1. Najpierw sprawdzany jest category_parent_id.
  2. Jeśli nie jest podany – używany jest category_parent_name.
  3. W przypadku zbieżności nazw – dodawana jest weryfikacja przez category_lang.

Szczególna zasada:
Aby dodać kategorię do głównej (korzeniowej) kategorii, należy wskazać category_parent_name = "main" i obowiązkowo podać parametr category_lang – język kategorii nadrzędnej.

Aktualizacja i usuwanie:
update_exists (bool) – jeśli true, aktualizuje kategorię, jeśli już istnieje (domyślnie false).
delete (bool) – jeśli true, kategoria zostanie usunięta.

4. Producenci

MetodaURLOpis
POST/products/producersMasowe dodawanie i aktualizacja producentów
GET/products/producersPobierz listę producentów
GET/products/producers/{id}Pobierz producenta według ID
GET/products/producers/id/{id}Pobierz producenta według ID (alternatywna opcja)
GET/products/producers/name/{name}Pobierz producenta według nazwy
UPDATE/products/producersMasowa aktualizacja kilku producentów (PATCH/PUT/UPDATE)
UPDATE/products/producers/{id}Zaktualizuj producenta według ID (PATCH/PUT/UPDATE)
UPDATE/products/producers/id/{id}Zaktualizuj producenta według ID (alternatywna opcja)
UPDATE/products/producers/name/{name}Zaktualizuj producenta według nazwy

Parametry powiązań producentów

ParametrTypOpis
producer_parent_id int ID producenta nadrzędnego (grupy). Używany w pierwszej kolejności, jeśli jest podany.
producer_parent_name string Łacińska nazwa (alias / slug, adres otwarcia producenta). Używany, jeśli producer_parent_id nie jest podany. W przypadku zbieżności nazw można doprecyzować przez producer_lang.
producer_lang string Język producenta. Stosowany do rozwiązywania kolizji takich samych producer_parent_name w różnych językach.

Zasada działania:

  1. Najpierw sprawdzany jest producer_parent_id.
  2. Jeśli nie jest podany – używany jest producer_parent_name.
  3. W przypadku zbieżności nazw – dodawana jest weryfikacja przez producer_lang.

Szczególna zasada:
Aby dodać producenta do głównej (korzeniowej) grupy producentów, należy wskazać producer_parent_name = "main" i obowiązkowo podać parametr producer_lang – język grupy nadrzędnej.

Aktualizacja i usuwanie:
update_exists (bool) – jeśli true, aktualizuje producenta, jeśli już istnieje (domyślnie false).
delete (bool) – jeśli true, producent zostanie usunięty.

5. Kolekcje

MetodaURLOpis
POST/products/collectionsMasowe dodawanie i aktualizacja kolekcji
GET/products/collectionsPobierz listę kolekcji
GET/products/collections/{id}Pobierz kolekcję według ID
GET/products/collections/id/{id}Pobierz kolekcję według ID (alternatywna opcja)
GET/products/collections/name/{name}Pobierz kolekcję według nazwy
UPDATE/products/collectionsMasowa aktualizacja kilku kolekcji (PATCH/PUT/UPDATE)
UPDATE/products/collections/{id}Zaktualizuj kolekcję według ID (PATCH/PUT/UPDATE)
UPDATE/products/collections/id/{id}Zaktualizuj kolekcję według ID (alternatywna opcja)
UPDATE/products/collections/name/{name}Zaktualizuj kolekcję według nazwy

Parametry powiązań kolekcji

ParametrTypOpis
collection_parent_id int ID kolekcji nadrzędnej. Używany w pierwszej kolejności, jeśli jest podany.
collection_parent_name string Łacińska nazwa (alias / slug, adres otwarcia kolekcji). Używany, jeśli collection_parent_id nie jest podany. W przypadku zbieżności nazw można doprecyzować przez collection_lang.
collection_lang string Język kolekcji. Stosowany do rozwiązywania kolizji takich samych collection_parent_name w różnych językach.

Zasada działania:

  1. Najpierw sprawdzany jest collection_parent_id.
  2. Jeśli nie jest podany – używany jest collection_parent_name.
  3. W przypadku zbieżności nazw – dodawana jest weryfikacja przez collection_lang.

Szczególna zasada:
Aby dodać kolekcję do głównej (korzeniowej) kolekcji, należy wskazać collection_parent_name = "main" i obowiązkowo podać parametr collection_lang – język kolekcji nadrzędnej.

Aktualizacja i usuwanie:
update_exists (bool) – jeśli true, aktualizuje kolekcję, jeśli już istnieje (domyślnie false).
delete (bool) – jeśli true, kolekcja zostanie usunięta.

6. 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

Parametry języka

ParametrTypDozwolone 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 (w formacie 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ć tekstowy status WooCommerce lub kod liczbowy)
    • 0 — Nieprzetworzone (pending)
    • 1 — Zamówienie w trakcie realizacji (processing)
    • 7 — Zamówienie w trakcie realizacji, oczekuje na dostawę (on-hold)
    • 3 — Zrealizowane (completed)
    • 8 — Zrealizowane i zakończone (completed)
    • 2 — Anulowane (cancelled)
    • 5 — Anulowane: brak w magazynie (cancelled)
    • 6 — Anulowane: odmowa (cancelled)
  • ?show_deleted=1 — Pokaż 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 xml

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

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

    Dostępne wartości xml_markup

    Parametr zarządza stosowaniem narzutów przy eksportowaniu produktów do XML (Google Merchant i inne katalogi reklamowe).

    • 0 — Włącz: Narzut stosowany domyślnie
    • 1 — Wyłącz: Bez narzutów (cena oryginalna)
    • 2 — Bez narzutu Rozetka
    • 3 — Bez narzutu Prom.ua
    • 4 — Bez narzutu Epricentrk.ua
    • 5 — Wyłącz: Rozetka, Prom, Epicentrk
    • 6 — Bez narzutu formułowego

    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://boostore.pro/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://boostore.pro/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://boostore.pro/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
      // 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://boostore.pro/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" => "Basketballshoes_Demo", // SEO URL link
      "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://boostore.pro/en/docs/import-products/#faq_import_products)
      "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://boostore.pro/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://boostore.pro/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);
  • Script: Api: UPDATE PRODUCT CATEGORIES

     Code: PHP
    UPDATE MULTIPLE CATEGORIES (up to 3000 same time)
    $url = "https://boostore.pro/api/commerce/products/categories"; // Categories API update endpoint
    $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Categories data
     $categoriesData = [
      "categories" => [
        [
          "category_id" => 30518, // Category ID
          "category_name" => "sneakers", // System category name (slug) REQUIRED
          "category_title" => "Sneakers", // Category title
          "category_parent_id" => 1, // Parent category ID
          "category_parent_name" => "ParentCategory", // Parent category Name
          "category_position" => 0, // Position in the list
          
          "category_visible" => 0, // Visibility (0 = hidden, 1 = visible)
          "category_lang" => "ru", // Category language
          
          "category_show_tree" => 0, // Show tree (0/1)
          "category_multilangid" => 0, // Multilanguage binding ID
    
          "category_image" => [
            "0" => "https://boostore.pro/upload/catalog/16572/files/style/categories/30518.webp", // Image URL
          ],
          "images_replace" => 1, // Image replace if exists
          "category_image_settings" => 7, // Image display settings
          "category_button" => "", // Custom button (without href)
          "category_access" => 0, // Access level
          "category_title_seo_append" => "", // SEO: title suffix
          "category_description_seo_append" => "", // SEO: description suffix
          "category_meta_d" => "", // Meta description
          "category_meta_k" => "", // Meta keywords
          "category_title_inpage" => "Sneakers", // Title shown inside the category page
          "category_text" => "", // Category description text
          "category_text_position" => 0, // Description position
          "category_settings_comments" => "", // Comment settings
          
          "category_settings_rating" => 0, // Enable rating (0/1)
          "category_datestamp" => "2025-09-16T12:41:07+00:00", // Datetime of creation/update
         
          "category_googlegoods_catid" => 0, // Google Goods category ID
          "category_promua_catid" => 0, // Prom.ua category ID
          "category_rozetkaua_title" => "", // Rozetka.ua category title
          "category_merchant_product_category" => "", // Merchant product category
          "category_gm_product_type" => 0, // Google Merchant product type
          "category_gm_sizetype" => 0, // Google Merchant size type
          
          "category_priceappend_rozetka" => "", // Extra price settings for Rozetka
          "category_priceappend_promua" => "", // Extra price settings for Prom.ua
          "category_settings_childproductshow" => 0, // Show products from subcategories (0/1)
          "category_settings_style" => 0, // Style settings
          "category_settings_sibling" => 0, // Show sibling categories (0/1)
          "update_exists" => 1, // Update exists category (0/1)
          "delete" => 0, // For delete category (0/1)
        ]
      ]
    ];
    
    $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($categoriesData, 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 PRODUCERS

     Code: PHP
    UPDATE MULTIPLE PRODUCERS (up to 3000 same time)
    $url = "https://boostore.pro/api/commerce/products/producers"; // Producers API update endpoint
    $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Producers data
     $producersData = [
      "producers" => [
        [
          "producer_id" => 30518, // Producer ID
          "producer_name" => "sneakers", // System producer name (slug) REQUIRED
          "producer_title" => "Sneakers", // Producer title
          "producer_parent_id" => 1, // Parent producer ID
          "producer_parent_name" => "ParentCategory", // Parent producer Name
          "producer_position" => 0, // Position in the list
          
          "producer_visible" => 0, // Visibility (0 = hidden, 1 = visible)
          "producer_lang" => "ru", // Producer language
          
          "producer_show_tree" => 0, // Show tree (0/1)
          "producer_multilangid" => 0, // Multilanguage binding ID
    
          "producer_image" => [
            "0" => "https://boostore.pro/upload/catalog/16572/files/style/categories/30518.webp", // Image URL
          ],
          "images_replace" => 1, // Image replace if exists
          "producer_image_settings" => 7, // Image display settings
          "producer_button" => "", // Custom button (without href)
          "producer_access" => 0, // Access level
    
          "producer_meta_d" => "", // Meta description
          "producer_meta_k" => "", // Meta keywords
          "producer_title_inpage" => "Sneakers", // Title shown inside the producer page
          "producer_text" => "", // Producer description text
          "producer_text_position" => 0, // Description position
          "producer_settings_comments" => "", // Comment settings
          
          "producer_settings_rating" => 0, // Enable rating (0/1)
          "producer_datestamp" => "2025-09-16T12:41:07+00:00", // Datetime of creation/update
         
          "update_exists" => 1, // Update exists producer (0/1)
          "delete" => 0, // For delete producer (0/1)
        ]
      ]
    ];
    
    $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($producersData, 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 COLLECTIONS

     Code: PHP
    UPDATE MULTIPLE COLLECTIONS (up to 3000 same time)
    $url = "https://boostore.pro/api/commerce/products/collections"; // Collections API update endpoint
    $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Collections data
     $collectionsData = [
      "collections" => [
        [
          "collection_id" => 30518, // Collection ID
          "collection_name" => "sneakers", // System collection name (slug) REQUIRED
          "collection_title" => "Sneakers", // Collection title
          "collection_parent_id" => 1, // Parent collection ID
          "collection_parent_name" => "ParentCategory", // Parent collection Name
          "collection_position" => 0, // Position in the list
          
          "collection_visible" => 0, // Visibility (0 = hidden, 1 = visible)
          "collection_lang" => "ru", // Collection language
          
          "collection_show_tree" => 0, // Show tree (0/1)
          "collection_multilangid" => 0, // Multilanguage binding ID
    
          "collection_image" => [
            "0" => "https://boostore.pro/upload/catalog/16572/files/style/categories/30518.webp", // Image URL
          ],
          "images_replace" => 1, // Image replace if exists
          "collection_image_settings" => 7, // Image display settings
          "collection_button" => "", // Custom button (without href)
          "collection_access" => 0, // Access level
    
          "collection_meta_d" => "", // Meta description
          "collection_meta_k" => "", // Meta keywords
          "collection_title_inpage" => "Sneakers", // Title shown inside the collection page
          "collection_text" => "", // Collection description text
          "collection_text_position" => 0, // Description position
          "collection_settings_comments" => "", // Comment settings
          
          "collection_settings_rating" => 0, // Enable rating (0/1)
          "collection_datestamp" => "2025-09-16T12:41:07+00:00", // Datetime of creation/update
         
          "update_exists" => 1, // Update exists collection (0/1)
          "delete" => 0, // For delete collection (0/1)
        ]
      ]
    ];
    
    $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($collectionsData, 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);

Import produktów

Import produktów / Parametry / Typy plików


Aktualizacja:

Możesz aktualizować zapasy, ceny, ilości zapasów i nie tylko, tworząc plik Excel/XLS lub CSV (rozdzielacz średnik). Aby zaktualizować, wystarczy podać kod produktu / SKU lub ID produktu. Ponadto, jeśli w «Odmianach» Kody produktów/SKU są określone, można je również zaktualizować, zaznaczając pole «Aktualizuj odmianę według kodu produktu». Jeśli chcesz dodać nowe odmiany, określ również pole «Kod produktu lub ID produktu do aktualizacji lub dodania odmiany».

Dodawanie:

Aby dodać nowe karty produktów, odznacz «Tylko aktualizuj». Podczas dodawania możesz określić ścieżkę do zdjęć, a także inne parametry produktu. Jeśli znajdzie produkt z tym samym kodem produktu/SKU, zostanie on zaktualizowany. Niektóre pola, na przykład «Obraz», «Kategoria», są brane pod uwagę tylko wtedy, gdy pole wyboru «Tylko aktualizuj» nie jest zaznaczone.

Dopasowanie pól:

Po przesłaniu pliku należy określić pasujące pola, na przykład w której komórce znajduje się kod produktu/SKU, w jakiej cenie itd.
Możesz skorzystać z automatycznego wypełniania pól, jeśli załadujesz Eksport towarów ze swojej strony (Zaznacz główne, Zaznacz wszystko (bez odmiany), Zaznacz wszystko) jako szablon dla pliku. W przeciwnym razie możesz samodzielnie dopasować pola. Ponadto możesz zapisać trzy zestawy dopasowań pól i wypełnić je, klikając «Wypełnij zaznaczenie dopasowań pól...».

Instrukcje / Przykłady

Uwaga
Jeśli podczas importu strona nie zostanie w pełni załadowana, nie zamykaj jej, oznacza to, że import jest nadal przetwarzany.
Jeśli w rezultacie strona nie zostanie zaktualizowana importu lub wyświetli się komunikat o błędzie serwera, następnie podziel zaimportowany plik na kilka części.


Jeśli podczas importu rozmiar «Tytuł», «Krótki» i «Pełny opis» przekroczą dozwoloną liczbę znaków, zostaną one obcięte, a import będzie kontynuowany.

Jeśli określisz w wartości - «ignore», nie jest to brane pod uwagę. Jest to przydatne, gdy chcesz zaimportować nadpisane dane, ale nie wszystkie dane z wierszy w pliku. Ponadto, jeśli wystąpi «Tylko aktualizacja», a nazwa produktu nie jest określona, ​​wtedy wartość nie jest brana pod uwagę.
Limity
Maksymalny rozmiar przesyłanego pliku: 100mb.
W jednym imporcie możesz dodać do 500 pozycji lub zaktualizować do 2000 pozycji.
W zaparkowanej domenie limit wynosi 5000 elementów do zaimportowania i 20000 do aktualizacji na żądanie!
Aby indywidualnie zwiększyć limity, skontaktuj się z pomocą techniczną. wsparcie przez formularz opinii (bezpłatny).
Typy plików do zaimportowania
Obsługiwane są następujące typy plików: CSV, XLS, XLSX, XML/YML i ZIP.

Jak utworzyć plik CSV do importu:

Wypełnij dane w XLS, wyczyść plik z niepotrzebnych nagłówków i niepotrzebnych wierszy i zapisz jako CSV (oddzielone przecinkami)
Możesz zapisać plik w formacie CSV za pomocą programu Excel za pomocą «Plik» - «Zapisz jako»

Podziel plik CSV na kilka, możesz użyć programu csvsplitter.zip

Przykłady plików

Przykładowy plik CSV, oddzielony przecinkami - otwórz w programie Excel.
Przykładowy plik XML
Aby uzyskać wszystkie pola dostępne do importu - towary eksportowe.
Przykładowy plik ZIP z osadzonymi obrazami, pasujący «Prześlij wszystko» - otwórz za pomocą dowolnego archiwizatora.
Konwertuj na osobne pliki CSV z YML/XML

Pobierz zdjęcia i cennik w archiwum ZIP

Podczas importowania możesz użyć łączy stron trzecich do obrazów lub pobrać je w archiwum ZIP.

Jak utworzyć archiwum ZIP do importu:

Utwórz plik importu CSV/XLS/XLSX o nazwie «export_products.*» (* - rozszerzenie csv, xls lub xlsx). Określ względne ścieżki do obrazów w pliku (jeśli obrazy znajdują się w archiwum) lub pełną ścieżkę do obrazów (jeśli obrazy znajdują się w zasobie sieciowym). Pobierz wszystkie pliki w jednym archiwum - ZIP. Do przechowywania obrazów można używać wielu folderów w archiwum.
Przykład
Na przykład archiwum może mieć kilka folderów, 1, 2, 3 i tak dalej. Każdy folder może zawierać obrazy. Podczas importowania do każdego produktu pozostaje określić odpowiednią ścieżkę do każdego obrazu. Podczas importowania można łączyć ścieżki względne lub łącza do obrazów ze źródeł zewnętrznych. W nazwach plików i folderów staraj się nie używać znaków specjalnych i cyrylicy.

Plik «export_products.*» musi znajdować się w katalogu głównym archiwum.
Przykład pliku ZIP z osadzonymi obrazami - otwórz z dowolnym archiwizatorem.

Uwaga! Jeśli plik importu zawiera formuły, należy je usunąć.
Wielojęzyczność
Używaj tylko unikalnych, niepowtarzalnych kodów produktów, a w przypadku witryn wielojęzycznych określ komórkiку «Produkt w innych językach» i inny kod produktu. Jeśli pole jest włączone «Aktualizuj produkty w innych językach», następnie import zaktualizuje zarówno główne produkty o określonym numerze artykułu, jak i podobne produkty w innych językach wskazanych w komórce «Produkt w innych językach». Podczas aktualizacji Towarów w innym języku brane są pod uwagę główne pola, takie jak: «Cena», «Dostępność», «Cena hurtowa», «Nowość», «Bestseller», «Promocja», «Dostęp» i «Usunięcie towary».

Język produktu będzie odpowiadał kategorii, do której jest importowany.
Aby dodać produkty w innych językach, określ rubrykę w innym języku, a także wartość «Produkt w innym języku». «Kod produktu» musi być unikalny, bo w innym języku można używać np. własnych końcówek «SKU/CODE_EN». Jeśli określono «Produkt w innym języku», wówczas przy zmianie danych podstawowych (koszt, dostępność, nowość, bestseller, dostęp) zostaną również zaktualizowane wszystkie tagi produktów wskazane jako alternatywna wersja produktu głównego.
Instrukcje tworzenia witryny wielojęzycznej.
Odpowiedniość pól i danych
Podczas importu możesz wskazać następujące pola:

    - Kod produktu/SKU
    Produkt z takim samym Kodem produktu z importowanego cennika zostanie nadpisany.
    Jeśli kod produktu nie jest podany, a trzeba nadpisać informacje o produkcie, można użyć ID produktu. Uwaga! Jeśli podano ID produktu, ma ono wyższy priorytet niż kod produktu i pozwala nadpisać KOD PRODUKTU.

    - ID produktu (aktualizacja istniejącego produktu)
    Aby zaktualizować produkt lub wariant po ID, można podać wartość w tym polu. Jeśli ID produktu zostanie znalezione, wskazany produkt zostanie zaktualizowany. Uwaga! Jeśli podano ID produktu, ma ono wyższy priorytet niż kod produktu i pozwala nadpisać KOD PRODUKTU w karcie produktu.

    - Cena
    Waluta podczas importu może być zmieniona, jeśli w cenie produktu znajdują się odpowiednie symbole walut, a mianowicie:
    • $ USD doll &amp;#36; dol. - ()
    • € EUR euro &amp;#8364 euro - ()
    • Br BYN BYR br rub. r. - ()
    • ₽ rub RUR RUB r. rub. rubli &amp;#8381; - ()
    • ₴ грн UAH hrywna grn hrn &amp;#8372; - ()
    • tenge KZT teng tng tg tenge teng &amp;#8376; - ()
    • zł PLN zlot zł Zł Z&#322; - ()

    - Narzut
    Narzut jest określany przez wyrażenie matematyczne względem wcześniej podanej ceny.
    Dostępne wartości:
    • +XX plus
    • -XX minus
    • /XX dzielenie
    • *XX mnożenie
    • XX% procent od sumy
    • +XX% plus procent od sumy
    • -XX% minus procent od sumy
    • /XX% dzielenie przez procent od sumy
    • *XX% mnożenie przez procent od sumy
    • Jeśli w cenie lub narzucie podana jest liczba niecałkowita, wynik zostanie zaokrąglony do dwóch miejsc po przecinku.


    - Cena hurtowa
    Cena hurtowa podawana jest oddzielona średnikiem. Aby aktywować cenę hurtową, należy podać "Minimalne zamówienie hurtowe". Na przykład, jeśli w polu "Minimalne zamówienie hurtowe" podano 5;10, a w "Cena hurtowa" podano 20;10, to przy dodaniu do koszyka więcej niż 5 produktów cena będzie 20, a przy więcej niż 10 produktów — cena 10.

    - Dostępność produktu (Tak/Jest/Nie/Na zamówienie/Sprawdź/Ukryj/Zabroń)
    • 0 Jest dostępny
    • 1 Nie
    • 2 Na zamówienie
    • 3 Ukryj
    • 4 Zabroń dodawania do koszyka
    • 5 Sprawdź dostępność


    Również automatycznie rozpoznawane są następujące wartości: Tak, Jest, Nie, dostępny, +, - oraz Na zamówienie.
    Aby ukryć produkt z listy, można wpisać: Ukryj, Hide lub Brak w magazynie (+ukryj produkt z listy).
    Aby zabronić dodawania produktu do koszyka, użyj: Lock, Zabroń lub Brak w magazynie (+zabroń dodawanie do koszyka).
    Dla opcji „Sprawdź” można podać: Check availability, Sprawdź lub Sprawdź dostępność.

    - Ilość produktu na stanie

    Dostępne wartości:
    • XX Wartość liczbowa
    • +XX plus (do poprzedniego stanu magazynowego)
    • -XX minus (od poprzedniego stanu magazynowego)


    - Cena za

    Dostępne opcje:
    • 1 szt lub 1 — za 1 sztukę
    • 100 szt lub 2 — za 100 sztuk
    • 1000 szt lub 3 — za 1000 sztuk
    • 1 opakowanie lub 4 — za 1 opakowanie
    • 1 para lub 45 — za 1 parę
    • 1 tuzin lub 46 — za 1 tuzin
    • Zestaw lub 10 — za zestaw
    • 1 kg lub 5 — za 1 kilogram
    • 1000 kg lub 6 — za 1000 kilogramów
    • 100 g lub 38 — za 100 gramów
    • 1 funt lub 39 — za 1 funt
    • 1 g lub 40 — za 1 gram
    • 10 kg lub 41 — za 10 kilogramów
    • 1 centner (100 kg) lub 42 — za 100 kg
    • 1 tona lub 43 — za 1 tonę
    • 1 ml lub 30 — za 1 mililitr
    • 1 l lub 31 — za 1 litr
    • 1 km³ lub 32 — za 1 km³
    • 1 m³ lub 33 — za 1 m³
    • 1 dm³ lub 34 — za 1 dm³
    • 1 cm³ lub 35 — za 1 cm³
    • 1 mm³ lub 36 — za 1 mm³
    • 1 hl lub 37 — za 1 hektolitr
    • 1 galon lub 47 — za 1 galon
    • 1 baryłka lub 48 — za 1 baryłkę
    • 1 m² lub 7 — za 1 m²
    • 1 ar lub 44 — za 1 ar
    • 1 sto metrów kw. lub 15 — za 100 m²
    • 1 akr lub 16 — za 1 akr
    • 1 hektar lub 17 — za 1 hektar
    • Działka lub 18 — za 1 działkę
    • Obiekt lub 19 — za 1 obiekt
    • 1 metr lub 8 — za 1 metr
    • 1 km lub 9 — za 1 kilometr
    • 1 mb lub 55 — za 1 metr bieżący
    • 1 godzina lub 11 — za 1 godzinę
    • 1 dzień lub 12 — za 1 dzień
    • 1 miesiąc lub 13 — za 1 miesiąc
    • 1 rok lub 14 — za 1 rok
    • 1 minuta lub 49 — za 1 minutę
    • 1 tydzień lub 50 — za 1 tydzień
    • 1 usługa lub 51 — za 1 usługę
    • 1 podróż lub 52 — za 1 podróż
    • 1 osoba lub 53 — za 1 osobę
    • 1 samochód lub 54 — za 1 samochód


    - Krótkie opis
    Wyświetlany jako tekst na liście produktów (w kategoriach, wyszukiwarce, blokach nowości), jeśli nie jest ukryty w ustawieniach stylów.

    - Meta tytuł
    Tag Title. Wyświetlany na karcie przeglądarki i stanowi nagłówek.

    - Meta opis
    Tag Description. Krótki tekst pod linkiem w wynikach wyszukiwania. Pomaga wyszukiwarkom zrozumieć zawartość strony i wpływa na współczynnik klikalności (CTR).

    - Meta słowa kluczowe
    Tag Keywords. Zestaw słów kluczowych lub fraz oddzielonych przecinkami, po których użytkownicy mogą znaleźć ten produkt. Wprowadzone słowa są uwzględniane przy wyszukiwaniu produktów na stronie.

    - Nazwa produktu
    Główna nazwa produktu na stronie. Używana do tworzenia nagłówka H1 oraz nazw w koszyku/zamówieniach.

    - Pełny opis
    Główny tekst o produkcie. Wyświetlany w bloku określonym w ustawieniach projektu strony (pozycja bloku może się zmieniać). Może zawierać HTML (listy, tabele, tekst, wideo).

    - Zakładki opisu
    Umożliwia tworzenie dodatkowych sekcji informacyjnych (np.: «Pełny opis produktu», «Specyfikacja», «Dostawa», «Recenzje wideo»). Możesz importować zarówno zwykły tekst, jak i złożony kod HTML z tabelami, ramkami YouTube lub specyfikacjami. Nazwy zakładek są konfigurowane w panelu administracyjnym.

    - Kategoria ID (ID twojej kategorii)
    Podaj ID twoich własnych kategorii sklepu. Jeśli taka kategoria nie zostanie znaleziona na twojej stronie, wartość będzie ignorowana. Przy użyciu własnych kategorii sprawdzane jest ich istnienie. Jeśli wskazana kategoria nie istnieje na stronie, wartość zostanie zignorowana.

    - Kategoria Tytuł (Tytuł twojej kategorii)
    Dane z tego pola są porównywane z wewnętrznym tytułem kategorii. Jeśli kategoria się zgadza, ustawiane jest ID tej kategorii. Jeśli wcześniej podano własne ID kategorii, to będzie ono miało wyższy priorytet niż tytuł kategorii. Przy użyciu własnych kategorii sprawdzane jest ich istnienie. Jeśli wskazana kategoria nie istnieje na stronie, wartość będzie ignorowana.

    - Producent ID (ID twojego producenta)
    Podaj ID twoich kategorii producentów. Jeśli taki producent nie zostanie znaleziony na twojej stronie, wartość będzie ignorowana. Przy użyciu producentów sprawdzane jest ich istnienie. Jeśli wskazany producent nie istnieje na stronie, wartość będzie ignorowana.

    - Producent Tytuł (Tytuł producenta)
    Dane z tego pola są porównywane z wewnętrznym tytułem kategorii producentów. Jeśli kategoria się zgadza, ustawiane jest ID tej kategorii. Jeśli wcześniej podano ID producenta, to będzie ono miało wyższy priorytet niż tytuł producenta. Przy użyciu producentów sprawdzane jest ich istnienie. Jeśli wskazany producent nie istnieje na stronie, wartość będzie ignorowana.

    - Kolekcja ID (ID Twojej kolekcji)
    Podaj ID swoich kategorii - kolekcji. Jeśli taka kolekcja nie zostanie znaleziona na Twojej stronie, wartość nie będzie brana pod uwagę. Przy użyciu kolekcji następuje sprawdzenie ich istnienia. Jeśli wskazana kolekcja nie istnieje na tej stronie, wartość zostanie zignorowana.

    - Kolekcja Tytuł (Tytuł kolekcji)
    Dane z podanego pola są pobierane i porównywane z wewnętrznym tytułem kategorii kolekcji. Jeśli kategoria się zgadza, przypisywane jest ID tej kategorii. Jeśli wcześniej podano Kolekcja ID, będzie on miał wyższy priorytet niż wartość Kolekcji według Tytułu. Przy użyciu kolekcji następuje sprawdzenie ich istnienia. Jeśli wskazana kolekcja nie istnieje na tej stronie, wartość zostanie zignorowana.

    - Produkty synonimy
    Ta opcja pozwala wyświetlić grupę produktów o podobnych cechach, na przykład ten sam produkt w różnych kolorach. Produkty będą wyświetlane w opisie jako link i obrazek.

    Na przykład tę listę produktów można użyć, jeśli ten sam produkt ma wiele rozmiarów i kolorów, przy czym rozmiar można podać w „Wariantach”, a produkty innych kolorów w polu „Produkty synonimy”. Dodaj „Rozmiary” do „wariantu”, a produkty w innym kolorze do tego pola. W ten sposób klient będzie mógł wybrać zarówno „Kolor”, jak i „Rozmiar” jednego produktu.

    - Dostawa: Podaj parametry dostawy
    • 1 — podaj
    • 0 — nie podawaj

    Dodatkowo automatycznie zamieniane są następujące wartości:
    • tak, yes, true, jest, podaj — zamieniane na 1
    • nie, no, -, usuń, ukryj, hide — zamieniane na 0
    • tylko notatki, tylko tekst, oznaczają tylko notatkę o dostawie, tekst — są zastępowane przez 3


    - Dostawa: Tak/Nie/Z ustawień ogólnych/Tylko notatka
    • 1 — tak
    • 0 — nie
    • 2 — użyj ustawień ogólnych
    • 3 — podaj tylko notatkę dotyczącą dostawy

    Dodatkowo automatycznie zamieniane są następujące wartości:
    • yes, +, jest, tak — zamieniane na 1
    • none, -, nie, no — zamieniane na 0
    • z ustawień ogólnych, =, ustawienia ogólne, default — zamieniane na 2


    - Dostawa: Koszt dostawy
    Koszt dostawy

    - Dostawa: Notatki dotyczące dostawy
    Możesz podać warunki dostawy. W polu dozwolone jest użycie HTML.

    - Dostawa: Termin dostawy
    Termin dostawy. Wyświetlany w informacji o dostawie. Automatycznie zamieniane są następujące wartości:
    • 0 — dostawa tego samego dnia (dzisiaj)
    • 1 — dostawa następnego dnia (jutro)
    • Można też podać okres od — do dni, na przykład: 2–4.


    - Dostawa: Wymiary i waga produktu
    Automatycznie zamieniane są następujące wartości jednostek:
    • Rozmiar:
      • 0 — centymetry
      • 1 — metry
    • Waga:
      • 0 — gramy
      • 1 — kilogramy


    - Dostawca (Tytuł dostawcy)
    Dane z podanego pola są pobierane i porównywane z nazwami Dostawców. Jeśli kategoria się zgadza, przypisywane jest ID tej kategorii. Jeśli wskazany dostawca nie istnieje na tej stronie, wartość zostanie zignorowana. Jeśli podasz ID dostawcy, będzie ono miało wyższy priorytet.

    - Link do obrazu (głównego) (Należy podać główny obraz przed załadowaniem dodatkowych)
    Możesz podać link do pliku (obrazu), który zostanie załadowany. Ładowanie następuje, jeśli nie zaznaczono opcji "Tylko aktualizacja". Jeśli plik już istnieje w karcie produktu, może zostać nadpisany. W ten sam sposób ładowane są dodatkowe obrazy ("Link do obrazu (dodatkowego...)").

    - Link do obrazu (dodatkowego 1-16)
    - Nadpisywanie obrazów przy wykryciu
    Jeśli przy imporcie produkt już istnieje i ma obrazy, można określić, co zrobić. Usunąć stare obrazy czy nie. Nie nadpisywać - 0, Nadpisywać - 1, automatycznie zamienia też tekst Tak, true i Nie.

    - Produkty powiązane
    Do każdego produktu można utworzyć własną listę produktów powiązanych, które będą dodatkowo wyświetlane na stronie głównej produktu. Podaj ID lub kod/SKU produktów, oddzielone przecinkami.

    - Etykiety
    Do każdego produktu można utworzyć własną listę etykiet, które będą dodatkowo wyświetlane na stronie głównej produktu i pomogą przy SEO oraz ułatwią nawigację na Twojej stronie. Wpisuj etykiety oddzielone przecinkami. ABY USUNĄĆ ETYKIETY NALEŻY WPISAĆ 0 (zero), spację lub delete

    - Nagłówek wariantu
    Nagłówek wyświetlany nad listą wartości wariantów. Na przykład, Wybierz kolor.

    - Aktualizacja wariantu
    Do każdego produktu można utworzyć własną listę wariantów/opcji, które będą dodatkowo wyświetlane na stronie produktu. Poniżej opisano sposób tworzenia i aktualizacji wariantów podczas importu:

    • Możesz załadować plik importu, w którym dane są podzielone na główne Produkty i ich Warianty / Konfiguracje.
      Aby system rozpoznał wiersz jako wariant, w komórce „Aktualizacja wariantu” wpisz wartość 1.
      W tym przypadku będą brane pod uwagę tylko następujące pola: Kod produktu, Dostępność, Status, Nazwa, Cena, Cena hurtowa, Cena zakupu, Wymiary, Waga.
      Te pola odpowiadają głównym kolumnom cennika do importu (z wyjątkiem pola „Status”, które kontroluje widoczność wariantu, np. pozwala go ukryć).

      Jeśli podano „ID wariantu”, zostanie zaktualizowany właśnie ten wariant (jeśli już istnieje). Podobnie można zaktualizować wariant po „Kodzie produktu” lub „Nazwa”\*. Jeśli nie ma zgodności, zostanie utworzony nowy wariant.

      Aby usunąć wariant, w kolumnie „Usuń” wpisz dowolną niepustą wartość, np. 1 lub delete.
      Jeśli pole „Aktualizacja wariantu” jest puste lub równe 0, wiersz zostanie rozpoznany jako osobny produkt, a nie wariant.

      W razie potrzeby warianty można wyeksportować osobno — zaznacz „Podziel wariant” przy eksporcie, aby otrzymać plik tylko z wariantami.


      Na przykład możesz wyeksportować produkty — zobaczysz, jak są podawane parametry wariantów i jak są aktualizowane.
      Aby usunąć wariant, w kolumnie „Usuń” wpisz dowolną wartość delete lub 1.


      \*Można zaktualizować istniejący wariant po Kodzie produktu.
      Aby to zrobić, po załadowaniu pliku do importu włącz opcję „Aktualizuj wariant po kodzie produktu”.

      Jak działa aktualizacja wariantu przez komórki Excel:
      Jeśli produkt ma wariant i Kod produktu w wierszu importu zgadza się z tym kodem, zostaną zaktualizowane pola takie jak: Cena, Dostępność, Ilość na stanie, Kolejność (priorytet), Cena hurtowa, Minimalne zamówienie hurtowe, Stara cena, Wymiary oraz wariant może zostać usunięty.
      Pola wariantu są zgodne z głównymi polami do importu produktu. Do sterowania sposobem wyświetlania (pokaż, ukryj lub pokaż nieaktywny przycisk) użyj kolumny „Status”. Wartość off — ukryje wariant.

      Jeśli chcesz całkowicie zaktualizować wariant (w tym nazwę i style) — użyj kolumny „Wariant” i zaznacz „Uwzględnij wariant” podczas importu. Ta opcja pozwala masowo aktualizować dane wszystkich wariantów po kodzie produktu.

      Ważne! Jeśli jednocześnie włączone są parametry „Aktualizuj wariant po kodzie produktu” i „Uwzględnij wariant”, wariant zostanie nadpisany dwukrotnie, co może spowodować konflikt danych. Dlatego zaleca się stosować tylko jeden sposób naraz: albo aktualizację po kodzie produktu, albo aktualizację przez kolumnę „Wariant”.

    Możesz zaimportować plik z rozdzieleniem pól na Produkty lub Zestawy / Warianty / Konfiguracje.
    Funkcja importu tych danych jest dostępna tylko dla stron z opłaconym hostingiem oraz zaparkowaną domeną.

    - Warianty (w formacie skompresowanym)
    Warianty w formacie skompresowanym to dodatkowy sposób weryfikacji wariantów. Zawiera warianty w formie skompresowanej: {ID WARIANTU|Cena|SKU|Priorytet / Pozycja sortowania|TYTUŁ|Dostęp|Stan magazynowy|Parametr wyświetlania stanu|Ilość na magazynie|Numer obrazka|Cena hurtowa (rozdzielona ;)|Ilość dla ceny hurtowej (rozdzielona ;)|Stara cena|Cena zakupu|Szerokość|WYSOKOŚĆ|Długość|centymetry -0 / metry -1|Waga|gramy -0 / kilogramy -1|Usuń|Opis / Tekst}
    Funkcja importu tych danych jest dostępna tylko dla stron z opłaconym hostingiem oraz zaparkowaną domeną.

    - Typ produktu i cechy
    Dla każdego produktu możesz ustawić wartości dla filtra wyszukiwania (Typ produktu i wartości cech).

    Aby zaimportować cechy, najpierw wyeksportuj produkty, aby uzyskać listę komórek z cechami.

    Dane są sprawdzane podczas importu i jeśli znajdzie się odpowiadająca wartość, zostanie uwzględniona.

    Funkcja importu tych danych jest dostępna tylko dla stron z opłaconym hostingiem oraz zaparkowaną domeną.

    - Usuń
    Jeśli produkt już istnieje i trzeba go usunąć, wystarczy ustawić w polu Usuń wartość: 1, Tak lub delete

    - Nowość, Bestseller, Rabat, Cena obniżona, Promocja
    Aby aktywować te pola, można użyć następujących wartości: 1, Tak lub true, a także odpowiadających polu wartości Nowość, Bestseller...
    W polu Rabat można wpisać dowolną wartość tekstową (pole ma charakter informacyjny i nie wykonuje przeliczeń)

    - Nie eksportować do YML&RSS&XML
    Nie eksportować w formacie YML&RSS&XML. Dostępne wartości: 1, Tak lub true — nie eksportować, lub 0, puste — eksportować

    - Promocja: Oferta promocyjna (tekst)
    Tekst oferty promocyjnej. Do 5000 znaków, z obsługą HTML. Aby wyświetlić ofertę promocyjną, koniecznie aktywuj pole „Promocja”.

    - Promocja: Timer: Data i godzina zakończenia
    Data i godzina w formacie 08.07.2015 12:59:33

    - Promocja: Timer: Po wygaśnięciu
    Działania po wygaśnięciu promocji:

    • 0 - Nie robić nic (ukryć timer)
    • 1 - Przenieść „Starą cenę” do ceny podstawowej i usunąć starą cenę
    • 2 - Usunąć oznaczenie „Promocja”
    • 3 - Przenieść „Starą cenę” do ceny podstawowej i usunąć oznaczenie „Promocja”
    • 5 - Uruchomić timer ponownie na 1 dzień
    • 6 - Uruchomić timer ponownie na 10 dni
    • 7 - Uruchomić timer ponownie z poprzednim czasem (data timera minus data ostatniej edycji)
    • 8 - Usunąć oznaczenie „Promocja” i usunąć „Starą cenę”


    - Priorytet (kolejność wyświetlania)
    Ta opcja wpływa na numer kolejności podczas przeglądania listy produktów w Twoim sklepie. Domyślnie produkty na stronie sklepu są sortowane po ID. Im większa liczba, tym wyżej produkt będzie wyświetlany. Kolejność sortowania domyślnego można zmienić w ustawieniach, w zakładce Sklep.

    - Minimalna ilość produktu do zakupu
    Minimalna ilość produktu wymagana do zakupu. Domyślnie do koszyka zostanie dodana podana minimalna ilość produktu. Podczas składania zamówienia kupujący zostanie poinformowany o konieczności dodania większej ilości, jeśli ilość w koszyku jest mniejsza niż wskazana.

    - Obraz ochronny watermark
    Ustaw obraz ochronny, który jest domyślnie określony w ogólnych ustawieniach strony. Dostępne wartości: 1, Tak lub true - eksportuj, lub 0 i puste - nie eksportuj

    - Typ wariantu dla Google Merchant XML
    Dozwolone wartości:
    • 0 - rozmiar
    • 1 - kolor
    • 2 - wzór
    • 3 - materiał
    • 4 - grupa wiekowa
    • 5 - płeć


    - Dostęp
    W razie potrzeby można ukryć produkt przed odwiedzającymi i wyszukiwarkami.

    Dostępne wartości:
    • 0, Nie, Wyłącz, false — Wyłączony;
    • true, 1, Włącz, puste — Włączony.


    - I inne pola



Jeśli podczas importu zostanie znaleziony produkt z takim samym SKU/Kodem produktu lub ID, dane zostaną zaktualizowane. Obrazy są brane pod uwagę tylko, jeśli opcja „Tylko aktualizacja” nie jest zaznaczona.
Import asynchroniczny

Możesz włączyć opcję „Import asynchroniczny”, aby ładować duże ilości danych w tle.

Zalety:

  • Import odbywa się w tle — możesz nadal korzystać z serwisu podczas przetwarzania.
  • Przeglądarka nie zostanie przeciążona, a postęp będzie widoczny na bieżąco.

Ważne:

  • Jeśli nie korzystasz z trybu asynchronicznego, strona będzie tymczasowo niedostępna tylko dla Ciebie podczas importu. Dla innych użytkowników pozostanie dostępna.
  • Podczas importu asynchronicznego szczegółowy log dla każdego produktu nie jest dostępny — nie zobaczysz, które pola zostały zmienione w czasie rzeczywistym.
  • Po zakończeniu importu będzie dostępny skrócony raport podsumowujący z listą zaktualizowanych, pominiętych, usuniętych i problematycznych produktów oraz wariantów.
    Historia dostępna jest w sekcjach „Pokaż wynik poprzedniego importu” lub „Poprzedni proces importu”.

Promocja stron i SEO

Promocja stron

Na platformie BooStore.pro stworzono dodatkowe funkcje do SEO promocji strony, na przykład będziesz mógł automatycznie dodawać do wszystkich produktów określonej kategorii potrzebne Ci słowa.

Zalecenia dotyczące SEO
Zalecenia dotyczące uruchamiania kampanii reklamowych


Zalecamy włączenie "przekierowania z przypisaniem językowym". Ta funkcja pomaga uniknąć duplikatu strony startowej (duplikaty źle wpływają na SEO). Ze względu na to, że strona startowa domain.com i strona z przypisaniem językowym domain.com/ru/ to ta sama strona, zalecamy włączenie przekierowania 301 na stronę z przypisaniem językowym. Można to zrobić w Admin-centrum, Ustawienia, Strona startowa.

Dostęp do strony

Dostęp do strony

Możesz ograniczyć dostęp do strony w «Ustawieniach», w zakładce "O stronie".

Jeśli planujesz używać własnej domeny, zalecamy na dostępie tymczasowym ograniczyć dostęp do strony, a po zakupie domeny otworzyć go.

Jeśli potrzebujesz Usunąć stronę / Informacje o firmie, otwórz stronę edycji informacji o Stronie / Firmie, a na dole zaznacz pole "Usuń stronę i wszystkie dane" lub "Usuń stronę". Po pewnym czasie informacje o firmie / stronie znikną z wyników wyszukiwarek.

Pamięć podręczna

Pamięć podręczna

Dzięki pamięci podręcznej użytkownicy ponownie odwiedzający Twoją stronę spędzają mniej czasu na ładowaniu stron. Nagłówki pamięci podręcznej powinny być stosowane do wszystkich buforowanych zasobów statycznych, a nie tylko do niektórych z nich (np. obrazów). Zasoby podlegające buforowaniu obejmują pliki JavaScript i CSS, graficzne i inne pliki (treści multimedialne).

Pamięć podręczna plików multimedialnych

Zgodnie z zaleceniami wyszukiwarek, a także dla wygody odwiedzających, włączyliśmy na Twojej stronie «Kompresję danych» oraz buforowanie plików graficznych i JavaScript. Okres buforowania tych plików wynosi jeden tydzień.  

Jeśli ładujesz nowy obraz w miejsce starego, będziesz widzieć 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 do wymuszonego czyszczenia należy nacisnąć «CTRL+F5» w oknie przeglądarki na Twojej stronie.

Pamięć podręczna serwera

Ponadto, aby przyspieszyć działanie stron, zaimplementowaliśmy buforowanie niektórych danych tekstowych, które są czyszczone automatycznie po ich zmianie. Jeśli jednak zmieniłeś zawartość strony/produktu/artykułu/menu, ale zmiany nie wyświetliły się na stronie, należy ręcznie wyczyścić pamięć podręczną, korzystając z linku w panelu administracyjnym «Wyczyść pamięć podręczną», na stronie, na której nie wyświetliły się zmiany.

Konserwacja strony i czyszczenie pamięci podręcznej

Na stronie buforowane są takie dane, jak «Odmiana produktu», «Promocje» (w tym licznik), «RSS/XML/CSV» wywozy, liczba produktów w kategorii. Aby wyczyścić pamięć podręczną RSS/XML/CSV, wybierz w Panelu administracyjnym «XML/CSV/XLS/JSON» — «Wyczyść pamięć podręczną wywozów XML/CSV».

Aby przeliczyć odmiany, liczbę produktów w kategoriach i wyczyścić pamięć podręczną Promocji, przejdź do «Ustawienia», «Sklep» i na dole listy w punkcie «Przeliczanie produktów i kategorii» wybierz niezbędne parametry do przeliczenia i konserwacji.
Tę procedurę zaleca się wykonać po dużej aktualizacji danych w sklepie, zmianie kategorii, dodaniu i zmianie lub usunięciu dużej liczby odmian, dodaniu i zmianie kategorii, przeniesieniu kart produktów do innych kategorii lub jeśli kończy się okres licznika w promocjach.

Architektura i przyspieszanie e-commerce


Czesto zadawane pytania

Czesto zadawane pytania

Poczatek

    Czy na stronie jest prosty system zarzadzania (panel administracyjny)?

    Tak. Platforma jest wyposazona w pelnowartosciowy panel administracyjny zaprojektowany do maksymalnie szybkiej pracy. Wiekszosc ustawien i elementów jest dodawana poprzez intuicyjne okna podreczne z pytaniami pomocniczymi, co eliminuje bledy przy wypelnianiu.

    Procesy wstawiania bloków, generowania widgetów i ladowania plików odbywaja sie natychmiast, bez przeladowywania stron. To znaczaco oszczedza czas przy wypelnianiu sklepu i sprawia, ze zarzadzanie strona jest latwe i wygodne nawet dla poczatkujacych uzytkowników.

    Jak gleboko mozna konfigurowac system przez panel administracyjny?

    Platforma zapewnia pelna ekosystem administracji z dostepem do wszystkich wezlów strony. System jest podzielony na logiczne centra zarzadzania, co pozwala elastycznie konfigurowac kazdy aspekt Twojego biznesu:

    • Globalna lokalizacja: pelne zarzadzanie Jezykami i wielowalutowoscia z automatyczna aktualizacja kursów.
    • Logistyka i sprzedaz: szczególowa konfiguracja stref Dostawy, metod platnosci i struktury Sklepu.
    • Interfejs i tresc: wizualny edytor Projektu, zarzadzanie Katalogiem, artykulami i stronami informacyjnymi.
    • Interaktywnosc i automatyzacja: potzny konstruktor Formularzy zamówien i elastyczna konfiguracja Zdarzen (np. scenariusze zachowania strony przy dodawaniu produktu do koszyka).

    Taka architektura czyni system maksymalnie adaptacyjnym: mozesz skonfigurowac wszystko — od parametrów SEO kazdej strony po specyficzne procesy biznesowe obslugi zgloszen.

Projekt

    Czy moge calkowicie zmienic projekt strony?

    Tak. Platforma pozwala w pelni zarzadzac projektem strony. Mozesz edytowac HTML, podlaczac wlasne CSS, dodawac JavaScript, tworzyc wlasne bloki i konfigurowac strukture stron. To zapewnia pelna personalizacje strony.

    Jak edytowac strony?

    Masz pelny dostep do kodu HTML, a takze wygodny wbudowany edytor i obszerna biblioteke gotowych bloków. Mozesz szybko dodawac naglówki, slajdy, bloki kontaktów, media spolecznosciowe i korzystac z wbudowanej biblioteki SVG-ikon. Zapoznac sie z dzialaniem narzedzi mozna tutaj: Demonstracja edytora i Biblioteka bloków.

    Jak stworzyc wlasny naglówek?

    Aby to zrobic, utwórz blok menu, wybierz jego lokalizacje — «Naglówek strony» — i wstaw kod HTML potrzebnych elementów. Cala stylizacje zaleca sie dodawac przez edytor projektu (zakladka «CSS style»): takie podejscie gwarantuje, ze kod zostanie automatycznie zminifikowany i zapewni maksymalnie szybkie ladowanie strony.

    Jak zmienic czcionke na stronie?

    Zaleca sie korzystac z biblioteki Google Fonts. Otrzymany kod (np.: <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Philosopher:wght@400;700&display=swap" rel="stylesheet">) nalezy wstawic do bloku menu, wybierajac pozycje «Tagi pomocnicze». Nastepnie w edytorze projektu w zakladce CSS style wskaż elementy do przypisania czcionki:

    html, body, * { font-family: "Philosopher", sans-serif; font-optical-sizing: auto; }
    Jak dodac kod HTML na strone?

    Kod HTML mozna wstawiac bez ograniczen: zarówno do specjalnych bloków, umieszczajac je w dowolnej czesci strony, jak i bezposrednio w tresc stron, artykulów, kategorii lub kart produktów.

    Ponadto, do rozwiazywania standardowych zadan dostepne sa gotowe widgety. Za ich pomoca mozna szybko dodac funkcjonalnosc o dowolnym stopniu zlozonosci: menu mobilne, koszyk, listy kategorii, klasyczne lub mega-menu, a takze inne elementy bez koniecznosci pisania kodu recznie.

    Jak zmienic projekt sklepu internetowego?

    Projekt mozna zmienic przez edytor projektu, uzywajac szablonów, ustawien bloków i stylów CSS. Dostepna jest równiez pelna personalizacja ukladu strony i gotowe presety projektu (bloki kontaktów, naglówki, tresc stron).

    Czy moge zmienic projekt strony bez doswiadczenia w programowaniu?

    Tak. Mozesz wybrac gotowy szablon, ustawic podstawowe kolory i rozmieszczenie bloków w edytorze wizualnym. Konfiguracja stopki, menu mobilnego i naglówka strony odbywa sie za pomoca elastycznych widgetów, które nie wymagaja pisania kodu, ale daja profesjonalny efekt. Dostepna jest równiez biblioteka gotowych bloków z profesjonalnym adaptacyjnym projektem.

    Czy moge podlaczyc wlasne skrypty lub widgety osób trzecich?

    Tak. Platforma nie ogranicza Cie do wbudowanego funkcjonalnosci. Mozesz wstawiac dowolny kod JavaScript (chat-boty, systemy calltracking, niestandardowe liczniki) przez zarzadzanie blokami lub bezposrednio w szablony strony. Do tego sluza specjalne pola «Przed </head>» i «Przed </body>».

    Czy moge uzywac shortcode'ów i dynamicznych danych w tekstach?

    Tak. Platforma obsluguje system zastepowalnych krótkich kodów (shortcode'ów). Mozesz automatycznie wstawiac w tekst nazwe produktu, aktualna cene, nazwe zalogowanego uzytkownika lub sciezke strony. To pozwala tworzyc spersonalizowane tresci i dynamiczne szablony SEO.

    Czy strony sa dostosowane do urzadzen mobilnych?

    Tak. Wszystkie strony na platformie uzywaja responsywnego ukladu. Interfejs automatycznie dostosowuje sie do ekranów smartfonów i tabletów, zapewniajac wysoka szybkosc ladowania i wygode uzytkowania na wszystkich urzadzeniach mobilnych.

    Wazna zaleta jest brak ograniczen dla realizacji wlasnych pomyslów: mozesz w pelni personalizowac projekt i stylistyke strony dla wersji mobilnych, tworzac unikalne doswiadczenie uzytkownika (UX) bez przywiazania do sztywnych ram szablonu.

    Jak zmieniac styl przycisków i elementów indywidualnie?

    Do indywidualnej edycji stylu wystarczy nacisnac «zbadaj element» w przegladarce, znalezc odpowiednia klase i przepisac dla niej wlasciwosci w edytorze projektu (zakladka CSS). Struktura BooStore.pro eliminuje «balagan» w stylach, poniewaz kazdy blok ma unikalny ID i jest powiazany z typem tresci.

    Jaka jest hierarchia glównych bloków strony do pracy z CSS?

    Strona ma wyrazna strukture kontenerów: ogólny blok opakowujacy #hotengine-wrapper, naglówek #hotengine-header, glówny kontener tresci #hotengine-content-container i stopka #hotengine-footer. Wewnatrz czesci contentowej style sa podzielone wedlug typów stron (ID): strony — #hotengine-content-page, artykuly — #hotengine-content-blog, produkty — #hotengine-content-shop.
    Glówne bloki

    Jak rozrózniac style kategorii, kolekcji i producentów?

    Dla stron z listami (kategoriami) automatycznie dodawane sa klasy uszczególawiajace: .hotengine-content-shop-category dla produktów, .hotengine-content-shop-collection dla kolekcji i .hotengine-content-shop-producer dla producentów. To pozwala ustawiac unikalny projekt dla kazdego typu katalogu. Szczególowa tabele zgodnosci ID i klas mozesz znalezc w instrukcji: Identyfikatory i klasy bloków.

    Czy istnieje prosty mechanizm edycji projektu?

    Tak. Platforma oferuje elastyczny edytor projektu, katalog gotowych szablonów i presetów, które pozwalaja szybko zlozyc zarówno wielostronicowy landing, jak i zaprojektowac ogólny styl calej strony.

    Mozesz latwo skonfigurowac naglówek (header), stopke (footer) i inne czesci strony. Aby przyspieszyc prace, wbudowane sa gotowe widgety, które pozwalaja w kilka klikniec stworzyc menu mobilne, koszyk, listy nawigacyjne lub zlozone mega-menu, bez koniecznosci programowania.

Jak dodawac i edytowac produkty

    Jak dodac produkty do katalogu sklepu internetowego?

    Produkty mozna dodac recznie przez panel zarzadzania lub importowac z plików XLS, CSV, XML, Google Sheets lub przez API. To pozwala szybko wypelnic katalog duza liczba produktów.

    Gdzie i jak zarzadzac lista produktów?

    Glówne zarzadzanie znajduje sie w sekcji Sklep — Moje produkty. To centralne centrum Twojego katalogu, gdzie dostepne sa:

    • Wyszukiwanie i filtrowanie: Mozesz natychmiast znalezc produkt po kodzie, nazwie lub odfiltrowac liste wedlug kategorii, producentów i statusu dostepnosci.
    • Szybkie akcje: Bezposrednio z listy mozesz zmieniac status publikacji, stany magazynowe i ceny bez wchodzenia do karty produktu.
    • Dodawanie produktów: Przycisk «Dodaj produkt» otwiera pelnofunkcjonalny edytor do tworzenia nowej pozycji od podstaw.
    Jak szybko wprowadzic zmiany w duzej liczbie produktów?

    Do tego sluzy profesjonalne narzedzie Sklep — Edycja grupowa. Pozwala ono na:

    • Masowa zmiane cen: Zwiekszenie lub zmniejszenie kosztu calej kategorii o okreslony procent lub stala kwote.
    • Zarzadzanie statusami: Jednym kliknieciem wlaczyc lub wylaczyc wyswietlanie setek produktów, ustawic etykiety «Hit sprzedazy» lub «Nowosc».
    • Przenoszenie danych: Szybko przeniesc produkty z jednej kategorii do innej lub masowo przypisac im nowy Typ produktu z odpowiednimi cechami.
    Jak polaczyc kilka kart tego samego produktu w róznych kolorach lub rozmiarach?

    Do tego sluzy funkcjonalnosc «Odmiany». Mozesz stworzyc kazda karte osobno dla lepszego SEO, a nastepnie polaczyc je za pomoca parametru «Produkty synonimy». Mozesz równiez skonfigurowac wybór parametrów (kolor, rozmiar, material) w ramach jednej karty przez grupy odmian.

    Czy mozna ustawiac ceny hurtowe dla produktów?

    Tak. Platforma pozwala ustawiac ceny hurtowe zarówno dla glównych produktów, jak i dla ich odmian (wariantów). Mozesz skonfigurowac automatyczne przeliczanie kosztu w zaleznosci od ilosci produktu w koszyku, co czyni system idealnym do pracy w segmencie B2B i sprzedazy hurtowej.

    Czy istnieje ograniczenie liczby produktów w sklepie internetowym?

    Platforma nie ogranicza maksymalnej liczby produktów. Architektura SaaS pozwala skalowac projekt od malego landinga do duzych ecommerce katalogów z setkami tysiecy pozycji. Dzieki optymalizacji serwerowej wysoka wydajnosc jest utrzymywana przy dowolnych ilosciach danych.

Kategorie / Producenci / Kolekcje

    Jak jest zbudowana struktura katalogu: kategorie, producenci i kolekcje?

    Platforma oferuje trójpoziomowy system organizacji tresci. Mozesz tworzyc nie tylko drzewo kategorii, ale równiez osobne sekcje dla Producentów (marek) i Kolekcji. Kazda taka jednostka ma wlasna zoptymalizowana strone z lista produktów, unikalnym URL, tekstem SEO i meta-tagami, co pozwala efektywnie promowac sie w zapytaniach brandowych i tematycznych.

    Czy moge szybko wypelnic slowniki kategorii i marek?

    Tak, do tego sluza narzedzia natychmiastowego wypelniania. Mozesz importowac listy kategorii, producentów i kolekcji przez Excel (XLS), CSV lub Google Sheets. Zaimplementowana jest równiez funkcja szybkiego importu ze schowka: wystarczy skopiowac liste nazw z dowolnego edytora tekstu i wkleic je w specjalne pole, aby system automatycznie utworzyl odpowiednie wpisy.

    Czy import artykulów i tresci jest obslugiwany?

    System pozwala masowo importowac nie tylko produkty, ale równiez artykuly oraz kategorie bloga. To znaczaco przyspiesza przenoszenie tresci z innych platform lub uruchamianie obszernych sekcji informacyjnych. Caly zaimportowany content zachowuje strukture i jest gotowy do publikacji zaraz po zaladowaniu.

Dostawa

    Jak skonfigurowac wyliczanie kosztów dostawy w zaleznosci od kraju lub regionu?

    Do ustawien globalnych przejdz do sekcji Sklep — Dostawa — «Dostawa z podzialem na kraje». Tutaj mozesz wskazac konkretne kraje i regiony, a takze ustawic warunki dotyczace kwoty zamówienia, przy których dana metoda bedzie dostepna. W tym trybie wybór dostawy odbywa sie na etapie wstepnym, jeszcze przed przejsciem do glównego formularza skladania zamówienia.

    Jak skonfigurowac metody dostawy bezposrednio w formularzu skladania zamówienia?

    Przejdz do sekcji Sklep — Dostawa — «Wybór metody dostawy (w formularzu zamówienia)». Mozesz tworzyc nieograniczona liczbe metod, ustawiac im «Nazwe», «Priorytet» wyswietlania na liscie i przypisywac do konkretnego «Jezyka» strony. Dla kazdej metody mozesz podac «Koszt dostawy», a takze skonfigurowac zakresy dostepnosci wedlug «Kwoty zamówienia», «Objetosci (m3)» i «Wagi (Kg)».

    Czy moge zmieniac zestaw pól adresu dla róznych metod dostawy?

    Tak. W ustawieniach kazdej metody dostawy dostepny jest wybór konfiguracji pól. Dostepne sa opcje: «Pola adresu w 1 linii», podzial na «Województwo, miasto, ulice», a takze wyspecjalizowane formaty «Miasto i numer oddzialu» lub «Numer paczkomatu». Jesli oferujesz «Odbiór wlasny», mozesz wybrac pozycje «Pola adresu ukryte».

    Jak podlaczyc automatyczny wybór oddzialów przez API (Nova Poshta, Ukrposhta)?

    W ustawieniach metody dostawy w punkcie «Api» wybierz odpowiedni serwis (np. «NOVAPOSHTA API» lub «UKRPOSHTA API»). Mozesz równiez skonfigurowac «Filtr oddzialów», aby pokazywac uzytkownikowi tylko oddzialy cargo, paczkomaty lub zwykle oddzialy. Platforma obsluguje automatyzacje, pozwalajac wlaczyc lub wylaczyc «Tworzenie TTN» bezposrednio z ustawien metody.

    Czy moge ukryc okreslone metody platnosci dla konkretnego rodzaju dostawy?

    Tak, w platformie zaimplementowana jest wspólzaleznosc platnosci i dostawy. W edytorze metody dostawy znajdz punkt «Ukryj metode platnosci» i wybierz z listy te metody (np. «Za pobraniem»), które nie powinny sie wyswietlac przy wyborze danej opcji dostawy.

    Jak dziala sledzenie przesylek (Tracking) dla kupujacego?

    W ustawieniach dostawy mozesz podac «Tracking URL» z maska {TrackNo} (np. https://site.com/?track={TrackNo}). Gdy dodasz numer listu przewozowego w «Statystykach sprzedazy» do konkretnego zamówienia, system automatycznie podstawi go w link, a kupujacy bedzie mógl sledzic przesylke jednym kliknieciem ze swojego konta lub e-maila.

    Gdzie dodac opis warunków dostawy, który zobaczy klient?

    Uzyj pola «Opis dostawy» w ustawieniach metody. Mozesz wstawic tam tekst lub kod HTML. Ten opis bedzie dynamicznie wyswietlany w formularzu skladania zamówienia zaraz po tym, jak uzytkownik wybierze odpowiednia pozycje na liscie metod dostawy.

    Jak skonfigurowac punkty odbioru w sklepie internetowym?

    Aby zorganizowac odbiór wlasny, przejdz do sekcji Sklep — Dostawa — «Wybór metody dostawy (w formularzu zamówienia)». W ustawieniach metody wybierz konfiguracje pól «Odbiór wlasny z punktu wydania (Pola adresu ukryte)». Same adresy punktów konfiguruje sie w sekcji Sklep — «Sklepy/Punkty odbioru», gdzie mozesz dodac nieograniczona liczbe filii lub magazynów, które beda dostepne dla kupujacego do wyboru przy skladaniu zamówienia.

Platnosc i metody platnosci

    Czy trudno podlaczyc przyjmowanie platnosci na stronie?

    Nie, popularne systemy platnosci lacza sie w kilka klikniec w sekcji «Sklep → Systemy platnosci». W celu ochrony przed oszustwami i zwiekszenia zaufania klientów, podlaczenie agregatorów platnosci jest dostepne dla stron z wlasna domena.

    Jak dodac wybór systemu platnosci przy skladaniu zamówienia?

    Najpierw podlacz system platnosci w sekcji Sklep — Systemy platnosci. Gdy Twoj system pojawi sie na liscie aktywnych, przejdz do sekcji Ustawienia — Sklep, Waluta i platnosc — Wybór metody platnosci (w formularzu zamówienia). Dodaj nowa metode platnosci i w polu «Metoda platnosci po wyborze» wskaż swoj system. W punkcie «Pokaz inne metody platnosci oprócz wybranej, po zlozeniu zamówienia» wybierz «ukrywaj» — wtedy po zlozeniu zamówienia uzytkownik od razu przejdzie do platnosci wybrana metoda.

    Czy moge wysylac dane do platnosci przy skladaniu zamówienia?

    Tak. W sekcji Ustawienia — Sklep, Waluta i platnosc — Wybór metody platnosci (w formularzu zamówienia) wybierz odpowiednia metode i wypelnij pole «Wiadomosc wysylana na e-mail po zlozeniu zamówienia» w formacie HTML. Mozesz równiez wypelnic pole «Wiadomosc po zlozeniu zamówienia» — ten tekst wyswietli sie natychmiast na stronie pozytywnego zakonczenia zamówienia, ale do wyslania danych klientowi uzyj wlasnie pierwszego punktu.

    Jak dodac wyjasnienie do metody platnosci bezposrednio w formularzu zamówienia?

    Przejdz do sekcji Ustawienia — Sklep, Waluta i platnosc — Wybór metody platnosci (w formularzu zamówienia) i w ustawieniach konkretnej metody wypelnij pole «Opis metody platnosci». Ten tekst bedzie wyswietlany w formie bloku informacyjnego bezposrednio w formularzu skladania zamówienia w momencie wyboru danej metody platnosci. To wygodne do doprecyzowania prowizji lub warunków platnosci.

    Jak ukryc pola adresu przy skladaniu zamówienia na uslugi?

    Jesli sprzedajesz produkty cyfrowe lub uslugi i adres klienta nie jest wymagany, przejdz do Ustawienia — Sklep, Waluta i platnosc — Wybór metody platnosci (w formularzu zamówienia). W ustawieniach metody platnosci aktywuj punkt «Ukryj pola adresu». W tym przypadku przy wyborze tej metody formularz skladania zamówienia bedzie krótszy, a pola do wprowadzania danych dostawy zostana ukryte.

Import produktów i automatyzacja sklepu

    Czy mozna zrobic przelacznik walut na stronie?

    Tak, kupujacy moga samodzielnie wybierac walute do wyswietlania cen. Konwersja odbywa sie po kursie, który mozna podac recznie w ustawieniach lub pozostawic pole puste do automatycznej aktualizacji wbudowanymi narzedziami platformy. Wybór waluty nastepuje przez zmienna GET «setting_shop_currency».

    Dostepne wartosci: BYN, EUR, KZT, PLN, RUB, UAH, USD.

    Mozesz wstawic menu wyboru waluty za pomoca krótkiego kodu:

    {HOTENGINE-SC:currencymenu:BYN|EUR|KZT|PLN|RUB|UAH|USD}

    Aby poprawnie wyswietlic menu, nalezy podlaczyc gotowy styl, dodajac do pliku CSS linie:

    @import url(/templates/styles/css_hotengine_currencymenu.css);

    Lub mozesz stworzyc wlasny styl do projektowania elementów.

    Wazne: aby aktywowac te funkcje, koniecznie wlacz opcje «Zmiana waluty przez odwiedzajacego» w sekcji «Ustawienia — Sklep, Waluta i platnosc».

    Czy moge importowac produkty do sklepu internetowego?

    Tak. Produkty mozna importowac przez XLS, CSV, Google Sheets, XML lub API. Dostepne jest zarówno pelne ladowanie katalogu, jak i aktualizacja poszczególnych danych: cen, cech i stanów magazynowych.

    Obslugiwany jest automatyczny import wedlug harmonogramu z róznych zródel. Mozesz sam wybierac pola do aktualizacji i ustawiac narzuty przez wbudowane formuly, co w pelni automatyzuje zarzadzanie cenami w czasie rzeczywistym.

    Czy moge zautomatyzowac wypelnianie sklepu?

    Tak, do pracy z duzymi bazami danych przewidziana jest sekcja Sklep — Import produktów. Mozesz ladowac pliki w formatach XLS, CSV lub XML. System pozwala elastycznie dopasowac kolumny Twojego pliku do pól w bazie danych strony, co eliminuje koniecznosc recznego wprowadzania przy migracji z innych platform lub przy otrzymywaniu swiezych cenników od dostawców.

    Jak skonfigurowac automatyczny import produktów i jakie parametry sa dostepne?

    Automatyczny import (sekcja Sklep — Automatyczny import) pozwala w pelni delegowac aktualizacje katalogu systemowi. Mozesz tworzyc nieograniczona liczbe scenariuszy importu z nastepujacymi parametrami:

    • Protokoly i zródla: Obslugiwane sa HTTP, HTTPS, FTP, a takze bezposrednia integracja z Google Sheets. System dziala z kodowaniem UTF-8 i Windows-1251.
    • Elastyczny harmonogram: Interwal uruchomienia od 4 godzin do 30 dni. Mozesz ustawic priorytet wykonania dla róznych cenników.
    • Typy plików: Bezposrednia praca z CSV, XLS, XLSX, XML/YML, a takze obsluga archiwów ZIP (automatyczne rozpakowanie przed importem).
    • Inteligentna marza: Wbudowany kalkulator pozwala automatycznie zmieniac cene z cennika. Mozesz dodac procent lub stala kwote (+, -, *, /) do ceny zakupu lub detalicznej. Dostepne sa scenariusze: np. jesli w cenniku nie ma «Ceny zakupu», marza zostanie zastosowana do «Detalicznej».
    • Kontrola stanów i danych:
      • Funkcja «Ustaw "Brak w magazynie" dla pozostalych» wyzeruje stany produktów, których nie ma w nowym cenniku.
      • Automatyczna konwersja obrazów do formatu WebP dla przyspieszenia strony.
      • Mozliwosc podzialu komórki z wieloma zdjeciami, jesli sa zapisane przez spacje.
    • Wielojezycznosc: Automatyczne wyszukiwanie i laczenie produktów w róznych jezykach po SKU (np. code_en, code_ua).

    Po kazdym imporcie system moze wysylac raport na E-mail lub Powiadomienie Push.

    Jak zautomatyzowac prace sklepu i zaoszczedzic czas?

    Platforma pozwala w pelni zautomatyzowac rutynowe procesy: od masowego wypelniania katalogu i zarzadzania stanami magazynowymi po obsluge zamówien, automatyczne wyliczanie rabatów i integracje z systemami platnosci lub logistycznymi. Mozesz skupic sie na rozwoju biznesu, podczas gdy system przejmuje czesc techniczna. Dla pelnej elastycznosci dostepne jest API Commerce

    Jak dziala import cech i zlozonych struktur danych?

    Import jest zrealizowany maksymalnie elastycznie: mozesz ladowac cechy produktów zarówno z jednej komórki (lista), jak i z oddzielnych kolumn XLS/CSV. Obslugiwany jest równiez import przez API Commerce lub pliki XML, co pozwala synchronizowac nawet najbardziej zlozone struktury danych.

API Commerce / WEBHOOK / INTEGRACJE

    Czy w systemie jest automatyczny import danych?

    Tak, w sekcji Sklep — Automatyczny import dostepne sa funkcje planisty do synchronizacji katalogu. Mozesz skonfigurowac dwa scenariusze:

    • Automatyczna aktualizacja: uruchamia sie co 4 godziny. Dziala w trybie «Tylko aktualizacja» (ceny, stany magazynowe) bez dodawania nowych pozycji i ladowania zdjec, co minimalizuje obciazenie.
    • Ladowanie nowych produktów: uruchamia sie raz na dobe i wykonuje pelny import nowych dostaw do bazy danych.

    Funkcja dostepna dla stron z zaparkowana domena. Do poprawnego dzialania nalezy wczesniej zapisac «Dopasowanie pól» (presety nr 2 lub nr 3) na stronie importu produktów.

    Czy platforma obsluguje API i integracje?

    Tak. Platforma obsluguje integracje API do automatyzacji pracy strony i sklepu internetowego. Pozwala to synchronizowac produkty, zamówienia, ceny, podlaczac uslugi zewnetrzne i automatyzowac procesy biznesowe.

    Czy platforma posiada API do integracji z systemami zewnetrznymi?

    Tak, platforma udostepnia pelnofunkcjonalne REST API. Za jego pomoca mozesz synchronizowac stany magazynowe produktów, otrzymywac informacje o zamówieniach, aktualizowac ceny i zarzadzac baza klientów z zewnetrznych systemów ERP lub CRM (np. 1C, MoySklad). API obsluguje prace z formatami JSON i XML, zapewniajac wysoka szybkosc wymiany danych.

    Co to jest Webhook i jak go uzywac?

    Webhook — to mechanizm powiadomien o zdarzeniach na Twojej stronie. Zamiast ciagle odpytywac dane przez API, Twoj system moze «nasluchiwac» sygnalów z BooStore. Gdy na stronie wystapi zdarzenie (np. «Nowe zamówienie» lub «Zmiana statusu platnosci»), platforma natychmiast wysyla zadanie POST na podany przez Ciebie URL ze szczególowymi danymi o zdarzeniu.

    Jakie gotowe integracje sa dostepne «od razu»?

    Platforma obsluguje bezposrednia integracje z popularnymi serwisami bez koniecznosci pisania kodu:

    • Marketplace: Automatyczne wysylanie produktów do Google Merchant Center, Rozetka, Prom, Facebook Shop.
    • Bramki platnosci: Stripe, LiqPay, MonoPay, WayForPay, PrivatBank, Hutko i inne.
    • Dostawa: Integracja z kontami Nova Poshta i Ukrposhta do pobierania oddzialów i paczkomatów.
    • Analityka: Google Analytics 4 (w tym Ecommerce), Facebook Pixel i Google Tag Manager.
    • Inne stale aktualizowane integracje
    Gdzie znalezc dokumentacje i jak skonfigurowac integracje przez API?

    Pelny przewodnik techniczny po metodach integracji jest dostepny w sekcji Instrukcja Commerce API.

    Wszystkie niezbedne klucze dostepu i parametry autoryzacji sa generowane i wskazywane w panelu zarzadzania w sciezce: «Ustawienia — API i Integracje». Tam tez mozesz przetestowac polaczenie i skonfigurowac prawa dostepu dla uslug zewnetrznych.

    Jak skonfigurowac automatyczne przekazywanie zamówien do ERP lub CRM?

    Aby to zrobic, w sekcji Ustawienia — Sklep podaj URL swojego serwisu do odbierania danych. Platforma bedzie automatycznie wysylac zadanie POST w formacie JSON zaraz po zlozeniu zamówienia. Zadanie zawiera pelne dane o kupujacym, zawartosci koszyka i parametrach dostawy. Jesli Twoj serwis zwróci w odpowiedzi crm_order_id, zostanie on automatycznie powiazany z zamówieniem w BooStore.

    Czy moge synchronizowac zmiany statusów zamówien z systemem zewnetrznym?

    Tak. W ustawieniach mozna wlaczyc eksport statystyk sprzedazy. System bedzie wysylac pakiet JSON przy kazdej zmianie zamówienia w panelu administracyjnym (zmiana statusu platnosci, dostawy, zmiana skladu produktów). To pozwala zrealizowac dwukierunkowa synchronizacje, gdzie Boostore pelni role frontendu, a system ksiegowy (np. 1C) — backendu.

    Jak uzyskac dostep do cennika lub statystyk przez zapytanie zewnetrzne?

    Mozesz otrzymywac dane w formatach JSON lub CSV po specjalnych adresach (np. /ajax.php?statistic_sell lub /csv_export_products.csv). Dla bezpieczenstwa uzywane jest uwierzytelnianie za pomoca klucza dostepu, zaszyfrowanego w MD5. W zapytaniach mozna uzywac filtrów (np. &sort_dateperiod=1week), aby otrzymywac tylko aktualne dane.

    Co to jest Commerce API i jakie daje mozliwosci?

    «Commerce API» — to nowoczesny interfejs zarzadzania sklepem (analog WooCommerce API), przeznaczony do glebokiej integracji z uslugami zewnetrznymi. Pozwala programowo pobierac listy zamówien, masowo aktualizowac produkty, zarzadzac kategoriami, producentami i kolekcjami. API obsluguje standardowe metody HTTP i zwraca dane w formacie JSON. Szczególowa dokumentacja techniczna i opis metod dostepne sa pod linkiem: Instrukcja Commerce API.

    Jakie typy danych mozna dodawac lub aktualizowac przez API?

    System obsluguje elastyczne zarzadzanie wszystkimi kluczowymi jednostkami sklepu przez Commerce API. Mozesz:

    • Zarzadzac zamówieniami: tworzyc nowe zamówienia (CREATE ORDER), aktualizowac istniejace (UPDATE ORDER) i otrzymywac szczególowe informacje o kazdym (ORDER DETAILS).
    • Pracowac z produktami: aktualizowac dane konkretnej pozycji (UPDATE PRODUCT) lub wykonywac masowa aktualizacje cen i stanów magazynowych dla grupy produktów (UPDATE MULTIPLE PRODUCT).
    • Konfigurowac strukture: dodawac i edytowac kategorie (UPDATE PRODUCT CATEGORIES), zarzadzac lista producentów (UPDATE PRODUCT PRODUCERS) i kolekcjami produktów (UPDATE PRODUCT COLLECTIONS).

    To pozwala w pelni synchronizowac katalog i sprzedaz z dowolnymi zewnetrznymi systemami ksiegowymi.

Powiadomienia / Komunikatory / E-mail

    Jak dziala sledzenie zamówien w zewnetrznych CRM?

    Do pelnej integracji w API przewidziany jest parametr crm_order_id. Mozesz zapisywac ID z Twojego CRM w bazie Boostore i w przyszlosci otrzymywac lub aktualizowac dane zamówienia wlasnie po tym zewnetrznym identyfikatorze (metody /crm_orders/{id}), nie przywiazujac sie do wewnetrznej numeracji platformy.

    Czy obslugiwane sa powiadomienia w komunikatorach (Viber, Telegram)?

    Tak, na BooStore.pro dostepne sa natychmiastowe powiadomienia w Viber i Telegram, a takze standardowe powiadomienia e-mail i Push. Mozesz skonfigurowac otrzymywanie danych z dowolnych formularzy kontaktowych lub koszyka zamówien do zródel zewnetrznych w czasie rzeczywistym.

    Czy w systemie sa powiadomienia Push dla przegladarki?

    Tak, platforma obsluguje technologie Web Push powiadomien. Mozesz skonfigurowac ich wysylanie do administratora o nowych zamówieniach lub zdarzeniach na stronie. To pozwala szybko reagowac na dzialania klientów, nawet jesli nie masz otwartej zakladki z panelem zarzadzania — powiadomienie przyjdzie bezposrednio na pulpit lub ekran smartfona przez przegladarke.

Generowanie linków dodawania produktów i faktur do platnosci

    Czy moge skonfigurowac wysylanie e-maili przez wlasny serwer SMTP?

    Tak, jest to zalecane dla zapewnienia maksymalnej dostarczalnosci Twoich e-maili. W sekcji Ustawienia — Poczta mozesz podac parametry swojego SMTP (serwer, port, login, haslo i typ szyfrowania). To pozwoli systemowi wysylac powiadomienia do klientów i administratora z Twojej oficjalnej skrzynki pocztowej (np. info@twoja-domena.com), co znaczaco zwieksza zaufanie serwisów pocztowych i zmniejsza ryzyko trafienia e-maili do spamu.

    Czy moge zautomatyzowac dodawanie produktów do koszyka?

    Za pomoca Generatora linków mozesz zamienic dowolny element na stronie (przycisk, tekst lub obrazek) w narzedzie automatycznego dodawania produktów do koszyka. Sam okreslasz scenariusz: dodac jeden lub kilka produktów naraz i wykonac natychmiastowe przekierowanie na strone platnosci.

    «Sklep → Generator linków dodawania produktów do koszyka»

Platnosc i metody platnosci

    Czy moge generowac faktury do platnosci za uslugi «w locie»?

    Tak. Platforma pozwala tworzyc przyciski do platnosci za dowolne uslugi lub produkty bez koniecznosci ich wczesniejszego wyszukiwania w katalogu. Na przykład mozesz umiescic przycisk «Zapisz sie na seminarium», skonfigurowac formularz zbierania kontaktów i zaraz po jego wypelnieniu przekierowac klienta do platnosci wybrana metoda.

    Ta funkcja pozwala natychmiast generowac faktury z wymagana kwota bezposrednio w procesie interakcji z uzytkownikiem, co jest kluczowe przy sprzedazy uslug, kursów online lub jednorazowych konsultacji.

    «Sklep → Generator faktury do platnosci»
    Czy moge podlaczyc wlasna domene i certyfikat SSL?

    Tak. Mozesz podlaczyc wlasna domene drugiego poziomu przez ustawienia DNS. Wszystkie strony na platformie dzialaja przez zabezpieczony protokól HTTPS. Certyfikat SSL jest podlaczany automatycznie i bezplatnie, co gwarantuje bezpieczenstwo danych i zaufanie wyszukiwarek.

    Czy platforma obsluguje wielojezycznosc strony?

    Tak. Mozesz tworzyc pelnowartosciowe wielojezyczne strony, dodajac rózne wersje jezykowe dla stron, produktów i kategorii. Dla kazdej lokalizacji tworzone sa oddzielne URL, co pozwala efektywnie promowac projekt w róznych krajach i poprawiac SEO.

    Czy moge prowadzic bloga i publikowac artykuly?

    Tak. Platforma obsluguje tworzenie blogów, kanalów informacyjnych i sekcji contentowych. Mozesz publikowac artykuly, optymalizowac je pod katem zapytan wyszukiwania i przyciagac organiczny ruch, zwiekszajac eksperckosc swojego zasobu.

    Czy Boostore ma system rabatów i program lojalnosciowy?

    Na Boostore zaimplementowano elastyczny system lojalnosciowy, obejmujacy rabaty i cashback. Glówna cecha jest to, ze system rabatów mozna przypisywac do konkretnych grup klientów. To pozwala tworzyc spersonalizowane oferty dla stalych klientów, VIP-ów lub partnerów, automatyzujac prace z róznymi segmentami odbiorców.

Google Analytics / Tag Manager / Pixel

    Czy moge przyznawac bonusy lub cashback przy rejestracji?

    Tak, system pozwala elastycznie zarzadzac lojalnoscia, w tym przyznawac cashback za rejestracje. Mozesz motywowac nowych uzytkowników, uzywajac etykiet UTM do sprawdzenia zródla rejestracji i automatycznego zasilenia salda klienta.

    Konfiguracja bonusów obsluguje zlozone formuly: procent od kwoty, stale wartosci lub operacje matematyczne (np. XX%, -XX, /XX). Cashback jest wyswietlany w profilu kupujacego i naliczany automatycznie po przejsciu zamówienia w status «Przetworzone» lub «Zakonczone».

    Dla ochrony zysku przewidziany jest limit odpisania: na przykład przy cenie produktu 100$ i limicie 10%, klient nie bedzie mógl zaplacic bonusami wiecej niz 10$. Wszystkie obliczenia, w tym wartosci ulamkowe, sa automatycznie zaokraglane do dwoch miejsc po przecinku dla dokladnosci ksiegowosci.

    Jak podlaczyc analityke i sledzic sprzedaz?

    Na platformie zaimplementowano automatyczna integracje z Google Analytics 4, Google Tag Manager i Facebook Pixel. Wystarczy podac swoje identyfikatory w sekcji Ustawienia — Statystyka. System automatycznie zacznie przekazywac dane e-commerce, co pozwoli Ci analizowac efektywnosc reklam i zachowanie uzytkowników bez angażowania programistów.

    Które konkretnie zdarzenia sa przekazywane do analityki automatycznie?

    System domyslnie transmituje wszystkie standardowe zdarzenia e-commerce:

    • view_item_list i view_item — przegladanie katalogu i karty produktu;
    • add_to_cart i remove_from_cart — dzialania z koszykiem;
    • begin_checkout i purchase — proces i zakonczenie zamówienia;
    • generate_lead i sign_up — wysylanie formularzy i rejestracja.

    Dla Facebook Pixel przekazywane sa równiez zdarzenia PageView, ViewContent, AddToCart i Purchase z automatyczna konwersja kwoty na USD wedlug kursu Twojej strony.

    Czy moge skonfigurowac wlasne tagi i zdarzenia?

    Tak. Mozesz realizowac przekazywanie wlasnych tagów, uzywajac JavaScript, krótkich kodów (ShortCodes) i specjalnej mikrodanych hotengine-markers. To pozwala dynamicznie podstawiac dane o produktach lub zamówieniach do Twoich niestandardowych skryptów sledzacych. Ponadto na stronach potwierdzenia zamówienia mozna ustawiac indywidualne kody konwersji.

Zarzadzanie plikami

    Czy obslugiwany jest tryb zgody (Consent Mode)?

    Tak. Zgodnie ze wspólczesnymi wymogami prywatnosci (GDPR), na platformie przewidziany jest Tryb zgody. Aktywowac go mozna w sekcji Ustawienia — Statystyka. To pozwala poprawnie zarzadzac tagami sledzacymi w zaleznosci od wyboru uzytkownika, zapewniajac legalne zbieranie danych dla Google i Facebook.

    Czy w systemie jest menedzer plików?

    Tak. W panelu administracyjnym przewidziana jest pelnowartosciowa sekcja «Pliki». Pozwala ona wygodnie zarzadzac wszystkimi zaladowanymi plikami multimedialnymi, dokumentami i archiwami Twojej strony w jednym miejscu.

    Czy jest konwersja i obróbka obrazów przy ladowaniu?

    Tak. Platforma obsluguje automatyczna obróbke grafiki. Bezposrednio przy ladowaniu plików obrazy moga byc proporcjonalnie zmniejszone lub skonwertowane do nowoczesnych standardów WebP, PNG i JPG dla zapewnienia maksymalnej szybkosci ladowania stron.

Pop-Up Okna podreczne

    Czy moge tworzyc foldery do organizacji plików?

    Tak. Mozesz tworzyc nieograniczona liczbe folderów i podfolderów do strukturyzacji tresci. To pozwala wygodnie rozdzielac obrazy, cenniki i dokumenty wedlug sekcji, a takze masowo zarzadzac plikami przez interfejs www bezposrednio w sekcji «Pliki».

    Czy moge tworzyc okna podreczne (Pop-up) na stronie?

    Tak, w platforme wbudowany jest potzny generator okien modalnych. Okno wywoluje sie przez dodanie klasy class="hotengine-script-popup" do linku lub przycisku. Mozesz ladowac w oknie podrecznym wideo z Youtube, tresc z innych stron serwisu, karty produktów lub dowolny blok HTML po jego ID lub klasie. Generator okien podrecznych - https://boostore.pro/pl/page.php?p=submit_catalog_page&subpage&generatepopup

    Jakie ustawienia sa dostepne dla okien podrecznych?

    Przez atrybuty data mozesz w pelni kontrolowac zachowanie okna: ustawiac «szerokosc» (data-width) i «wysokosc», ustawiac limity (data-max-width), blokowac naglówek lub konfigurowac adaptacyjnosc dla urzadzen mobilnych (data-mobile-width). Dostepne sa równiez zaawansowane funkcje: data-dialog-callback do uruchamiania funkcji JS po otwarciu okna i data-close-overlay do zarzadzania zamykaniem okna po kliknieciu poza jego obszarem.

Widgety HTML

    Jak wyswietlic karte produktu lub artykul w oknie podrecznym?

    Do tego sluza specjalne typy ladowania danych (data-iframe). Na przykład wartosc «5» zaladuje dane karty produktu, «1» — artykul z katalogu, a «14» lub «15» zaladuja czysty HTML tych stron bez zbednych elementów projektu. To pozwala tworzyc szybkie podglady produktów lub informacje pomocnicze bez przeladowywania calej strony. Generator okien podrecznych - https://boostore.pro/pl/page.php?p=submit_catalog_page&subpage&generatepopup

    Co to sa Widgety HTML?

    «Widget HTML» — to zestaw niezaleznych elementów HTML do wstawiania na strony serwisu. W bibliotece znajduja sie: Accordion, Tabs, Callback block, Slajd z komentarzami/opiniami, a takze Offers mosaic (lista produktów w stylu mozaiki) i Google Reviews (dynamiczne ladowanie opinii przez API).

    Co to jest Spoiler (Spojler) i jak dziala?

    Spoiler — to element strony, który poczatkowo ukrywa czesc tresci i rozwija sie dopiero po kliknieciu. W naszej platformie spojlery sa zrealizowane wylacznie za pomoca CSS, co pozwala im dzialac natychmiast bez uzywania dodatkowych skryptów JavaScript.

Dodawanie produktów - wlasny przycisk

    Do czego sluzy Price range swiper?

    Price range swiper — to wygodny graficzny suwak do wyboru zakresu cen w filtrze wyszukiwania. Pozwala uzytkownikom szybko ograniczac wybór produktów wedlug kosztu, po prostu przesuwajac suwaki, co znaczaco poprawia uzytecznosc sklepu.

    Co to jest Generator linków dodawania produktów i do czego sluzy?

    To narzedzie w sekcji Sklep — Generator linków, które pozwala utworzyc jeden link, po kliknieciu którego do koszyka automatycznie dodawany jest jeden lub kilka produktów naraz. To idealnie nadaje sie do landingów (stron jednego produktu), newsletterów reklamowych lub przycisków «Kup zestaw», poniewaz pozwala uzytkownikowi przejsc od razu do skladania zamówienia, pomijajac etap recznego wypelniania koszyka.

    Jakie parametry mozna skonfigurowac dla linku dodawania do koszyka?

    Generator pozwala elastycznie zarzadzac procesem zakupu przez nastepujace ustawienia:

    • ID produktów i ilosc: mozna podac liste ID po przecinku i ustawic dokladna ilosc dla kazdego (np. 1,1,2).
    • Odmiany: obsluga konkretnych modyfikacji produktów po ich ID.
    • Czyszczenie koszyka: funkcja «Czysc koszyk» usunie wszystkie stare produkty przed dodaniem nowych (przydatne w promocjach monobrandowych).
    • Sprawdzanie powtórzenia: ochrona przed przypadkowym wielokrotnym dodaniem tego samego produktu przy ponownym kliknieciu.
    Czy moge zrobic przekierowanie od razu na strone skladania zamówienia?

    Tak. W polu «Link do przekierowania» mozesz podac adres koszyka (np. /pl/page.php?p=cart&send). Konfigurowany jest równiez «Czas do przekierowania» (w milisekundach) — zaleca sie ustawic niewielkie opóznienie (np. 2000 ms), aby system zdazyl gwarantowanie zarejestrowac dodanie produktów do sesji uzytkownika przed przejsciem.

    Jak zarzadzac powiadomieniami przy uzywaniu takich linków?

    W punkcie «Komunikaty po dodaniu produktu» mozna wybrac jeden z trzech trybów: «Nie pokazuj zadnych komunikatów» (dla bezszwowego przejscia), «Tylko komunikaty o dodaniu» lub «Pokazuj wszystkie». Dla landingów najczesciej uzywa sie ukrywania komunikatów, aby klient od razu widzial formularz zamówienia.

Generowanie faktury do platnosci online

    Czy moge zabezpieczyc link przed botami?

    Tak, generator obsluguje ustawienie «Kod zabezpieczajacy». Mozesz wlaczyc obowiazkowe wprowadzanie captchy (od 3 do 9 znaków) zanim produkty trafia do koszyka, co pomaga uniknac spam-zamówien przez bezposrednie linki.

    Czy moge utworzyc bezposredni link lub przycisk do platnosci faktury?

    Tak, w systemie jest narzedzie Sklep — Generator faktury do platnosci - https://boostore.pro/pl/page.php?p=submit_catalog_page&subpage&shop_catalog_payment_systems&shop_catalog_payment_systems_generate_link. Pozwala ono utworzyc specjalny URL, po kliknieciu którego uzytkownik trafia na strone generowania faktury z juz wypelnionymi danymi. To wygodne do wystawiania faktur w komunikatorach, mediach spolecznosciowych lub tworzenia przycisków szybkiej platnosci na landingach.

    Jakie parametry mozna przekazac w linku do platnosci?

    Przez zapytanie GET mozesz w pelni uformowac kontekst platnosci:

    • Kwota i waluta: payment_price (cena) i payment_currency (dostepne USD, EUR, UAH, PLN i inne).
    • Dane platnika: payment_email, payment_soname (imie) i payment_phone.
    • Opis zamówienia: payment_desc — informacja, która zobaczy klient i Ty w panelu zarzadzania.
    • Wybór systemu: shop_payment_systems (ID konkretnej bramki) i flaga hide_selector_payment_systems, aby zabronic uzytkownikowi zmiany metody platnosci.
    • Analityka: shop_cart_statistic_group — etykieta do grupowania zamówien w statystykach sprzedazy.
    Jak zrealizowac wprowadzanie danych przed platnoscia (okno Pop-up)?

    Poniewaz w bezposrednim linku dane klienta moga byc niewypelnione, zaleca sie uzywanie skryptu okna podrecznego JS. Platforma dostarcza gotowe rozwiazanie: hotengine-payment-popup-demo.js. Za jego pomoca klient najpierw wprowadza swoje dane kontaktowe w eleganckim oknie Pop-up, po czym skrypt automatycznie uzupelnia link tymi danymi i przekierowuje uzytkownika do platnosci.

Widgety / Menu / Inne

    Na co zwrócic uwage przy uzywaniu generatora faktur?

    Wazne jest zapamietanie dwoch rzeczy:

    1. Bezpieczenstwo: Poniewaz parametry sa przekazywane w jawnej formie w linku, kupujacy technicznie moze zmienic cene w pasku adresu. Zawsze sprawdzaj zgodnosc kwoty platnosci z Twoimi oczekiwaniami w panelu administracyjnym przed wysylka towaru.
    2. Konfiguracja bramek: Wczesniej podlacz i aktywuj systemy platnosci w ustawieniach sklepu. Jesli systemy nie sa skonfigurowane, klient otrzyma powiadomienie o utworzeniu zamówienia, ale nie bedzie mógl dokonac transakcji.
    Gdzie znajduja sie narzedzia do tworzenia widgetów i menu?

    Wszystkie generatory sa dostepne w sekcji Sklep — Widgety (lub przez bezposredni link w panelu administracyjnym: Generator widgetów). W tej sekcji znajdziesz:

    • Widget z kategoriami: do tworzenia nawigacji i menu.
    • Widget z produktami: do wyswietlania witryn i sliderów produktów.
    • Widget z producentami: do wyswietlania marek.
    • Widget z artykulami: znajduje sie w sekcji Katalog artykulów — Widget z artykulami i pozwala wyswietlac anonse bloga w dowolnym miejscu strony.
    Czy moge umiescic produkty ze sklepu w dowolnym miejscu strony?

    Tak, do tego w sekcji Sklep wybierz «Widget z produktami». Pozwala on wygenerowac krótki kod (ShortCode), który mozna wstawic w opis produktu, wiadomosc, artykul lub statyczny blok tekstowy. Widget automatycznie przeksztalca liste wybranych produktów w interaktywny slider lub stylowa witryne. Przyklad dzialania widgetu z produktami.

    Jak wyglada i dziala ShortCode widgetów?

    Typowy kod wyglada tak: [MENU:shop_products_slider:pers_cat_id-123:on_page-4:button-cart:sale]. System natychmiast zastepuje ten kod blokiem z produktami. Mozesz elastycznie zarzadzac wyswietlaniem za pomoca parametrów:

    • Filtrowanie: wedlug kategorii (pers_cat_id), producentów (producer) lub kolekcji (collection).
    • Etykiety marketingowe: wyswietlanie tylko nowosci (new-products), hitów (bestseller) lub produktów w promocji (sale).
    • Wyswietlanie: dodanie przycisku koszyka (button-cart), oceny (rating-stars) lub odmian (variety).
    • Sortowanie: wedlug ceny, daty lub losowa kolejnosc (random).
    Jak dostosowac widget do urzadzen mobilnych i szybkosci ladowania?

    Do profesjonalnej konfiguracji uzywaj parametrów optymalizacji:

    • Lazy Load (:lazy-0): przyspiesza ladowanie strony, ladujac obrazy dopiero przy przewijaniu.
    • Auto-szerokosc (:auto_width): liczba kart w rzedzie dostosowuje sie automatycznie do ekranu.
    • Tryb Scroll (:scroll-9999x8x0): na smartfonach zastepuje przyciski wygodnym poziomym pasem (swipe), oszczedzajac miejsce.
    • Tryb Append (:append-900): na desktopach dodaje przycisk «Pokaz wiecej» zamiast dlugiego przewijania.
    • pelny wykaz parametrów dostepny na stronie Sklep - Widget z produktami.
    Czy moge zmienic projekt widgetu produktów?

    Tak. Mozesz ustawic unikalny ID (:id-my_block) i przepisac dla niego wlasne style CSS. Jesli potrzebujesz w pelni niestandardowy interfejs, uzyj widgetu bez parametru :add-javascript — system wyswietli czysty kod HTML, który bedziesz mógl zintegrowac z dowolnym zewnetrznym sliderem (np. Swiper).

    Czy moge wyswietlic drzewo kategorii sklepu w dowolnym miejscu strony?

    Tak, w sekcji Sklep wybierz «Widget z kategoriami». Wygenerowany ShortCode pozwoli wstawic menu w dowolny blok. System obsluguje rózne typy wyswietlania: Mega Menu (burger z rozwijanym oknem), Flex-menu (pionowe z podkategoriami z boku), Horizontal (poziomy rzad) lub klasyczne Dropdown.

    Jak skonfigurowac glebokosc i informatywnosc menu kategorii?

    Mozesz precyzyjnie dostroic widget kategorii przez dodatkowe parametry:

    • Zagniezdzenie (:treelevel-2): ogranicza glebokosc wyswietlanego drzewa.
    • Szczególowosc: wyswietlanie liczby produktów (:products) lub ikon (:imageattr).
    • SEO (:googlenav): dodaje mikrodane nawigacji dla wyszukiwarek.
    • Karuzela (:carousel): zamienia liste kategorii w dynamiczny slider z konfiguracja autoodtwarzania i predkosci.
    Jak skonfigurowac Mega Menu?

    Mega Menu (parametr :megamenu) — to uniwersalne adaptacyjne rozwiazanie. Skonfigurowac je mozna w sekcji Sklep — Widget z kategoriami. Po aktywacji pojawia sie przycisk-burger, otwierajacy okno z kategoriami po lewej i trescia po prawej. W wersji mobilnej menu automatycznie przechodzi w tryb pelnoekranowy.

    • Tryb :multiply: w prawym panelu od razu wyswietlana jest siatka z listami drugiego i trzeciego poziomu zagniezdzenia.
    Co to jest Flex-menu i menu pionowe?

    Do paneli bocznych przewidziane sa dwa typy, dostepne na stronie ustawien Sklep — Widget z kategoriami:

    • :vertical — klasyczna lista pionowa.
    • :flexmenu — kompaktowe menu ze stala wysokoscia (:height-400). Podkategorie otwieraja sie w bloku po prawej stronie rodzica.
    • Dod. opcje Flex: :with-overlay (przyciemnienie tla), :scroll-lock (blokada przewijania strony), :fix-on-top (przypiecie do góry) i :disallow-overflow (zakaz wychodzenia elementów poza blok).
    Jak uzywac menu poziomego, rozwijanego i innych typów?

    W sekcji Sklep — Widget z kategoriami mozesz wybrac jeden z nastepujacych formatów wyswietlania:

    • :horizontal — poziomy rzad. Po ustawieniu ID hotengine-categories-lists-horizontal mozna uzywac wewnatrz stron contentowych.
    • :dropdown — standardowe rozwijane menu.
    • :full — drzewo kategorii w pelni rozwiniete.
    • :list — lista podkategorii (analogicznie do strony kategorii), uzywane razem z parametrem start-X.

Typy produktów / Filtr wyszukiwania / Porównywanie produktów

    Jakie inne parametry konfiguracji kategorii sa dostepne?

    Na stronie Sklep — Widget z kategoriami mozesz precyzyjnie dostroic ShortCode:

    • Poziom zagniezdzenia (:treelevel-X): ograniczenie glebokosci drzewa.
    • Informatywnosc: dodanie licznika produktów (:products), ikon (:imageattr) lub mikrodanych nawigacji (:googlenav).
    • Adaptacyjnosc: :scroll-9999x3 zamienia liste w poziomy pas z przesuwaniem na urzadzeniach mobilnych.
    • Karuzela (:carousel): wlacza efekt slidera z obsluga autoodtwarzania (:carousel-autoplay-true).
    • Inne parametry...
    Co to sa «Typy produktów» i jak sa powiazane z filtrami?

    Typy produktów (np. «Laptopy», «Buty») pozwalaja grupowac produkty wedlug unikalnych wlasciwosci. Do kazdego typu przypisywany jest wlasny zestaw cech (Rozmiar ekranu, Kolor, Material). Wlasnie na podstawie tych cech system automatycznie buduje filtr wyszukiwania, pozwalajac kupujacym znajdowac produkty wedlug konkretnych parametrów.

    Jaka jest kolejnosc tworzenia cech i filtrów?

    Proces konfiguracji przebiega w trzech etapach:

    1. Utworzenie typu: W panelu administracyjnym tworzysz nowy Typ produktu.
    2. Dodanie cech: Po zapisaniu typu dodajesz do niego grupy cech i ich mozliwe wartosci (np. dla grupy «Waga» wartosci «10 kg», «20 kg»).
    3. Przypisanie do produktu: W karcie produktu wybierasz jego «Typ», po czym system zaproponuje wypelnienie odpowiednich cech.
    Czy obslugiwane sa wielokrotne wartosci cech?

    Tak. Mozesz podac kilka wartosci dla jednej cechy jednego produktu. Na przyklad, jesli model butów jest dostepny w kilku kolorach, mozesz zaznaczyc «Szary», «Zielony» i «Czerwony» jednoczesnie. W filtrze wyszukiwania taki produkt bedzie wyswietlany przy wyborze dowolnego z tych kolorów.

    Jak umiescic filtr wyszukiwania na stronie?

    Istnieja dwa sposoby:

    • Menu funkcyjne (zalecane): Utwórz menu typu «Wyszukiwanie z Filtrem wedlug typów produktów». To zapewni najlepsza zgodnosc z wersja mobilna.
    • Krótki kod (ShortCode): Wstaw w tresc strony kod {HOTENGINE-SC:smart_search_widget:PARAM}, gdzie PARAM — ustawienia filtra.
    Co to jest parametr «autopath» i do czego sluzy?

    Parametr autopath (lub autopathID w tekscie bloku) jest krytycznie wazny dla zachowania kontekstu wyszukiwania. Pozwala on wykonywac filtrowanie wewnatrz aktualnie otwartej kategorii, nie przenoszac uzytkownika na ogólna strone wyszukiwania. Na przyklad dla laptopów mozna ustawic wyswietlanie filtra tylko dla sciezki /pers_shop/notebook/.

    Jak skonfigurowac wyswietlanie liczby produktów w filtrze?

    W ustawieniach typu produktu lub przez parametry ShortCode mozna zarzadzac licznikami:

    • count — pokazywac liczbe produktów obok wartosci.
    • count_all — liczyc produkty na calej stronie, ignorujac aktualna kategorie.
    • hideempty — automatycznie ukrywac cechy, dla których nie znaleziono produktów w biezacej sekcji.
    Jak wlaczyc funkcje porównywania produktów?

    Porównanie dziala tylko dla produktów, którym przypisano Typ produktu. Do aktywacji niezbedne jest:

    1. W «Ustawieniach sklepu» (zakladka Podglad produktu) wlaczyc przycisk «Porównaj».
    2. W ustawieniach konkretnego Typu produktu i w samych Cechach zaznaczyc pole «Porównanie».
    3. Na stronie porównania (/compare.htm) wyswietla sie tylko te parametry, dla których to pole jest aktywne.
    Gdzie uzytkownik moze zobaczyc liste dodanych do porównania produktów?

    Lista jest dostepna pod adresem /compare.htm. Dla wygody uzytkowników zaleca sie dodanie w naglówku strony przycisku ze wskaznikiem liczby wybranych pozycji, uzywajac krótkiego kodu: {HOTENGINE-SC:shop_compare_menu}.

    Czy mozna stylizowac elementy porównania?

    Tak. Wszystkim elementom karty produktu dodanym do porównania system automatycznie przypisuje atrybut data-compare="1". Mozesz go uzyc w swoich plikach CSS do wizualnego wyroznienia wybranych pozycji.

    Jak dzialaja automatyczne opisy na podstawie cech?

    System pozwala tworzyc szablony opisów, które sa podciagane do karty produktu automatycznie. Zawartosc takiego artykulu bedzie dynamicznie zmieniac sie w zaleznosci od tego, jakie cechy (Typ, parametry) sa ustawione dla konkretnego produktu.

Masowa / Grupowa edycja produktów

    Jak przetlumaczyc wartosci filtrów na inne jezyki?

    Mozesz tlumaczyc wartosci cech bezposrednio w ich ustawieniach. Aby tlumaczenie poprawnie wyswietlalo sie w wywozach (XML/CSV/JSON), uzywaj linków z przedrostkiem jezykowym (np. /pl/export_file) lub wskazuj potrzebny jezyk w parametrach generowania pliku.

    Czy w systemie istnieje mozliwosc masowej (grupowej) edycji produktów?

    Tak, do tego sluzy potzne narzedzie «Edycja grupowa» w sekcji «Sklep». Pozwala ono nie edytowac kazdego produktu osobno, ale stosowac zmiany od razu do setek lub tysiecy pozycji. Mozesz masowo zmieniac ceny (uzywajac formuly matematycznych), przenosic produkty miedzy kategoriami, aktualizowac statusy dostepnosci, wlaczac promocje, a nawet zarzadzac dostepem (publikacja lub usuniecie) dla calej wybranej grupy produktów jednym kliknieciem.

    Jak dziala wyszukiwanie i filtrowanie w edycji grupowej?

    Przed aktualizacja mozesz elastycznie odfiltrowac potrzebne produkty wedlug:

    • Kategorii i producenta: w tym mozliwosc przechwycenia produktów ze wszystkich podkategorii.
    • Zakresu cenowego: wyszukiwanie produktów w przedziale «od» i «do».
    • Dostepnosci: wybrac tylko te, które sa w magazynie, lub odwrotnie — niedostepne.
    • Jezyka: edycja produktów konkretnej wersji jezykowej.
    • Listy tytulów: mozesz wstawic liste nazw, a system znajdzie tylko je.
    Jak masowo zmienic ceny lub zrobic narzut?

    W bloku «Aktualizacja» dostepny jest kalkulator matematyczny dla cen. Mozesz:

    • Ustawic stala cene (przez =).
    • Przeprowadzic indeksacje: dodac lub odjac kwote (+100) lub procent (+15%).
    • Pomnozyc lub podzielic: np. do konwersji walut (*41).
    • Pracowac ze stara cena: przeniesc biezaca cene do «starej» (tworzac promocje) lub odwrotnie — wyczyscic stare ceny.
    • Uzyc narzutu: wyliczyc nowa cene detaliczna na podstawie ceny zakupu (Cost Price) z okreslonym wspólczynnikiem lub procentem.
    Jak masowo skonfigurowac promocje i liczniki wyprzedazy?

    Edycja grupowa pozwala zamienic zwykle produkty w promocyjne:

    • Aktywacja etykiety: ustawienie flag «Promocja», «Nowosc», «Hit sprzedazy» lub «Cena obnizona».
    • Tresc promocji: przez wbudowany edytor wizualny mozesz ustawic ogólny opis warunków promocji dla wszystkich wybranych produktów.
    • Automatyzacja przez licznik: ustawiasz date zakonczenia, a system sam decyduje, co zrobic po uplywie czasu (np. przywrócic stara cene, usunac etykiete promocji lub uruchomic licznik ponownie).
    • Przypisania hurtowe: mozesz jednym kliknieciem ustawic «Cene» równa minimalnej lub maksymalnej cenie hurtowej produktu.

Kopia zapasowa

    Co jeszcze mozna zmienic masowo?

    Oprócz cen i promocji, dostepne sa nastepujace dzialania:

    • Przeniesienie do innej kategorii lub zmiana producenta dla calej grupy.
    • Zarzadzanie dostepnoscia: masowo ustawic status «Dostepny», «Na zamówienie» lub calkowicie ukryc produkty z listy.
    • Synchronizacja jezyków: jesli wlaczona jest opcja «Produkty w innych jezykach», zmiany zostana zastosowane do wszystkich lokalizacji powiazanych produktów.
    • Zarzadzanie dostepem: szybka publikacja, wycofanie ze sprzedazy lub calkowite usuniecie grupy produktów.
    • Rabaty: ustawienie tekstowych etykiet rabatów (np. «-10%» lub «Sale»), które beda wyswietlane na ikonach produktów.
    Czy w systemie istnieje mozliwosc tworzenia kopii zapasowej strony?

    Tak. W sekcji Ustawienia — Kopia zapasowa stron mozesz utworzyc plik zawierajacy podstawowe dane Twojego zasobu. Kopia zapasowa obejmuje: wszystkie statyczne strony, strukture menu, wiadomosci, artykuly, kategorie katalogu artykulów i Twoje indywidualne style CSS.

Ochrona przed spamem

    Jak poprawnie zapisac dane sklepu internetowego (produkty, kategorie)?

    Poniewaz katalog produktów moze byc bardzo obszerny, jest on wyodrebniony w osobny eksport. Dla pelnego zachowania danych sklepu zaleca sie regularne wykonywanie eksportu nastepujacych sekcji: Produkty, Kategorie sklepu, Producenci i Kolekcje. To pozwoli Ci miec aktualna kopie calej struktury handlowej strony oddzielnie od systemowych ustawien projektu.

    Czy na platformie jest ochrona przed spamem?

    Tak, w systemie zaimplementowano wielopoziomowa ochrone przed niechcianymi wiadomosciami i spam-zamówieniami:

    • Captcha: mozesz wlaczyc kod zabezpieczajacy zarówno w Konstruktorze formularzy, jak i w ustawieniach skladania zamówienia (sekcja Ustawienia — Sklep). Dostepny jest wybór poziomu trudnosci (od 3 do 9 znaków).
    • Globalny filtr: wbudowana baza danych automatycznie blokuje zapytania ze znanych zasobów spamowych.
    • Wlasna baza fraz: w sekcji Ustawienia — Filtr wiadomosci przychodzacych mozesz utworzyc osobista liste zabronionych siów i fraz. Wiadomosci zawierajace takie dane beda automatycznie odrzucane przez system.

Menu mobilne i wersja mobilna strony

    Jakie dodatkowe techniczne srodki ochrony przed botami sa uzywane w formularzach?

    Oprócz widocznej captchy, platforma uzywa ukrytych mechanizmów ochrony. W formularze wbudowane sa ukryte pola sprawdzania botów (honey-pots): roboty automatycznie je wypelniaja, podczas gdy dla prawdziwych uzytkowników sa niewidoczne. Jesli takie pole jest wypelnione, system natychmiast blokuje wyslanie danych. Dziala równiez ochrona przed wielokrotnym wysylaniem: ustawiony jest limit (flood-control), który ogranicza czestotliwosc zapytan z jednego adresu IP, zapobiegajac zautomatyzowanemu spamowi i przypadkowym duplikatom zamówien.

    Czy moja strona bedzie dostosowana do urzadzen mobilnych?

    Tak, wszystkie strony na platformie sa zbudowane w oparciu o uklad blokowy, który automatycznie dostosowuje sie do dowolnych ekranów — od smartfonów po szerokoformatowe monitory. Otrzymujesz pelny dostep do HTML, CSS i JavaScript, co pozwala doprowadzic adaptacje mobilna do perfekcji, konfigurujac wyswietlanie kazdego elementu indywidualnie dla róznych rozdzielczosci.

    Czy sa specjalne funkcje dla wersji mobilnej strony?

    System obsluguje tworzenie oddzielnego menu mobilnego i zoptymalizowanych widgetów (np. poziomy przewijanie produktów), które znaczaco poprawiaja UX na ekranach dotykowych. Dzieki mozliwosci elastycznego ukrywania lub przestawiania bloków, mozesz tworzyc maksymalnie lekkie i szybkie interfejsy, spelniajace wszystkie wymagania Google Core Web Vitals.

    Czy moge zrobic strone podobna do aplikacji mobilnej?

    Tak. Do tego na platformie przewidziany jest specjalny widget «Menu mobilne — aplikacja». Pozwala on zrealizowac interfejs, do którego przywykli uzytkownicy smartfonów: z wygodna nawigacja w dolnej czesci ekranu, szybkim dostepem do kluczowych sekcji i koszyka.

    Widget posiada wyjatkowa elastycznosc: mozesz skonfigurowac indywidualna stylistyke, wybrac ikony, okreslic sposoby wywolywania menu i dostosowac je do logiki Twojego biznesu. To pozwala zamienic zwykla strone w pelnowartosciowa aplikacje internetowa bez skomplikowanego programowania.

    Jak dziala menu mobilne i czy moge ukryc zbedne elementy?

    Mozesz elastycznie konfigurowac wyswietlanie elementów dla urzadzen mobilnych. System pozwala ukrywac glówny naglówek, logo lub poszczególne bloki przy aktywacji menu mobilnego. Konfiguracja dostepna jest zarówno przez standardowe opcje, jak i po indywidualnych klasach lub ID elementów.

Formularze

    Czy moge stworzyc profesjonalny system rezerwacji (Booking)?

    Tak. Platforma Boostore zawiera potzny widget rezerwacji, który pozwala zorganizowac zapisy na uslugi lub wynajem dowolnych zasobów: od stolików w restauracjach i gabinetów masazu po wynajem samochodów i zapisy na wydarzenia grupowe.

    Kluczowe mozliwosci systemu rezerwacji:

    • Podzial na obiekty: Za pomoca ID grup mozna rozdzielic harmonogram dla róznych specjalistów, sal lub jednostek sprzetu.
    • Elastyczne sloty czasowe: Sam ustawiasz krok czasu (np. 30 minut lub 2 godziny) i maksymalny czas trwania jednej rezerwacji.
    • Automatyczne wyliczanie kosztu: System potrafi dynamicznie przeliczac cene w zaleznosci od wybranego okresu (np. cena za 1 godzine * liczba godzin) lub uzywac stawki stalej.
    • Inteligentne statusy i kalendarz: Slot sa synchronizowane ze statystykami sprzedazy. Statusy «Rezerwacja wstepna», «Zarezerwowane» lub «Anulowane» natychmiast zmieniaja dostepnosc czasu na stronie. Jesli slot jest zajety — ponowna rezerwacja jest niemozliwa (z wyjatkiem wydarzen grupowych).
    • Wieloosobowa rezerwacja: Dla seminariów lub treningów grupowych mozna podac liczbe dostepnych miejsc na ten sam okres.
    • Platnosc do potwierdzenia rezerwacji: Mozna skonfigurowac obowiazkowa przedplate. Zaraz po wyborze czasu klient jest przekierowywany do systemu platnosci, a status rezerwacji zmienia sie automatycznie po udanej platnosci.
    • Konfiguracja horyzontów zapisu: Zarzadzaj tym, jak wczesniej klient moze sie zapisac (np. «tylko od nastepnego poniedzialku» lub «nie wiecej niz miesiac do przodu»).

    Funkcjonalnosc jest zrealizowana przez przekazywanie parametrów JSON i atrybutów data, co pozwala programistom dostosowywac interfejs rezerwacji do dowolnych zadan biznesowych.

    Czy moge tworzyc wlasne formularze na stronie?

    Tak, na platformie BooStore.pro wbudowany jest potzny Konstruktor formularzy. Mozesz tworzyc formularze o dowolnym stopniu zlozonosci z przypisaniem nazw, ID i klas CSS dla pól. System obsluguje wysylanie danych na Twoja strone (do CRM i na e-mail) lub na dowolny serwer zewnetrzny. Dostepna jest elastyczna konfiguracja typów danych, pól obowiazkowych, zateczanie plików i uzywanie autoresponderów dla uzytkowników.

    Gdzie znalezc narzedzia do zarzadzania formularzami i generator okien?

    Wszystkie niezbedne narzedzia znajduja sie w nastepujacych sekcjach:

    W tych sekcjach mozesz skonfigurowac nie tylko czesc wizualna, ale równiez logike przetwarzania danych: od przypisania do CRM po konfiguracje autoresponderów.

    Czy obslugiwane sa podreczne (Popup) formularze?

    Tak, do tego przewidziany jest specjalny Generator okien podrecznych. Mozesz zamienic dowolny przycisk lub link w wyzwalacz otwierania formularza. Konstruktor pozwala skonfigurowac:

    • Rozmiary: szerokosc, wysokosc (w tym automatyczne dostosowanie do tresci) i adaptacyjnosc dla urzadzen mobilnych.
    • Interfejs: tytul okna, teksty przycisków «Wyslij» i «Zamknij», blokowanie naglówka.
    • Zachowanie: zamykanie po kliknieciu na overlay, autowypelnianie pól i funkcje Callback po otwarciu okna lub nacisnieciu przycisków.
    Jak zrealizowac «Szybkie zamówienie» lub «Oddzwonienie» przez Popup?

    System ma predefiniowane presety funkcyjne dla okien podrecznych. Uzywajac parametru data-dialog-form_title, mozesz natychmiast skonfigurowac formularz:

    • Callback: automatycznie pozostawia tylko pola «Imie» i «Telefon».
    • Quick order: ukrywa zbedne pola (e-mail, komentarz) dla maksymalnie szybkiego zakupu.
    • Consultation / Ask price: dodaje tematyczne tytuly i przypisuje productid, abys wiedzial, do którego produktu przyszlo zgloszenie.
    Czy moge przekazywac dynamiczny koszt lub dane przez formularz?

    Tak. Uzywajac pola name="form_price", mozesz przekazywac ostateczna kwote, wyliczona za pomoca JavaScript na podstawie wyboru uzytkownika. Dla okien podrecznych przewidziane sa atrybuty data-dialog-formprice i data-dialog-modify-text, które pozwalaja «w locie» zmieniac dane zgloszenia przed wyslaniem, co idealnie nadaje sie do zlozonych kalkulatorów uslug.

    Czy moge zrobic natychmiastowe wyslanie formularza przy otwarciu (Auto-submit)?

    Tak, to zaawansowana funkcja dla zwiekszenia konwersji. Mozesz utworzyc pole wejsciowe (np. dla telefonu) bezposrednio na stronie, a po kliknieciu przycisku otwarcia okna dane z tego pola automatycznie przeniosa sie do ukrytego formularza i natychmiast sie wysla. Do tego sluza atrybuty data-dialog-form-autosubmit="1" i data-dialog-form-autosubmit-replace-class, które lacza pole na stronie z polem wewnatrz formularza.

    Jak ukryc zbedne pola w konkretnym oknie podrecznym?

    Mozesz uzywac tego samego formularza do róznych celów, ukrywajac niepotrzebne pola przez atrybut data-dialog-form-hide-fields. W generatorze wystarczy wymienic ID lub klasy pól przez separator |. Na przyklad w jednym oknie zostawiasz wszystkie pola, a w innym — tylko telefon, co pozwala nie mnozyc dziesiatek identycznych formularzy w panelu administracyjnym.

    Czy moge skonfigurowac wysylanie powiadomien z formularzy do komunikatorów?

    Tak. Platforma pozwala skonfigurowac natychmiastowe powiadomienia w Viber i Telegram. Przy tym nie jestes ograniczony ogólnymi ustawieniami strony: dla kazdego utworzonego formularza mozesz ustawic indywidualne kanaly powiadomien. To wygodne, jesli zgloszenia z róznych dzialów (np. «Wsparcie techniczne» i «Dzial sprzedazy») powinny przychodzic do róznych specjalistów na ich prywatne komunikatory lub rózne grupy robocze.

Marketing i Narzedzia promocji

    Jak skonfigurowac rózne powiadomienia dla róznych formularzy?

    W sekcji Formularze dla kazdego konkretnego formularza mozesz podac unikalne parametry powiadomien. Oprócz komunikatorów, mozesz skonfigurowac indywidualny autoresponder dla uzytkownika i wybrac, do której sekcji wewnetrznego CRM lub na jaki e-mail trafi zgloszenie. Taka elastycznosc pozwala zamienic zwykle formularze w pelnowartosciowy system dystrybucji zadan wewnatrz Twojego zespolu.

    Jakie narzedzia sa przewidziane do uruchamiania reklam i analityki?

    Platforma jest w pelni gotowa do profesjonalnej promocji. W system wbudowane jest automatyczne sledzenie zdarzen (E-commerce), które przekazuje dane o dodawaniu do koszyka i zakupach do Google Analytics 4 i Facebook Pixel. Nie musisz recznie konfigurowac kodów — wystarczy podac ID swoich kont w ustawieniach.

    Czy platforma obsluguje mikrodane dla wyszukiwarek?

    Tak, na wszystkich stronach produktów i kategorii domyslnie wdrozone sa strukturalne dane Schema.org (JSON-LD). To pozwala wyszukiwarkom tworzyc rozszerzone fragmenty: w wynikach wyszukiwania Google beda od razu widoczne cena, dostepnosc produktu i ocena (opinie), co znaczaco zwieksza klikalnosc (CTR) Twoich linków.

    Czy moge tworzyc feedy produktów dla Google Merchant Center i Facebook?

    System generuje dynamiczne feedy we wszystkich popularnych formatach: XML (YML), JSON, CSV, RSS. To pozwala automatycznie wysylac produkty do Google Shopping, Facebook Catalog i na dowolne zewnetrzne marketplace. Feedy aktualizuja sie w czasie rzeczywistym, gwarantujac aktualnosc cen i stanów magazynowych w Twojej reklamie 24/7.

    Czy sa wbudowane narzedzia do pracy z baza klientów?

    Tak, platforma automatycznie zbiera i segmentuje baze klientów. W system wbudowany jest E-mail marketing, pozwalajacy wysylac powiadomienia i robic newslettery do zgromadzonych kontaktów. Wszystkie dane sa chronione i zorganizowane wewnatrz Twojej osobistej CRM, co pozwala budowac dlugoterminowe relacje z kupujacymi bez platnosci za uslugi zewnetrzne.

    Jakie narzedzia sa przewidziane do uruchamiania reklam i analityki?

    Platforma jest w pelni gotowa do profesjonalnej promocji. W system wbudowane jest automatyczne sledzenie zdarzen (E-commerce), które przekazuje dane o dodawaniu do koszyka i zakupach do Google Analytics 4 i Facebook Pixel. Nie musisz recznie konfigurowac kodów — wystarczy podac ID swoich kont w ustawieniach.

    Czy platforma obsluguje mikrodane dla wyszukiwarek?

    Tak, na wszystkich stronach produktów i kategorii domyslnie wdrozone sa strukturalne dane Schema.org (JSON-LD). To pozwala wyszukiwarkom tworzyc rozszerzone fragmenty: w wynikach wyszukiwania Google beda od razu widoczne cena, dostepnosc produktu i ocena, co znaczaco zwieksza klikalnosc (CTR) Twoich ogloszen i organicznych linków.

    Czy moge tworzyc feedy produktów dla Google Merchant Center i Facebook?

    System pozwala generowac dynamiczne XML/RSS feedy, które automatycznie aktualizuja sie przy zmianie cen lub stanów magazynowych. To idealne rozwiazanie do uruchamiania dynamicznego remarketingu i kampanii handlowych Google Shopping, gwarantujace aktualnosc danych w Twojej reklamie 24/7.

SEO

    Czy moge stworzyc marketplace lub katalog dostawców?

    Tak. Elastyczna struktura kategorii i cech pozwala realizowac nie tylko sklepy, ale równiez zlozone marketplace, agregatory uslug lub katalogi firm z wygodnym filtrowaniem. Do pelnego zarzadzania asortymentem mozesz przypisywac do kazdego produktu indywidualnego dostawce, co upraszcza ksiegowosc i logistyke.

    Czy Boostore jest odpowiedni dla specjalistów SEO i programistów?

    Tak. Platforma zapewnia pelny dostep do edycji HTML, CSS i JavaScript, co pozwala realizowac dowolne rozwiazania techniczne. Dla SEO przewidziany jest potzny zestaw narzedzi: obsluga mikrodanych Schema.org, zarzadzanie meta-tagami, edycja robots.txt, automatyczne generowanie sitemap.xml i integracja zaawansowanych serwisów analitycznych. To czyni system idealnym srodowiskiem do profesjonalnej promocji i niestandardowego programowania.

    Czy BooStore.pro rzeczywiscie daje przewage w szybkosci?

    Tak. Wysoka wydajnosc jest osiagana dzieki uzyciu laczonego buforowania (na poziomie plików i pamieci operacyjnej), a takze nowoczesnej architektury optymalizacji. Platforma dziala na czystym Vanilla JS bez ciezkich bibliotek i uzywa strategii odroczonego ladowania skryptów, które aktywuja sie tylko przy bezposredniej interakcji uzytkownika z elementami strony.

    Czy platforma Boostore jest odpowiednia do SEO promocji strony?

    Tak. Platforma od poczatku zaprojektowana jest pod rygorystyczne wymogi wyszukiwarek. Dostepne sa rozszerzone ustawienia SEO: pelne zarzadzanie meta-tagami, edycja robots.txt, automatyczne generowanie sitemap.xml, konfiguracja Canonical URL i 301-przekierowan. Ob slugiwana jest rozszerzona mikrodane Schema.org do tworzenia atrakcyjnych snippetów.

    Szczególna uwaga poswiecona jest Core Web Vitals: dzieki optymalizacji serwerowej, minifikacji kodu i nowoczesnym formatom obrazów, strony osiagaja 100 punktów w Google PageSpeed Insights. To gwarantuje natychmiastowe ladowanie na urzadzeniach mobilnych i daje znaczaca przewage przy rankingu w Google.

    Jak zarzadzac indeksacja i plikiem robots.txt?

    Na platformie zaimplementowano pelne zarzadzanie indeksacja bez koniecznosci pracy przez FTP. W sekcji «Ustawienia — SEO» mozesz bezposrednio edytowac plik robots.txt, zamykajac przed robotami sekcje pomocnicze lub otwierajac potrzebne strony. Ponadto system automatycznie generuje i aktualizuje dynamiczna mape strony Sitemap.xml, powiadamiajac wyszukiwarki o nowych produktach lub artykulach.

    Jak rozwiazywany jest problem duplikatów stron (Canonical)?

    Aby zapobiec powstawaniu duplikatów tresci, platforma automatycznie ustawia tag <link rel="canonical"> na wszystkich stronach produktów, kategorii i filtrów. To wskazuje wyszukiwarkom priorytetowa wersje strony, chroniac Twoja strone przed sankcjami za nieunikalny content i koncentrujac «wage linków» na glównych URL.

    Jak dziala SEO-linkowanie na wielojezycznych stronach?

    System w pelni odpowiada miedzynarodowym standardom SEO dla wielojezycznosci. Dla kazdej strony automatycznie tworzone sa tagi rel="alternate" hreflang="x". To gwarantuje poprawne linkowanie miedzy wersjami jezykowymi: Google zawsze bedzie wiedzial, która wersje strony pokazac uzytkownikowi w zaleznosci od jego regionu i jezyka, co znaczaco poprawia pozycje w lokalnych wynikach róznych krajów.

    Czy mozna zarzadzac meta-tagami dla róznych wersji jezykowych?

    Tak, dla kazdego jezyka przewidziane sa oddzielne pola zarzadzania Title, Description i Keywords. Mozesz równiez konfigurowac szablony automatycznego generowania meta-tagów, uzywajac zmiennych (nazwa produktu, cena, kategoria), co pozwala natychmiast optymalizowac tysiace stron na wszystkich obslugiwanych jezykach jednoczesnie.

    Jak zachowac pozycje w wyszukiwaniu przy przenosinach na Wasza platforme?

    Przy przenoszeniu strony mozesz uzywac menedzera 301-przekierowan, wbudowanego w panel zarzadzania. Pozwala on powiazac stare adresy stron z nowymi, zachowujac nagromadzona «wage» w Google i nie dopuszczajac do powstawania bledów 404.

O platformie

    Czy istnieje usluga migracji strony z innej platformy z zachowaniem pozycji SEO?

    Tak, oferujemy usluge pelnego przenoszenia strony pod klucz. Glówna cecha naszego podejscia — zachowanie nagromadzonego ruchu z wyszukiwarek. Nie tylko przenosimy content, ale równiez konfigurujemy mape 301-przekierowan: kazdy stary adres strony bedzie poprawnie przekierowywac uzytkownika i robota wyszukiwarki na nowy URL na platformie BooStore.pro.

    Do migracji bedzie potrzebny aktualny cennik w formacie CSV, XLS, XML lub link do Google Sheets. Usluga jest platna i wyliczana indywidualnie w zaleznosci od ilosci danych i zlozonosci struktury Twojej biezacej strony.

    Boostore — to platforma SaaS czy CMS?

    Boostore laczy mozliwosci platformy SaaS i klasycznej CMS. Z jednej strony to system chmurowy, który nie wymaga instalacji na serwerze i aktualizuje sie automatycznie. Z drugiej — platforma zapewnia elastycznosc CMS: mozesz edytowac HTML, CSS i JavaScript, tworzyc wlasne bloki i w pelni zarzadzac struktura strony.

    Czy moge stworzyc sklep internetowy na platformie Boostore?

    Tak. Platforma zawiera pelnowartosciowy system ecommerce do tworzenia sklepów internetowych i katalogów produktów. Dostepne sa kategorie, cechy produktów, filtry, odmiany, koszyk, skladanie zamówien, metody dostawy i integracje systemów platnosci.

    Jakie strony mozna stworzyc na platformie Boostore?

    Na platformie mozna tworzyc rózne typy stron:

    • sklep internetowy
    • katalog produktów
    • strone korporacyjna
    • landing page
    • blog lub projekt contentowy
    • portal lub strona uslugowa
    • strone rezerwacji uslug (Uniwersalne narzedzie do automatyzacji zapisów na uslugi, wynajmu zasobów lub rezerwacji noclegów)

    Elastyczna architektura platformy pozwala skalowac projekt pod dowolne zadania.

    Czy trzeba instalowac CMS na serwerze do dzialania Boostore?

    Nie. Boostore dziala jako chmurowy system SaaS. Oznacza to, ze instalacja CMS, konfiguracja serwera, aktualizacje systemu, bezpieczenstwo i optymalizacja szybkosci sa wykonywane po stronie platformy. Uzytkownik otrzymuje gotowe srodowisko do tworzenia i zarzadzania strona.

    Czy moge dodac wlasny JavaScript lub kod HTML?

    Tak. Mozesz dodawac wlasny HTML, podlaczac JavaScript i uzywac niestandardowych skryptów. To pozwala realizowac dowolne dodatkowe funkcje i integracje.

    Czy platforma jest odpowiednia dla duzych sklepów internetowych?

    Tak. Architektura platformy pozwala tworzyc zarówno male sklepy, jak i duze projekty ecommerce. Ob slugiwane jest skalowanie katalogu, automatyzacja procesów, import danych i integracje z systemami zewnetrznymi.

    Jak szybko laduja sie strony na platformie?

    Platforma jest zoptymalizowana pod katem wysokiej szybkosci ladowania stron. Uzywana jest infrastruktura chmurowa, optymalizacja kodu i minifikacja zasobów. To pozytywnie wplywa na SEO i wygode uzytkowników.

    Czy istnieje bezplatna wersja platformy?

    Tak. Na platformie dostepne jest bezplatne hostowanie strony. Mozesz stworzyc strone i uzywac podstawowych funkcji bez ograniczen czasowych. Bezplatne hostowanie pozwala ladowac do 300 produktów.

    Na jaki okres dostepne jest bezplatne hostowanie strony?

    Bezplatne hostowanie na BooStore.pro jest bezterminowe. Jednak jesli strona nie jest wypelniana, nie aktualizowana, a wlasciciel nie logowal sie do panelu zarzadzania przez ponad 1 rok, taki projekt moze zostac usuniety jako nieaktywny. Wyjatek stanowia strony z atrakcyjnym projektem lub te, które sa aktywnie uzywane przez odwiedzajacych — pozostaja one w systemie bez ograniczen.

    Gdzie jest hostowana strona utworzona na platformie?

    Strony sa hostowane w infrastrukturze chmurowej platformy. Uzytkownik nie musi kupowac oddzielnego hostingu ani konfigurowac serwera — cala czesc techniczna jest juz wlaczona w system.

    Czy moge przeniesc strone z innej CMS?

    Tak. Mozesz przeniesc dane strony z innej CMS lub platformy. Produkty i content mozna importowac przez pliki XLS, CSV, XML lub za pomoca integracji API.

    Czym Boostore rózni sie od innych kreatorów stron?

    W przeciwieństwie do wielu kreatorów stron, platforma laczy wygode SaaS z elastycznoscia profesjonalnej CMS. Uzytkownik otrzymuje chmurowa infrastrukture, automatyzacje sklepu internetowego, rozszerzone mozliwosci SEO i pelna personalizacje projektu.

    Czy na platformie mozna stworzyc strone dla sklepu internetowego?

    Tak, Boostore od poczatku zaprojektowany jako potzna platforma E-commerce. Dostepne sa wszystkie niezbedne narzedzia: zarzadzanie katalogiem, koszyk, platnosc online, wyliczanie kosztów dostawy, system rabatów i kuponów. Mozesz sprzedawac zarówno produkty fizyczne, jak i uslugi z mozliwoscia platnosci online.

    Czy Boostore jest odpowiedni dla startupów i malego biznesu?

    Tak. Dzieki bezplatnemu hostowaniu i brakowi kosztów na hosting lub zakup CMS, startupy moga uruchomic pelnowartosciowy biznes w kilka minut. Gotowa infrastruktura pozwala rozpoczac prace bez inwestycji w programowanie.

    Czym Boostore rózni sie od Wix, Shopify i innych kreatorów stron?

    Boostore — to potzna alternatywa dla popularnych kreatorów, która laczy wygode SaaS i elastycznosc profesjonalnej CMS. W przeciwieństwie do Wix czy Shopify, oferujemy glebsza personalizacje kodu, brak sztywnych ograniczen w projekcie i wyspecjalizowane narzedzia do automatyzacji ecommerce. Otrzymujesz chmurowa infrastrukture i automatyczne aktualizacje, zachowujac przy tym pelna kontrole nad struktura i logika strony.

    Czy moge stworzyc strone bez umiejetnosci programowania?

    Tak. Wiekszosc funkcji platformy jest dostepna przez intuicyjny interfejs i gotowe widgety. Mozesz samodzielnie zlozyc strukture strony, skonfigurowac unikalny projekt i wypelnic katalog produktów, nie piszac ani jednej linii kodu. System przejmuje wszystkie techniczne zlozonosci, pozwalajac Ci skupic sie na tresci i sprzedazy.

    Dlaczego strony na BooStore.pro sa szybsze od konkurencji?

    Zrezygnowalismy z ciezkich bibliotek (np. jQuery) na rzecz Vanilla JavaScript. To pozwala stronom ladowac sie natychmiast i uzyskiwac wysokie wyniki w Google Core Web Vitals. Szybkie ladowanie to nie tylko wygoda dla kupujacych, ale takze bezposrednia przewaga w rankingu wyszukiwarek.

Rezerwacja i Uslugi / Booking

    Czy mozna opracowac na Boostore indywidualne rozwiazania?

    Tak, mozna. Zespól Boostore jest gotowy do wspólpracy i realizacji indywidualnych rozwiazan. Kontakt: boostorecms@gmail.com

    Czy moge stworzyc strone do rezerwacji uslug lub wynajmu?

    Tak, platforma posiada potzny modul do automatyzacji zapisów i wynajmu. Mozesz zamienic zwykly sklep internetowy w pelnowartosciowy serwis rezerwacji z harmonogramem godzinowym lub dobowym. System obsluguje tworzenie elastycznych slotów, uwzglednianie dni wolnych, zarzadzanie kolejka i automatyczne powiadomienia dla klientów.

    Kluczowe mozliwosci modulu:

    • Indywidualne kalendarze: tworzenie oddzielnych harmonogramów dla kazdego specjalisty, zasobu lub obiektu wynajmu.
    • Elastyczne interwaly: konfiguracja czasu trwania sesji, przerw miedzy nimi i ograniczen liczby zapisów na jedna godzine.
    • Generator formularzy: tworzenie unikalnych przycisków i widgetów zapisu, które mozna umiescic w dowolnym miejscu strony.

    Narzedzia zarzadzania znajduja sie w sekcji: Sklep — Rezerwacja (lub pod linkiem Generator kalendarzy rezerwacji).

Wydajnosc i Szybkosc

    Czy moge stworzyc profesjonalny system rezerwacji (Booking)?

    Tak. Platforma Boostore zawiera potzny widget rezerwacji, który pozwala zorganizowac zapisy na uslugi lub wynajem dowolnych zasobów: od stolików w restauracjach i gabinetów masazu po wynajem samochodów i zapisy na wydarzenia grupowe.

    Kluczowe mozliwosci systemu rezerwacji:

    • Podzial na obiekty: Za pomoca ID grup mozna rozdzielic harmonogram dla róznych specjalistów, sal lub jednostek sprzetu.
    • Elastyczne sloty czasowe: Sam ustawiasz krok czasu (np. 30 minut lub 2 godziny) i maksymalny czas trwania jednej rezerwacji.
    • Automatyczne wyliczanie kosztu: System potrafi dynamicznie przeliczac cene w zaleznosci od wybranego okresu (np. cena za 1 godzine * liczba godzin) lub uzywac stawki stalej.
    • Inteligentne statusy i kalendarz: Slot sa synchronizowane ze statystykami sprzedazy. Statusy «Rezerwacja wstepna», «Zarezerwowane» lub «Anulowane» natychmiast zmieniaja dostepnosc czasu na stronie. Jesli slot jest zajety — ponowna rezerwacja jest niemozliwa (z wyjatkiem wydarzen grupowych).
    • Wieloosobowa rezerwacja: Dla seminariów lub treningów grupowych mozna podac liczbe dostepnych miejsc na ten sam okres.
    • Platnosc do potwierdzenia rezerwacji: Mozna skonfigurowac obowiazkowa przedplate. Zaraz po wyborze czasu klient jest przekierowywany do systemu platnosci, a status rezerwacji zmienia sie automatycznie po udanej platnosci.
    • Konfiguracja horyzontów zapisu: Zarzadzaj tym, jak wczesniej klient moze sie zapisac (np. «tylko od nastepnego poniedzialku» lub «nie wiecej niz miesiac do przodu»).

    Funkcjonalnosc jest zrealizowana przez przekazywanie parametrów JSON i atrybutów data, co pozwala programistom dostosowywac interfejs rezerwacji do dowolnych zadan biznesowych.

    Jak szybkie sa strony na platformie BooStore.pro? Czy sa rzeczywiste wskazniki?

    Platforma demonstruje wzorcowe wskazniki szybkosci: strony na Boostore stabilnie osiagaja 95–100 punktów w tescie Google PageSpeed Insights (Mobile i Desktop). Glówny wskaznik renderowania tresci (LCP) wynosi ponizej 1.2 sekundy, co jest znaczaco szybsze niz «zielona strefa» Google (2.5 s). Osiaga sie to dzieki calkowitemu odrzuceniu ciezkich bibliotek (jQuery) na rzecz czystego Vanilla JavaScript.

    Czy strona wytrzyma naplyw odwiedzajacych podczas wyprzedazy lub promocji?

    Architektura BooStore.pro jest zaprojektowana do pracy pod duzym obciazeniem. Dzieki zoptymalizowanemu jadru i efektywnemu buforowaniu po stronie serwera, strony na platformie latwo wytrzymuja dziesiatki tysiecy jednoczesnych sesji bez utraty szybkosci odpowiedzi. Czas reakcji serwera (TTFB) pozostaje minimalny nawet przy masowych odczytach bazy danych produktów, co potwierdza udana praca duzych sklepów internetowych w okresach «Black Friday».

    Jak rezygnacja z jQuery wplywa na rzeczywiste doswiadczenie uzytkownika?

    Rezygnacja z jQuery pozwolila nam zmniejszyc objetosc przesyłanego kodu JS wielokrotnie. Dla uzytkownika oznacza to natychmiastowa reakcje interfejsu na klikniecie (wskaznik INP ponizej 50 ms). Strona nie «zacina sie» podczas ladowania, menu otwieraja sie bez opóznien, a filtrowanie produktów odbywa sie praktycznie bezszwowo. To bezposrednio zmniejsza wspólczynnik odrzucen i zwieksza konwersje na zakup.

    Co oznacza «szybkosc na poziomie architektury» w BooStore.pro?

    W przeciwieństwie do zwyklych CMS, gdzie szybkosc próbuje sie «podciagnac» wtyczkami, w BooStore.pro jest ona wbudowana w fundament. Uzywamy wskazników Google PageSpeed (99–100%) jako rzeczywistego wyznacznika jakosci kodu. Glówne rozwiazania:

    • Minimalny start: przy pierwszym ladowaniu przesyłany jest tylko krytycznie wazny HTML i CSS. Zadnego «ciezkiego» JavaScript, dopóki uzytkownik nie wykonal akcji.
    • Modulowosc: funkcjonalnosc (koszyk, porównanie, menu, slidery) jest podzielona na dziesiatki malych modulów, które laduja sie dopiero w momencie interakcji.
    • Natywny HTML/CSS: zakladki, akordeony i filtry sa zrealizowane w czystym CSS i tagach <details>, co daje natychmiastowa odpowiedz bez ani jednej linii JS.
    Jak platforma pracuje z obrazami w katalogu?

    System automatycznie chroni Twoj PageSpeed i transfer danych uzytkowników:

    • Auto-generacja miniatur: dla list produktów system sam tworzy pomniejszone kopie odpowiedniego rozmiaru. Oryginaly (2000px i wiecej) nigdy nie sa ladowane w katalogu.
    • Format WebP: obrazy sa automatycznie konwertowane do nowoczesnych formatów z zachowaniem ostrosci przy minimalnej wadze.
    • Inteligentny Lazy Load: obrazki laduja sie dopiero wtedy, gdy trafia w pole widzenia uzytkownika podczas przewijania.
    Dlaczego zrezygnowalismy z Memcache na rzecz wlasnego systemu buforowania?

    Memcache jest ograniczony pamiecia operacyjna (RAM) i moze «wypasc» przy duzych ilosciach danych. W BooStore.pro zaimplementowano plikowy system pelnego buforowania, który nie zalezy od ograniczen RAM. Buforowane jest absolutnie wszystko: bloki HTML, menu, komponenty UI i teksty. Aktualizacja nastepuje punktowo wedlug znaczników czasu: jesli zmieniles jedna cene, przeliczy sie tylko blok tej ceny, a nie cala pamiec podreczna strony.

Inne

    Jaki jest sekret szybkiego menu mobilnego?

    Menu mobilne w BooStore.pro — to inteligentny modul. Nie laduje sie w przegladarce, jesli uzytkownik wszedl z komputera. Na urzadzeniach mobilnych skrypt menu i jego tresc laduja sie dopiero w momencie klikniecia w «burgera». To eliminuje zbedne obciazenie procesora telefonu i pozwala stronie uzyskiwac 100 punktów w teście mobilnym Google.

    Ile czasu zajmuje utworzenie sklepu internetowego?

    Sklep mozna utworzyc w kilka minut. Po rejestracji wystarczy wybrac szablon, dodac produkty i skonfigurowac metody platnosci. System jest gotowy do pracy natychmiast, pozwalajac przyjmowac pierwsze zamówienia w dniu rejestracji.

    Jak limit produktów wplywa na pozostale mozliwosci strony?

    Limit produktów jest podstawowym wskaznikiem, od którego proporcjonalnie zaleza wszystkie zasoby systemu. Przy zwiekszaniu liczby produktów automatycznie rozszerzaja sie mozliwosci contentowe, marketingowe i zarzadzania.

    Przykład przy limicie 1 000 produktów:

    • Content: do 1 000 artykulów bloga (1 do 1).
    • Strony: 100 wewnetrznych stron sklepu (1 na kazde 10 produktów).
    • Narzedzia: 50 konstruktorów formularzy i 50 szablonów e-maili (1 na kazde 20 produktów).
    • Zespól: 20 menedzerów strony (1 na kazde 50 produktów).

    Przykład przy limicie 10 000 produktów:

    • Content: do 10 000 artykulów bloga.
    • Strony: 1 000 wewnetrznych stron sklepu.
    • Narzedzia: 500 konstruktorów formularzy i 500 szablonów e-maili.
    • Zespól: 200 menedzerów strony.

    Dalsze zwiekszanie limitu produktów bedzie równiez proporcjonalnie otwierac nowe zasoby, pozwalajac Twojemu biznesowi rosnac bez ograniczen technicznych.

    Czy moge wdrazac wlasne skrypty automatyzacji i zmieniac CSS/JS?

    Tak, absolutnie. W przeciwieństwie do zamknietych platform chmurowych (np. Horoshop), które sztywnie ograniczaja dostep do kodu, BooStore.pro daje Ci pelna wolnosc. Mozesz integrowac dowolne niestandardowe skrypty JS, piksele sledzace, analityke i unikalne style CSS bezposrednio przez wygodny panel administracyjny.

    Przy tym architektura BooStore automatycznie kompiluje, minifikuje (kompresuje) i buforuje Twoje skrypty w oddzielne pliki. To gwarantuje, ze personalizacja nie przeciazy kodu stron, a strona bedzie pozostawac maksymalnie szybka.

    Czy istnieja ograniczenia liczby produktów, zamówien lub ruchu?

    Nie, zadnych kar za rozwój biznesu. Nie pobieramy procentów od Twojej sprzedazy i nie ograniczamy Twojego potencjalu. W komercyjnych taryfach BooStore.pro calkowicie brak ukrytych limitów na pojemnosc dysku, liczbe przetworzonych zamówien czy ruch. Platforma jest zaprojektowana do latwego skalowania i stabilnie wytrzymuje ogromne katalogi na poziomie wielkich marketplaceów.

    Jak dziala wbudowany generator opisów na podstawie cech?

    To unikalna funkcja automatyzacji od BooStore.pro, która oszczedza tysiace dolarów przy wypelnianiu danych sklepu internetowego. Jesli masz duzy katalog podobnych produktów, nie musisz pisac tekstów recznie dla kazdego z nich.

    System pozwala wykonac wstawianie opisów w zaleznosci od wypelnionych cech karty (np.: material, kolor, gabaryty, marka).

Rózne

    Czy moge testowac platforme bezplatnie bez ograniczen czasowych?

    Tak, bez zadnej presji i koniecznosci podawania karty bankowej. Na BooStore.pro dostepny jest pelnowartosciowy bezterminowy bezplatny taryf ($0). Otrzymujesz podstawowy limit do 300 produktów, który mozna latwo rozszerzyc do 1000 produktów za zwykly repost o platformie w mediach spolecznosciowych.

    Wypelniaj katalog, konfiguruj projekt, podlaczaj narzedzia SEO i uruchamiaj sprzedaz bez ryzyka finansowego. Przechodz na taryfy Pro (od $3) dopiero wtedy, gdy Twoj biznes bedzie gotowy do skalowania.

Umowa użytkownika
Administracja strony nie prowadzi działalności handlowej i nie ponosi odpowiedzialności za jakość sprzedawanych usług/towarów na BooStore.pro. Za wszystkie zamieszczone towary i usługi odpowiadają użytkownicy, którzy je dodali.
Kontakt: https://boostore.pro/pl/feedback.html

Temu