{% extends 'base.html' %} {% block title %}Instellingen{% endblock %} {% macro field(key, label, type='text', placeholder='', full=false) %}
{% endmacro %} {% block content %}
Beheer

Instellingen

Mailboxen

Elke mailbox (info@, facturen@, nieuwsbrief@ of een persoonlijke) heeft een eigen account. Een mailbox zonder gekozen gebruikers is gedeeld met iedereen. Ophalen gaat via de routine "E-mail ophalen" (Routines).

Mailbox toevoegen
{% if mailboxes %}
{% for m in mailboxes %} {% endfor %}
NaamAdresRolToegangLaatst opgehaaldStatus
{% else %}

Nog geen mailbox.

{% endif %}

Bedrijfsgegevens

Deze gegevens staan op de offertes.

{{ field('company_name', 'Bedrijfsnaam', full=true) }} {{ field('company_address', 'Adres') }} {{ field('company_postcode_city', 'Postcode en plaats') }} {{ field('company_phone', 'Telefoon') }} {{ field('company_email', 'E-mail', 'email') }} {{ field('company_website', 'Website') }} {{ field('company_kvk', 'KvK-nummer') }} {{ field('company_btw', 'Btw-nummer') }} {{ field('company_iban', 'IBAN') }}

Offertes

{{ field('quote_prefix', 'Voorvoegsel nummer', placeholder='OFF') }} {{ field('quote_valid_days', 'Standaard geldig (dagen)', 'number') }}

Formulieren en API

{{ field('allowed_origins', 'Toegestane websites (komma-gescheiden)', placeholder='https://www.vanemous.nl', full=true) }}

Relatietypes

Komma-gescheiden. Bestaande relaties houden hun type als je er een weghaalt.

API-koppeling

Endpoint
POST {{ api_url }}
API-sleutel
{{ s.api_key }}
Klantportaal
{{ portal_url }}

Stuur de sleutel mee als header X-API-Key of als ?key= in de URL. Herkende velden (ook in het Nederlands): naam, voornaam, achternaam, email, telefoon, bedrijf, adres, postcode, plaats, bericht, bron, waarde. Andere velden worden bewaard als extra gegevens. Bestanden (bijv. foto's) gaan mee als multipart/form-data. Een ontwerp uit de configurator (een object met "type": "house-design") wordt als bestand bij de lead opgeslagen. Leads met een bekend e-mailadres worden bij het bestaande contact gezet.

Gewoon HTML-formulier

{% filter forceescape %}
{% endfilter %}

JavaScript (fetch)

{% filter forceescape %}const res = await fetch('{{ api_url }}', {
  method: 'POST',
  headers: { 'X-API-Key': '{{ s.api_key }}' },
  body: new FormData(document.querySelector('form'))
});
const { ok, id } = await res.json();{% endfilter %}

Vanaf een server (aanbevolen: de sleutel blijft geheim)

{% filter forceescape %}curl -X POST {{ api_url }} \
  -H 'X-API-Key: {{ s.api_key }}' -H 'Content-Type: application/json' \
  -d '{"naam": "Jan Jansen", "email": "jan@example.nl", "bericht": "Graag info", "model": "Amstel"}'{% endfilter %}

Producten bijwerken (prijsmutaties)

Werkt producten bij op SKU, bijvoorbeeld vanuit een prijsscript van een leverancier. Veldnamen zoals bij de import. ?deactivate_missing=1 zet producten die niet in de lijst staan op inactief.

{% filter forceescape %}curl -X POST '{{ url_for('api_products', _external=True) }}?source=Leverancier%20X' \
  -H 'X-API-Key: {{ s.api_key }}' -H 'Content-Type: application/json' \
  -d '[{"sku": "plaat.osbM2", "naam": "OSB", "prijs": "12,50", "eenheid": "m²", "leverancier": "Houthandel Y"}]'{% endfilter %}
{% endblock %}