Monthly Archive Sierpień 2016

Bytomasz

Naprawa pluginu ShopAppsGoogleTracking integracji Prestashop z Google Analytics Commerce

Dla naszego Klienta naprawiliśmy wadliwie działający plugin ShopAppsGoogleTracking, integrujący Prestashop z Google Analytics Commerce (rejestracja transakcji oraz sprzedanego asortymentu). Z daną wersją sklepu Prestashop, po aktualizacjach, plugin przestał rejestrować transakcje.

W razie zainteresowania zapraszamy do kontaktu tomasz@programistaphp.com.pl.

Więcej: Programista Prestashop

Bytomasz

Prestashop – funkcja Product::deleteCategories() czyści za wiele …..

W trakcie realizacji mechanizmu automatycznego importu produktów do sklepu Prestashop, a szczególnie w przypadku realizacji go z mechanizmem aktualizacji istniejących rekordów (a nie usuwania wszystkich produktów i ponownego ich dodania) zachodzi potrzeba ew. skorygowania do których kategorii produkt należy. Jeśli mamy unikalny identyfikator produktu jak np. nr referencyjny/indeks/kod produktu, możemy odnaleźć produkt w bazie danych a następnie usunąć kategorie do których jest przypisany.

Usuwanie kategorii, do których produkt jest przypisany uzyskujemy wołaniem funkcji Product::deleteCategories($clean_positions = false).

Notację użyłem zwodniczą, ponieważ funkcja ta nie jest funkcją statyczną i można ją wywołać tylko mając utworzony obiekt klasy Product.

$product = new Product($id);
$product->deleteCategories(true);

Pułapka tkwi w parametrze wywołania $clean_positions. Jeśli wywołamy funkcję z parametrem true, funkcja ta dodatkowo będzie wewnątrz wołać inną funkcję cleanPositions(), która w założeniu porządkuje pozycje produktów w kategoriach.

W praktyce, oprócz tego, że jest bardzo czasochłonna, to porządkuje za wiele. Nie wiem, jak dalej będzie wyglądać ten problem, ale w przypadku Prestashop 1.6.1.5 wywołanie takie po prostu usuwało przypisania produktów do kategorii….

Ostrzegam!

Pozdrowienia,

Więcej: Programista Prestashop