Wat je ziet en waar
Je opent Octopia › Catalogus › Producten (Octopia › Catalog › Products), gaat naar het formulier van een product en wijzigt het veld Verkopersproductreferentie (Seller Product Reference). Dat veld staat in het formulier van Octopia-producten (Octopia Products), in de groep Identiteit (Identity), en ook in de lijst van dat menu. Het onderdeel Octopia van het menu vraagt de machtiging Octopia-gebruiker (Octopia User): zonder die machtiging zie je dat onderdeel niet.
Bij het opslaan stopt Odoo de actie en toont deze melding:
De verkopersproductreferentie is onveranderlijk bij Octopia zodra het product is ingediend (…). Wijzigen vereist een Octopia-supportticket. (The Seller Product Reference is immutable at Octopia once the product has been submitted (…). Changing it requires an Octopia support ticket.)
Waar de melding «…» bevat, zet de module de namen van de betrokken producten, gescheiden door komma's. De waarschuwing staat in de gepubliceerde code voor Odoo 17, 18, 19 en 20, en de module is voor die vier versies gepubliceerd in Odoo Apps.

De hulptekst van het veld zelf zegt hetzelfde in minder woorden: Je onveranderlijke productreferentie bij Octopia (na aanmaak is een supportticket nodig om deze te wijzigen). (Your immutable product reference at Octopia (a support ticket is needed to change it after creation).)


De exacte voorwaarde, uit de code gelezen
De melding wordt gegeven bij het opslaan van de formulieren van Octopia-producten, dus ze verschijnt bij het opslaan van wijzigingen. Eerst kijkt de code of de referentie bij de op te slaan wijzigingen zit. Zo niet, dan is er geen controle en gaat het opslaan gewoon door.
Zit ze er wel bij, dan loopt de code elk product langs dat wordt opgeslagen en houdt de producten over die aan alle drie de voorwaarden tegelijk voldoen:
- Het product staat niet meer in concept.
- Het heeft al een ingevulde referentie (niet leeg).
- De nieuwe referentie verschilt van de huidige.
Is er minstens één zo'n product, dan verschijnt de melding met de namen van die producten. Is er geen enkel, dan gaat het opslaan normaal door.
Daaruit volgen vier praktische gevolgen:
- Van dat opslaan wordt niets opgeslagen. De melding komt voordat er wordt geschreven, dus ook andere velden die je tegelijk had gewijzigd worden niet opgeslagen.
- In concept blokkeert de code het niet. De controle kijkt alleen naar producten die niet meer in concept staan.
- Een lege referentie mag je invullen. Had het product nog geen referentie, dan blokkeert de code dat niet.
- Dezelfde waarde opslaan geeft geen fout. De melding komt alleen als de nieuwe referentie van de huidige verschilt.
Een voorbeeld
Voorbeeld Fictief geval: het bedrijf en de cijfers zijn verzonnen om de werkwijze uit te leggen.
Hogar Atlántico is een verzonnen winkel die zijn Octopia-catalogus vanuit Odoo beheert. Iemand van het team opent Octopia › Catalogus › Producten, gaat naar het formulier van een lamp die niet meer in concept staat en merkt dat de referentie een typefout bevat. Hij corrigeert het veld Verkopersproductreferentie, wijzigt ook nog een ander veld van hetzelfde formulier en klikt op opslaan.
Odoo toont de melding met de naam van de lamp tussen haakjes en slaat niets op: noch de nieuwe referentie, noch de andere wijziging. Aan de drie voorwaarden is tegelijk voldaan: het product staat niet in concept, had al een referentie en de nieuwe is anders.
De persoon zet in het veld de referentie terug die er stond, herhaalt de andere wijziging en slaat op zonder de referentie aan te raken. Nu lukt het opslaan, omdat de referentie niet bij de wijzigingen zit. Omdat de typefout er nog is, opent hij een ticket bij de support van Octopia, en dat is precies wat de melding zelf vraagt om de referentie te wijzigen.
Wat je van dit geval leert: de melding wijst niet op een technische storing, maar op een regel die de module bij het opslaan toepast, en de wijziging die haar activeert gaat volledig verloren.
Wat je doet als je de melding krijgt
- Lees tussen de haakjes de namen van de betrokken producten: dat zijn de producten die aan de voorwaarde voldoen.
- Zet in
Verkopersproductreferentiede referentie terug die het product had. - Had je in hetzelfde opslaan andere velden gewijzigd, herhaal die dan en sla op zonder de referentie aan te raken.
- Moet de referentie echt veranderen, dan geeft de melding aan dat wijzigen een Octopia-supportticket vereist: open het bij Octopia.
- Controleer in het formulier en in de lijst van
Octopia-productendat de referentie de vorige is en dat je andere wijzigingen zijn opgeslagen.
Vragen die je jezelf zult stellen
Verschijnt de melding als ik alleen andere velden van het formulier wijzig?
Nee. De controle wordt alleen geactiveerd als de referentie bij de op te slaan wijzigingen zit.
Verschijnt ze bij een product in concept?
De code blokkeert dat niet: ze controleert alleen producten die niet meer in concept staan.
Mag ik de referentie invullen als ze leeg was?
Ja. De code blokkeert de wijziging alleen als het product al een ingevulde referentie had.
Waarom toont de melding meerdere namen?
Omdat het opslaan meer dan één product kan betreffen. De melding voegt, gescheiden door komma's, de namen samen van de producten die aan de voorwaarde voldoen.
Wat gebeurt er met de rest wat ik heb gewijzigd?
Dat wordt niet opgeslagen. De melding stopt het opslaan voordat er iets wordt geschreven.
Hoe FlexigoTech je kan helpen
FlexigoTech implementeert Odoo 17, 18, 19 en 20 en ontwikkelt connectoren en integraties op maat. Zet je de Octopia-catalogus op in je Odoo en wil je vastleggen wie wat mag bewerken voordat je referenties laadt, schrijf ons dan. Voor andere knoppen en fouten van de module begin je bij wat de knop Submit to Octopia doet.
Lees verder
Gecontroleerd in de broncode van de connector (versie 20.0) en in de gelinkte bronnen
Bronnen
- Broncode van de module: flexigobe_octopia_connector 20.0 (4848da6a): models/octopia_product.py
- Broncode van de module: flexigobe_octopia_connector 20.0 (4848da6a): models/octopia_ffm_setup.py
- apps.odoo.com/apps/modules/20.0/flexigobe_octopia_connector
- flexigotech.com/en/services.html
