Listar e abrir conversas
Lista as conversas da loja, abre uma com as mensagens, acha a conversa de um cliente e conta as não lidas.
Listar conversas
Devolve as conversas entre clientes, sellers e a loja, com a contagem de mensagens não lidas por conversa. O administrador vê todas, não só as suas.
/api/v1/admin/messages/threadsAdminLista todas as conversas da loja
Exige o privilégio manage_settings. O administrador enxerga e responde qualquer conversa da loja.
Parâmetros de consulta
pageintegerpadrão: 1per_pageintegerpadrão: 20Exemplo de requisição (Listar conversas)
Resposta (Listar conversas)
Campos da resposta
threadsarrayConversas da página, sem as mensagens.
iduuidsubjectstringstatusstringA aberta, R resolvida, C arquivada. Conversas antigas podem ter outras letras (por exemplo D).object_typestringorder, product, vendor, user). Ausente se não há.object_idstringobject_namestringcustomer_user_iduuidvendor_iduuidvendor_namestringcustomer_namestringlast_message_previewstringlast_message_atstringunread_countintegercreated_atstringupdated_atstringtotalintegerpageintegerper_pageintegertotal_pagesintegerErros (Listar conversas)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio manage_settings. | {"error":"insufficient privileges","required":"manage_settings"} |
| 500 | Falha de banco. | {"error":"failed to list threads","detail":"..."} |
Consultar conversa
Devolve a conversa e as mensagens dela. Sem parâmetros, devolve todas as mensagens em ordem cronológica. Com page ou per_page as mensagens vêm paginadas, e a resposta ganha page, per_page, total e total_pages.
/api/v1/admin/messages/threads/{id}AdminDevolve uma conversa com as mensagens
Exige o privilégio manage_settings. O administrador enxerga e responde qualquer conversa da loja.
Parâmetros de caminho
iduuidobrigatórioParâmetros de consulta
pageintegerpadrão: 1per_pageintegerpadrão: 50Exemplo de requisição (Consultar conversa)
Resposta (Consultar conversa)
Campos da resposta
iduuidsubjectstringstatusstringA aberta, R resolvida, C arquivada. Conversas antigas podem ter outras letras (por exemplo D).object_typestringorder, product, vendor, user). Ausente se não há.object_idstringobject_namestringcustomer_user_iduuidvendor_iduuidvendor_namestringcustomer_namestringlast_message_previewstringlast_message_atstringmessagesarrayMensagens (só ao consultar uma conversa).
iduuidthread_iduuidsender_iduuidsender_typestringcustomervendoradminbodystringattachmentsarrayurl, filename, content_type e size (bytes).is_readbooleantrue quando o outro lado leu.delivered_atstringread_atstringcreated_atstringunread_countintegercreated_atstringupdated_atstringErros (Consultar conversa)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio manage_settings. | {"error":"insufficient privileges","required":"manage_settings"} |
| 400 | O id não é um UUID válido. | {"error":"invalid id","detail":"id must be a valid UUID"} |
| 404 | Não existe conversa com esse id. | {"error":"thread not found"} |
Achar ou abrir a conversa de um cliente
Usada pelo botão "Contatar cliente" do painel. Procura a conversa direta (sem seller) do cliente com a loja. Se ela não existe, cria uma conversa vazia e a devolve, para o administrador já poder escrever.
/api/v1/admin/messages/threads/find-for-customerAdminDevolve a conversa direta de um cliente, criando se não existir
Exige o privilégio manage_settings. O administrador enxerga e responde qualquer conversa da loja.
Parâmetros de consulta
user_iduuidobrigatóriosubjectstringExemplo de requisição (Conversa do cliente)
Resposta (Conversa do cliente)
Campos da resposta
iduuidsubjectstringstatusstringA aberta, R resolvida, C arquivada. Conversas antigas podem ter outras letras (por exemplo D).object_typestringorder, product, vendor, user). Ausente se não há.object_idstringobject_namestringcustomer_user_iduuidvendor_iduuidvendor_namestringcustomer_namestringlast_message_previewstringlast_message_atstringunread_countintegercreated_atstringupdated_atstringErros (Conversa do cliente)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio manage_settings. | {"error":"insufficient privileges","required":"manage_settings"} |
| 400 | Falta user_id. | {"error":"user_id is required"} |
| 500 | user_id que não é UUID, cliente inexistente, ou falha de banco. | {"error":"failed to find or create thread","detail":"..."} |
Contar mensagens não lidas
Conta as mensagens, em todas as conversas, que não foram enviadas por administradores e ainda estão não lidas. Alimenta o número do sino do painel.
/api/v1/admin/messages/unread-countAdminDevolve o total de mensagens que o administrador ainda não leu
Exige o privilégio manage_settings. O administrador enxerga e responde qualquer conversa da loja.
Exemplo de requisição (Não lidas)
Resposta (Não lidas)
Campos da resposta
countintegerErros (Não lidas)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio manage_settings. | {"error":"insufficient privileges","required":"manage_settings"} |
| 500 | Falha de banco. | {"error":"failed to get unread count","detail":"..."} |