175

Получение товаров из категории на сайте Webasyst (Shop-Script)

Функция позволяет получить список товаров из указанной категории на сайте, работающем на платформе Webasyst. Вы можете указать URL сайта, ID категории, а также параметры для пагинации.

Для работы требуется создать в корне сайта файл `get_products.php` со следующим кодом:
```
<?php

// Подключение к Webasyst
require_once($_SERVER['DOCUMENT_ROOT'].'/wa-config/SystemConfig.class.php');
waSystem::getInstance(null, new waSystemConfig());

// Инициализация приложения Shop
wa('shop');

// Функция для получения товаров из категории
function getProductsByCategory($category_id, $limit = 10, $offset = 0) {
$collection = new shopProductsCollection('category/'.$category_id);
$products = $collection->getProducts('*', $offset, $limit);

$result = array();
foreach ($products as $product) {
// Получаем полный URL изображения
$image_url = '';
if ($product['image_id']) {
$image = shopImage::getById($product['image_id']);
if ($image) {
$image_url = $image->getUrl('thumb', true); // true для получения абсолютного URL
}
}

$result[] = array(
'id' => $product['id'],
'name' => $product['name'],
'price' => $product['price'],
'description' => $product['description'],
'image_url' => $image_url,
);
}

return $result;
}

// Обработка запроса
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$category_id = isset($_GET['category_id']) ? intval($_GET['category_id']) : 0;
$limit = isset($_GET['limit']) ? intval($_GET['limit']) : 10;
$offset = isset($_GET['offset']) ? intval($_GET['offset']) : 0;

if ($category_id > 0) {
$products = getProductsByCategory($category_id, $limit, $offset);

header('Content-Type: application/json');
echo json_encode(array(
'status' => 'success',
'data' => $products
));
} else {
header('HTTP/1.1 400 Bad Request');
echo json_encode(array(
'status' => 'error',
'message' => 'Inva.
```

Параметры, которые можно передать в функцию get_products_webasyst:

site_url - URL сайта без / в конце.
category_id - ID категории товаров, из которой вы хотите получить информацию.
limit - количество товаров для получения.
offset - смещение для пагинации, указывает, с какого товара начинать выборку.

Примеры использования:

"Пожалуйста, покажи мне 10 товаров из категории с ID 5 на сайте https://example.com, начиная с первого товара."

© ProTalk 2023-2025 ИП Горелов Максим Николаевич ИНН 500104951533 ОГРН 309500106900065 

Новая, 8, 9 Реутов, Московская область 143964 Россия