Jump to content
presta-dyr

Dinero og PrestaShop

Recommended Posts

Hej alle

 

Jeg har længe (faktisk siden 2013) pønset på at skrive et integrationsmodul til Dinero. Men så var det, Dinero helt afviste at lave et API. Senere skiftede de mening og kundgjorde så, at der ville komme et API, hvor der var begrænsning på antallet af transaktioner. Og som det er nu, er der alligevel ingen (væsentlige) begrænsninger.

 

Nu kommer så mit spørgsmål: Hvor stor er interessen for et modul til Dinero til 500 kr. plus moms? Vel at mærke uden yderligere omkostninger (bortset fra abonnementet hos Dinero).

 

 

/Kjeld

Share this post


Link to post
Share on other sites

Jeg køber hvis modulet kan overføre transaktioner til kassekladen i Dinero - dvs. at modulet ikke bogfører direkte i Dinero.

Share this post


Link to post
Share on other sites

Hvis det medfører at jeg kan oprette mine faktura i prestashop og den så automatisk ligger den til godkendelse i kasseklade, så kunne det godt være interesant.

Share this post


Link to post
Share on other sites

One time pay er altid en god ting :) 

Kom bare med det.
Jeg bruger IEX.dk lige nu til mit gamle, men det med at betale en fast mdr gebyr nej tak.

Så hellere 500kr.- også virker det bare.

 

Kig på IEX hvordan de gør nu, så kan du tage lidt fra dem, og lave modulet.

 

Men ja så længe det virker og det virker til både 1.6.x og til 1.7.x Så bare kom igang :)

Share this post


Link to post
Share on other sites

Hej Kjeld,

Nu kan jeg se at det snart er et års tid siden du startede tråden, og så vidt jeg kan se, har du stadig ikke noget DInero-modul til salg i din shop. Er det stadig et projekt som du har planer om at kaste dig over på et tidspunkt?

Pt. skal man enten benytte Storebuddy eller Pairy for at koble Prestashop op med Dinero, og begge løsninger er abonnementsløsninger som hurtigt bliver meget dyre.
Et modul i stil med dine moduler til Billy og e-conomic vil derfor bestemt stadig være eftertragtet :)

Share this post


Link to post
Share on other sites

Hej ?

 

Jeg kom i gang med de indledende øvelser (dvs. basal test af API'et), men kom så fra det igen. Siden blev Dinero så solgt til Visma og det ærgrer mig faktisk. Når Visma ejer både E-conomic og Dinero, bliver det så som så med den reelle konkurrence. Jeg har også haft kig på integration med xena.biz og saldi.dk, men jeg mangler stadig at finde et økonomisystem, der har en model, hvor man har API-adgang og betaler lidt eller ingenting, når man har få transaktioner.

 

Så det korte af det lange er, at jeg ikke er kommet videre.

 

 

/Kjeld

Share this post


Link to post
Share on other sites

Helt enig i at der mangler et billigt økonomisystem med API-adgang for den helt lille webshop! Jeg håber dog stadig at du vil overveje at færdiggøre Dinero-modulet. Rent kommercielt er jeg sikker på at der er et marked for modulet, og uden at vide det, så vil jeg gætte på at meget af forarbejdet allerede er gjort ved at tage udgangspunkt i dit eksisterende Billy-modul.

/Mathias

Share this post


Link to post
Share on other sites

Jeg er ved at lægge sidste hånd på version 1 af et modul der oprettet poster i kassekladden, direkte fra Prestashop :)

 

Prisen for det færdige modul har jeg ikke lige lagt mig fast på endnu - nu vil jeg lige teste lidt på det og se om det spiller som jeg har tiltænkt det.

Share this post


Link to post
Share on other sites

Så er det lige oppe over.

Har kørt live tests, på min egen webshop, i et par uger nu.

Et par små bugs skal lige glattes ud, men ikke noget alvorligt - det virker over al forventning, taget i betragtning at det er mit første add-on til Prestashop (er autodidakt programmør, men har ikke kodet til Prestashop tidligere)

 

Lige nu er modulet til godkendelse ved Prestashop Addon team, når de har sagt god vil jeg lige have Dinero's blåstempel også og så gives det fri.

Share this post


Link to post
Share on other sites

Hej Morten,

 

Det lyder rigtig spændende.

Vil det endelige modul være i stand til at oprette en faktura i Dinero som kan downloades direkte fra Prestashop, eller forestiller du dig at man fortsætter med at benytte Prestashops indbyggede fakturafunktion, og modulet så nøjes med at overføre kladdeposteringer til Dinero for hver ordre?
Og hvordan i forhold til returneringer? Vil modulet være i stand til at håndterer både fulde og delvise krediteringer på en ordre?

/Mathias

Share this post


Link to post
Share on other sites

Så kom v.1.0 addons: https://addons.prestashop.com/en/accounting-invoicing/28606-dinero.html

 

I første omgang foregår det sådan at modulet oprettet kassekladde posterne, og vedhæfter din Prestashop faktura som bilag.

Der kan pt. kun håndteres salg, men går allerede med ideer til ændringer. Der i blandt at den skal kunne håndtere hele og delvise krediteringer.

 

Hvis Dinero lader deres API tillade det, kunne en mulighed være at lave det valgfrit for brugeren om man vil bruge Prestashop faktura eller Dinero faktura.

Share this post


Link to post
Share on other sites

Hej Morten,

Det ser godt ud det du har lavet indtil videre!
Nu har jeg selv arbejdet med Dineros API i et andet projekt, og da du både kan oprette fakturaer gennem API'et, og efterfølgende hente fakturaerne som pdf, så  burde der ikke være noget til hinder for at du udbyggede dit modul til at give brugeren valget mellem at bruge Prestashops fakturaer eller Dineros egne. Det kræver selvfølgelig stadig noget udvikling - men Dineros API bør ikke være nogen stopklods :)

Share this post


Link to post
Share on other sites

Hej Morten

Jeg har testet lidt på dit modul og det virker efter hensigten: Opretter dine ordre i kassekladden, og vedhæfter din Prestashop faktura som bilag. Det er let at installere og virker med det samme.

 

Modulet lever dog ikke helt op til forventningerne, da vi stadig skal rette en del til i Dinero for at bogføringen er korrekt for os. Vi forventer ikke en 100 % automatisk bogføring, men ønsker omvendt heller ikke, at ændre 2-4 linjer på hver ordre i kassekladden.

 

Jeg har derfor er par ”lette” forbedringsforsalg, som i min optik vil give dit modul langt større værdi, uden det ændre på hvor dejlig simpelt det fungerer.

 

1.       Gør det muligt at vælge, om den skal overføre alle linjer fra ordren eller som nu: samlet salg, fragt, betaling. Vi har visse varer der sælges med brugtmoms, kortgebyr bogføres på egen konto og hvis der tilføjes en rabat til ordren, ville det også være fint den stod på egen linje.

2.       Gør det muligt at vælge, om den skal bruge ”Ordrenummer” eller ”Fakturanummer” til ”beskrivelsen” i kassekladden i Dinero. Vi bruger fakturanummeret, da ordrenummeret i sig selv ikke giver noget mening hos os.

3.       Gør det muligt, at overføre ordre til Dinero med tilbagevirkende kraft. F.eks. efter dato eller fakturanummer. Jeg forstiller mig at de fleste der gerne vil købe dit modul ikke nødvendigvis har bogført alt til dags dag, så det vil virkelig være en hjælp, hvis man kunne vælge, at den skulle oprette tidligere gennemførte ordre i kassekladden.

 

Det er alle 3 væsentlige funktioner for min shop, så tænker andre shops også kunne få gavn af disse forbedringsforsalg. Vi har i bund og grund ikke brug for andre funktioner, da vi alene gerne vil spare tid på vores ugentlige bogføring.

 

Jeg ser frem til at høre, om det er noget der evt. er på vej, eller om du har andre planer.

 

Hilsen

/Nicklas

Share this post


Link to post
Share on other sites

Jeg har lige et par kommentarer.

Ad 1) Det er ikke tilladt at overvælte kortgebyr for privatkunder fra næste år. Så det er måske ikke så vigtigt med lige den feature.

Ad 2) Fakturanummeret giver jo kun mening, hvis dannelse af fakturaer er slået til i PrestaShop. Om man så bruger ordre-ID eller reference (den der sære samling bogstaver PrestaShop tildeler ordren), kan jo komme ud på et; bare sporbarheden er opretholdt. Fidusen med at bruge reference er, at en evt. konkurrent ikke kan lure, hvor mange ordrer man har haft.

Ad 3) Du skal ikke forstille dig selv :rolleyes:

 

/Kjeld

Share this post


Link to post
Share on other sites

Hej Kjeld

Fint med indput :)

Ad 1) Ja, det er helt korrekt, men vi har ikke tænkt os at ændre det før 01.01.2018. Så derfor er det vel relevant et stykke tid endnu. Der gennemføres jo normalt også nogle ekstra ordre her i juletiden, så det bliver til ekstra mange rettelser...

Ad 2) Ja, det er også helt korrekt. Vi bruger PrestaShop til dannelse af fakturaer, så derfor har vi også valgt at bruge "fakturanummeret" således vi er helt sikre på at alt er korrekt i Dinero, og vi ikke skal lede unødvendigt efter ordre, ved f.eks. rettelser, mm.

Ad 3) ;)

Har Morten nogen kommentar?

Share this post


Link to post
Share on other sites

Ad 1) Da det, som Kjeld skriver, ikke er tilladt fra årsskiftet at lade kunden bære gebyret er det ikke lige den feature jeg vil bruge krudt på (der er rigeligt med andre småting der er vigtigere til modulet). Men delen med at lade det være op til brugeren med hvor meget der skal oprettes som selvstændige linier kunne være relevant.

Ad 2) Det er absolut noget jeg vil notere mig, at lade brugeren vælge fakturanummer, ordre-id eller reference strengen.

Ad 3) Hmmm tjaeh - jeg ved ikke helt om det er relevant. Man har vel alle sine salg i sit regnskab alligevel?!

Share this post


Link to post
Share on other sites
On 10/11/2017 at 1:57 PM, Thissel said:

Hej Morten,

Det ser godt ud det du har lavet indtil videre!
Nu har jeg selv arbejdet med Dineros API i et andet projekt, og da du både kan oprette fakturaer gennem API'et, og efterfølgende hente fakturaerne som pdf, så  burde der ikke være noget til hinder for at du udbyggede dit modul til at give brugeren valget mellem at bruge Prestashops fakturaer eller Dineros egne. Det kræver selvfølgelig stadig noget udvikling - men Dineros API bør ikke være nogen stopklods :)

Tror skam også det kan gøres (Storebuddy gør det), skal bare lige have gennemskuet API'et til det - det er jo ikke ligefrem fordi dokumentationen er helt vild god :D

Share this post


Link to post
Share on other sites

Nej, dokumentationen er ikke videre pædagogisk :)

Måske nedenstående kan hjælpe dig i gang. Det er en lettere forsimplet udgave af den kode jeg i et andet projekt benytter til at oprette fakturaer i Dinero via API'en.

Helt grundlæggende skal man først oprette en ny kontakt i Dinero (eller have id'et på en eksisterende kontakt man vil benytte) før man kan oprette en faktura.

 

function dinero($token,$guid,$data,$type,$attempt){
    
    $data_string = json_encode($data);
    
    $header = array("Content-Type: application/json",
                    "Authorization: Bearer ".$token,
                    "Host: api.dinero.dk",
                    "Content-Length: ".strlen($data_string));

    $posttype = "POST";
    if($guid != ""){ $guid = "/".$guid; $posttype ="PUT"; }
            
    $string = "https://api.dinero.dk/v1/XXXXX/".$type.$guid;
    $curl = curl_init("https://api.dinero.dk/v1/XXXXX/".$type.$guid);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $posttype);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);

    $response = curl_exec($curl);
    if (!$response) {
        die("Connection Failure.\n");
    }
    
    $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    $headerSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
    curl_close($curl);

    $header = substr($response, 0, $headerSize);
    $body = substr($response, $headerSize);
    $result = json_decode($body);

   	return $result;
    }
}


function dinero_getToken(){

    $additionalHeaders = 'Authorization: Basic '.base64_encode('[USERNAME]:[PASSWORD]');
    
    $curl = curl_init("https://authz.dinero.dk/dineroapi/oauth/token");
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array($additionalHeaders, 'Content-Type: application/x-www-form-urlencoded'));
    curl_setopt($curl, CURLOPT_HEADER, true);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, "grant_type=password&scope=read write&username=[PASSWORD]&password=[PASSWORD]");

    $response = curl_exec($curl);
    if (!$response) {
        die("Connection Failure.\n");
    }

    $headerSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
    curl_close($curl);

    $header = substr($response, 0, $headerSize);
    $body = substr($response, $headerSize);
    $result = json_decode($body);
    
    if ( isset($result->error) ) {
        error_log($result->error_message);
        die($result->error_message."\n");
    } else {
        return $result->access_token;
    }
}


/* Create invoice lines */   

$invoice_productlines[$i] = array(
  "Description" => $product_data["name"],
  "Comments" => html_entity_decode($description),
  "BaseAmountValue" => $amount,
  "Quantity" => $product["value"],
  "AccountNumber" => 1000,
  "Unit" => "parts"
);

/* Get Dinero token */

$token = dinero_getToken();

/* Create or update contact */

$data = array(
  "Name" => $company,
  "Street" => $address,
  "ZipCode" => $zip,
  "City" => $city,
  "CountryKey" => "DK",
  "Phone" => $phone,
  "Email" => $email,
  "AttPerson" => $firstname." ".$lastname,
  "VatNumber" => $cvr,
  "EanNumber" => $ean,
  "IsPerson" => false
);

$dinero_contact = dinero($token,$dinero_id,$data,"contacts",1);

if(!isset($dinero_id) || $dinero_id == ""){
  $dinero_id = $dinero_contact->ContactGuid;
}

/* Create or update invoice */

$data = array(
  "ContactGuid" => $dinero_id,
  "Comment" => $order_comment,
  "Language" => $dinero_lang,
  "ProductLines" => $invoice_productlines
);

dinero($token,$dinero_invoiceid,$data,"invoices",1);

}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×