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.