Добавить метод получения товаров по списку id в ProductTable

05.09.2022 22:18
#1
sergeytolkachyov
User sergeytolkachyov
Name: Sergey
11.10.2019
Posts: 110
Quote
Добавить метод получения товаров по списку id в ProductTable

Этого метода порой очень и очень не хватает в ядре. Возможно, стоит его изменить как-то, чтоб облегчить объект или прокинуть параметры на вход метода.

/**
* Функция выбирает товары JoomShopping из базы данных по списку id
*
* @param array $product_ids Простой одномерный массив [1, 2, 3, ...]
*
* @return void
*
* @since 1.0.0
*/
public function loadProductsByIds(array $product_ids): void
{

$lang = \JSFactory::getLang();

if (count($product_ids) > 0)
{
//@todo Вычистить запрос, оставить выборку только самого нужного
$query = "SELECT * FROM `#__jshopping_products` AS prod
LEFT JOIN `#__jshopping_products_to_categories` AS pr_cat USING (product_id)
WHERE prod.product_id IN(" . implode(',', $product_ids) . ") AND prod.product_publish=1 ORDER BY FIELD(prod.product_id, ".implode(',', $product_ids).")";
$db = Factory::getDBO();
$db->setQuery($query);

$products = $db->loadObjectList();

// Добавляем вендоров, производителей, пути к картинкам и т.д.
// Второй параметр - setUrl - добавляет в объект товара ссылки на товар и на покупку (в корзину)
$products = \JSHelper::listProductUpdateData($products, 1);

Factory::getApplication()->triggerEvent('onBeforeDisplayProductList', array(&$products));

foreach ($products as $product)
{
$name = $lang->get('name');
$product->name = $product->$name;
$short_description = $lang->get('short_description');
$product->short_description = $product->$short_description;
$description = $lang->get('description');
$product->description = $product->$description;
}
// Готовый массив
$this->products = $products;

}

}


Joomla: 4.2
JoomShopping: 5.0.6

Joomla developer. https://web-tolk.ru JoomShopping Bitrix24 integration, custom developing.
 
05.09.2022 22:32
#2
admin
(Support Team)
User admin
Name: Admin
05.08.2010
Posts: 25941
Quote
Aw: Добавить метод получения товаров по списку id в ProductTable

Используйте
components\com_jshopping\Model\Productlist\ListModel.php

$filters['products']
нужно передать масив id

 
05.09.2022 23:04
#3
sergeytolkachyov
User sergeytolkachyov
Name: Sergey
11.10.2019
Posts: 110
Quote
Aw: Добавить метод получения товаров по списку id в ProductTable

Спасибо.


Joomla developer. https://web-tolk.ru JoomShopping Bitrix24 integration, custom developing.
 


Copyrights MAXXmarketing GmbH. Alle Rechte vorbehalten
Durch die Nutzung dieser Website stimme ich zu, dass Cookies zur optimalen Gestaltung der Website sowie zur Analyse der Nutzung der Website verwendet werden. Weiterführende Informationen finden Sie hier. OK, einverstanden.