Hoofdmenu

Ophalen alle facturen met behulp van de API

Gestart door tobyhage, 06 maart, 2016, 09:45:00

Vorige topic - Volgende topic

tobyhage

Hallo,

Volgens mij is nog niet mogelijk om via de API alle inkomende / uitgaande facturen uit Acumulus op te halen.

Is het mogelijk om deze te implementeren?

Handige filters zijn:

  • maand
  • jaar
  • rekening
  • kostenplaats

Guido

#1
Ik weet niet wat je exact probeert te bereiken, maar als je het boekstuknummer weet kun je met https://www.siel.nl/acumulus/API/Entry/Get_Entry_Details/ de meest zinvolle informatie wel ophalen.

Je kunt eventueel in Acumulus via:

  Beheer -> Geavanceerde instellingen -> API-codes tonen

deze codes in de diverse overzichten in beeld krijgen.

tobyhage

Dank voor de reactie. Met deze call kan ik niet bereiken wat ik wil. Weet namelijk geen boekstuknummer.

Ik wil bijv. alle uitgaande facturen van december 2015 opvragen van kostenplaats "Algemeen"

Guido

Als je "API-codes tonen" aanvinkt dan verschijnt het boekstuknummer (=entryid) in de 6e kolom in het overzicht van verzonden facturen. Met een beetje omweg kun je dit weer exporteren naar CSV om eventueel als PDF uit de API te vissen.

tobyhage

Dank voor het meedenken. Als ik alle boekstuknummers als csv ga exporteren, kan ik net zo goed de facturen naar csv exporteren. Dit doe ik nu ook.

Ik wil echter automatiseren m.b.v de API en geen handmatige csv exports doen. Vandaar dat ik graag deze functionaliteit toegevoegd zie worden.

Guido

Ik zal er eens over nadenken. Importeer je ook automatisch?

tobyhage

De facturen komen via de WooCommerce plugin in het systeem. Dit gaat echter niet altijd goed.

Vandaar dat ik een systeem aan het opzetten ben om de facturen in acumulus te vergelijken met de bestellingen in de webwinkel.

Guido

In WooCommerce wordt na het inschieten lokaal het entryid opgeslagen. Misschien heb je ze dus al :)

Wat gaat er niet goed?

tobyhage

De Woocommerce bestellingen haal ik binnen via: https://woothemes.github.io/woocommerce-rest-api-docs/#view-list-of-orders

hoe kom ik dan aan het boekstuknummer / entryid van acumulus in WooCommerce via de Rest API?

Als ik deze op kan halen, kan ik door middel van de aanwezigheid van het boekstuknummer in Woocommerce checken of order daadwerkelijk in Acumulus staat....


Guido

Waarom gebruik je niet de door ons beschikbaar gestelde plugin? ( https://wordpress.org/plugins/acumulus/ ) . Deze plugin zet de factuur over naar Acumulus. Bij een succesvolle overzetting geeft de Acumulus API een entryid terug dat de plugin lokaal opslaat en koppelt aan de order in WooCommerce.

tobyhage

Deze plugin gebruik ik, maar zoals ik al zei gaat dit niet 100% van de tijd goed en mist er zo af en toe een complete bestelling / factuur in acumulus.

Ik ben een controle systeem aan het opzetten om deze fouten eruit te halen.

Dit controle systeem haalt de bestellingen uit WooCommerce met de rest API.
Ik wilde de facturen uit Acumulus halen met de API, deze functionaliteit wordt (nog) niet ondersteund.

Deze twee resultaten wil ik dan met elkaar vergelijken om te kijken of alles in acumulus verwerkt is.

Een andere vergelijking zou zijn om te kijken of alle orders in woocommerce een entryid hebben, maar ik weet niet hoe dit moet.
Daarom mijn vraag: hoe kom ik dan aan het boekstuknummer / entryid van acumulus in WooCommerce via de Rest API of de Wordpress API?


Guido

Ik heb even een email gestuurd naar de plugin-ontwikkelaar om naar dit topic te kijken. We hebben in het verleden wel gesproken over een overzicht in de webwinkel waaraan te zien was of een factuur overgezet was of niet. Hopelijk kan hij hier ook aangeven hoe de vergelijking gemaakt kan worden.

erwin-burorader

Het boekstuknummer (entry-id), token, aanmaak en laatste wijzigingsdatum worden opgeslagen als meta data bij een order of refund. Kijk in het bestand wp-content\plugins\acumulus\libraries\Siel\Acumulus\WooCommerce\Shop\AcumulusEntryModel.php om een idee te krijgen hoe je deze info kunt opvragen. Met (meta-)queries kun je in WP ook grote aantallen posts opvragen.

tobyhage

Dank je. Heb nu check ingebouwd in webwinkel overzicht, zodat ik kan zien of order daadwerkelijk in acumulus staat.

erwin-burorader

Ik ben geïnteresseerd in de code. Wil je die delen?

tobyhage

Geen probleem



//Add custom column into Order Page
add_filter( 'manage_edit-shop_order_columns', 'tbw_columns_into_order_list' );

function tbw_columns_into_order_list( $defaults ) {

$defaults['acumulus'] = 'Acumulus';

    return $defaults;
}

//Add rows value into Order Page
add_action( 'manage_shop_order_posts_custom_column' , 'tbw_custom_column_into_order_list', 10, 2 );

function tbw_custom_column_into_order_list( $column, $post_id ) {

global $post;

    switch ( $column ) {
    case 'acumulus':

    $acumulus_entry_id = get_post_meta( $post_id, '_acumulus_entry_id', true );

    if( strlen( $acumulus_entry_id ) > 0 ) {
    $value = $acumulus_entry_id;
    } else {
$value = 'Order niet in Acumulus';
    }

    echo '<span class="tbw_wc_acumulus">' . $value . '</span>';
    break;
    }
}