Dokumentacja - Import XML dla PrestaShop

Instrukcja instalacji i obs艂ugi modu艂u importu XML dla PrestaShop od X13.pl
1.7.X  1.6.X  1.5.X 
4.1.2 / 2019-08-22
zobacz changelog

Wymagania instalacyjne

Modu艂 wymaga kilku podstawowych us艂ug na serwerze, kt贸re w wi臋kszo艣ci przypadk贸w s膮 aktywne.
Gdyby kt贸ra艣 z wymienionych opcji nie by艂a dost臋pna - nale偶y j膮 w艂膮czy膰 w panelu serwera lub napisa膰 do administratora.

  1. PHP: 5.6 - 7.0 (lub 7.0 - 7.3, 5.4 - 5.6 dodatkowa wersja modu艂u do instalacji)
  2. ionCube: tak

Instalacja

Modu艂 mo偶esz znale藕膰 na li艣cie jako

  1. Nazwa: X13Import
  2. Opis: Integracja z hurtowni膮
  3. Autor: x13.pl
  4. Kategoria: Rynek
  5. Filtruj po: Zainstalowane i nie zainstalowane / Aktywne i nie aktywne

Mapowanie kategorii

W zak艂adce Import XML 鈫 Mapowanie kategorii, mamy wszystkie dost臋pne opcje dotycz膮ce kategorii z modu艂u, ustawiania dla nich narzutu jak i mapowania ich z kategoriami w pre艣cie.

Podstawowe przyciski w tej zak艂adce 鈥 umieszczone po prawej g贸rnej stronie panelu to:

  • Usu艅 produktu z hurtowni 鈥 funkcja ta usuwa wszystkie produkty zaimportowane z hurtowni (bez wzgl臋du na to z kt贸rej hurtowni zosta艂 dodany produkt, i czy obecnie kategoria taka jest w艂膮czona czy te偶 nie)
  • Wy艂膮cz produktu z hurtowni 鈥 wyb贸r tej opcji spowoduje wy艂膮czenie wszystkich produkt贸w z hurtowni (aktywno艣膰 na NIE), jej opcje dzia艂aj膮 analogicznie do opcji Usu艅 produkty z hurtowni.
  • Pobierz kategorie z hurtowni - powoduje pobranie wszystkich kategorii, z wszystkich dodanych hurtowni na podstawie aktualnych plik贸w XML.
    Funkcj臋 t膮 zawsze wybieramy po zainstalowaniu modu艂u / dodaniu hurtowni, jak i zalecamy co jaki艣 czas pobiera膰 kategori臋 鈥 je艣li hurtownia doda je w pliku XML
  • Importuj kategorie do sklepu - za pomoc膮 tej opcji zaimportujemy kategori臋 w strukturze 1:1 z wybranych kategorii hurtowni.
    Kategorie importowane s膮 do kategorii g艂贸wnej sklepu (mo偶emy przenosi膰 je do innych kategorii, czy te偶 zmienia膰 nazw臋 po imporcie), powi膮zanie jest realizowane za pomoc膮 ID kategorii z hurtowni oraz ID kategorii z PrestaShop.
    Aby kategorie zosta艂y zaimportowane musimy w艂膮czy膰 ich aktywno艣膰, za pomoc膮 aktywacji pola 鈥瀒mport鈥 w danej linii kategorii, mo偶emy r贸wnie偶 zrobi膰 to za pomoc膮 opcji Dzia艂ania masowe.

Import drzewa kategorii z hurtowni 1:1 do sklepu

Aby zaimportowa膰 kategori臋 w strukturze 1:1 takiej jak w XMLu od hurtowni musimy zrobi膰 proste 3 czynno艣ci.

  • kategorie musz膮 by膰 pobrane 鈥 przycisk Pobierz kategorie z hurtowni
  • wybrane kategorie musz膮 by膰 aktywne (ikonka potwierdzenia) 鈥 mo偶emy aktywowa膰 j膮 r臋cznie lub zrobi膰 to z Dzia艂ania masowe
  • klikamy przycisk Importuj kategorie do sklepu - w tym momencie rozpocznie si臋 import dodawania kategorii do sklepu, po dodaniu ostatniej aktywnej kategorii pojawi si臋 informacja o zako艅czeniu importu, a strona zostanie od艣wie偶ona

R臋czne mapowanie kategorii

Aby zaimportowa膰 kategori臋 w strukturze 1:1 takiej jak w XMLu od hurtowni musimy zrobi膰 proste 3 czynno艣ci.

  • kategorie musz膮 by膰 pobrane 鈥 przycisk Pobierz kategorie z hurtowni
  • przy wybranej kategorii klikamy Edytuj
    • wzorzec nazwy produktu 鈥 mo偶emy stworzy膰 w艂asny wzorzec nazwy produktu, np. nazwa produktu z hurtowni i s艂owo PROMOCJA!
    • importuj dane 鈥 pole odpowiada za importowanie produkt贸w z danej kategorii hurtowni do sklepu
    • narzut 鈥 procentowy narzut dla cen w stosunku do jej warto艣ci w XMLu
    • kategorie w sklepie, zaznaczamy do jakiej/ich kategorii produkt ma by膰 dodawany podczas importu i aktualizacji
    • kategoria g艂贸wna 鈥 produkty b臋d膮 do niej przypisane jako 鈥瀌omy艣lnej鈥 wg PrestaShop

    Zarz膮dzanie cenami

    Modu艂 umo偶liwia zarz膮dzanie cenami na 2 sposoby.

    • przypisywanie narzutu wed艂ug kategorii danej hurtowni
    • zarz膮dzanie cenami wed艂ug przedzia艂贸w cenowych dla konkretnej hurtowni.

    Ustawienia narzutu wed艂ug kategorii zosta艂y opisane w informacjach o mapowaniu kategorii.

    Istnieje mo偶liwo艣膰 dodania r贸wnie偶 zarz膮dzania wed艂ug ceny produktu, aby to zrobi膰 przechodzimy do Import XML 鈫 Zarz膮dzanie cenami. Przy dodawaniu nowego zakresu cenowego wybieramy:

    • hurtownie kt贸rej dotyczy dany zakres
    • cen臋 od
    • cen臋 do
    • rodzaj narzutu
      • kwota
      • procent
    • warto艣膰
    • nadpisywanie narzutu kategorii (je艣li wybierzemy t膮 opcj臋 narzut wed艂ug kategorii zostanie pomini臋ty, przy wy艂膮czonej konfiguracji narzut zostanie dodany do siebie)

    W tej zak艂adce r贸wnie偶 mo偶emy w艂膮czy膰 opcj臋 Sumuj narzut z zakres贸w cenowych, w takim przypadku je艣li produkt b臋dzie w cenie kt贸ra obejmuje 2 zakresy zostan膮 one do siebie dodane (np. 10% dla produkt贸w od 0z艂 do 1000z艂, oraz +5z艂 dla produkt贸w od 0z艂 do 10z艂).

    Wykluczanie produkt贸w

    Je艣li po imporcie produkt贸w chcemy wykluczy膰 dany z aktualizacji ceny lub ca艂kowitej aktualizacji przechodzi do zak艂adki Import XML 鈫 Mapowanie kategorii.

    W module mamy 2 opcje do wykluczania aktualizacji:

    • Wyklucz aktualizacj臋 - opcja ta wy艂膮cza aktualizacj臋 wszystkich informacji o produkcie (nie zmieni膮 si臋 偶adne dane, dost臋pno艣膰, ilo艣膰, cena, teksty itd)
    • Wyklucz aktualizacj臋 ceny - w艂膮czenie tej opcji spowoduje nie aktualizowanie ceny dla takiego produktu (ceny zakupu, sprzeda偶y, cen specyficznych)

    Konfiguracja

    W tej zak艂adce znajdziemy wszystkie opcje konfiguracyjne modu艂u.

Zadania CRON

Aby modu艂 zacz膮艂 importowa膰 produkty, jak i p贸藕niej je aktualizowa艂 wymagane jest ustawienie zada艅 CRON na serwerze

W sytuacji gdy mamy wgrany modu艂, ustawione opcje importu jak i zaimportowane kategorie czeka Nas ostatni krok.
Jest to utworzenie 2 zada艅 CRON, dzi臋ki kt贸rym import b臋dzie dzia艂a艂 ca艂kowicie automatycznie - w my艣l zasady "uruchom i zapomnij"

Prawid艂owe ustawienie jest wymagane dla automatycznego importu jak i aktualizacji produkt贸w.

Wywo艂ujemy co 3godziny i ka偶dej 23 minucie

/usr/bin/lynx --dump "http://domena.pl/modules/x13import/cron.php" >/dev/null 2>&1 

plik cron.php pobiera wszystkie pliki XML z hurtowni, dodaje je do bazy w zrozumia艂ej dla modu艂u strukturze, jak i przetwarza wszystkie aktualizacje produkt贸w (ilo艣ci, ceny, opis itd zgodnie z konfiguracj膮)
standardowo czas wykonania skrypty to od 2s do 500s (im wi臋cej hurtowni/produkt贸w tym czas ten jest d艂u偶szy)

Wywo艂ujemy co 15 minut

/usr/bin/lynx --dump "http://domena.pl/modules/x13import/update.php" >/dev/null 2>&1 

plik update.php dodaje nowe produkty z hurtowni, dzia艂a do maksymalnego czasu ustawionego na serwerze (timout) nie d艂u偶ej ni偶 600 sekund
standardowo dodaje do 500 produkt贸w na uruchomienie (Je艣li produkt ma 10 atrybut贸w to liczymy to jako 10 produkt贸w)

Jak doda膰 zadanie CRON na serwerze ?

Powy偶sze przyk艂ady dodania zada艅 CRON s膮 dla serwer贸w z systemem DirectAdmin, szczeg贸艂ow膮 instrukcj臋 jak i przyk艂ady dla innych serwer贸w znajd膮 Pa艅stwo tutaj

Problemy i ich rozwi膮zania

Odinstalowanie modu艂u

UWAGA !!! odinstalowanie modu艂u powoduje bezpowrotne usuni臋cie powi膮za艅 produkt贸w z hurtowni z tymi ju偶 dodanymi w sklepie - nie b臋d膮 si臋 poprawnie aktualizowa艂y, oraz zostan膮 zduplikowane przy ponownej instalacji.

Bia艂a strona po dodaniu modu艂u lub "Chi艅skie znaki" po dodaniu modu艂u

Brak zainstalowanego ionCube loader na serwerze - zobacz rozwi膮zanie, lub na serwerze nie jest ustawione PHP 5.3 - 7.0.

Modu艂 nie dodaje produkt贸w

W przypadku kiedy modu艂 nie aktualizuje produkt贸w w sklepie musimy sprawdzi膰
  • czy mamy ustawione wszystkie dane dodanych hurtowni (je艣li modu艂 napotka na problem/brak danych do chocia偶by jednej z hurtowni, 偶adne produkty nie zostan膮 dodane)
  • czy zmapowane/przypisane s膮 kategorie (r贸wnie偶 ze sprawdzeniem czy nie ma nowych w hurtowni Import XML -> Kategorie i pobierz kategorie
  • czy mamy ustawione zadania CRON na serwerze na plik cron.php i update.php
  • czy uruchamiaj膮c r臋cznie 1raz plik cron.php, a nast臋pnie update.php produkty zaczn膮 si臋 dodawa膰
  • czy sklep jest w艂膮czony (Preferncje -> Obs艂uga i w艂膮cz sklep), je艣li sklep jest wy艂膮czony musimy doda膰 IP serwera w opcji Adres IP do zarz膮dzania - wtedy zadanie CRON b臋dzie mog艂o si臋 poprawnie wykona膰

Modu艂 nie aktualizuje produkt贸w

W przypadku kiedy modu艂 nie aktualizuje produkt贸w w sklepie musimy sprawdzi膰

  • czy mamy ustawione wszystkie dane dodanych hurtowni (je艣li modu艂 napotka na problem/brak danych do chocia偶by jednej z hurtowni, 偶adne produkty si臋 nie zaktualizuj膮)
  • czy zmapowane/przypisane s膮 kategorie (r贸wnie偶 ze sprawdzeniem czy nie ma nowych w hurtowni Import XML -> Kategorie i pobierz kategorie
  • czy w przypadku uruchomienia r臋cznie pliki CRON.php z przegl膮darki nie mamy 偶adnego b艂臋du oraz otrzymujemy na ko艅cu SCRIPT COMPLETE -- EXECUTE TIME: - je艣li nie sprawdzamy czy mamy ustawiony na serwerze czas dla PHP na 600sekund i RAM na 512MB
  • czy sklep jest w艂膮czony (Preferncje -> Obs艂uga i w艂膮cz sklep), je艣li sklep jest wy艂膮czony musimy doda膰 IP serwera w opcji Adres IP do zarz膮dzania - wtedy zadanie CRON b臋dzie mog艂o si臋 poprawnie wykona膰

MAX ONE INSTANCE!

Informacja MAX ONE INSTANCE!, mo偶e pojawia膰 si臋 z kilku powod贸w:

  • jest ju偶 uruchomione inne zdanie np trwa zadanie cron.php, i pr贸bujemy odpali膰 plik update.php
  • pojawi艂 si臋 b艂膮d podczas dodawania produktu - mo偶e to by膰 b艂膮d np z faktu zmienionej klasy w pre艣cie, niepoprawnego opisu w XMLu itd - w takim przypadku polecamy w艂膮czy膰 tryb debugowania w PrestaShop, i uruchomi膰 zadanie r臋cznie
W przypadku pojawiania si臋 problemu, sugerujemy wy艂膮czy膰 zadanie CRON na serwerze, odczeka膰 15minut i odpali膰 zadanie CRON r臋cznie.

B艂膮d 403 przy uruchomieniu pliku update lub cron - na serwerze hekko itd

Po r臋cznym uruchomieniu pliku update lub cron otrzymujemy 403 w adresie.

Musimy dla plik贸w w module x13import ustawi膰 chmody na 644, oraz dla wszystkich folder贸w prawa na 755

Fatal error - podczas uruchomienia zadania UPDATE.php

Nale偶y sprawdzi膰 czy nie korzystaj膮 Pa艅stwo z wtyczki MailChimp Integration, powoduje ona problem przy dodawaniu produkt贸w.
Naj艂atwiej wy艂膮czy膰 modu艂, w innym przypadku nale偶y poprawi膰 jego kod.

Video