Files
wyczarujprezent.pl/modules/pminpostpaczkomaty/views/js/guide.js
2024-10-28 22:14:22 +01:00

470 lines
21 KiB
JavaScript

/**
* 2014-2021 Presta-Mod.pl Rafał Zontek
*
* NOTICE OF LICENSE
*
* Poniższy kod jest kodem płatnym, rozpowszechanie bez pisemnej zgody autora zabronione
* Moduł można zakupić na stronie Presta-Mod.pl. Modyfikacja kodu jest zabroniona,
* wszelkie modyfikacje powodują utratę gwarancji
*
* http://presta-mod.pl
*
* DISCLAIMER
*
*
* @author Presta-Mod.pl Rafał Zontek <biuro@presta-mod.pl>
* @copyright 2014-2021 Presta-Mod.pl
* @license Licecnja na jedną domenę
* Presta-Mod.pl Rafał Zontek
*/
$(document).ready(function(){
//simple config.
//Only one step - highlighting(with description) "New" button
//hide EnjoyHint after a click on the button.
var enjoyhint_instance = false;
var current_step = 0;
function changeCurrentStep() {
current_step = enjoyhint_instance.getCurrentStep();
$('input[name="PMINPOSTPACZKOMATY_GUIDE"]').val(current_step);
$('.pminpostpaczkomaty-guide-step').text((current_step+1).toString() + ' / ' + enjoyhint_script_steps.length.toString());
}
//set script config
function resumePmGuide() {
enjoyhint_instance = new EnjoyHint({
onNext: changeCurrentStep,
onSkip: changeCurrentStep,
btnNextText: 'Dalej',
btnSkipText: 'Ukryj'
});
enjoyhint_instance.set(enjoyhint_script_steps);
enjoyhint_instance.setCurrentStep(current_step);
enjoyhint_instance.resume();
}
if ($('input[name="PMINPOSTPACZKOMATY_GUIDE"]').length && $('input[name="PMINPOSTPACZKOMATY_GUIDE"]').val()) {
current_step = parseInt($('input[name="PMINPOSTPACZKOMATY_GUIDE"]').val());
}
var page = 1;
enjoyhint_script_steps = [
{
selector:'.start-guide',
shape: 'circle',
description: `
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Witaj w przewodniku konfiguracji modułu Paczkomaty InPost<br/>
Samouczek jest dostępny tutaj.
</p>
`,
},
{
selector:'.pminpostpaczkomaty #refreshcategories',
shape: 'circle',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Jeśli samouczek nie będzie wystarczający, skorzystaj z instrukcji.
</p>
`,
},
{
selector:'.pminpostpaczkomaty .sidebar',
shape: 'circle',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Główne zakładki konfiguracji zostały wyróżnione pogrubioną czcionką, aby ułatwić ich odnalezienie.<br/>
Samouczek dotyczący konfiguracji składa się z 31 kroków. Czy to dużo? <br/>
W rzeczywistości konfiguracja zajmie jedynie kilka minut. Dzięki samouczkowi na pewno pójdzie sprawnie i bezproblemowo.<br/>
</p>
`,
},
{
selector:'.list-group-item[data-target=".panel:eq(0)"]',
shape: 'circle',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Przejdźmy teraz do konfiguracji połączenia z InPost.
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(0)"]').click();
return true;
},
},
{
selector:'.pminpostpaczkomaty .panel:eq(0)',
description: `
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Zalecamy wypróbowanie nowego interfejsu API SHIPX, który oferuje szerszy zakres funkcjonalności. Do jego autoryzacji potrzebny jest Token i ID organizacji, a te dane można uzyskać w sekcji "Moje konto > API" na stronie manager.paczkomaty.pl. <br/>
Oczywiście, jeśli wolisz, możesz nadal korzystać ze starszej wersji API, która wymaga autoryzacji za pomocą adresu e-mail i hasła z managera.paczkomaty.pl.<br/>
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(0)"]').click();
return true;
},
},
{
selector:'.pminpostpaczkomaty button[name="saveAndTest"]:eq(0)',
shape: 'circle',
description: `
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Po wprowadzeniu danych, spróbuj nawiązać połączenie z API.
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(0)"]').click();
return true;
},
},
{
selector:'.list-group-item[data-target=".panel:eq(1)"]',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Teraz wprowadzamy dane nadawcy.
</p>
`,
shape: 'circle',
onBeforeStart: function(){
$('a[data-target=".panel:eq(1)"]').click();
return true;
},
},
{
selector:'.pminpostpaczkomaty .panel:eq(1)',
description: `
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Proszę wypełnić wszystkie poniższe pola. Jeśli nazwa Twojej firmy nie zawiera imienia i nazwiska, proszę wprowadzić dane osoby upoważnionej do kontaktu z InPost.<br/>
Proszę wpisać numer telefonu komórkowego bez prefiksu (+48).<br/>
Jeśli używasz tokenu ShipX, niektóre dane zostaną automatycznie pobrane z Twojego konta w InPost.
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(1)"]').click();
return true;
},
},
{
selector:'.list-group-item[data-target=".panel:eq(2)"]',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Konfiguracja przewoźnika dla przesyłek opłaconych z góry (przelew, płatności elektroniczne).
</p>
`,
shape: 'circle',
onBeforeStart: function(){
$('a[data-target=".panel:eq(2)"]').click();
return true;
},
},
{
selector:'.pminpostpaczkomaty .panel:eq(2)',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
W przypadku braku na liście metody dostawy, może to oznaczać, że jest ona już powiązana z innym modułem.<br />
Jeśli potrzebujesz utworzyć nową metodę dostawy, proszę skorzystać z przycisku "Utwórz metodę dostawy". Ta opcja przekieruje Cię do tworzenia nowego przewoźnika. Nie zapomnij uzupełnić ceny.<br />
Proszę określić domyślny rozmiar przesyłek, który najlepiej odpowiada Twoim potrzebom. Nie martw się, możesz go później zmienić podczas generowania etykiety.<br />
<strong><u>Uwaga:</u> Aby zaznaczyć kilka pozycji jednocześnie, użyj klawisza CTRL.</strong>
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(2)"]').click();
return true;
},
},
{
selector:'.list-group-item[data-target=".panel:eq(3)"]',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">Konfiguracja przewoźnika dotyczy przesyłek za pobraniem, czyli przesyłek, które zostaną opłacone przez odbiorcę podczas odbioru przesyłki.</p>
`,
shape: 'circle',
onBeforeStart: function(){
$('a[data-target=".panel:eq(3)"]').click();
return true;
},
},
{
selector:'.pminpostpaczkomaty .panel:eq(3)',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Ten krok można całkowicie pominąć - nie chcę wysyłać przesyłek za pobraniem.<br />
Konfiguracja jest podobna do Przesyłek opłaconych z góry.<br />
<i>Jeżeli wybierzesz tą samą metodę dostawy jak w przypadku przesyłek opłaconych z góry - przy każdym zamówieniu moduł zaznaczy Pobranie: Tak,<br />aby tego uniknąć zalecamy utworzenie osobnej metody dostawy dla InPost paczkomaty pobranie.</i>
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(3)"]').click();
return true;
},
},
{
selector:'.list-group-item[data-target=".panel:eq(4)"]',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">Ustawienia przesyłki</p>
`,
shape: 'circle',
onBeforeStart: function(){
$('a[data-target=".panel:eq(4)"]').click();
return true;
},
},
{
selector:'.pminpostpaczkomaty .panel:eq(4)',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
W tym punkcie wybierasz sposób nadania oraz typ drukowanej etykiety. Możesz na etykietach automatycznie dodawać numer zamówienia lub imię i nazwisko klienta za pomocą kodu referencyjnego.<br />
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(4)"]').click();
return true;
},
},
{
selector:'.list-group-item[data-target=".panel:eq(5)"]',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Ustawienia mapy
</p>
`,
shape: 'circle',
onBeforeStart: function(){
$('a[data-target=".panel:eq(5)"]').click();
return true;
},
},
{
selector:'.pminpostpaczkomaty .panel:eq(5)',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Wybór paczkomatu z listy - udostępni twoim klientom prosty wybór paczkomatu.<br/>
Geolokalizacja działa gdy masz włączony SSL (zielona kłódka na pasku przeglądarki).
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(5)"]').click();
return true;
},
},
{
selector:'.list-group-item[data-target=".panel:eq(6)"]',
description: `
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Ustawienia położenia
</p>
`,
shape: 'circle',
onBeforeStart: function(){
$('a[data-target=".panel:eq(6)"]').click();
return true;
},
},
{
selector:'.pminpostpaczkomaty .panel:eq(6)',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Jeżeli poprawnie skonfigurowałeś moduł oraz metodę dostawy możesz spróbować złożyć testowe zamówienie.
W tym kroku możesz wybrać które położenie jest najlepsze dla twojego sklepu.
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(6)"]').click();
return true;
},
},
{
selector:'.list-group-item[data-target=".panel:eq(7)"]',
description: `
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Ustawianie statusów zamówienia
</p>
`,
shape: 'circle',
onBeforeStart: function(){
$('a[data-target=".panel:eq(7)"]').click();
return true;
},
},
{
selector:'.pminpostpaczkomaty .panel:eq(7)',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Chcesz klienta informować o wysłanych paczkach? <br/>
Możesz automatycznie oznaczać przesyłki odebrane przez kuriera, dodatkowo sam będziesz wiedział czy klient odebrał przesyłkę.
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(7)"]').click();
return true;
},
},
{
selector: $('#PMINPOSTPACZKOMATY_OS_on').parent().parent().parent(),
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Chcesz zmienić status zamówienia po wydrukowaniu listu? Nic prostszego - zaznacz Tak
Następnie ustaw Status zamówienia po wysłaniu
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(7)"]').click();
return true;
},
},
{
selector: $('#PMINPOSTPACZKOMATY_STATUS').parent().parent(),
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Wybierz jaki status mają mieć przesyłki po wysłaniu
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(7)"]').click();
return true;
},
},
{
selector: $('select[name="PMINPOSTPACZKOMATY_STATUS_AV[]"').parent().parent(),
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Możesz wybrać które statusy mają być aktualizowane - jest opcja dla zaawansowanych użytkowników - śmiało możesz zaznaczyć wszystkie <i>Ctrl + A</i><br/>
<strong><u>Uwaga:</u> Aby zaznaczyć kilka pozycji jednocześnie, użyj klawisza CTRL.</strong>
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(7)"]').click();
return true;
},
},
{
selector: $('#PMINPOSTPACZKOMATY_STATUS_PIC').parent().parent(),
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Jeśli chcesz, możesz zmienić status przesyłki tuż po jej nadaniu w paczkomacie lub odebraniu przez kuriera. W tym celu wybierz odpowiedni status z listy.
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(7)"]').click();
return true;
},
},
{
selector: $('#PMINPOSTPACZKOMATY_STATUS_DEL').parent().parent(),
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Wybierz status, który ma być przypisany do przesyłek po ich dostarczeniu. <br />
Pamiętaj, aby również dodać zadanie cron, które będzie automatycznie aktualizowało statusy przesyłek.
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(7)"]').click();
return true;
},
},
{
selector:'.list-group-item[data-target=".panel:eq(8)"]',
description: `
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Ustawianie wiadomości do klienta
</p>
`,
shape: 'circle',
onBeforeStart: function(){
$('a[data-target=".panel:eq(8)"]').click();
return true;
},
},
{
selector:'.pminpostpaczkomaty .panel:eq(8)',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Możesz wysłać wiadomość do klienta z informacją o wybranym paczkomacie.<br />
Aby to zrobić, wybierz opcję "Wyślij dodatkową wiadomość" i wpisz treść wiadomości w polu "Wiadomość do klienta".<br />
W treści wiadomości możesz wykorzystać zmienne, aby automatycznie wypełnić odpowiednie dane, np. imię i nazwisko klienta, adres paczkomatu, numer przesyłki itp.<br />
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(8)"]').click();
return true;
},
},
{
selector:'.list-group-item[data-target=".panel:eq(9)"]',
description: `
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Ustawianie wiadomości do zamówienia
</p>
`,
shape: 'circle',
onBeforeStart: function(){
$('a[data-target=".panel:eq(9)"]').click();
return true;
},
},
{
selector:'.pminpostpaczkomaty .panel:eq(9)',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Jeśli skorzystasz z tej opcji, informacja o wybranym paczkomacie zostanie automatycznie dodana do zamówienia. Dzięki temu możesz łatwo pobrać informacje o wybranym paczkomacie za pomocą API PrestaShop.
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(9)"]').click();
return true;
},
},
{
selector:'.list-group-item[data-target=".panel:eq(12)"]',
description: `
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Integracja API Baselinkera
</p>
`,
shape: 'circle',
onBeforeStart: function(){
$('a[data-target=".panel:eq(12)"]').click();
return true;
},
},
{
selector:'.pminpostpaczkomaty .panel:eq(12)',
description:`
<span class="pmstep">`+(page++)+` / {total}</span><p class="pmguide-description">
Czy korzystasz z Baselinkera? Jeśli tak, możesz przesyłać informacje o wybranych paczkomatach za pomocą API Baselinkera.<br />
Baselinker może być podłączony poprzez specjalny konektor w postaci pliku PHP. W ten sposób przesyłki automatycznie trafiają do panelu Baselinkera. Jeśli ta opcja nie działa, spróbuj zaktualizować konektor lub skonfiguruj integrację API Baselinker.<br />
W przypadku połączenia poprzez API PrestaShop skonfiguruj integrację API Baselinker.
</p>
`,
onBeforeStart: function(){
$('a[data-target=".panel:eq(12)"]').click();
return true;
},
},
];
for(i in enjoyhint_script_steps) {
enjoyhint_script_steps[i].description = enjoyhint_script_steps[i].description.replace('{total}',enjoyhint_script_steps.length);
enjoyhint_script_steps[i]['nextButton'] = {text: "Dalej"};
enjoyhint_script_steps[i]['skipButton'] = {text: "Ukryj"};
if (i) {
enjoyhint_script_steps[i]['prevButton'] = {text: "Wstecz"};
}
if (i == enjoyhint_script_steps.length-1) {
enjoyhint_script_steps[i]['showNext'] = false;
} else {
enjoyhint_script_steps[i]['showNext'] = true;
}
}
$(document).on('click', '.start-guide', function(){
resumePmGuide()
return false;
})
$('.pminpostpaczkomaty-guide-step').text((parseInt(current_step)+1).toString() + ' / ' + enjoyhint_script_steps.length.toString());
});