Jak pobrać produkty z bazy w module PrestaShop?

Pomoc w pisaniu własnych modułów, PHP, Smarty, API PrestaShop.
ODPOWIEDZ
PaulinaS
Posty: 19
Rejestracja: ndz cze 15, 2025 1:35 pm
Lokalizacja: Kielce

Jak pobrać produkty z bazy w module PrestaShop?

Post autor: PaulinaS »

Piszę moduł który ma wyświetlić produkty z określonej kategorii posortowane po dostępności. Jak poprawnie pobrać produkty? ObjectModel, SQL bezpośrednio, czy jeszcze inaczej?
MichałT
Posty: 30
Rejestracja: pn wrz 08, 2025 2:51 pm
Lokalizacja: Sanok

Re: Jak pobrać produkty z bazy w module PrestaShop?

Post autor: MichałT »

Najczystsza metoda to użycie klasy Product i jej statycznych metod:
Product::getProducts($id_lang, $start, $limit, $order_by, $order_way)

Ale jeśli potrzebujesz sortowania po quantity, musisz napisać własne zapytanie SQL.
Lepszy sklep działający niż idealny w planach.
PatrycjaK
Posty: 22
Rejestracja: pt paź 03, 2025 9:42 am
Lokalizacja: Lublin

Re: Jak pobrać produkty z bazy w module PrestaShop?

Post autor: PatrycjaK »

Dla prostych zapytań SQL:
$sql = new DbQuery();
$sql->select('p.*, sa.quantity');
$sql->from('product', 'p');
$sql->leftJoin('stock_available', 'sa', 'p.id_product = sa.id_product');
$sql->where('p.id_category_default = '.(int)$id_category);
$sql->orderBy('sa.quantity DESC');
$results = Db::getInstance()->executeS($sql);
RobertJ
Posty: 23
Rejestracja: ndz sie 31, 2025 12:20 am
Lokalizacja: Nysa

Re: Jak pobrać produkty z bazy w module PrestaShop?

Post autor: RobertJ »

W PS 8+ możesz też użyć Doctrine EntityManager jeśli wolisz ORM. Ale klasyczny SQL/DbQuery jest nadal popularniejszy w modułach.
Dobry UX to najlepsza strategia marketingowa.
DorotaW
Posty: 18
Rejestracja: czw lis 06, 2025 9:07 pm
Lokalizacja: Częstochowa

Re: Jak pobrać produkty z bazy w module PrestaShop?

Post autor: DorotaW »

Pamiętaj o id_lang przy pobieraniu nazw/opisów - dane językowe są w tabelach _lang (np. ps_product_lang).
ODPOWIEDZ

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości