diff --git a/src/controllers/webhook.controller.ts b/src/controllers/webhook.controller.ts index d4931e5..e726263 100644 --- a/src/controllers/webhook.controller.ts +++ b/src/controllers/webhook.controller.ts @@ -37,6 +37,8 @@ export const handleTinyOrderUpdate = async (req: Request, res: Response): Promis let fullOrderDetails: any = null; let statusProcessamento = ""; + let whatsappVendedor = ""; + if (tinyApiToken) { try { console.log(`Fetching full details for Order ID: ${orderId} from Tiny API...`); @@ -53,6 +55,26 @@ export const handleTinyOrderUpdate = async (req: Request, res: Response): Promis fullOrderDetails = apiResponse.data.retorno.pedido; statusProcessamento = apiResponse.data.retorno.status_processamento || ""; console.log(`Successfully fetched order details! Found phone: ${fullOrderDetails.cliente?.celular || fullOrderDetails.cliente?.fone || 'None'}`); + + // OPTION B: Fetch Vendor's WhatsApp + const idVendedor = fullOrderDetails.id_vendedor; + if (idVendedor && idVendedor !== "0") { + console.log(`Fetching seller details for Seller ID: ${idVendedor}...`); + const vendorParams = new URLSearchParams(); + vendorParams.append('token', tinyApiToken); + vendorParams.append('id', idVendedor); + vendorParams.append('formato', 'JSON'); + + const vendorResponse = await axios.post('https://api.tiny.com.br/api2/contato.obter.php', vendorParams, { + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + }); + + if (vendorResponse.data?.retorno?.status === 'OK') { + const contato = vendorResponse.data.retorno.contato; + whatsappVendedor = contato?.celular || contato?.fone || ""; + console.log(`Successfully fetched seller WhatsApp: ${whatsappVendedor || 'None'}`); + } + } } else { console.error('Tiny API returned an error:', apiResponse.data?.retorno?.erros || 'Unknown error'); } @@ -74,7 +96,7 @@ export const handleTinyOrderUpdate = async (req: Request, res: Response): Promis valor: parseFloat(fullOrderDetails?.total_pedido || fullOrderDetails?.valor_total || "0"), id_vendedor: fullOrderDetails?.id_vendedor || "", nome_vendedor: fullOrderDetails?.nome_vendedor || "", - whatsapp_vendedor: "", // Tiny doesn't expose this natively on the order API + whatsapp_vendedor: whatsappVendedor, situacao: fullOrderDetails?.situacao || payload.dados?.descricaoSituacao || "", fone: fullOrderDetails?.cliente?.celular || fullOrderDetails?.cliente?.telefone || fullOrderDetails?.cliente?.fone || "", email: fullOrderDetails?.cliente?.email || "",