---
title: "Integracijos diegimas"
url: "https://gidas.rivile.lt/integraciniai_sprendimai/el_parduotuves/shopify/integracijos_diegimas"
updated: "2026-05-07"
parent: "https://gidas.rivile.lt/integraciniai_sprendimai/el_parduotuves/shopify.md"
---

# Integracijos diegimas

> **Įspėjimas:** Atnaujintai Shopify integracijai reikalinga Rivile GAMA 125 versija ir Chilkat 11.2.0  versija (instaliacinės yra RIV_GAMA kataloge).

Pagrindiniai diegimo žingsniai :

- Manorivile-Gateway įdiegimas. Instrukcija kaip tai atlikti pateikta [internetiniai_moduliai/api_rest/manorivile-gateway](https://gidas.rivile.lt/internetiniai_moduliai/api_rest.md#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): ](https://manorivile.sharepoint.com/:u:/r/sites/rivilefiles/Shared%20Documents/Downloads/Rivile%20EPI/imp_shopify_api-latest.zip?download=1)

#### 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.

> **Įspėjimas:**  Vartotojo vardas, kuriuo leidžiamas importas, yra Rivilės API rakto simboliai iki taško.

> **Dėmesio:** 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.

> **Įspėjimas:** Instrukcija, kaip gaunamas Shopify API raktas pateikta:   **[Shopify_API_rakto_uzsakymas.pdf ](https://gidas.rivile.lt/user/pages/142.integraciniai_sprendimai/07.El_parduotuves/13.Shopify/20.Integracijos_diegimas/Shopify_API_rakto_uzsakymas_260507.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 shpss_cb73abcb1000b47d96b41a063e04408) |
| **SHOPIFY_TOKE** | Shopify token. Šio parametro įvesti nereikia, **token** susigeneruos automatiškai, paspaudus importo mygtuką |

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.

Parametras " **SHOPIFY_USER**" turi dvi reikšmes: "**Client ID**" ir "**Secret**":

![shopi_6](https://gidas.rivile.lt/user/pages/142.integraciniai_sprendimai/07.El_parduotuves/13.Shopify/20.Integracijos_diegimas/shopi_6.png)

"**Client ID**" ir "**Secret**" yra  matomi "**dev dashboard**" prie "**Apps -> Settings**"

![shopi_5a](https://gidas.rivile.lt/user/pages/142.integraciniai_sprendimai/07.El_parduotuves/13.Shopify/20.Integracijos_diegimas/shopi_5a.png)



#### 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/2023-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 "client ID" ir "Sercret" |
| **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.                      | Formuoti grąžinimo operacijas ar ne                          |
| **dok_nr_mask_gr**     | ''                       | Nurodoma, kokią seriją pridėti prie grąžinamo dokumento numerio, nurodomas šablonas, pavyzdžiui: GR-999999 |
| **dok_prefix_gr**      | 'G'                      | Grąžinamo dokumento numerio prefiksas                        |
| **isaf_pozymis_gr**    | 0                        | Dokumentų registre (grąžinimų atveju): 0 - Formuoti, 1 - (+)Sąskaita, ... |
| **param_token**        | 'SHOPIFY_TOKE'           | Parametro kodas, kuriame bus saugomas shopify API token      |
| **suminiai_kodai**     | ''                       | Suminių kodai pagal PVM procentą. Sąlygos: `"<PVM PROCENTAS>:<KODAS>,..."`, pvz.: `"5:5005,9:5009,21:5000"` |

> **Dėmesio:** Jeigu pardavimai bus registruojami kiekvienam pirkėjui atskirai, tai klientas parenkamas pagal tokią logiką prioritetiškai:<br/>Kliento kodas pagal nutylėjimą -\> Parenkamas pagal el. pašto adresą -\> Kuriamas naujas.

> **Dėmesio:** Prekė/ paslauga/ pardavimo kodas parenkamas pagal tokią logiką prioritetiškai: <br/>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 119 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](https://gidas.rivile.lt/user/pages/142.integraciniai_sprendimai/07.El_parduotuves/13.Shopify/20.Integracijos_diegimas/shopi_1.png)

- 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_v2() && 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_v2() && 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
```
