feat: add secondary fetch for seller whatsapp
All checks were successful
Build and Deploy / build-and-push (push) Successful in 39s
All checks were successful
Build and Deploy / build-and-push (push) Successful in 39s
This commit is contained in:
@@ -37,6 +37,8 @@ export const handleTinyOrderUpdate = async (req: Request, res: Response): Promis
|
|||||||
let fullOrderDetails: any = null;
|
let fullOrderDetails: any = null;
|
||||||
|
|
||||||
let statusProcessamento = "";
|
let statusProcessamento = "";
|
||||||
|
let whatsappVendedor = "";
|
||||||
|
|
||||||
if (tinyApiToken) {
|
if (tinyApiToken) {
|
||||||
try {
|
try {
|
||||||
console.log(`Fetching full details for Order ID: ${orderId} from Tiny API...`);
|
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;
|
fullOrderDetails = apiResponse.data.retorno.pedido;
|
||||||
statusProcessamento = apiResponse.data.retorno.status_processamento || "";
|
statusProcessamento = apiResponse.data.retorno.status_processamento || "";
|
||||||
console.log(`Successfully fetched order details! Found phone: ${fullOrderDetails.cliente?.celular || fullOrderDetails.cliente?.fone || 'None'}`);
|
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 {
|
} else {
|
||||||
console.error('Tiny API returned an error:', apiResponse.data?.retorno?.erros || 'Unknown error');
|
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"),
|
valor: parseFloat(fullOrderDetails?.total_pedido || fullOrderDetails?.valor_total || "0"),
|
||||||
id_vendedor: fullOrderDetails?.id_vendedor || "",
|
id_vendedor: fullOrderDetails?.id_vendedor || "",
|
||||||
nome_vendedor: fullOrderDetails?.nome_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 || "",
|
situacao: fullOrderDetails?.situacao || payload.dados?.descricaoSituacao || "",
|
||||||
fone: fullOrderDetails?.cliente?.celular || fullOrderDetails?.cliente?.telefone || fullOrderDetails?.cliente?.fone || "",
|
fone: fullOrderDetails?.cliente?.celular || fullOrderDetails?.cliente?.telefone || fullOrderDetails?.cliente?.fone || "",
|
||||||
email: fullOrderDetails?.cliente?.email || "",
|
email: fullOrderDetails?.cliente?.email || "",
|
||||||
|
|||||||
Reference in New Issue
Block a user