Integracijos diegimas

Pagrindiniai diegimo žingsniai :

  • Manorivile-Gateway įdiegimas. Instrukcija kaip tai atlikti pateikta internetiniai_moduliai/api_rest/manorivile-gateway.
  • Importo programos įrašymas;
  • Parametrų ir dokumentų skaitliukų aprašymas;
  • Programos parametrų priderinimas pagal kliento poreikį;
  • Importui reikalingo klavišo užprogramavimas.

Importo programos įrašymas.

Su UAB "Rivile" ar atstovais sudaroma sutartis dėl importo iš PrestaShop užprogramavimo.

Į RIV_GAMA katalogą įrašoma importo programa.

Programų atsisiuntimas (Konsultantams ir atstovams):

Parametrų ir dokumentų skaitliukų aprašymas.

Rivile GAMA sistemoje aprašomi ir užpildomi:

  • specialūs, importui reikalingi parametrai,
  • parametras "Padalinio kodas pagal nutylėjimą",
  • aprašomas pardavimo dokumentų skaitliukas,
  • aprašomas klientų kodų skaitliukas (jei bus kuriami klientai).

Parametrai ir skaitliukai gali būti priskirti tik konkrečiam vartotojui.

Vartotojo vardas, kuriuo leidžiamas importas, yra Rivilės API rakto simboliai iki taško.

Parametrų sąraše kurti naujų parametrų nereikia. Jie susikurs automatiškai, pirmą kartą paspaudus užprogramuotą importo klavišą.

Parametrų reikšmės gaunamos iš PrestaShop sistemos.

Instrukcija, kaip gaunamas PrestaShop API raktas pateikta: Prestashop_API_rakto_uzsakymas.pdf

Parametras Aprašymas
PRESTA_RIV Rivile API (web service) raktas
PRESTA_SITE PrestaShop parduotuvės adresas (pvz., https://parduotuve.lt)
PRESTA_USER PrestaShop prisijungimo duomenys (pvz., J3T46CMV1Q1H8A6VTTKTST8C88TATDJU)

Iš anksto nesukūrus parametrų ir pirmą kartą iškvietus importą, programa praneš, kad neaprašyti parametrai. Parametrai susikurs automatiškai, reikės aprašyti jų reikšmes.

Programos parametrų priderinimas pagal kliento poreikį.

Importo programoje naudojami tam tikri parametrai. Keičiant jų reikšmes, importo programą galima lanksčiai priderinti prie kliento poreikių.

Parametras Reikšmė pagal nutylėjimą Aprašymas
nuo_datos DATE()-30 Nurodoma nuo kada skaityti pardavimų informaciją (pvz: už paskutines 5 dienas arba už paskutines 30 dienų). Kai .F. - skaitoma viskas, t.y. neformuojamas datos filtravimas
kliento_kodas '' Kliento kodas, kai visi pardavimai registruojami vienam klientui
kliento_rysys 'PT001' Kliento sąskaitų ryšio kodas pagal nutylėjimą
kliento_mokesciai 'PVM' Kliento mokesčio kodas pagal nutylėjimą
mokesciai '' Mokesčių parinkimo sąlygos:"<VALIUTA>[-<ŠALIS>]:<MOKESČIO KODAS>,..." , pavyzdžiui: "USD:PVM_I,EUR:PVM,GBP:PVM_UK,EUR-LT:PVM_LT"
pristatymo_kodas 'PRISTATYMAS' Pristatymo paslaugos kodas
pristatymo_tipas 2 Tipas: 1-prekė, 2-paslauga, 3-kodas
nuolaidos .F. Ar skaičiuoti nuolaidos sumą (kainos ir sumos bus imamos prieš nuolaidą)
nuolaidos_kodas 'NUOLAIDA' Nuolaidos paslaugos kodas
nuolaidos_tipas 2 Tipas: 1-prekė, 2-paslauga, 3-kodas
apmokejimas '' Apmokėjimo sąlygos: "<MOKĖJIMO BŪDAS>[-<VALIUTA>]:<SĄSKAITA>,...", pavyzdžiui: "STRIPE:271,PAYPAL:273,PAYSERA:274,PAYSERA-USD:2711"
padaliniai '' Padalinys: ":,...", pavyzdžiui: "162:KAUNAS,160:VILNIUS"
field_padaliniai 'id_carrier' Laukas, pagal kurį parenkamas padalinys
op_tip 53 51 - Pardavimo važtaraštis, 53 - Pardavimo užsakymas
kaina_su_pvm .T. .T. - Kaina su PVM dokumente, .F. - Kaina be PVM dokumente
isaf_pozymis 0 Dokumentų registre: 0 - Formuoti, 1 - (+)Sąskaita, ...
suma_su_pvm .F. .T. - PVM suskaičiuojama Rivilės sistemoje, arba .F. - sumos ir PVM imamos taip, kaip pateikta el. parduotuvėje
suminis .F. .T. - Suminis dokumentas, neimportuojama detaliomis eilutėmis, arba .F. - importuojamos detalios eilutės
suminis_kodas 'PARDAVIMAS' Suminio dokumento pardavimo kodas
suminis_matas 'VNT' Mato vienetas
suminis_tipas 3 Tipas: 1-prekė, 2-paslauga, 3-kodas
preke_kliento 'PRESTASHOP' Kliento kodas, naudojamas kliento prekių aprašymuose prie prekių kortelės
api_url '/api/' API versijos nuoroda
api_header_auth .T. Ar formuoti Authorization header?
api_filtravimas 'filter[current_state]=%[]%&'+'date=1'+'&'+'sort=[id_asc]' Filtravimo sąlygos, kaip atrenkami dokumentai iš el. parduotuvės. Galima nusirodyti papildomus filtrus, pavyzdžiui: "filter[current_state]=4&filter[invoice_date]=[2021-01-01%2013:00:00,2021-02-28%2023:59:59]&sort=[id_asc]"
api_puslapio_limit 100 Gražinamų iš el. parduotuvės dokumentų kiekis vienoje užklausoje (max 100)
param_riv 'PRESTA_RIV' Parametro kodas, kuriame nurodomas prisijungimo prie Rivile API raktas
param_site 'PRESTA_SITE' Parametro kodas, kuriame nurodomas el. parduotuvės adresas
param_user 'PRESTA_USER' Parametro kodas, kuriame nurodomas prisijungimo prie elektroninės parduotuvės raktas
debug .F. jei .T. - išsaugomi originalūs xml failai tmp kataloge
field_sku 'product_reference' Nurodomas laukas iš kurio imamas prekės/paslaugos SKU kodas. Gali būti: "product_reference", "product_isbn", "product_ean13", "product_upc"
field_barcode 'product_ean13' Nurodomas laukas iš kurio imamas prekės/paslaugos barkodas
field_dok_nr '' Laukas, iš kurio imamas dokumento numeris (nenurodžius bus formuojamas pagal GAMOJE nurodytą dokumento skaitliuką) ("", "id" arba "invoice_number")
field_dok_id 'invoice_number' Laukas, kuris traktuojamas kaip dokumento ID – dokumento unikalumui užtikrinti (įkeliama į Dokumento registro lauką) ("id" arba "invoice_number")
field_order_nr 'invoice_number' Laukas, kuris traktuojamas kaip užsakymo numeris (naudojamas tik klaidos pranešimuose)
field_dok_data 'date_add' Laukas, iš kurio imama dokumento ir operacijos data
dok_nr_mask '' Nurodoma, kokią seriją pridėti prie invoice_number, nurodomas šablonas, pavyzdžiui: INV-99999
id_prefix '' Importuojant iš kelių parduotuvių, kiekviena privalo turėti savo id prefiksą, kuris užtikrina dokumentų unikalumą. Pavyzdžiui 'A','B','1' ar pan.
dok_prefix '' Dokumento numerio prefiksas
field_company_code 'company_code' Laukas, iš kurio imamas kliento kodas
field_company_vat 'company_vat_code' Laukas, iš kurio imamas kliento PVM mokėtojo kodas
supakavimo_kodas 'SUPAKAVIMAS' Supakavimo paslaugos kodas
supakavimo_tipas 2 Tipas: 1-prekė, 2-paslauga, 3-kodas

Jeigu pardavimai bus registruojami kiekvienam pirkėjui atskirai, tai klientas parenkamas pagal tokią logiką prioritetiškai:
Kliento kodas pagal nutylėjimą -> Parenkamas pagal trumpame pavadinime nurodytą ID -> Parenkamas pagal el. pašto adresą -> Kuriamas naujas.

Prekė/ paslauga/ pardavimo kodas parenkamas pagal tokią logiką prioritetiškai:
Barkodas -> Parenkama iš kliento, nurodyto parametre "preke_kliento", prekių sąrašo (jeigu prekių kortelėse yra suvestos klientų prekės) -> Parenkama pagal prekės kodas + pagrindinis mato vnt -> pardavimo kodas -> Jeigu nieko nerandama, gaunama klaida, ir neimportuojamas visas dokumentas.

Reikalavimai ir pastabos:

  • Veikia nuo Rivile GAMA 115 versijos.
  • Turi būti aprašytas pardavimo dokumentų skaitliukas.
  • Jeigu pardavimai bus registruojami kiekvienam pirkėjui atskirai, būtinai turi būti aprašytas skaitliukas klientų kodų kūrimui:

Servisas -> Administravimas -> Dokumentų skaitliukai

presta_1

  • Kad neimportuotų antrą kartą tų pačių klientų, klientų kortelėse turi būti suvesti bent jau el. pašto adresai - pagal juos bus identifikuojamas klientas.
  • Kad neimportuotų antrą kartą tų pačių pardavimo dokumentų, "Dokumentų registro" lauke įrašomas užsakymo numeris.
  • Startuojant pirmą kartą, rekomenduojama nurodyti parametre datą, nuo kurios dienos turi būti pradėti importuoti dokumentai ir už kokį intervalą jie turi būti imami. Pavyzdžiui, už 31 dieną, pradedant nuo 2020.09.01: imp.nuo_datos=MAX({^2020.09.01},date()-30)
  • Ištrynus pardavimo dokumentą, jį programa importuos dar kartą.
  • Ištrynus arba pakeitus pardavimo dokumente "Dokumentų registro" lauką, dokumentas bus importuojamas dar kartą.
  • Mokėjimo statusas bei mokėjimo būdas išsaugomi importuoto pardavimo dokumento aprašymo lauke.

Importui reikalingo klavišo užprogramavimas.

Pardavimo operacijų sąraše užprogramuojamas klavišas, kurį paspaudus bus vykdomas importas iš PrestaShop sistemos.

Pavyzdžiui:

imp=imp_prestashop_api() && Sukuriamas parametrų objektas
imp.nuo_datos=MAX({^2020.09.20},date()-7) && Nurodoma pradžios data, nuo kurios dienos startuojamas servisas
imp.suma_su_pvm=.F.
imp.kliento_kodas="PIRKEJAS"
imp.apmokejimas="STRIPE:271,PAYPAL:273,PAYSERA:274,PAYSERA-USD:2711"
imp.Init() && Vykdomas importas