Інтеграція інтернет-магазину з Avito (API)
Avito — найбільша доска об'явлень Росії. API доступно для про-аккаунтів та дозволяє автоматично розміщувати та оновлювати об'яви, управляти цінами та отримувати повідомлення від покупців.
Аутентифікація
Avito використовує OAuth2 з client_credentials:
class AvitoClient
{
private string $accessToken;
public function authenticate(): void
{
$resp = Http::post('https://api.avito.ru/token', [
'client_id' => config('services.avito.client_id'),
'client_secret' => config('services.avito.client_secret'),
'grant_type' => 'client_credentials',
]);
$this->accessToken = $resp->json('access_token');
}
private function request(string $method, string $path, array $data = []): array
{
return Http::withToken($this->accessToken)
->{strtolower($method)}("https://api.avito.ru{$path}", $data)
->json();
}
}
Розміщення об'яви
public function createListing(Product $product): int
{
$resp = $this->request('POST', '/core/v1/accounts/{user_id}/items', [
'ad' => [
'category' => ['id' => $this->getCategoryId($product)],
'title' => $product->name,
'description' => $product->description,
'price' => $product->price,
'images' => $product->images->pluck('url')->map(fn($url) => ['url' => $url])->all(),
'contacts' => [
'phone_number' => config('services.avito.phone'),
],
'location' => ['id' => config('services.avito.city_id')],
]
]);
return $resp['id'];
}
XML-фід (альтернативний спосіб)
Для масового розміщення Avito приймає XML-фід за посиланням:
<?xml version="1.0" encoding="UTF-8"?>
<Ads formatVersion="3">
<Ad>
<Id>product-123</Id>
<Title>iPhone 15 Pro 256GB</Title>
<Category>Телефони</Category>
<Price>89990</Price>
<Description>Новий, гарантія 1 рік</Description>
<Images>
<Image url="https://example.com/images/iphone.jpg"/>
</Images>
<Condition>Нове</Condition>
</Ad>
</Ads>
XML-фід простіший для початкового налаштування та масового розміщення. Оновлюється за розписанням (кожні 24 години).
Терміни
XML-фід з автогенерацією: 2–3 дні. Повна інтеграція через API: 5–7 робочих днів.







