Um caso do princípio ao fim: uma loja liga a Shopee
Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.
A Papelaria Arrecife é uma empresa inventada que vende material de escritório e já trabalha com o Odoo. O responsável instala o Shopee Marketplace Connector (APAC) e põe-no a funcionar numa tarde. Pelo caminho encontra quase todos os avisos do módulo. Vemo-los pela ordem em que lhe vão aparecendo, com o que significa cada um e o que ele faz para avançar.
Primeira paragem: a conta do marketplace
O primeiro passo é criar a conta. Como a equipa também vende noutros sítios, experimenta escolher um marketplace diferente da Shopee e o Odoo responde com %s is not available: this connector only connects Shopee. O módulo tem outro aviso com o mesmo sentido: Only Shopee accounts can be connected. Os dois dizem o mesmo: este conector só liga a Shopee. O que faz: mantém a conta na Shopee.
Depois, sem reparar, cria uma segunda conta com o mesmo shop_id da primeira dentro da mesma empresa. Ao guardar aparece Each marketplace account (shop_id) must be unique per company. A regra está no próprio texto: em cada empresa, um shop_id só pode estar numa conta. O que faz: apaga o rascunho e trabalha sobre a conta que já existia.
Na mesma conta preenche a frequência de sincronização com um valor abaixo do mínimo e depara-se com Sync frequency must be between 5 and 60 minutes. Corrige-o com um valor dentro desse intervalo, entre 5 e 60 minutos. Ao escrever o limiar de deteção de conflitos engana-se no número e aparece Conflict detection threshold must be between 0 and 100%. Introduz um valor entre 0 e 100% e guarda.
Segunda paragem: categorias, atributos e artigos
Com a conta pronta, passa aos mapeamentos. Começa pelas categorias: associa uma categoria do Odoo a uma categoria da Shopee e, mais tarde, tenta associar a mesma categoria do Odoo a outra categoria da Shopee na mesma conta. Aparece Each Odoo category maps to one marketplace category per account. O que faz: edita o mapeamento que já tinha em vez de criar outro.

Com os atributos acontece o mesmo. Ao repetir um atributo do Odoo para a mesma conta, o aviso é Each Odoo attribute maps to one marketplace attribute per account. A solução é a mesma: um atributo do Odoo, um atributo do marketplace por conta.

A seguir mapeia artigos. Duplica sem querer o mapeamento de uma variante na mesma conta e recebe One mapping per product per account. Ao corrigi-lo, copia o ID de artigo da Shopee de outra linha e surge Marketplace product ID must be unique per account. São duas regras distintas: cada artigo tem um único mapeamento por conta e cada ID de artigo do marketplace só pode aparecer uma vez por conta. Revê a lista e deixa um mapeamento por artigo com o seu próprio ID.

Terceira paragem: a importação de encomendas
Ao importar a primeira encomenda aparece No product of the order %s is mapped to the account %s: map them in Product Mappings and try again. A mensagem já indica o caminho: nenhum artigo dessa encomenda está mapeado para essa conta. O que faz: entra em Product Mappings, mapeia os artigos dessa encomenda e volta a tentar.
Noutra tentativa surge %s did not return the order %s: %s. O texto diz que a encomenda não foi devolvida e acrescenta um detalhe no fim. O que faz: lê esse detalhe por completo antes de tentar de novo e guarda-o para quem lhe dá suporte.
Por fim, uma colega apaga uma conta de teste que tinha uma encomenda pendente. Ao importá-la aparece The account of the order %s no longer exists: create its sales order by hand, or delete the hold so that the next import of the company makes it. Aqui a mensagem propõe duas saídas e a Papelaria Arrecife escolhe uma: criar a ordem de vendas à mão, ou apagar a retenção (hold) para que a próxima importação da empresa a crie.
Quarta paragem: o registo de sincronização
Ao rever o registo de sincronização, o responsável tenta corrigir uma linha e obtém Sync logs are immutable after creation. You cannot edit them. Experimenta então apagá-la e o aviso é Sync logs cannot be deleted. They are part of the immutable audit trail. O módulo não deixa editar nem apagar esses registos: fazem parte da pista de auditoria. O que faz: deixá-los como estão e corrigir o dado na origem.
O aviso de empresa que aparece em vários sítios
Há uma mensagem que o módulo repete em vários tipos de registo: The company of a %s is the one of its marketplace account. O que diz é que a empresa desse registo é a da sua conta de marketplace. Se lhe aparecer, não tente dar a esse registo uma empresa diferente da da sua conta: verifique a que empresa pertence a conta de marketplace e trabalhe a partir daí.

O que aprender com o caso
Os avisos da Papelaria Arrecife agrupam-se pelo momento em que aparecem:
- Conta: só Shopee, um
shop_idpor empresa, frequência entre 5 e 60 minutos e limiar de conflitos entre 0 e 100%. - Mapeamentos: uma categoria do Odoo e um atributo do Odoo por conta, um mapeamento por artigo e conta, e um ID de artigo do marketplace único por conta.
- Encomendas: sem artigos mapeados não há importação; se a conta da encomenda já não existir, a própria mensagem dá-lhe as duas saídas.
- Registo: os registos de sincronização não se editam nem se apagam.
- Empresa: a empresa de cada registo é a da sua conta de marketplace.
Se quiser ver que campos preencher antes de chegar a estes avisos, tem a configuração do conector, e para perceber por onde passa cada registo, como funciona por dentro.
Como a FlexigoTech o ajuda
O conector está disponível gratuitamente (sem IVA) na Odoo Apps para Odoo 17, 18, 19 e 20; encontra-o na página da Odoo Apps e na sua página em flexigotech.com. Se preferir que alguém o deixe a funcionar consigo, na FlexigoTech implementamos Odoo 17, 18, 19 e 20 e desenvolvemos conectores e integrações à medida quando o que precisa vai além do que o módulo faz.
Continue a ler
Verificado no código do módulo (versão 20.0) e nas fontes indicadas
Fontes
- Código do módulo: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_attribute_mapping.py
- Código do módulo: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_category_mapping.py
- Código do módulo: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_config.py
- Código do módulo: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_order_hold.py
- Código do módulo: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_product_mapping.py
- Código do módulo: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_sync_conflict.py
- Código do módulo: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_sync_log.py
- Código do módulo: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_sync_queue.py
- apps.odoo.com/apps/modules/20.0/flexigo_apac_e_commerce_marketplaces_bundle
- apps.odoo.com/apps/modules/17.0/flexigo_apac_e_commerce_marketplaces_bundle
- apps.odoo.com/apps/modules/18.0/flexigo_apac_e_commerce_marketplaces_bundle
- apps.odoo.com/apps/modules/19.0/flexigo_apac_e_commerce_marketplaces_bundle
- flexigotech.com/en/services.html
