Przykład od początku do końca: sklep podłącza Shopee
Przykład Przypadek poglądowy: firma i jej dane są zmyślone, żeby pokazać przebieg.
Papelería Arrecife to zmyślona firma, która sprzedaje artykuły biurowe i już pracuje w Odoo. Jej kierownik instaluje Shopee Marketplace Connector (APAC) i uruchamia go w jedno popołudnie. Po drodze trafia na niemal wszystkie ostrzeżenia modułu. Omawiamy je w kolejności, w jakiej się pojawiają: co znaczy każde z nich i co robi, żeby pójść dalej.
Pierwszy przystanek: konto marketplace
Najpierw trzeba utworzyć konto. Zespół sprzedaje też w innych miejscach, więc kierownik próbuje wybrać marketplace inny niż Shopee, a Odoo odpowiada %s is not available: this connector only connects Shopee. Moduł ma jeszcze jedno ostrzeżenie o tym samym sensie: Only Shopee accounts can be connected. Oba mówią to samo: ten konektor łączy tylko Shopee. Co robi: zostawia konto na Shopee.
Następnie, nie zauważając tego, tworzy drugie konto z tym samym shop_id co pierwsze w tej samej firmie. Przy zapisie pojawia się Each marketplace account (shop_id) must be unique per company. Reguła jest w samym tekście: w każdej firmie dany shop_id może być tylko na jednym koncie. Co robi: usuwa szkic i pracuje na koncie, które już istniało.
Na tym samym koncie wpisuje częstotliwość synchronizacji poniżej minimum i dostaje Sync frequency must be between 5 and 60 minutes. Poprawia ją na wartość z tego zakresu, między 5 a 60 minut. Przy wpisywaniu progu wykrywania konfliktów myli liczbę i widzi Conflict detection threshold must be between 0 and 100%. Wpisuje wartość między 0 a 100% i zapisuje.
Drugi przystanek: kategorie, atrybuty i produkty
Gdy konto jest gotowe, przechodzi do mapowań. Zaczyna od kategorii: łączy kategorię Odoo z kategorią Shopee, a później próbuje połączyć tę samą kategorię Odoo z inną kategorią Shopee na tym samym koncie. Pojawia się Each Odoo category maps to one marketplace category per account. Co robi: edytuje istniejące mapowanie zamiast tworzyć nowe.

Z atrybutami jest tak samo. Gdy powtarza atrybut Odoo dla tego samego konta, ostrzeżenie brzmi Each Odoo attribute maps to one marketplace attribute per account. Wyjście jest takie samo: jeden atrybut Odoo, jeden atrybut marketplace na konto.

Potem mapuje produkty. Przypadkiem duplikuje mapowanie wariantu na tym samym koncie i dostaje One mapping per product per account. Poprawiając to, kopiuje ID produktu Shopee z innej linii i wyskakuje Marketplace product ID must be unique per account. To dwie różne reguły: każdy produkt ma jedno mapowanie na konto, a każde ID produktu marketplace może wystąpić na koncie tylko raz. Przegląda listę i zostawia jedno mapowanie na produkt, z własnym ID.

Trzeci przystanek: import zamówień
Przy imporcie pierwszego zamówienia pojawia się No product of the order %s is mapped to the account %s: map them in Product Mappings and try again. Komunikat od razu wskazuje drogę: żaden produkt z tego zamówienia nie jest zmapowany do tego konta. Co robi: wchodzi w Product Mappings, mapuje produkty z tego zamówienia i próbuje ponownie.
Przy innej próbie dostaje %s did not return the order %s: %s. Tekst mówi, że zamówienie nie zostało zwrócone, i na końcu dodaje szczegół. Co robi: czyta cały ten szczegół przed ponowną próbą i zachowuje go dla osoby, która zapewnia mu wsparcie.
Na koniec koleżanka usuwa konto testowe, które miało oczekujące zamówienie. Przy jego imporcie pojawia się 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. Tu komunikat proponuje dwa wyjścia, a Papelería Arrecife wybiera jedno: utworzyć Zamówienie sprzedaży ręcznie albo usunąć blokadę (hold), żeby następny import firmy je utworzył.
Czwarty przystanek: dziennik synchronizacji
Przeglądając dziennik synchronizacji, kierownik próbuje poprawić jedną linię i dostaje Sync logs are immutable after creation. You cannot edit them. Próbuje więc ją usunąć, a ostrzeżenie brzmi Sync logs cannot be deleted. They are part of the immutable audit trail. Moduł nie pozwala edytować ani usuwać tych wpisów: są częścią ścieżki audytu. Co robi: zostawia je bez zmian i poprawia dane u źródła.
Ostrzeżenie o firmie, które pojawia się w kilku miejscach
Jest komunikat, który moduł powtarza przy kilku typach rekordów: The company of a %s is the one of its marketplace account. Mówi on, że firmą tego rekordu jest firma jego konta marketplace. Jeśli go widzisz, nie próbuj przypisywać rekordowi innej firmy niż firma jego konta: sprawdź, do której firmy należy konto marketplace, i działaj stamtąd.

Czego uczy ten przykład
Ostrzeżenia Papelería Arrecife grupują się według momentu, w którym się pojawiają:
- Konto: tylko Shopee, jeden
shop_idna firmę, częstotliwość między 5 a 60 minut i próg konfliktów między 0 a 100%. - Mapowania: jedna kategoria Odoo i jeden atrybut Odoo na konto, jedno mapowanie na produkt i konto oraz ID produktu marketplace unikalne na koncie.
- Zamówienia: bez zmapowanych produktów nie ma importu; jeśli konto zamówienia już nie istnieje, sam komunikat podaje oba wyjścia.
- Dziennik: wpisów synchronizacji nie można edytować ani usuwać.
- Firma: firmą każdego rekordu jest firma jego konta marketplace.
Jeśli chcesz zobaczyć, które pola wypełnić, zanim trafisz na te ostrzeżenia, masz uruchomienie konektora, a żeby zrozumieć, przez co przechodzi każdy rekord, jak działa od środka.
Jak pomaga FlexigoTech
Konektor jest dostępny bezpłatnie (netto, bez VAT) w Odoo Apps dla Odoo 17, 18, 19 i 20; znajdziesz go na stronie w Odoo Apps i na jego stronie w flexigotech.com. Jeśli wolisz, żeby ktoś uruchomił go razem z Tobą, w FlexigoTech wdrażamy Odoo 17, 18, 19 i 20 oraz tworzymy konektory i integracje na zamówienie, gdy potrzebujesz czegoś więcej, niż oferuje moduł.
Czytaj dalej
Sprawdzone w kodzie źródłowym modułu (wersja 20.0) i w podlinkowanych źródłach
Źródła
- Kod modułu: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_attribute_mapping.py
- Kod modułu: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_category_mapping.py
- Kod modułu: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_config.py
- Kod modułu: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_order_hold.py
- Kod modułu: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_product_mapping.py
- Kod modułu: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_sync_conflict.py
- Kod modułu: flexigo_apac_e_commerce_marketplaces_bundle 20.0 (2cbf6b48): models/marketplace_sync_log.py
- Kod modułu: 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
