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š Shopify 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š Shopify sistemos.

Instrukcija, kaip gaunamas Shopify API raktas pateikta: Shopify_API_rakto_uzsakymas.pdf

Parametras Aprašymas
SHOPIFY_RIV Rivile API (web service) raktas
SHOPIFY_SITE Shopify parduotuvės adresas (pvz., https://parduotuve.myshopify.com)
SHOPIFY_USER Shopify prisijungimo duomenys (pvz.,1a8d7259b1558b32deb25e394be5e333 ir shppa_cb73abcb1000b47d96b41a063e04408)

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ų)
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ą
kliento_info '' Kliento papildoma informacija kuriant kliento kortelę. Pavyzdžiui: "<N08_KODAS_GS>WEB</N08_KODAS_GS>"
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"
apmokejimo_tipas 'paid' Apmokėjimo tipas: "< tipas1>,...", pavyzdžiui: "paid,prepaid"
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
pvm_salis '' Šalių kodai, kuriuose reikia išskirti PVM mokestį atskiru pardavimo kodu: "<ŠALIS>,...". Pavyzdžiui "CA,FR"
pvm_salis_kodai '' Mokesčiai kuriuos reiktų išskirti. Pavyzdžiui, Kanadoje taikomi GST ir PST, tuomet nurodoma: "<MOKESČIO PAVADINIMAS>[-<ŠALIS>]:<PARDAVIMO KODAS>,...", pvz.: "GST:CA_PVM5,PST-CA:CA_PVM7"
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 'SHOPIFY' Kliento kodas, naudojamas kliento prekių aprašymuose prie prekių kortelės
api_url '/admin/api/2020-07/' API versijos nuoroda
api_filtravimas 'status=any' Filtravimo sąlygos, kaip atrenkami dokumentai iš el. parduotuvės
api_puslapio_limit 100 Gražinamų iš el. parduotuvės dokumentų kiekis vienoje užklausoje (max 100)
param_riv 'SHOPIFY_RIV ' Parametro kodas, kuriame nurodomas prisijungimo prie Rivile API raktas
param_site 'SHOPIFY_SITE' Parametro kodas, kuriame nurodomas el. parduotuvės adresas
param_user 'SHOPIFY_USER' Parametro kodas, kuriame nurodomas prisijungimo prie elektroninės parduotuvės vartotojas ir slaptažodis
file .F. jei nurodytas failas - importuojama iš failo. Galima nurodyti: imp.file=GETFILE("JSON")
debug .F. jei .T. - išsaugomi originalūs json failai tmp kataloge
i06_dok_nr '' Dokumento numerio laukas (užsakymo nr: 'order_number'). Nenurodžius - priskiriamas iš skaitliuko.
field_dok_data 'created_at' Dokumento data. Gali būti: 'created_at', 'closed_at', 'processed_at', 'fulfillments[1].created_at', 'fulfillments[1].updated_at' ar pan.
field_sku 'sku' Nurodomas laukas, iš kurio imamas prekės/paslaugos SKU kodas
field_barcode 'barcode' Nurodomas laukas, iš kurio imamas prekės/paslaugos barkodas
dok_nr_mask '' Nurodoma, kokią seriją pridėti prie dokumento numerio, 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
refund .T. Pašalinti grąžintą kiekį / eilutes

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

shopi_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š Shopify sistemos.

Pavyzdžiui:

imp=imp_shopify_api() && Sukuriamas parametrų objektas
imp.nuo_datos=date()-7
imp.suma_su_pvm=.F.
imp.kliento_kodas="PIRKEJAS"
imp.apmokejimas="STRIPE:271,PAYPAL:273,PAYSERA:274,PAYSERA-USD:2711"
imp.Init() && Vykdomas importas
imp=imp_shopify_api() && Sukuriamas parametrų objektas
imp.nuo_datos=date()-7
imp.suma_su_pvm=.F.
imp.kliento_kodas="PIRKEJAS"
imp.apmokejimas="STRIPE:271,PAYPAL:273,PAYSERA:274,PAYSERA-USD:2711"
imp.pvm_salis="CA"
imp.pvm_salis_kodai="GST:CA_PVM5,PST:CA_PVM7"
imp.kliento_info="<N08_KODAS_GS>WEB</N08_KODAS_GS>"
imp.i06_dok_nr="order_number"
imp.field_dok_data='fulfillments[1].updated_at'
imp.Init() && Vykdomas importas