Nota de desambiguação — antes de tudo
O pedido fala em 6 destinos, mas Facebook Marketplace e Facebook Shop são coisas diferentes:
- Facebook Shop / Instagram Shopping = catálogo de loja no Meta Commerce Manager. Feed único alimenta as duas vitrines. Viável via API.
- Facebook Marketplace = venda peer-to-peer no app do Marketplace. Meta descontinuou publicação por API pra PME no Brasil desde 2023. Só via publicação manual OU parceiro pago (R$ 3-10k/mês) — não recomendado.
Recomendação: substituir "Facebook Marketplace" por "Facebook Shop com tag nos posts do FB Page". Cobre a mesma vitrine com muito menos atrito. Precisa OK do Chefe antes de qualquer coisa.
1. Arquitetura de dados
Source of truth: Postgres intermediário em naia_memory (novas tabelas). Não pode ser 3cfast (fechado, sem API confiável), nem Tray (só 107/1731 SKUs, e é destino também), nem planilha (arquivo estático).
Fluxo
3cfast (ERP) → estoque-2026.xlsx (export a cada 4h)
↓
loader.py (cron 4h)
↓
Postgres: catalog_products
↓
┌────────┬────────────┬──────┬────────┬────────┬────────┐
ML Meta Tray Shopee TikTok FB Page
(IG+FB Shop) Shop (posts)
Modelo mínimo (5 tabelas Postgres)
catalog_products — SKU PK, descrição, marca, preço, categoria, estoque_total, updated_at
catalog_sizes — SKU FK, tamanho, qtd
catalog_photos — SKU FK, url, ordem, cover flag
channel_status — SKU FK, canal, id_externo, ultimo_sync, status, erro
channel_creds — canal PK, credenciais_encriptadas, expiração_token
Sync 4h: cron dispara sync.py, detecta deltas por updated_at, propaga só o que mudou pra cada canal. Full-sync noturno como safety net. Rate limit dimensionado na arquitetura, não descoberto em produção.
2. Escopo por canal
| Canal | Viabilidade | Método | Pré-requisitos | Esforço dev | Bloqueio principal |
| Mercado Livre | Verde | API REST + OAuth seller | app registrada, seller ativo | 12-16h | nenhum crítico |
| Instagram Shopping | Verde | Feed XML no Commerce Manager | Meta Business + catálogo + domínio verificado | 8-12h | análise Meta (7-14 dias) |
| Facebook Shop | Verde | Mesmo feed do IG | idem IG Shopping | +2h | idem IG |
| Tray (expansão) | Verde | API REST (já ativa) | credenciais atuais | 6-8h | nenhum |
| Facebook Pages (posts) | Verde | Graph API scheduled posts | Page token + Commerce catálogo | 6h | nenhum (é conteúdo, não loja) |
| Shopee | Amarelo | Open Platform SDK | app approval Shopee Partner | 16-20h | aprovação 2-4 semanas |
| TikTok Shop | Amarelo | TAP OU feed CSV fallback | credenciamento TSP + vídeo por categoria | 20-30h | credenciamento demora dias/semanas |
| Facebook Marketplace | Vermelho | Só parceiro pago ou manual | — | inviável | Meta não abre API pra PME desde 2023 |
Total dev estimado: ~70-100h pros 6 canais viáveis (fora Marketplace inviável).
Detalhamento por canal
- Instagram Shopping — Meta Commerce Manager com feed XML. Precisa verificar domínio, aprovar política de comércio, catálogo passar por review Meta (7-14 dias). Gera tag em posts. Contas já existem, só ativar.
- Facebook Shop — mesmo catálogo do IG Shopping (single feed, dupla vitrine). Nada adicional além do que já é feito pro IG.
- Facebook Pages — Graph API pra scheduled posts. Não é loja, é feed de conteúdo com produtos tagueados. 6h de dev pra rotina + curadoria (não publicar 1.731 posts, escolher lançamentos/destaques).
- Facebook Marketplace — inviável direto. Substituir pelo FB Shop + tag em posts. Se Chefe insistir: parceiro pago R$ 3-10k/mês.
- TikTok Shop — credenciamento TSP (Partner) leva dias/semanas. Fallback: feed CSV via TikTok Shop Center (mais lento, sem estoque tempo real). Exige vídeo curto por categoria — Jonathan produz template + Naia gera vídeos.
- Mercado Livre — API mais madura de todas. OAuth do seller Biancardi, bulk operations OK, sync de estoque nativo. Aprovação instantânea. Canal com maior liquidez de venda.
- Shopee — Open Platform. Precisa app approval (2-4 semanas). SDK oficial em Python. Usar como canal de escoamento (sinergia com liquidação dos 1.087 SKUs parados).
- Tray — já é a FONTE espelho do 3cfast, mas hoje só tem 107/1.731 SKUs publicados. Expandir cobertura via mesma API. Não é destino de publicação, é a base normalizada.
3. Cronograma — MVP + escala
Premissa que rege tudo: o gargalo é foto, não tecnologia. Só 112/1.731 SKUs (6%) têm foto hoje. Ritmo da Célia (iPhone + manequim + softbox) é o teto de velocidade. Regra dura: SKU sem foto não entra em nenhum feed.
MVP (3 semanas) — foco único: Meta Catalog + Tray expandida
Um feed alimenta 3 vitrines (IG Shopping, FB Shop, tag em posts do FB Page). Contas já existem. Zero credenciamento novo. Em paralelo, expande Tray de 107 → 1.731 SKUs.
Semana 1
- ABC de SKUs: cruzamento venda × margem 12m (relatório já existe no P2) → 300 SKUs top (20% que fazem 80% do faturamento)
- Paulo inicia Tray → feed normalizado (Caminho B do P2 já planejado)
- Célia fotografa a lista, meta 20-25 SKUs/dia
- Jonathan finaliza copy por categoria (não SKU a SKU)
- Check de compliance das contas dormentes (podem estar penalizadas por inatividade — 1 dia de trabalho)
Semana 2
- Banco de fotos em ~180-220 SKUs
- Paulo fecha feed, sobe catálogo no Meta Commerce Manager
- Monta sync 4h puxando Postgres/Tray
- Submete catálogo pra revisão Meta (o relógio começa aqui, não na semana 3)
Semana 3
- Banco de fotos em ~280-300 SKUs
- Aprovação Meta chega → publica IG Shop + FB Shop
- Testa sync 4h ponta a ponta
- Tray expandida pra 300+ SKUs
Definição de "MVP entregue": 250+ SKUs top no ar com foto em Instagram Shopping + FB Shop + Tray, sync 4h validado (não manual), preço/estoque batendo 100% com Tray, 1 venda rastreada vinda desses canais.
Escala (meses 2-4)
Mesmo feed normalizado, só adaptador de saída novo por canal:
- Mês 2: Mercado Livre. Integração via API/OAuth. Fotos sobem pra 500+ SKUs.
- Mês 3: TikTok Shop. Exige vídeo curto por categoria (Jonathan). Compliance mais rígida — credenciar já no mês 1 em background.
- Mês 4: Shopee. Usar como canal de escoamento, sinergia com liquidação dos 1.087 SKUs parados. Fecha cobertura perto de 100% do estoque ativo.
Fotografia não para entre fases, é contínua.
4. Copy padrão
Modelo de dados por SKU (11 campos que alimentam TODOS os canais): tipo, subtipo, marca, gênero, cor, material, característica, uso (rodeio/Barretos/dia-a-dia country), tamanho (faixa), preço, cashback fixo 10%.
Templates de título por canal
- ML (60 char, keyword first, sem emoji):
{tipo} {marca} {gênero} {característica} {cor}
Ex: Bota Texana Goyazes Feminina Bordada Marrom Whisky
- Shopee (100-120 char, keyword densa):
{tipo} Country {marca} {gênero} {característica} {cor} Tam {faixa} Original Moda Country
- IG Shop / FB Shop (60 char, curto e limpo):
{tipo} {marca} {característica} {cor}
- FB Marketplace (100 char, com preço + cidade):
{tipo} {marca} {característica} {cor} R$ {preço} Araraquara
- TikTok Shop (50 char, tom quente, 1 emoji):
{tipo} {característica} pra arrasar em {uso} 🤠
- FB Pages (orgânico, primeira linha é gancho): Chegou {tipo} {marca} pra quem não brinca em serviço na {uso}.
- Tray (SEO title tag):
{marca} {tipo} {gênero} {característica} {cor} | Biancardi Moda Country
Descrição curta (marketplaces, ≤500 char)
{tipo} {marca}, {característica} em {material}, feita pra {uso}. Caimento {ajuste} e acabamento que aguenta o tranco da arena. Cashback 10% que volta em até 35 dias. Cor {cor} | Tamanhos {faixa} | Envio Araraquara/SP.
Descrição longa (Tray/IG/TikTok, ≤1500 char): estrutura GANCHO → BENEFÍCIO → USO IDEAL → ESPECIFICAÇÕES → ÂNCORA CASHBACK → CTA. Sempre puxando cashback como argumento no lugar de desconto (Bia não dá desconto — regra da loja).
Hashtags
- Instagram / TikTok (12-15, misturar amplas + nicho + local): #modacountry #countrystyle #barretos #rodeio #botina #texana #peaodeboiadeiro #agroeamor #modaagro #festadepeao #arraiadopiao #cavalgada #biancardimodacountry #araraquara #interiorpaulista + nicho por tipo (#texanafeminina, #chapeucountry, #calcaflare, #cintocountry)
- Marketplaces (ML/Shopee): não usa hashtag; repete keyword no título, ficha técnica e primeiro parágrafo da descrição
- FB Pages: máx 2 no fim, sempre
#BiancardiModaCountry + 1 sazonal (#Barretos2026)
Tom (uma frase)
Falar como quem está na arena, não como quem vende pra quem está. Autoridade country, orgulho do interior, intimidade com o movimento. Nunca "produto de qualidade": sempre "peça que aguenta o tranco". Zero corporativo, zero "confira", zero "adquira já". Usa "garante o seu", "leva pra casa", "chega junto".
Variação por público
- Feminino: destaca caimento, brilho, presença. Verbos: "arrasar", "brilhar", "chamar atenção no rodeio"
- Masculino: destaca durabilidade, respeito, tradição. Verbos: "aguentar", "encarar", "mandar no laço"
- Novato country: explica termo entre parênteses (ex: "bota texana, aquela de bico fino com salto cubano")
- Veterano country: gíria direta + referência a evento ("igual à que rodou em Barretos 2025")
Regra final: cada SKU cadastrado 1 vez no modelo de 11 campos, gerador aplica os 7 templates automaticamente. Zero copy manual. Zero variação aleatória. Consistência de marca em escala.
5. Recursos necessários
Credenciais/acessos que o Chefe precisa liberar (nesta ordem)
- Tray — API key do painel biancardishop.com.br (já é P-001 do pending.md, parado há 1 mês+ — pré-requisito absoluto do MVP)
- Meta Business Manager — verificar domínio biancardimodacountry.com.br + criar catálogo + habilitar Commerce
- Facebook Page token — long-lived token da página oficial da Moda Country
- Mercado Livre — criar app em developers.mercadolivre.com.br + gerar OAuth token do seller Biancardi
- Shopee Open Platform — solicitar approval AGORA (2-4 semanas de espera, roda em background)
- TikTok Shop Partner — solicitar TSP AGORA (paralelo à Shopee, mesma janela)
Stack técnica escolhida
- Linguagem: Python 3.11 (mesma do
gerar-catalogo.py, reaproveita código de leitura xlsx e banco de fotos)
- Orquestrador: cron + scripts modulares (
loader.py, sync-ml.py, sync-meta.py, sync-tray.py...). Não n8n (frágil com 6 integrações + retry). Não Airflow (overkill).
- Fila: Redis (já instalado) com RQ ou Celery leve. Uma job por (sku, canal). Retry exponencial 3x.
- Credenciais:
.env + systemd EnvironmentFile + Postgres channel_creds com pgcrypto pra tokens OAuth rotativos.
- Observabilidade: log estruturado JSON → tail no cc-tg → alerta Telegram quando erro > 5% num canal.
- Rollback: cada sync grava
channel_status.error; retry automático + botão manual "reprocessar canal X".
Custos
- APIs oficiais: grátis
- Comissões só sobre venda: ML 11-16%, Shopee 12%, TikTok 8%
- Custo mensal fixo: zero
- NÃO recomendo: parceiro FB Marketplace (R$ 3-10k/mês)
- Opcional: freelancer de foto pra acelerar Célia (custo a definir com Chefe)
6. Riscos e mitigações
| Risco | Prob. | Impacto | Mitigação |
| Foto não escala no ritmo de 1 pessoa (Célia) | Alta | Alto | Reforço freelancer OU foto do fornecedor OU foto do site Tray como fallback |
| P-001 (acesso Tray) e P-003 seguem parados há 1 mês+ no pending | Alta | Bloqueante | Cobrar decisão do Chefe ANTES de qualquer código — único bloqueio 100% interno e evitável |
| Aprovação Meta demora ou recusa (política/verificação de domínio) | Média | Alto | Submeter na Semana 2, não deixar pra Semana 3. Revisar política de comércio ANTES. |
| Contas dormentes penalizadas por inatividade | Média | Médio | Checar compliance de cada conta na Semana 1 (1 dia de trabalho) |
| Rate limit de API estourando com sync 4h em 6 canais | Média | Médio | Dimensionar na arquitetura + fila Redis com retry exponencial. Considerar 1x/dia em alguns canais. |
| Publicação duplicada / dessincronia de estoque | Baixa | Alto | channel_status como cache de estado + full-sync noturno safety net |
| TikTok Shop / Shopee pedem CNPJ, dados bancários no meio | Alta | Médio | Mapear requisito no Mês 2, não esperar chegar no Mês 3 |
| Ban de conta por erro de política de comércio | Baixa | Alto | Começar manso, política revisada antes de submeter, alerta Telegram se erro >5% |
| Vazamento de dados sensíveis via feed público | Baixa | Alto | Postgres separa dados internos (custo, margem) do que é exportado (preço, foto, descrição) |
7. Priorização — se só 30% aprovado
Se só 1 canal
Meta Catalog (IG Shopping + FB Shop + tag em posts do FB Page). Uma integração = 3 vitrines acesas. ROI/esforço imbatível. É o que subo no MVP.
Se 3 canais
- Meta Catalog + Tray expandida + Mercado Livre
- Meta = alcance de marca + tag em posts
- Tray = e-commerce próprio (já existe, só ampliar cobertura de 107 → 1.731 SKUs)
- ML = liquidez real de venda, API estável, aprovação instantânea
Se o Chefe aprovar tudo
Ordem sugerida é a do cronograma (Meta+Tray primeiro, depois ML, depois TikTok, depois Shopee).
Gate de decisão em 30 dias após MVP no ar: provar que os canais da onda 1 geram >5% do faturamento. Se sim, escala pra onda 2 (Shopee + TikTok). Se não, revisa hipótese (talvez o problema é foto/copy, não canal).
Pendências pro Chefe — 7 perguntas explícitas
Só o que depende de decisão sua. Responda uma por uma pelo WhatsApp que eu salvo em memória.
01Substituir "Facebook Marketplace" por "Facebook Shop com tag em posts"?
Marketplace via API é inviável pra PME desde 2023. FB Shop cobre a mesma vitrine sem parceiro pago.
02Liberar acesso Tray (P-001)
Parado há 1 mês+ no pending. Sem isso o MVP nem começa.
03Definir foto: freelancer ou aceita ritmo Célia (~20 SKUs/dia)?
Este é o gargalo REAL do projeto, não a tecnologia.
04Aprovar solicitação Shopee Partner + TikTok TSP agora?
2-4 semanas de espera cada — se aprovar hoje, rodam em background enquanto MVP sobe.
05Aceita sync 1x/dia em vez de 4h em alguns canais?
Reduz risco de bloqueio por rate limit; Meta tem limites apertados.
06OK pra descartar parceiro FB Marketplace pago (R$ 3-10k/mês)?
07Quantidade mínima de fotos por SKU pra publicar: 1 obrigatória (mínimo viável) ou 2-3 (desejável)?