A sERPában levő termék adatok, és készletadatok átadása Shoprenter felé (REST) API-n keresztül, amikor a termék törzs, ár, vagy készlet változás történik az adatokban, valamint rendelés (fej+tétel) és a rendelésen levő ügyfél átvétele.
Egy adatbázisban több Shoprenter kapcsolat használható. (A rendelésen beérkező StoreName mezőből vizsgálja a program, hogy melyik szerint dolgozzuk fel a rendelést, a paraméterben megadott Webáruház Internet URL mező szerint.)
Fontos: A Shoprenter csak GOLD csomag vásárlása esetén alkalmas az általános API kapcsolatra.
https://www.shoprenter.hu/api/doc
https://support.shoprenter.hu/hc/hu/articles/215106158-ShopRenter-API
Webhook https://support.shoprenter.hu/hc/hu/articles/215106408-Automatizmusok
A paraméterek a Webáruház paraméter funkcióban adhatók meg, pl. termékek köre, használt ártábla, raktár, vevőrendelés sorozat, amelyre jönnek a vevőrendelések. (ShopRenter típust kell választani)
(Ehhez a típushoz nem szükséges Webáruház kapcsolat szolgáltatás (webservice) telepítése).
A requestek maximális száma 3/jelentkezés/üzlet/másodperc. A határérték túllépése 429-es hibakódot eredményez. Ez percenként 180 kérést jelent. (de lehetséges, hogy már 120 kérés esetén is)
Amikor átlépjük a küldései limitet, akkor az alábbi hibaüzentet kapjuk: {"error":429,"message":"Request Limit Reached"} Ez bekerül a Rest naplóba is. Ha ilyen üzenet kapunk, akkor az adatküldéssel újra próbálkozunk háromszor, várakozással. (streszteszeléses küldés esetén is a második üzenet már tudta fogadni a webshop) Ezt abban az esetben tapasztalhatjuk, ha például egy percen belül kb. 100 készletváltozás történik termékenként ami webshopon is átadásra kerül.
A Shoprenter admin felületén:
Beállítások / Integrációk / API beállítások menüpont
Engedélyezni kell a státuszt, kell legyen felhasználó és jelszó, valamint kell legyen API URL, amelyet a sERPa webáruház paraméterben kell megadni (Általános fül).
Nem baj, hogy a ShopRenter oldalán az API URL http-vel kezdődik, a sERPában írjuk https:// formában.
Beállítások\Bolt beállítások\Adó és osztályok
Az itt felvett vagy alapból megkapott kulcsoknak meg kell nézni, szerkesztés gombbal tax_class_id-t (tipikusan: 0 áfa esetén 11; 27 áfa esetén 10 - pirossal bekeretezett mezőben látható)
amelyet a sERPa webáruház paraméterben megadni(További adatok fül – Áfa grid).
Beállítások\Bolt beállítások\ Nyelv beállítások
Az itt felvett vagy alapból megkapott kulcsoknak meg kell nézni, szerkesztés gombbal language_id-t (tipikusan: magyar esetén 1; angol esetén 3 - pirossal bekeretezett mezőben látható)
amelyett a sERPa webáruház paraméterben megadni(További adatok fül – Nyelv).
ShopRenter használata esetén a Webáruház frissítés funkció nem szabad használni, nem figyeljük.
Az inicializáláshoz szükséges eljárások futtatása után nincs további teendő (persze, ha minden sikeres és megfelelően működik a kapcsolat).
A webáruház kapcsolat adatküldés és adatfogadás üzeneteit a sERPában a Rest naplóba naplózzuk.
A naplóbejegyzések típusai "ShopRenter" kezdetűek.
Annak érdekében, hogy a napló ne duzzadjon nagyon nagy méretűre, mindenképp ajánlott beállítani egy időzített törlést erre a naplóra. Ehhez egy Rendszer - Naplók törlése típusú Automatikus üzenet típus felvétele szükséges.
Mivel nem valószínű, hogy a webáruház - sERPa közötti esetleges hibás adatcserét nem vesszük észre 1 hónapon belül, ezért az üzenetben a Visszamenőleges napok száma mezőben 30-60 napot érdemes megadni. Ennyi idő alatt még a legtöbb esetben nem halmozódik fel károsan nagy mennyiségű naplófájl, amely az adatbázis méretét nagyon megnövelné.
Amennyiben van már működő shoprenter webáruházunk, és szeretnék összekapcsolni a sERPa-val, akkor a webáruház felparaméterezése némileg máshogy történik.
A webáruház paramétert azonosan be kell állítani, ahogyan azt amúgy is meg kell tenni, de nem szabad bekacspolni (használható pipa hamis kell legyen).
Ezek előtt vagy után össze kell egyeztetni a Shoprenterben fent lévő termékek, termék kategóriák, kategória tételek (SR-ben egyedi tulajdonság), termékfa (SR-ben Kategória) adatokat. Amennyiben a két helyen ezek megegyeznek, akkor lehet a szinkronizációt elkezdeni.
Első lépésként használhatóra állítjuk a Webáruház paramétert (ne módosítsunk semmit, ami kikerülne a webáruházba,)
Utána három eljárást kell használnunk.
1. Futtatni kell a EXEC WEB.ShopRenter2sERPaTermekKategoriaInit @WebaruhazPar_ID=1, @Init=1 eljárást, mely eredményében visszakapjuk azokat a scripteket, melyeket maximum 10-esével futtatva szinkronizáljuk a két rendszer között az adatokat. Fontos, hogy a kategória névnek és tételek nevének egyezni kell a Shoprenterben és a sERPaban.
2. Futtatni kell a EXEC WEB.ShopRenter2sERPaTermekfaInit @WebaruhazPar_ID=1, @Init=1 eljárást, mely eredményáben megtaláljuk azokat a scripteket melyekkel össze tudjuk fésülni a két rendszer adatait. Itt is csak maximum 10 hívást indítsunk egyszerre, mert a Shoprenter több indítás esetén hibára fut.
3. Utolsónak futtassunk a EXEC WEB.ShopRenter2sERPaTermekInit @WebaruhazPar_ID=1, @Init=2 eljárást, ez a Termékeket fésüli össze. Az eredményben szintén sciptek vannak melyeket 10esével szabad lefuttatni.
+1. Valamint akciós ár és készletre is futtathatunk.
EXEC WEB.ShopRenter_AkciosAr @Init = 1
EXEC WEB.ShopRenter_Keszlet @Init = 1
Marketing\ Automatizmusok
Itt fel kell venni egy „Webhook” cselekményt, amely azért felel, hogy a webshopból átküldi a sERPa felé a rendelést, amelyhez ASPB2B-t kell telepíteni az IIS-hez, de:
A ShopRenter hitelesítés nélkül hív vissza, ezért a topicon leírttal ellentétben anonymous access engedélyezésével kell telepíteni.
A ConnString.inc-ben sql-es hitelesítésű felhasználót (pl ShopRenter) kell megadni, akinek csak a WEB.AdatCsere eljárás futtatására van joga.
létrehozni ezt a felhasználót:
USE master
GO
CREATE LOGIN ShopRenter WITH PASSWORD = 'HasználtErősjelszó1793', CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF
ConnSting.inc:
Integrated Security=SSPI; helyett
<%
Dim ConnString
'define the connection string, specify database driver
ConnString="Provider=SQLNCLI11;Data Source=SQL kiszolgáló;Initial Catalog=Adatbázisnév;UID=ShopRenter; Password=HasználtErősjelszó1793;"
%>
jogosultságadás a Web.Adatcsere futattásához:
USE Adatbázisnév
GO
GRANT EXECUTE ON WEB.AdatCsere TO ShopRenter
Miután lefuttattuk, érdemes lefuttatni az alábbi scriptet, ennek nulla sort kell visszaadni, különben az ownership láncban szakadás van, ami okozhat olyan problémát, hogy a rendelés nem jön be a ShopRenter oldalról.
SELECT *
FROM
sys.schemas s
WHERE
schema_id BETWEEN 5 AND 16383 AND principal_id <> 1
AND EXISTS(SELECT 1 FROM sys.tables t WHERE t.schema_id = s.schema_id)
A paraméterekben az OrderPostURL-ben kell a címet megadni. pl.: https://www.cegnev.hu/bolt/api/ShopRenterOrder
Az URL vége kötelezően /api/ShopRenterOrder
sERPa-ból kell létrehozni a webhookot a megfelelő eljárás kézi hívásával:
EXEC WEB.ShopRenter_WebHookInit
A ShopRenter admin felületén Marketing/Automatizmusok alatt találjuk meg a létrehozott WebHook-ot.
Címzett: pl. https://iroda.progen.hu/ShopRenter/api/ShopRenter
Teszt üzenet küldése esetén a hibanaplóba/Web adatcsere naplóba nézzük meg, hogy jött-e valamilyen kérés (hibás eljárás: getOrder), mivel itt csak egy teszt hívás készül, amelyből nem lehet/nem szabad rendelést generálni. (ha már van rendelés akkor az utolsót küldi be újra)
Lehetőség van a paraméterből egy nyomógomb segítségével egy megadott dátumtartományban lekérdezni a rendeléseket, amelyek hivatkozási szám szerint nem szerepelnek a sERPaban azokat importáljuk. A dátumtartomány kezdő dátuma nem lehet régebbi a tárgynapot megelőző 5 napnál.
A lekérdezés és importálás eredményét megmutatjuk egy táblázatban, ezáltal láthatjuk, mely rendeléseket sikerült importálni, illetve megmutatjuk azt is, hogy melyeket nem sikerült abból az okból kifolyólag, hogy korábban már importálva lettek.
Lehetőség van a paraméterben beállítani, hogy rendelések sERPában történő módosítását kiküldjük-e a Shoprenter felé. Ehhez a paraméterben a Rendelések szinkronizálása mező értékét kell igazra állítani.
Ebben az esetben, ha egy olyan rendelést (mely a Shoprenterből érkezett) módosítunk, mentéskor az adott rendelést letöltjük a Shoprenterből ismét, majd a változott adatokkal kiküldjük és ezzel módosul a webáruházban is a rendelés.
Rendelésen módosításkor az alábbi változásokat küldjük ki: új tételek felvétele, tétel törlése, tétel mennyiség, tétel ár módosítás, szállítási mód, fizetési mód (ezek költségeinek) módosítása.
Módosításkor a felhasználónak ellenőrizni kell, hogy a termék ár, vagy mennyiség módosítása miatti végösszeg változás befolyásolja-e a szállítási költséget, amennyiben valamilyen sávos szabályozása van, illetve, hogy a hűségpont rendszer használata esetén módosul-e a vásárló hűségpontja.
Ha a rendelés válaszaiban elutasítás vagy visszamondást végzünk (Vevő rendelés Válasz fül), akkor a Shoprenterben lemódosítjuk a tétel mennyiségét az éppen aktuális rendelt mennyiségre (mivel a Shoprenterben kevesebb lehetőség van az állapotkezelésre), így a sERPában levő rendelt mennyiség megegyezik majd a weben láthatóval. (Pl. rendeltek 20 db terméket, de egyet visszamondtunk és kettőt elutasítottunk, akkor a webshopban 17 db lesz a mennyiség, így a két rendszerben egyforma mennyiség látható).
A vevő rendelésre automatikusan felvett kupon / kedvezménytermék tételeket, fuvarköltséget, utánvételi díjat stb. a felhasználónak ilyen esetben is kézzel kell módosítania, azt nem módosítjuk a vevő rendelés válasz felvételekor! Hiszen a sERPa nem tudhatja, hogy a vásárló elesik-e esetleg egy 5000 Ft-os kupontól amiatt, hogy 10 db termékből 8-at visszamond.
Fontos, hogy a pl. a fizetési mód törzs egyezzen, mert kiküldéskor ha a Shoprenter ismeretlent kap akkor kiüresíti az adatot a Shoprenter felületén.
Lehetőség van a bankkártyás fizetések állapotának nyomon követésére megrendeléskor. A sikeres és sikertelen fizetések eltárolásra kerülnek. A vevő rendelésben az általános lapfülön található, további adat táblázatban mentjük le az éppen aktuális fizetési állapotot. A működéshez szükséges a webáruház paraméterben a kifizetési státuszt fizetési állapotra állítani. A Shoprenter admin, Automatizmusok felületén pedig beállítani a Rendelés állapot váltás webhookot.
Címzett, pl: https://iroda.progen.hu/ShopRenter/api/ShopRenterOrderStatus
Formátum: XML
Elküldendő adatok:
order_storeName
order_innerId
orderHistory_status
order_History_statusText
orderHistory_comment
Lehetőség van beállítani utánvételt, amit az XML-ben át is ad a ShopRenter a sERPa-nak.
1. A ShopRenter admin oldalán, a Beállítások/Rendelési beállítások/Fizetési módok részen tudjuk beállítani az utánvétel díját, a Fizetési illeték és az Adókulcs mezők töltésével.
2. sERPa-ban a Webáruház paraméter/További adatok lapfülén fel kell venni egy utánvétel fizetési módot és a gyűjtőt, a Fizetési módok táblázatban.
a.) Ha még nem szerepel Utánvét vagy Utánvétel nevű fizetési mód a programban, akkor a Fizetési módok funkcióban kell létrehozni.
b.) Gyűjtő: a Webshop fizetési mód azonosítója.ShopRenter admin felületén megtalálható fizetési mód beállításoknál lévő nevet kell pontosan megadni.
3. A webáruház paraméterben található egy Utánvétel szolgáltatás nevű táblázat, itt a fizetési módot és egy utánvétel szolgáltatást kell kiválasztani.
a.) A 2-es pontban felvett Utánvétel nevű fizetési módot válasszuk ki.
b.) A Termék funkcióban fel kell venni egy szolgáltatást, Bruttó lista árral és Utánvétel elnevezéssel.
Utávétel az XML-ben:
<paymentMethodName>Utánvétel</paymentMethodName>
<paymentNetPrice>0</paymentNetPrice>
<paymentGrossPrice>0</paymentGrossPrice>
A felvett akciós ár csak a telephelyben megadottaknak megfelelő webáruházba szinkronizálódik fel.
1.)A Webáruház paraméter / Általános fülén tölteni kell a Saját adat telephely név mezőt.
2.)Az Akciós ár funkció / Érvényességi kör táblázatban tölteni kell a Saját adat és Telephely mezőket, Termékek táblázatban pedig rögzíteni a termékek akciós árát.
A Webáruház paraméter és az Akciós ár funkcióban a Saját adatnak meg kell egyeznie.
Amennyiben nem adjuk meg a Webáruház paraméter / Általános fül / Saját adat telephely név mezőt és az Akciós ár funkcióban a Saját adat és Telephely mezőket, úgy a felvett Akciós árak, a korábban megszokott módon kerülnek átadásra a webáruháznak.
Ha az Akciós ár funkcióban nincs megadva a saját adat mező, akkor a normál saját adathoz fog tartozni és így kerül felküldésre a webáruházhoz.
Az akciós árak közül csak azokat küldjük fel a webáruházba, ahol az Akciós árban az Ügyfél és az Ügyfélkategória mező üres.
A WebaruhazPar táblában alapértelmezetten a TermekfaKuldes és TermekBesorolasKuldes mező értéke is 1, a kikapcsoláshoz át kell állítani 0-ra.
UPDATE WebaruhazPar SET TermekBesorolasKuldes = 0 WHERE WebaruhazPar_ID = 0
Hűségpont számítása = SUM(OrderProduct.price * OrderProduct.taxRate) + order.copunGrossPrice + order.shippingGrossPrice + order.paymentGrossPrice - order.totalGross
Csak akkor lesz hűségpont, ha az így kapott összeg > 0
1. Termékkategória + Tétel:
Ha van az adatbázisban Shoprenter webáruház paraméter (akár használható=0 is), akkor az új verzióra frissítéssel együtt felveszünk az adatbázisba egy új termékkategóriát és négy tételt.
Kategórianév: Shoprenter Rendelhető állapot
Tétel kód/név:
1 / Igen
0 / Nem
3 / Ajánlatkérés
4 / Megrendelem
Ha az adatbázisban több Shoprenter paraméter van (akár használható, akár nem), akkor a Kategórianév így nézzen ki: "Shoprenter Olcsodiszkont Rendelhető állapot", ahol az Olcsodiszkont a webáruház paraméter neve.
2. Shoprenter webáruház paraméter:
Shoprenter webáruház paraméterben a Termék sáv végére, Státusz kategória + besorolás alá:
Termék kategória legördülő mező: "Rendelhető kategória"
Alatta Rendelhető kategória besorolás, ami csak akkor jelenik meg, ha a Rendelhető kategória nem üres:
- termékkategória kód (Kód)
- termékkategória név (Név)
- rendelhető felsorolt típus (Rendelhető)
3. Működés:
Korábbi működés szerint a termék üzenetben az "orderable", azaz a Shoprenterben a "Rendelhető termék" mező értékét a terméktörzsben a "Használható beszerzéskor" mező értéke alapján határoztuk meg. Ha az 1, akkor orderable=1, ha 0, akkor orderable=0. (A Használható eladáskor pipának a Shoprenterben a status, azaz az Állapot mezőre van hatása.)
Ha a webáruház paraméterben a Rendelhető termék kategória ki van töltve ÉS a paraméterben a kategória tételhez hozzá van rendelve a felsoroltból egy érték ÉS az adott termék be van sorolva ennek a kategóriának valamely tételébe, akkor a termékkategória tételek értékétt (0,1,3,4) adjuk át az orderable mezőben, egyébként orderable = Használható beszerzéskor.
Mivel korábban a Termék "Használható beszerzéskor" mező értékétől függött az orderable, ezért ha az adott terméknél fel van véve az itt megjelölt termékkategória, akkor annak értéke írja felül a Használható beszerzéskor mezőből jövő értéket. (Tehát a kategória az erősebb.)
A Shoprenter admin felületén a Rendelhető termék mező kerül kitöltésre:
- Shoprenter API specifikáció:
https://doc.shoprenter.hu/api/product_extend.html#properties
1. Ha a Termék funkció / Általános/ Termékfa táblázatból törlünk egy termékfalevelet, bejegyzésre kerül a Rest naplóban (Típus: ShopRenter-Termék). A webshopban ezután törlődik az adott kategória, kereséskor nem kapunk találatot.
2. Termékfa funkcióban kivesszük a Használható pipát egy webre szinkronizált termékfalevélből, bejegyzésre kerül a Rest naplóban (Típus: ShopRenter-Termékfa). A webshopban ezután a kategóriára keresve, nem kapunk találatot.
A rendelés felvételekor,ha van a rendelésen DRS adat(productAddon részbe), akkor a tételek összegének számításakor az TE-vel(dbo.VisszavaltasiDijErtek) határozzuk meg, hogy a felvett tételek ára mennyivel növekedne majd a rendelés lezárásakor, ha hozzágeneráljuk a visszaváltási díj tételeket is.
Csak akkor lesz hűségpont, ha az így kapott összeg > 1.
Ha rendellenességet találunk a kapott rendelésen, akkor se akadályozzuk meg a rendelés felvételét, de a naplóba(WEB adatcsere napló) bekerül mint figyelmeztetés.
Például:
1. <error>Hiányzó visszaváltási díj a rendelésen! [WDS000005672] [Kód: SZOLG18, Nettó egységár: 50, Mennyiség: 15, Áfakulcs: , Bruttó érték: 750]</error>
2. <error>Nem tervezett visszaváltási díj a rendelésen! [WDS000005672] [sku: SZOLG18, price: 50, quantity: 15, taxRate: , total: 750]</error>
3. <error>A tételek összege és a rendelés végösszege nem egyezik! [WDS000005672] (negatív hűségpont)</error>
3.0.101-es verzió előtt javasoljuk, hogy az eljárásokat @Init = 2-vel hívják meg és az eredményben megkapott oszlopot másolják át egy másik Query-be, majd azt futtassák le.
!. Minimum egy termékhez meg kell adni termékbesorolás és kategória meg kell legyen adva a paraméterbe, hogy létre jöjjön a Shoprenter-be.
1.EXEC WEB.ShopRenter_TermekKategoria @Init = 1 --(ekkor minden termékkategória kiküldésre kerül, amennyiben a kiküldésre kerülő kategóriatétel leírása nem üres, akkor a tétel neve helyett azt adjuk át a webshopnak)
Sikeres feltöltés esetén a kategóriák itt jelennek meg:
sERPa Termék típus törlése esetén a kapcsolat megszakad, nem szabad törölni a webfelületről!
2.EXEC WEB.ShopRenter_Termekfa @Init = 1 --(ekkor a teljes termékfa struktúra kiküldésre kerül)
Képet csak akkor törlünk kint a weboldalon, ha a sERPa webáruház paraméterben a TemekKep = 1 vagy 2 és termék képe törölve lett.
tehát @init = 1 esetén nem törülünk semmit, semmikor.
Sikeres feltöltés esetén a termékfa levelei itt jelennek meg:
3.EXEC WEB.ShopRenter_Termek @Init = 1 --(minden terméket kiküld egymás után, amennyiben a paraméterben meg van adva, akkor utána lefut a WEB.ShopRenter_TovabbiTermekHivatkozas, mely a kiegészítő és/vagy kapcsolódó termék információkat adja át a webáruháznak.)
4.EXEC WEB.ShopRenter_AkciosAr @Init = 1 --(Termékekhez felveszi az akciós árakat)
5.EXEC WEB.ShopRenter_Keszlet @Init = 1 --(Termékekhez felveszi a paraméterben megadott raktár készletét)
Új termék első feltöltésekor a készlet adatok is átadásra kerülnek, ha a feltöltés előtt a termék már létezett és rendelkezett készlettel.
6. DRS visszaváltási díjak felküldése és összekapcsolás az italtermékekkel
A kezdeti adatküldést ezeknél az információknál is van lehetőség scripttel elindítani, ami felküldi az összes visszaváltási díj terméket (Product Addon) és utána a már felküldött italtermékekhez kapcsolatot alakít ki (Product Addon Product Relation).
EXEC web.ShopRenter_ProductAddonRelation @Debug = 1, @Init = 2
A következő irányok (Resources) kerülnek megvalósításra:
Termék adatok átadása sERPa-ból, termék felvétel, módosítás, esetén, fordítással. Termék törlés nem kerül átküldésre. Termékfa és termékbesorolások amelyek a webáruház paraméterben meg vannak adva, valamint ügyfélfüggetlen akciós ár.
Termék törlés nincs, ha paraméterben megadott besorolásból kivesszük a terméket, attól még nem kerül le a webáruházból, csak a szinkronja kerül "kikapcsolásra". Ha nem akarjuk, hogy a termék megjelenjen akkor a Használható eladáskor legyen hamis, ekkor nem lesz látható a webáruházba. (admin felületen továbbra is ott van)
Készlet feltöltés: Új termék első feltöltésekor a készlet adatok is átadásra kerülnek, amennyiben a feltöltés előtt a termék már létezett és rendelkezett készlettel.
A Termék / További adatok fülén rendelkezésre álló bruttó tömeg adat felküldésre kerül a ShopRenterbe.
Mi mindig kilogramban kifejezve küldjük a tömeget, a Shoprenter oldalon is így kell paraméterezni a termékeket.
Megjegyzés: a Shoprenter a dokumentációja szerint sehol nem jeleníti meg a termék adatlapján a vásárlók számára a tömeget, csak a súly szerinti szállítási módnál veszi figyelembe.
Termék: Product, Product Class, Product Description, Product Related Product, Product Special
Termékkategória: Product Class, Product Class Attribute Relations, List Attribute, List Attribute Widget, List Attribute Value, List Attribute Value Description, Attribute Widget Description
sERPa> ShopRenter
sERPa
Automatikus
Termék FMT
Mező típus és hossz nem ismert.
Srsz. |
Interface mező név |
Mezőtíp /Köt/ Mhossz |
sERPa mező |
Algoritmus |
Shoprenter API információ |
|
id |
|
|
|
|
|
sku |
K |
Termek.Kod |
|
|
|
modelNumber |
|
TermekIdegenAzonosito.Kod |
Paraméterben megadott azonosító típushoz tartozó idegen azonosító kódját adjuk át. |
|
|
gtin |
|
TermekIdegenAzonositoVonalkod.Vonalkod |
TermekIdegenAzonosito.TermekIdegenAzonosito_ID = TermekIdegenAzonositoVonalkod.TermekIdegenAzonosito_ID |
|
|
orderable |
|
1 |
Használható beszerzéskor = 1 esetén Rendelhető, egyébként Nem rendelhető |
Admin felület / Adatok fül / Rendelhető termék 1 - Igen 0 - Nem 3 - Ajánlatkérés 4 - Megrendelem |
|
price |
|
B2BA.Ar |
Ártábla nettó ár |
|
|
stock1 |
|
B2BAK. |
Paraméterben megadott raktár szabad készlete. Alábontás és rhely szűrés nélkül. Ha több van megadva akkor SUM |
|
|
stock2 |
|
|
Paraméterben megadott raktár szabad készlete. Alábontás és rhely szűrés nélkül. Ha több van megadva akkor SUM |
|
|
stock3 |
|
|
Paraméterben megadott raktár szabad készlete. Alábontás és rhely szűrés nélkül. Ha több van megadva akkor SUM |
|
|
stock4 |
|
|
Paraméterben megadott raktár szabad készlete. Alábontás és rhely szűrés nélkül. Ha több van megadva akkor SUM |
|
|
mainPicture |
|
TermekKep.Kep |
Termék honlap nagy képe, sorrend szerint első |
|
|
imageAlt |
|
TermekKep.Nev |
Termék honlap nagy neve, sorrend szerint első |
|
|
taxClass |
|
|
Mai napon érvényes áfa kulcsa |
|
|
status |
|
|
Használható eladáskor = 1 esetén Engedélyezett Használható eladáskor = 0 esetén Letiltott Használható eladáskor = 0 ÉS Használható beszerzéskor = 0 esetén Kifutott |
Admin felület / Adatok fül / Állapot 1 = Engedélyezett 0 = Letiltott 2 = Kifutott |
|
weight |
|
Termek.BruttoTomeg |
Termék / További adatok fülén rendelkezésre álló bruttó tömeg. |
|
Srsz. |
Interface mező név |
Mezőtíp /Köt/ Mhossz |
sERPa mező |
Algoritmus |
Shoprenter API információ |
|
id |
|
|
|
|
|
name |
|
Termek.Nev |
|
|
|
description |
|
TermekLeiras Leiras |
Magyar leírás. |
|
Srsz. |
Interface mező név |
Mezőtíp /Köt/ Mhossz |
sERPa mező |
Algoritmus |
Shoprenter API információ |
|
id |
|
|
|
|
|
shortDescription |
|
Termek.Nev |
|
|
|
description |
|
TermekLeiras Leiras |
<>magyar leírás. |
|
|
language |
|
|
Nyelv |
|
|
shortDescription |
|
TermekLeiras RovidLeiras |
|
|
Srsz. |
Interface mező név |
Mezőtíp /Köt/ Mhossz |
sERPa mező |
Algoritmus |
Shoprenter API információ |
|
id |
|
AkciosAr_ID |
Meg kell nézni, hogy az Ugyfel_ID NULL kell legyen |
|
|
price |
|
Ar |
Akciós ár, ahol nincs ügyfél, és nagyobb mint a mai nap |
|
|
dateFrom |
|
DatumTol |
akció kezdete |
|
|
dateTo |
|
DatumIg |
akció vége |
|
|
customerGroup |
|
- |
|
|
Srsz. |
Interface mező név |
Mezőtíp /Köt/ Mhossz |
sERPa mező |
Algoritmus |
Shoprenter API információ |
|
id |
|
|
|
|
|
name |
|
Kategoria.Nev |
kategória név |
|
|
language |
|
Nyelvfüggően |
|
|
Srsz. |
Interface mező név |
Mezőtíp /Köt/ Mhossz |
sERPa mező |
Algoritmus |
Shoprenter API információ |
|
id |
|
|
|
|
|
name |
|
KategoriaTetel.Nev |
kategória tétel név |
|
|
language |
|
|
Nyelvfüggően |
|
*A kategória és tétel átküldéshez több resources is használva van, az termék és kategória összekapcsolásához.
Srsz. |
Interface mező név |
Mezőtíp /Köt/ Mhossz |
sERPa mező |
Algoritmus |
Shoprenter API információ |
|
id |
|
|
|
|
|
imagePath |
|
TermekKep.FajlNev |
|
|
|
sortOrder |
|
TermekKep.Sorrend |
|
|
|
product |
|
Termek.Termek_ID ? |
|
|
Webáruház interfészek visszaváltási díj kezelése
A webshopban leadott rendelések(és ügyféladat) átkerülnek a sERPába.
Order
ShopRenter > sERPa
ShopRenter(Webhook), fel kell venni
Automatikus
-
Mező típus és hossz nem ismert.
Srsz. |
Interface mező név |
Mezőtíp /Köt/ Mhossz |
sERPa mező |
Algoritmus |
Shoprenter API információ |
|
innerId |
|
|
|
|
|
storeName |
|
WebaruhazPar.WebaruhazURL -ből a...// és .api közötti szó |
Több webáruház paraméter esetén ez alapján azonosítja a program, hogy melyik paramétert kell használni |
|
|
firstname |
|
|
|
|
|
lastname |
|
|
|
|
|
phone |
|
|
|
|
|
fax |
|
|
|
|
|
|
|
|
|
|
|
shippingCompany |
|
|
|
|
|
shippingFirstname |
|
|
|
|
|
shippingLastname |
|
|
|
|
|
shippingAddress1 |
|
|
|
|
|
shippingAddress2 |
|
|
|
|
|
shippingCity |
|
|
|
|
|
shippingCountryName |
|
|
|
|
|
shippingPostcode |
|
|
|
|
|
shippingMethodName |
VARCHAR(150) |
fuvardíj neve Ami a <br /> előtt van az fuvardíjnak, ami utána van az csomagpont.
Amennyiben a shippingMethodName mezőben a Shoprenter GLS csomagpontos rendelést ad át, és megadja a csomagpontot, akkor a sERPa feldolgozza az adatot, megfelelő fuvardíj paraméter beállítások esetén bekerül a rendelésbe a fuvardíj, és külön mezőbe a csomagpont. |
|
|
|
shippingMethodLocalizedName |
|
pl: GLS Csomagpont |
|
|
|
shippingMethodExtension |
|
Csomagpont típus pl: glsparcelpoint |
|
|
|
shippingReceivingPointId |
|
Csomagpont azonosítója, amit megküld a ShopRenter. pl: HU1183-CSOMAGPONT |
|
|
|
shippingNetPrice |
|
bruttó díj, ha nincs megadva akkor paraméter szerint |
megj: Amennyiben a webshopból kapott fuvardíjat felül akarjuk bírálni, akkor használjuk a pipát, de ha azt akarjuk, hogy a webshopból érkező adat legyen az erősebb akkor ennek a pipát, nemre kell állítani, hasonlóan a Ártípus = Rögzített esetén, amikor azt az árat akarjuk látni a rendelésen ami a webshopból érkezik. |
|
|
shippingGrossPrice |
|
|
|
|
|
shippingCountryIsoCode2 |
|
Ügyfél / Telephely országa |
ld. Ország kezelés |
The ISO 3166-1 alpha-2 code of the destination country of the order. |
|
shippingCountryIsoCode3 |
|
N/A |
nem használjuk |
The ISO 3166-1 alpha-3 code of the destination country of the order |
|
paymentCountryIsoCode2 |
|
Ügyfél országa |
ld. Ország kezelés |
The ISO 3166-1 alpha-2 code of the country associated with the billing address of the order. |
|
paymentCountryIsoCode3 |
|
N/A |
nem használjuk |
The ISO 3166-1 alpha-3 code of the country associated with the billing address of the order. |
|
paymentCompany |
|
hosszúnév1 |
|
|
|
Taxnumber paymentTaxnumber |
|
adószám |
|
|
|
paymentFirstname |
|
hosszúnév2 |
|
|
|
paymentLastname |
|
hosszúnév3 |
|
|
|
paymentAddress1 |
|
|
|
|
|
paymentAddress2 |
|
|
|
|
|
paymentCity |
|
|
|
|
|
paymentCountryName |
|
|
|
|
|
paymentPostcode |
|
|
|
|
|
paymentMethodName |
|
Fizetési mód, ha nem találjuk akkor a megjegyzésbe kerül szövegesen. |
|
|
|
paymentNetPrice |
|
|
|
|
|
paymentGrossPrice |
|
|
|
|
|
comment |
|
|
|
|
|
total |
|
|
|
|
|
totalGross |
|
|
|
|
|
currency |
|
|
|
|
|
couponCode |
|
AruforgBizTetel.TermekKod |
|
|
|
couponGrossPrice |
|
AruForgBizTetel.NettoErtek |
|
|
A webshopban leadott rendelések állapotának megváltozása sERPa oldalon.
Order
sERPa > ShopRenter
sERPa
Automatikus
Rendelés olyan jellegű megváltozása, ami megfelel a paraméterben felvett rendelésállapotoknak. (pl egy tétele diszponálásra kerül, akkor megváltozik az állapota, amennyiben paraméterben ez az állapotváltozás típus fel van véve, akkor küldünk egy üzenetet a shoprenter felé)
A paraméterben meghatározott 4 állapothoz lehet a képen látható azonosítót (order_status_id) megadni. A sERPa-ban kezelt állapotokat a Rendelés állapot táblázat leírásában olvashatjuk részletesen.
Csak olyan rendelésről küldünk ki Állapotot, amelynek a sorozata szerepel a paraméterben és a Hivatkozási száma érvényes, ezzel biztosítva, hogy csak olyan rendelés állapotát küldjük ki, amelyek a Shoprenterben vettek fel és küldtek be a sERPa-ba.
•Webáruházas ügyfél felvételkor/módosításkor, ha van megadva adószám (Taxnumber) akkor a ügyfél típusát Cégre állítjuk, ha nincs akkor magánszemély.
•Hivatkozási szám: Kód prefix+innerId előnullázva.
•Ügyfél kód: Kód prefix + 9 számjegy előnullázva (első ilyen Ügyfél kódja pl SR000000001)
•Ügyfél név: shippingCompany+shippingFirstname+shippingLastname
•Ügyfél dolgozó: firstname+lastname
•Ügyfél dolgozó elérhetőség: phone, e-mail (amennyiben megváltozik az elérhetőség, új dolgozót veszünk fel (lehetséges azonos nevű dolgozó))
•Ügyfél telephely: (minden olyan esetben létrejön új telephely, amikor a shipping adatok eltérnek egy már létező telephely adataitól!)
oshippingCompany,
oamennyiben shippingCompany üres , akkor shippingFirstname+shippingLastname
•Magánszemély elérhetőség: phone, e-mail (magánszemélyként felvett ügyfélnél, ha csak az elérhetőség változik meg, akkor nem új ügyfelet veszünk fel, hanem az elérhetőséget módosítjuk. Új Ügyfélként akkor vesszük fel, ha a helyadatok eltérnek a meglévőtől.)
•Adószám kezelés:
oKötőjelek eltávolítása után, amennyiben 11 számjegyű adószámot kapunk, akkor magyar adószámmal, belföldi vevőként mentjük az Ügyfelet.
oAmennyiben a fenti feltételnek nem felel meg, és az első két karaktere betű (ország kód), akkor az alapján külföldi vevőként vesszük fel, és az adószám az EU-Adószám mezőbe kerül mentésre, illetve az EU tag pipa igaz lesz.
oTovábbi esetben, amikor fenti egyikének se felel meg, akkor Külföldi adószám mezőbe tesszük a kapott adatot (de 20 karakter felett csonkítjuk azt), Külföldi vevőként vesszük fel és az EU tag pipa hamis lesz.
•Ha a Szállítási cím ugyanaz, mint a számlázási, akkor is generálunk az ügyfélnek telephelyet. (Ha ugyanaz az ügyfél egymás után kétszer rendel más-más szállítási címre, akkor nem kerül felülírásra a címe az ügyféltörzsben. Így egységesebb a struktúra, még ha duplán is van az adat.)
Az ügyfél azonosítására és az új ügyfél felvételére hatással van a Webáruház paraméterben a További adatok / Ügyfél azonosítás mező állása.
oHa a rendelés üzenetben a címadatoknál megkapjuk az ország ISO2 kódját (order_shippingCountryIsoCode2 és order_paymentCountryIsoCode2), akkor aszerint azonosítjuk be az országot a sERPa Ország törzsében és azt vesszük fel az ügyfélhez.
oHa nem kapunk ilyen mezőt vagy üres, akkor vizsgáljuk az országnév mezőket. Ha a paymentCountryName, shippingCountryName nem "Magyarország", akkor az Ország törzsben magyar név szerint keressük az országot. Ha megtaláljuk, akkor a felvételre kerülő ügyfél országába a beazonosított ország kerül.
oHa a paymentCountryName, shippingCountryName "Magyarország", akkor a felvételre kerülő ügyfél országa üresen marad, mert a sERPa működésben ez Magyarországot jelent.
Fuvardíj
•Fuvardíj a shippingMethodName mezőből kerül ki. (ha nincs akkor felvételre kerül)
•A fuvardíj összege a kézzel letöltött rendelések esetén nem a shippingGrossPrice mezőből kerül a rendelése (nem adják át ilyenkor), hanem a kapott xmlből az orderTotal részből nézzük ki, aminél a típus 'SHIPPING'.
A felvett rendelésen a tételekben a kért és az ajánlott szállítási határidő paraméterezhető. Ha a webáruházunkhoz nem állítunk be szabályt, akkor az alábbi alapértelmezett értékeket használjuk:
•Kért szállítási határidő: rendelés felvétel napja +1 nap (naptári nap).
•Ajánlott szállítási határidő: rendelés felvétel napja
Ha ezt szeretnénk megváltoztatni, az alábbi lépéseket kell megtennünk.
A szállítási határidők kiinduló értékei legtöbbször attól függnek, hogy a rendelést milyen módon fogjuk kiszolgálni. Ha a vásárló bejön érte a boltba személyesen átvenni, akár már aznap szeretnénk kiszolgálni, ha van raktáron a termék. Ha saját magunk szállítjuk, 2 nap lehet, ha futárszolgálattal szállítjuk majd, akár 3 nappal is kalkulálhatunk. Épp ezért a határidő eltolás értékét fuvardíj kategória tételenként lehet testre szabni.
1.Például készítünk egy Fuvardíj kategóriát "Szállítási határidő eltolás" néven. Állítsuk egyedi típusúra, hogy egy tételt csak egyszer lehessen majd használni.
2.Felveszünk három fuvardíj kategória tételt hozzá: bolti átvét, saját szállítás, futárszolgálat.
3.A Webáruház paraméterben az adott webáruháznál a További adatok fülön a Szállítási határidő eltolás fuvardíj kategória mezőben megadjuk a "Szállítási határidő eltolás" fuvardíj kategóriát.
4.Az alatta megjelenő Szállítási határidő eltolás táblázatban pedig felvesszük az előbb létrehozott 3 fuvardíj kategória tételt és megadjuk hozzájuk a nap eltolásokat. A bolti átvét tételhez 0 napot mindkét határidő típushoz, a saját szállítás tételhez 2-2 napot, a futárszolgálat tétel mellé pedig 3-3 napot írunk.
5.Végül a Fuvardíj paraméterben az általunk használt fuvardíjakat besoroljuk az új kategória három tételével. Például a személyes átvételhez felvesszük a "bolti átvét" tételt, a saját házhoz szállítás paraméterhez a "saját szállítás", az összes futárszolgálat paraméterhez (GLS, MPL, PPP stb.) pedig a "futárszolgálat" kategória tételt.
6.Így ha a webáruházból beérkezik egy rendelés, amelyhez a GLS futárszolgálat paraméter fog tartozni, annál a rendelésnél a kért és az ajánlott szállítási határidő 3 nappal a rendelés rögzítése utáni lesz. Viszont ha a vevő személyes átvételt kért, akkor a rendelés tételein a kért és az ajánlott szállítási határidő a rendelés rögzítésével azonos nap lesz.
Fizetési mód
•Fizetési módok: Shoprenter > sERPa megfeleltetés: paraméter szerint.
•Kuponok feldolgozása a rendelés XML <couponCode></couponCode> mező meglétekor történik
oA Terméktörzsben keressük a <couponCode>TRIAL2020</couponCode> mezőjében lévő adatot Termék kódként, ha megtaláljuk, akkor az a szolgáltatás kerül a rendelésre. Ezt szinkron esetén ne használjuk, mert akkor azok a kupon termékek is ki kell kerüljenek a Shoprenterbe.
oAmennyiben a Törzsben nem találjuk meg a kód alapján, a Paraméterben a Kupon mezőben megadott termék kerül felvételre
oAmennyiben a fenti két feltétel sem teljesül (nem találjuk Termék törzsben és a Kupon mező sincs kitöltve), akkor a megjegyzésbe tesszük hozzáfűzve az egyébként oda kerülő szöveghez. "Kuponkód : TIRAL2020 Összeg : -1270 (Bruttó). Így kézzel utólag tudják a rendelést magát módosítani.
oA kupon ára minden esetben a <couponGrossPrice>-1270</couponGrossPrice> mezőből kerül ki, ezt a visszaszámoljuk 27%-os áfával, mert számlázáskor a kupon mezőjének értékét, így a példa szerinti 1270 Ft bekerül a rendelésbe 1000 Ft ként, de számlázáskor bruttósítva felkerül az 1270 Ft helyesen.
o0 (nulla) értékű kupon vagy ár nélküli esetén is 0-t értünk (értelmezzük ISNULL()), és így kerül rá a rendelés tételére.
Kupon kezelés a Shoprenter felületén:
•Érvénytelen felhasználó!
•Több mint 1 használható azonos Webáruház internet URL című webáruház paraméter van felvéve.
•A rendelés sorozat mező nincs kitöltve a paraméterben!
•A kód prefix mező nincs kitöltve a paraméterben!
•A kiszolgáló raktár kitöltése kötelező!