Jak ustawić zadania CRON dla PrestaShop

uwaga przy uruchamianiu zdań w przypadku aktywnego SSL - https na sklepie

W przypadku sklepów w których mamy aktywny certyfikat SSL, niezależnie od informacji z modułu, zalecamy ustawiania zdań cron na adres

 http:// 
zamieniamy na
https:// 

W przykładach podaliśmy adres http://domena.pl - musi być on zamieniony na adres Państwa sklepu.
Należy również poprawnie ustawienić http:// lub http:// oraz przedrostek www, jeśli tak jest skonfigurowany sklep.
Nie wszystkie modułu posiadają ?token=, informacje odnośnie poprawnego linku dostępne są w konfiguracji każdego z modułów.

testowy link do crona dla opcji jeden https://

uruchamianie na serwerze z panelem DirectAdmin

/usr/bin/wget -q -F -O - "http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX" 

opcjonalne uruchomienie na DirectAdmin i innych serwerach

/usr/bin/lynx --dump "http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX" >/dev/null 2>&1 

Przy problemach z weryfikacją SSLa

/usr/bin/wget -q -F -O - "http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX" --no-check-certificate 

opcjonalne uruchomienie na DirectAdmin i innych serwerach

/usr/bin/curl --silent http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX 
/usr/bin/wget -O /dev/null --no-check-certificate http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX 

opcjonalne uruchomienie na DirectAdmin i innych serwerach

Zalecane na:

  • atthost.pl

wget "http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX" 

uruchomienie na cPanel

/usr/bin/wget -q -F -O - http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX 

opcjonalne uruchomienie na cPanel

/wget -q -O /dev/null http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX 

uruchamianie na serwerze MyDevil.net

/usr/local/bin/curl http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX 

opcjonalne uruchamianie na serwerze MyDevil.net

 /usr/bin/fetch --no-verify-hostname --no-verify-peer --user-agent="Devil2 CRON fetch" -o /dev/null http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX 

uruchamianie na serwerze z panelem nazwa.pl

Logujemy się do panelu Active.Admin, następnie przechodzimy do Ustawienia > Harmonogram zadań > Dodaj zadanie harmonogramu i akceptujemy regulamin.

Na serwerach NAZWA.pl - nie ma możliwości dodania zadań cron z tokenem - dlatego w folderze głównym tworzymy plik np. allegro-cron.php i w nim

<?php $cronnazwa = file_get_contents('http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX'); 
echo $cronnazwa; ?> 

lub (w przypadku gdy CRON wykonuje się, ale nie przynosi efektu)

<?php system('curl -f -s -k http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX'); ?> 

lub (w przypadku gdy jest problem ze sprawdzeniem SSLa domeny)

<?php  system('wget --delete-after --no-check-certificate http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX'); ?> 

Jeśli utworzyliśmy już nasz plik np cron-allegro.php wybieramy go w polu
Uruchamiane polecenie:, resztę pól ustawiamy według uznania np:
Opisowa nazwa zadania: cron integracja allegro
Prześlij wynik działania na adres e-mail: [email protected] lub poprawny mail jeśli chcemy być informowani o wykonaniu zadania
Interpreter: PHP

W opcji z harmonogramem czasu wybieramy jak najbardziej zbliżony czas z zalecanym w danym module, np w przypadku allegro wybieramy uruchamianie co 10 minut, następnie potwierdzamy dodanie zadania poprzez kliknięcie Zapisz.

Uwaga w wybranych serwera należy zmienić ścieżkę do polecenia CRON dodając server123456 - z poprawną nazwą swojego serwera.

czyli zmieniamy
/cron-allegro.php na
php /home/server983408/ftp/cron-allegro.php

uruchamianie na serwerze z panelem home.pl

Na serwerach HOME.pl - musimy utworzyć plik w folderze głównym (/home/ftpmg/public_html/) o nazwie zależnej od częstotliwości uruchamiania zadania np: cron-5min.php i w nim dodajemy

<?php system('curl -f -s -k http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX'); ?> 

lub (w przypadku gdy jest problem ze sprawdzeniem SSLa domeny)

<?php  system('wget --delete-after --no-check-certificate http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX'); ?> 

lub (w przypadku gdy CRON wykonuje się, ale nie przynosi efektu)

<?php $cronhome = file_get_contents('http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX'); 
echo $cronhome; ?> 

uruchamianie na serwerze z panelem dhosting.pl

Hosting dhosting.pl, posiad swój panel adminsitracyjny w którym możemy utworzyć własne zadania CRON.

Logujemy się na panel https://dpanel.pl/.
Z menu wybieramy zakładkę Zaawansowane > Zadania CRON.

Na nowej podstronie klikamy Dodaj nowe zadanie lub Dodaj jeśli posiadamy już dodane zadania cron.
Zostanie teraz wyświetlone okienko popup z formularzem nowego zadania CRON.

Zostanie teraz wyświetlone okienko popup z formularzem nowego zadania CRON.

Ustawiamy w nim profil w zależności od modułu.
Dla większości modułów wybieramy czas 5 minut, dla modułu importu XML nieograniczony.
Z opcji Program wybieramy cURL.
w polu URL wpisujemy link do zadania CRON skopiowany z modułu np.

http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX
Pole Katalog roboczy pozostawiamy puste.
Ostatnią rzecza którą musimy ustawić, jest częstotliwość z jaką ma działać dane zadanie CRON.
Z opcji Interwał wybieramy odpowiedni interwał według sugerowanego czasu konkretnego modułu.
Np. dla modułu Allegro będzie to co 5 minut, a dla modułu importu XML skorzystamy z opcji zaawansowanego interwału.

Po prawidłowym utworzeniu zadania CRON, zostaniemy przekierowani na podstronę ze wszystkimi zadaniami CRON.

uruchamianie na serwerze z panelem ovh.pl

Na serwerach OVH.pl - nie ma możliwości dodania zadań cron z tokenem - dlatego w folderze głównym tworzymy plik allegro-cron.php i w nim

Łączymy się przez FTP i tworzymy nowy plik php – np. cron-allegro.php
w nim tworzymy skrypt wg poniższego przykładu

<?php

ini_set('default_charset', 'utf-8');

$options = array(
    CURLOPT_URL => 'http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX',
    CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HEADER => false,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CONNECTTIMEOUT => 600,
    CURLOPT_TIMEOUT => 600
);

$curl = curl_init();
curl_setopt_array($curl, $options);
$response = curl_exec($curl);
curl_close($curl);

print_r($response); 

Następnie logujemy się na nasz panel zarządzania serwerem na ovh.pl
Z lewego menu wybieramy Hosting i nazwę naszego kotna np. domena.pl
Wybieramy Dodaj zadanie – pojawi nam się nowe okno konfiguracji zadań CRON

Następnie w Polecenie do wykonania, wpisujemy adres do naszego pliku CRON (sugerujemy utworzyć własny plik)

  • Język wybieramy wersję PHP która jest obecnie ustawiona na serwerze
  • Uruchom ustawiamy na TAK
  • Logi przesyłane e-mailem NIE
  • Opis, możemy wpisać własną treść w celu ułatwienia identyfikacji polecenia

W kroku 2 wybieramy częstotliwość uruchamiania zadania CRON (same ustawienia są dość ubogie w stosunku do reszty hostingów – np. nie wybierzemy minuty uruchamiania zadania).

W większości przypadków zmieniamy tutaj tylko pole Godziny np.::

  • co godzinę dla modułu allegro
  • co N godzin (wpisujemy 3 w przypadku polecenia cron.php dla importu xml)

W ostatnim kroku 3 otrzymujemy potwierdzenie naszego zadania

Jeśli nasze polecenie zostało utworzone poprawnie, zostaniemy przekierowani na podstronę ze wszystkimi zadaniami CRON.

opcjonalne uruchamianie na serwerze Kei.pl

Na wybranych konfiguracjach serwerów KEI pojawia się problem (skrypt próbuje się uruchomić z PHP 5.4, a sklep np korzysta z PHP 7.2
W takiej sytuacji należy po domena.pl dodać port :81 (jeśli korzystamy z http)

links -dump http://domena.pl:81/allegro-cron.php 
W takiej sytuacji należy po domena.pl dodać port :444 (jeśli korzystamy z https)

links -dump https://domena.pl:444/allegro-cron.php 

Tworzymy na serwerze nowy plik/i na przykładzie allegro (allegro-cron.php) a w nim dodajemy:

<?php

ini_set('default_charset', 'utf-8');

$options = array(
    CURLOPT_URL => 'http://domena.pl/modules/x13allegro/sync.php?token=XXXXXX',
    CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HEADER => false,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CONNECTTIMEOUT => 600,
    CURLOPT_TIMEOUT => 600
);

$curl = curl_init();
curl_setopt_array($curl, $options);
$response = curl_exec($curl);
curl_close($curl);

print_r($response); 

Zaawansowane przykłady uruchamiania zadań CRON:

  • */5 * * * * - co 15 minut
  • */5 * * * * - co 5 minut
  • 23 */3 * * * - co 3 godziny o każdej 23 minucie