Doorgaan naar hoofdinhoud

Shopware Integratie Instellen

Deze handleiding beschrijft hoe je een Shopware 6.6.5.0 (of hoger) instantie koppelt aan Order Fox voor het importeren van producten/klanten en het exporteren van bestellingen.

Opmerking: De theoretische minimumversie is Shopware 6.3.5.0 (toen het Integratie- & ACL-systeem werd gestabiliseerd), maar dit is niet getest. Alleen Shopware 6.6.5.0 en hoger zijn geverifieerd.

1. Shopware Integratiegegevens

Vraag een integratie aan of maak er een aan in Shopware Admin onder Instellingen > Systeem > Integraties om een Client ID (Access Key ID) en Client Secret (Secret Access Key) te verkrijgen.

Een Administrator-integratie heeft de voorkeur. Als dit niet mogelijk is, schakel dan de volgende rechten in het ACL-raster van de integratie in:

SectieRijBekijkenBewerkenAanmakenVerwijderen
CatalogussenProductenx
CatalogussenEigenschappenx
KlantenKlantenxx
BestellingenBestellingenxxx
OverigVerkoopkanalenx

Er zijn geen aanvullende rechten nodig — de rol "Aanmaken" bij Bestellingen bevat intern al api_proxy_switch-customer.


2. Een OAuth-integratie aanmaken

Maak een integratie van het type OAuth aan met de volgende instellingen:

VeldWaarde
LabelShopware
Webservice URLJe Shopware-domein, bijv. https://shopware.example.com (zonder /api-achtervoegsel)
Token URLVolledig OAuth-token-endpoint, bijv. https://shopware.example.com/api/oauth/token
Client IDJe Shopware Integration Access Key ID
Client SecretJe Shopware Integration Secret Access Key
Scope(leeg laten)

De webservice-URL moet alleen het basisdomein zijn (tot en met het TLD). De token-URL moet het volledige /api/oauth/token-pad bevatten.


3. Importprofielen

Importprofielen halen gegevens op uit Shopware naar Order Fox. Elk profiel richt zich op een specifiek Shopware API-zoekeindpunt.

Producten

Maak een importprofiel aan met de volgende configuratie:

VeldWaarde
NaamProducts
IntegratieDe hierboven aangemaakte Shopware OAuth-integratie
ReferentiedataDe referentiedataset waar producten naartoe geïmporteerd moeten worden

Configuratieparameters:

ParameterWaarde
Path/api/search/product
Transformershopware_products
Request MethodPost
Data Wrapperdata
Page Parameterpage
Page Start Index1
Page Step Size1
Page Size Parameterlimit
Page Size Length10

Extra headers:

{
"Accept": "application/json",
"sw-inheritance": "true"
}

Extra parameters (request body):

{
"includes": {
"product": [
"id", "productNumber", "name", "parentId",
"price", "stock", "ean", "options", "translated"
]
},
"associations": {
"options": {
"associations": {
"group": {}
}
}
},
"filter": [
{
"type": "equals",
"field": "active",
"value": true
},
{
"type": "multi",
"operator": "or",
"queries": [
{
"type": "not",
"operator": "and",
"queries": [
{ "type": "equals", "field": "parentId", "value": null }
]
},
{
"type": "equals",
"field": "childCount",
"value": 0
}
]
}
]
}

Het filter zorgt ervoor dat alleen actieve producten worden geïmporteerd en sluit bovenliggende producten met varianten uit (alleen de varianten zelf worden opgehaald).

Klanten

Maak een importprofiel aan met de volgende configuratie:

VeldWaarde
NaamCustomers
IntegratieDe hierboven aangemaakte Shopware OAuth-integratie
ReferentiedataDe referentiedataset waar klanten naartoe geïmporteerd moeten worden

Configuratieparameters:

ParameterWaarde
Path/api/search/customer
Transformershopware_customers
Request MethodPost
Data Wrapperdata
Page Parameterpage
Page Start Index1
Page Step Size1
Page Size Parameterlimit
Page Size Length10

Extra headers:

{
"Accept": "application/json",
"sw-inheritance": "true"
}

Extra parameters (request body):

{
"includes": {
"customer": [
"id", "customerNumber", "firstName", "lastName",
"email", "company", "defaultBillingAddress",
"defaultShippingAddress", "vatIds"
]
},
"associations": {
"defaultBillingAddress": {
"associations": {
"country": {}
}
},
"defaultShippingAddress": {
"associations": {
"country": {}
}
}
}
}

Mapping

Na het aanmaken van elk importprofiel configureer je de veldmapping om de geïmporteerde Shopware-velden te koppelen aan de kenmerken van het assettype van je tenant. De mapping is tenantspecifiek en moet per installatie worden geconfigureerd.


4. Exportprofiel (Bestellingen)

Om bestellingen terug te exporteren naar Shopware, maak je een exportprofiel aan met de Shopware-provider.

VeldWaarde
NaamEen beschrijvende naam voor de export
IntegratieDe hierboven aangemaakte Shopware OAuth-integratie
Providershopware
Path/

Template:

Het template gebruikt Twig-syntax en koppelt Order Fox-ordergegevens aan het Shopware-bestelformaat via de API. Vervang de salesChannelId door je Shopware Sales Channel ID. De velden op de partij- en regelobjecten zijn afhankelijk van je veldmappingconfiguratie, dus pas het template dienovereenkomstig aan als je andere velden hebt gemapped.

{
"salesChannelId": "<your-sales-channel-id>",
"customerId": "{{ buyer_customer_party.external_id }}",
"billingAddressId": "{{ accounting_customer_party.account_id }}",
"shippingAddressId": "{{ buyer_customer_party.account_id }}",
"items": [
{% for line in lines %}
{
"productId": "{{ line.item.external_id }}",
"quantity": {{ line.quantity }}
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}

Template-variabelemapping:

VariabeleVerwijst naar
buyer_customer_party.external_idcustomerId uit de klantenimport
accounting_customer_party.account_idFacturatie-addressId uit de klantenimport
buyer_customer_party.account_idVerzend-addressId uit de klantenimport
line.item.external_idproductId uit de productenimport

Door de provider op shopware in te stellen, wordt de export via de speciale Shopware-exporthandler gerouteerd, die authenticatie en API-communicatie automatisch afhandelt.