Waar de knop staat en wat hij doorloopt
Je vindt hem op het formulier van Shopify-bestellingen (Shopify Orders), dat je opent via het menu Verkoop (Sales), daarin het submenu Shopify, dan Operations en het item Orders. De knop bestaat in de takken 17.0, 18.0, 19.0 en 20.0, en de voorwaarde om hem te zien is in alle vier dezelfde: hij is verborgen als het veld Verkooporder (Sale Order) een waarde heeft; met de standaardwaarden, dus leeg, zie je hem. De code zelf beschrijft de knop als de manier om handmatig de verkooporder aan te maken van een bestelling die er geen heeft (het gaat over vastgehouden bestellingen: verwijderd, al afgehandeld in Shopify…).

Als je erop klikt, vraagt Odoo om bevestiging met deze tekst: It is created as a quotation that the connector never confirms: check first that this order was not shipped already. Create it?. Als je accepteert, doet de methode in Odoo 20.0 dit, in deze volgorde:
- Als de bestelling al een
Verkooporderheeft, maakt ze niets aan: ze opent die verkooporder. - Ze controleert of degene die klikt verkoopbeheerder is.
- Ze controleert of de bestelling de Shopify-gegevens opgeslagen heeft.
- Ze controleert of de Shopify-winkel van de bestelling niet gearchiveerd is.
- Ze heft de vasthouding van de bestelling op en markeert hem als handmatig gedaan.
- Ze verwerkt de opgeslagen Shopify-gegevens met een routine die het formulier van de bestelling bijwerkt en die zoekt naar de reeds gekoppelde verkooporder, of naar een van hetzelfde bedrijf met de referentie van die Shopify-bestelling.
- Ze leest het formulier opnieuw: als
Verkoopordernu een waarde heeft, opent ze die order; zo niet, dan wordt er niets geopend.
De controles komen vóór elke wijziging: als een ervan de actie stopt met een melding, wordt niets opgeslagen van wat de knop zou wijzigen.

Misverstanden over de knop
«Hij maakt de order aan en bevestigt hem»
De realiteit is het tegendeel. Volgens de bevestigingstekst wordt hij aangemaakt als offerte die de connector nooit bevestigt. Diezelfde waarschuwing vraagt je iets voordat je accepteert: eerst controleren of de bestelling niet al verzonden is.
«Hij verschijnt bij alle Shopify-bestellingen»
Hij verschijnt alleen zolang het veld Verkooporder leeg is. Zodra de bestelling er een heeft, verdwijnt de knop. En als de methode toch zou worden aangeroepen op een bestelling die er al een heeft, maakt de eerste stap van de code geen tweede aan: ze opent de bestaande. Om te weten of een bestelling er een heeft, kijk je naar dat veld op het formulier of in de lijst van Shopify-bestellingen; het is alleen-lezen en wordt door de code ingevuld, niet door de gebruiker.
«Elke interne gebruiker kan erop klikken»
De code controleert of degene die hem gebruikt verkoopbeheerder is. Zo niet, dan stopt de actie met Only a Sales Administrator can create the sales order of a Shopify order by hand.. Als je die krijgt, moet een verkoopbeheerder de actie uitvoeren.
«Hij maakt de order aan met wat Shopify op dit moment heeft»
De methode vertrekt van de Shopify-gegevens die de bestelling al opgeslagen heeft. Als er geen zijn, stopt ze met Geen Shopify-gegevens beschikbaar om verkooporder aan te maken. Vernieuw eerst vanuit Shopify. (No Shopify payload available to create sale order. Refresh from Shopify first.). Die gegevens staan op het tabblad Technical van het formulier van Shopify-bestellingen, zonder label: je ziet alleen de inhoud, alleen-lezen, en alleen gebruikers met het recht voor systeembeheer zien ze. De melding zelf wijst de weg: eerst vernieuwen vanuit Shopify.
«Hij werkt met elke winkel, in welke staat dan ook»
Als de Shopify-winkel van de bestelling gearchiveerd is, stopt de knop met Its Shopify store is archived: create the sales order from the store connected now.. De melding wijst de weg: de verkooporder aanmaken vanuit de winkel die nu verbonden is. Het veld Instance, zichtbaar op het formulier en in de lijst van Shopify-bestellingen, vertelt je bij welke winkel elke bestelling hoort.
Wat er verder verandert naast de offerte
De knop maakt niet alleen de verkooporder aan. Voordat hij de gegevens verwerkt, heft hij de vasthouding van de bestelling op en markeert hij hem als handmatig gedaan. En de routine die de opgeslagen gegevens verwerkt, werkt het formulier van de Shopify-bestelling bij met wat ze bevatten: bedragen, datums, verzendadres, labels en notitie, onder andere. Je ziet het resultaat op het formulier en in de lijst: als de bestelling een verkooporder krijgt, heeft Verkooporder een waarde en opent Odoo die; zo niet, dan wordt er niets geopend.
Wat de naam van de knop betreft: met Odoo in het Nederlands heet hij Verkooporder aanmaken. In het Duits is dat Verkaufsauftrag erstellen, in het Frans Créer un bon de commande, in het Italiaans Crea ordine di vendita en in het Portugees Criar pedido de venda.

Als er iets misgaat
Elke melding hierboven zegt wat je moet doen: de actie laten uitvoeren door een verkoopbeheerder, eerst vernieuwen vanuit Shopify, of de verkooporder aanmaken vanuit de nu verbonden winkel.
Zo helpt FlexigoTech je
FlexigoTech implementeert Odoo 17, 18, 19 en 20 en ontwikkelt connectoren en integraties op maat. Wil je nagaan wie het profiel van verkoopbeheerder moet hebben of hoe vastgehouden bestellingen worden behandeld voordat je deze knop gebruikt, dan bekijken we dat samen met je. De module kost € 9 per Odoo-versie (17, 18, 19 en 20), eenmalige betaling excl. btw, op zijn Odoo Apps-pagina, en vereist het abonnement op FlexigoTech Cloud: plan Connector, € 49 per maand of € 490 per jaar excl. btw.
Lees verder
Gecontroleerd in de broncode van de connector (versie 20.0) en in de gelinkte bronnen
Bronnen
- Broncode van de module: flexigobe_shopify_connector 20.0 (c7078cd8): views/shopify_order_views.xml
- Broncode van de module: flexigobe_shopify_connector 20.0 (c7078cd8): models/shopify_order.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/17.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/18.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/19.0/flexigobe_shopify_connector
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
