Общение с покупателями через чаты и сообщения OZON
Создание новых чатов, получение списка с фильтрацией
История сообщений чата с пагинацией
Список активных чатов с непрочитанными
Новый чат по номеру отправления
Текст или файл покупателю
Читать историю и отмечать как прочитанное
import { OzonSellerAPI } from 'daytona-ozon-seller-api';
// ⚠️ Требуется подписка Premium Plus
const client = new OzonSellerAPI({
clientId: 'your-client-id',
apiKey: 'your-api-key'
});
// Базовый workflow общения с покупателем
try {
// 1. Получить список активных чатов
const activeChats = await client.chat.getChatListV3({
limit: 50,
filter: {
chat_status: 'Opened',
unread_only: true
}
});
console.log(`📊 Активных чатов: ${activeChats.chats?.length || 0}`);
// 2. Создать новый чат по отправлению
const newChat = await client.chat.startChat({
posting_number: 'FBS-12345-0001-1'
});
if (newChat.result?.chat_id) {
console.log(`💬 Создан чат: ${newChat.result.chat_id}`);
// 3. Отправить приветственное сообщение
await client.chat.sendMessage({
chat_id: newChat.result.chat_id,
text: 'Здравствуйте! Я готов ответить на ваши вопросы по заказу.'
});
// 4. Отправить инструкцию (файл)
const fileContent = 'base64_encoded_file_content'; // PDF/изображение
await client.chat.sendFile({
chat_id: newChat.result.chat_id,
base64_content: fileContent,
name: 'care_instructions.pdf'
});
console.log('✅ Сообщения отправлены');
}
} catch (error) {
console.error('❌ Ошибка работы с чатами:', error);
}
// Система автоответов
const autoReplySystem = async () => {
try {
// Получить чаты с непрочитанными сообщениями
const unreadChats = await client.chat.getChatListV3({
limit: 100,
filter: {
chat_status: 'Opened',
unread_only: true
}
});
for (const chatInfo of unreadChats.chats || []) {
if (!chatInfo.chat?.chat_id) continue;
// Получить последние сообщения
const history = await client.chat.getChatHistoryV3({
chat_id: chatInfo.chat.chat_id,
limit: 5,
direction: 'Backward'
});
const lastCustomerMessage = history.messages?.find(
msg => msg.user?.type === 'Customer' && !msg.is_read
);
if (lastCustomerMessage?.data) {
const messageText = lastCustomerMessage.data.join(' ').toLowerCase();
let autoReply = '';
// Определить тип вопроса и подготовить ответ
if (messageText.includes('трек') || messageText.includes('отслед')) {
autoReply = 'Для отслеживания заказа используйте трек-номер, который был отправлен вам в SMS после отгрузки.';
} else if (messageText.includes('возврат') || messageText.includes('верну')) {
autoReply = 'Информация о возврате товара доступна в разделе "Мои заказы" в приложении OZON. Срок возврата - 14 дней с момента получения.';
} else if (messageText.includes('размер') || messageText.includes('разме')) {
autoReply = 'Таблица размеров представлена в описании товара. Если у вас остались вопросы по размерной сетке, уточните ваши параметры.';
} else {
// Универсальный ответ
autoReply = 'Благодарим за обращение! Мы получили ваше сообщение и ответим в ближайшее время. Рабочие часы: пн-пт 9:00-18:00.';
}
// Отправить автоответ
await client.chat.sendMessage({
chat_id: chatInfo.chat.chat_id,
text: autoReply
});
console.log(`✅ Автоответ отправлен в чат ${chatInfo.chat.chat_id}`);
}
}
} catch (error) {
console.error('❌ Ошибка системы автоответов:', error);
}
};
Только покупатель может начать чат
В течение 48 часов с момента последнего сообщения покупателя
В течение 72 часов после оплаты или доставки
После оплаты и до 72 часов после доставки
Только ответы на сообщения покупателя в течение 48 часов
getChatHistoryV2 будет отключен 13 июля 2025 года
getChatListV2 уже устарел, используйте v3