Visser Labs – WooCommerce Plugins

  1. Home
  2. Kennisbank
  3. WooCommerce Store Exporter Deluxe
  4. Automatisering & Planning
  5. Hoe POST-exports naar een externe URL te verzenden in Store Exporter Deluxe
  1. Home
  2. Kennisbank
  3. WooCommerce Store Exporter Deluxe
  4. Hoe POST-exports naar een externe URL te verzenden in Store Exporter Deluxe

Hoe POST-exports naar een externe URL te verzenden in Store Exporter Deluxe

Een exportbestand met de hand aan een ander systeem overhandigen, of dat nu een rapportagetool, een voorraadsysteem of een script is dat u zelf uitvoert, betekent dat iemand moet inloggen, het bestand moet downloaden en het opnieuw moet uploaden. Store Exporter Deluxe kan die laatste stap voor u doen. Elke keer dat een Geplande Export wordt uitgevoerd, stuurt het voltooide bestand naar een door u gekozen webadres met een HTTP POST-verzoek.

Hieronder stelt u POST naar URL in, ziet u precies wat uw eindpunt ontvangt en bevestigt u dat elk bestand is aangekomen. Ontwikkelaars krijgen ook een manier om headers toe te voegen, zoals een API-token.

Vereisten

VereisteDetails
PluginStore Exporter Deluxe is actief
Geplande exportsGeplande exports worden ingeschakeld onder Instellingen → Planning → Geplande Exports inschakelen. Als ze zijn uitgeschakeld, toont het scherm Geplande Exports "Geplande exports zijn momenteel uitgeschakeld." met een knop Geplande Exports inschakelen.
Ontvangend eindpuntEen webadres (URL) dat POST-verzoeken accepteert en bereikbaar is vanaf de server van uw site
Eindpun accessEen manier om de eigen logs van het ontvangende systeem te controleren, zodat u kunt bevestigen dat bestanden aankomen

Hoe het werkt

Wanneer een planning die POST naar URL gebruikt wordt uitgevoerd, bouwt Store Exporter Deluxe het exportbestand zoals gewoonlijk en stuurt het vervolgens naar uw Externe POST URL in één enkel HTTP POST-verzoek. Het verzoek is altijd een POST. Er is geen instelling om het naar een andere methode te schakelen.

Wat uw eindpunt ontvangt

Uw eindpunt ontvangt de inhoud van het exportbestand als de ruwe body van het verzoek. Het komt niet aan als een bestandsuploadformulier, dus er is geen formulierveld om het bestand uit te lezen. Als de beschrijving Externe URL-instellingen op uw scherm een multipart POST-verzoek vermeldt, ga dan uit van deze sectie: het bestand is de ruwe verzoekbody.

Deel van het verzoekWat het bevat
MethodePOST
BodyDe volledige inhoud van het exportbestand, precies zoals deze in het gedownloade bestand zou verschijnen
content-type headerHet MIME-type dat overeenkomt met uw Exportformaat (zie de onderstaande tabel)
accept headerHetzelfde MIME-type als de content-type header
user-agent headerWordPress/ gevolgd door uw WordPress-versie

Store Exporter Deluxe stuurt niet de bestandsnaam, extra formuliervelden of inloggegevens mee. Het wacht tot 60 seconden op een antwoord en volgt geen omleidingen, dus voer het definitieve adres van uw eindpunt in.

De content-type header is afhankelijk van het Exportformaat dat u kiest voor de planning:

Exportformaatcontent-type waarde
CSVtext/csv
TSVtext/tab-separated-values
Excel (XLS)application/vnd.ms-excel
Excel (XLSX)application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
XMLapplication/xml
RSS 2.0application/rss+xml

POST naar URL instellen

De onderstaande stappen beschrijven het aanmaken van een nieuwe Geplande Export. Om een bestaand schema te wijzigen, open het vanaf het scherm Geplande Exports. Zie Hoe exporten te plannen in Store Exporter Deluxe voor meer informatie over het aanmaken en beheren van schema's.

Stap 1: Open het formulier voor nieuwe schema's

  1. Ga naar WooCommerce → Store Export.
  2. Klik in de zijbalk van Store Exporter op Geplande Exports.
  3. Klik op Nieuw Schema. Het formulier wordt geopend met de titel Nieuwe Geplande Export Toevoegen en vijf stappen bovenaan: Algemeen, Filters, Methode, Planning en Geavanceerd.
Het scherm Geplande Exporteren met de knop Nieuwe Planning rechtsboven gemarkeerd

Stap 2: Kies wat te exporteren

Stel op de stap Algemeen de export zelf in.

  1. Voer een naam in bij Naam Schema. Dit veld is verplicht.
  2. Kies het gegevenstype uit Export Type, zoals Producten of Bestellingen.
  3. Kies het bestandstype uit Export Formaat. Kies een formaat dat uw endpoint kan lezen uit de tabel Export Formaat onder "Wat uw endpoint ontvangt" hierboven.
  4. Kies onder Export Velden voor Alle Velden, Template Gebruiken of Opgeslagen Selectie.

De stap Algemeen bevat ook opties voor bestands- en gegevensopmaak, zoals de kolomdelimiter en koptekstopmaak. Laat deze ongemoeid, tenzij uw endpoint een specifieke lay-out verwacht.

De stap Algemeen van het nieuwe planningsformulier met Naam Planning, Exporteer Formaat en de opties Exporteer Velden gemarkeerd 1 tot 3

Stap 3: Beperk de export met filters (optioneel)

Open de stap Filters als u slechts enkele records wilt verzenden, bijvoorbeeld bestellingen met een bepaalde status. Sla deze over om alle overeenkomende records te verzenden.

Stap 4: Kies POST naar URL

  1. Klik op de stap Methode.
  2. Selecteer onder Verzendmethode de kaart POST naar URL.
  3. Voer onder Instellingen Externe URL het adres van uw endpoint in bij POST URL Extern, bijvoorbeeld https://example.com/webhook/receive.
De kaarten Leveringsmethode met POST naar URL geselecteerd, en het paneel Samenvatting Planning toont Methode als POST naar Externe URL

Het paneel Samenvatting Schema aan de rechterkant wordt bijgewerkt om POST naar Externe URL weer te geven zodra de kaart is geselecteerd.

Het veld Externe POST-URL ingevuld met een voorbeeldadres

Het veld POST URL Extern is de enige instelling die deze verzendmethode heeft. Gebruik het volledige adres, inclusief https://.

Stap 5: Stel in wanneer het wordt uitgevoerd

Kies op de stap Planning hoe vaak de export wordt uitgevoerd.

  • Uurlijks: elk uur.
  • Dagelijks: eenmaal per dag.
  • Wekelijks: eenmaal per week.
  • Maandelijks: op de 1e van elke maand.
  • Aangepast: een herhalend interval dat u instelt in Voer elke.
  • Handmatig: alleen als je het zelf uitvoert.

Kies een tijd en tijdzone voor de uitvoering, en kies of deze onmiddellijk start of op een door jou ingestelde datum. Om op de lokale tijd van je winkel uit te voeren, zie Hoe exporten te plannen op basis van je lokale tijd.

De stap Planning toont de opties Frequentie, de velden tijd en tijdzone, en de opties Start gemarkeerd 1 tot 3

Stap 6: Controleer de geavanceerde opties

De stap Geavanceerd heeft meer opties, zoals bestandsnaamgeving, archiefbeheer en logging. Twee ervan zijn het belangrijkst voor POST naar URL:

  • Bestandspatroon: geeft de naam van het exportbestand binnen je site. De bestandsnaam wordt niet naar je endpoint verzonden.
  • Log niveau: stelt in hoeveel details het Audit Log registreert voor dit schema. Deze optie verschijnt alleen wanneer het Audit Log is ingeschakeld en de logbron Geplande Exporten niet is ingesteld op Geen (Instellingen → Audit Log → Logbronnen).

Stap 7: Sla het schema op

  1. Controleer het paneel Schemaoverzicht aan de rechterkant. Methode moet POST naar Externe URL aangeven.
  2. Klik op Schema Maken. Op een bestaand schema leest deze knop Schema Opslaan.

Controleren of het bestand is aangekomen

Store Exporter Deluxe registreert of het je endpoint kon bereiken, maar het leest de reactie van je endpoint niet. Controleer dus beide kanten:

  1. Open het eigen verzoeklogboek van je endpoint, of het ontvangende hulpprogramma, en zoek naar een POST-verzoek op het moment dat het schema werd uitgevoerd.
  2. Bevestig dat de verzoekbody het exportbestand is en dat het correct opent.
  3. Ga in WordPress naar Geplande Exporten in de zijbalk van Store Exporter. De lijst Recente Activiteit toont elke uitvoering. Klik op Alleen Fouten, naast Alle Activiteit, om alleen mislukte uitvoeringen te tonen. Klik op Alle Activiteit om elke uitvoering weer te zien.
  4. Voor meer details, open het Audit Log vanuit dezelfde zijbalk en zoek de uitvoering.
De lijst Recente Activiteit op het scherm Geplande Exporteren met de knop Alleen Fouten gemarkeerd

Het Audit Log is standaard ingeschakeld. Het item Audit Log verschijnt alleen in de zijbalk van Store Exporter wanneer het Audit Log is ingeschakeld. Als het is uitgeschakeld, ga naar Instellingen in de zijbalk van Store Exporter, open de sectie Audit Log en schakel Audit Log Inschakelen in.

Om te testen zonder te wachten op de volgende geplande uitvoering, wijs Externe POST-URL naar een verzoek-opvangende service terwijl je dingen instelt. Klik op het scherm Geplande Exporten op het menu met drie stippen in de rij van het schema en klik op Nu Uitvoeren, controleer dan wat er is aangekomen. Schakel vervolgens het adres om naar je echte endpoint.

Als een verzoek helemaal geen verbinding kan maken, bijvoorbeeld omdat het adres verkeerd is getypt, de server uitvalt of de verbinding te lang duurt, wordt de uitvoering gemarkeerd als mislukt in het Audit Log. Store Exporter Deluxe stuurt het bestand één keer per uitvoering. De volgende geplande uitvoering bouwt en stuurt een nieuw bestand.

Toevoegen van een API-sleutel of andere headers (ontwikkelaars)

Het instellingenscherm heeft geen velden voor authenticatieheaders. Als je eindpunt een API-sleutel of token nodig heeft, kan een ontwikkelaar headers toevoegen met het wsed_scheduled_export_post_args filter. Voeg deze code toe aan een aangepaste plugin of het functions.php bestand van je child theme:

add_filter( 'wsed_scheduled_export_post_args', function ( $args ) {
    $args['headers']['Authorization'] = 'Bearer YOUR_API_TOKEN';
    return $args;
} );

Vervang YOUR_API_TOKEN door de token die je eindpunt verwacht. De code wordt toegevoegd aan de bestaande headers in plaats van ze te vervangen, dus de content-type header blijft op zijn plaats.

Dit filter is van toepassing op elke planning die POST naar URL gebruikt, inclusief de Nieuwe Bestelling Trigger in Instellingen. Het kan geen verschillende headers naar verschillende eindpunten sturen.

Probleemoplossing

Het Audit Log toont een mislukte uitvoering voor mijn POST naar URL-planning
Controleer of de URL voor externe POST correct is gespeld en https:// bevat. Bevestig vervolgens dat de ontvangende server online is en geen verzoeken van het IP-adres van je hostingprovider blokkeert. Store Exporter Deluxe registreert een storing wanneer het geen verbinding kan maken met je eindpunt.
De uitvoering wordt als voltooid weergegeven, maar er is niets aangekomen op mijn eindpunt
Controleer de eigen logs van je eindpunt op een geweigerd verzoek, zoals een inlogfout of een verkeerd content type. Als het een API-sleutel nodig heeft, voeg de header toe met het filter in het ontwikkelaargedeelte hierboven. Store Exporter Deluxe markeert een uitvoering als voltooid zodra het verzoek je server bereikt, wat het antwoord van de server ook is.
Mijn eindpunt ontvangt het verzoek, maar kan het bestand niet vinden
Het bestand is de ruwe body van het verzoek, geen formulier-veld. Werk je eindpunt bij om de request body direct te lezen in plaats van te zoeken naar een geüpload bestand.
Mijn eindpunt stuurt het verzoek door naar een ander adres
Store Exporter Deluxe volgt geen doorverwijzingen. Voer het definitieve adres in bij URL voor externe POST, bijvoorbeeld het https:// adres als je eindpunt doorverwijst vanaf http://.
Ik kan Geplande Exporteren niet vinden in de zijbalk van Store Exporter
Ga naar Instellingen in de zijbalk van Store Exporter, open de sectie Geavanceerd en schakel Tabblad Geplande Exporteren Verbergen uit. Wanneer die optie is ingeschakeld, wordt het item Geplande Exporteren uit de zijbalk verwijderd.
Een grote export loopt af
Store Exporter Deluxe wacht tot 60 seconden op een antwoord van je eindpunt. Als je eindpunt langer duurt, verklein dan de export in de stap Filters zodat deze een kleiner bestand produceert.

Veelgestelde vragen

Kan ik PUT of een andere methode gebruiken in plaats van POST?
Nee. Het verzoek is altijd een HTTP POST.
Kan ik een API-sleutel of autorisatieheader toevoegen?
Niet vanuit het instellingenscherm. Een ontwikkelaar kan headers toevoegen met het wsed_scheduled_export_post_args filter. Zie het ontwikkelaargedeelte hierboven.
Wordt het bestand verzonden als een formulier-upload?
Nee. De bestandsinhoud is de ruwe request body, met een content-type header die overeenkomt met het exportformaat.
Probeert Store Exporter Deluxe opnieuw als het verzoek mislukt?
Nee. Het verzendt het bestand één keer per uitvoering. De volgende geplande uitvoering verzendt een nieuw bestand.
Ontvangt het eindpunt de bestandsnaam?
Nee. Alleen de bestandsinhoud en de hierboven vermelde headers worden verzonden.
Is POST naar URL beschikbaar in de gratis Store Exporter-plugin?
Nee. Geplande Exporteren en elke leveringsmethode maken deel uit van Store Exporter Deluxe.

Hulp nodig?

Als u een vraag heeft of tegen problemen aanloopt, helpen we u graag.

Was dit artikel nuttig?

Gerelateerde artikelen

Bronnen & Hulp