A sERPa <-> Webshop Experts XML kapcsolat az alábbiak szerint működik:
Aurora webshophoz http://www.webshopexperts.hu/aurora_webaruhaz_motor
A kódolás UTF-8
Változást beindító események bejegyzései: (Útvonal: sERPa Alap \ Logisztika \ Webáruház Interfész \ Webáruház frissítés)
- A változások csak akkor kerülnek felküldésre, ha a webáruház szolgáltatás windows szervizként telepítve van és fut.
- Alapértelmezetten az ütemezett feladatok ellenőrzése 1 percenként történik meg, de az érték módosítható a webaruhazkapcsolat.ini fájlban szerepelő PINGINTERVAL kulcsnál. (ez megtévesztésnek az OSCOMMERCE szekció alatt található).
Használható ütemezett feldatok (mindegyik a dbo.WA_WebShopExpertsXML_products eljárást hívja különböző üzemmódokban; a képeket a dbo.WA_FotexNet_product_images TE tölti fel):
1. Termék frissítés
-> Üzemmódok: 0:Products.xml, 1:ProductTree.xml, 4:Categories.xml, 20: Iratok (pdf fájlok), 21:ProductsTranslation.xml + képek
2. Termékár frissítés
-> Üzemmódok: 2:SpecialPrice.xml, 5:Customers.xml, 6:RecentlyDelivered.xml
3. Készlet frissítés
-> Üzemmódok: 3:Stock.xml
4. Rendelés feltöltés
-> Üzemmódok: 10:OpenOrder.xml
5. Összes kép frissítés
-> Üzemmódok 20: Iratok (pdf fájlok) + képek
6. Rendelés betöltés (nem javasolt használni)
-> ha nem küldik xml formátumban az adatokat, akkor lekérdezésre kerül a webáruház paraméterben megadott 'Letöltés URL' mezőben szereplő címről. (egyébként az áruház azonosítását szolgálja a mező).
Lehetőség van a változásokról adatot küldeni.(@Uzemmod = 0, 1, 2, 3, 4, 10, 21 esetén.)
Ennek feltétele, hogy a webáruház paraméterben kitöltve legyen a 'Teljes feltöltés időpont' nevezetű mező. Ilyenkor a teljes adathalmaz csak az időpont utáni első ütemezéskor történik meg, egyébként az xml fájlokba mindig a legutolsó feltöltés utáni megváltozott adatok kerülnek.
Leírás: Terméktörzs
kód, név, mennyiséghez tartozó vonalkód, használható beszerzéskor, használható eladáskor, mennyiségi egység, gyártó (paraméterben megadott kategória), termékfalevél, termékbesorolás és tétel (Ha nem egyedi, akkor több sor van), nettó tömeg, bruttó tömeg, helyettesítő, kapcsolódó, kiegészítő termékek, rövid, hosszú leírás, termék url, termékár (paraméterben megadott ártábla szerint), idegen kód és név (paraméter szerinti azonosító szerint, és amelyben az ügyfél nincs megadva), garanciaidő, referencia mennyiségi egység, referencia átváltási arány.
Ha a termékkategória-tétel neve: "NEM" (kisbetű nagybetű nem számít), akkor az nem kerül átadásra.
Képek: Minden olyan termék, ahol a HonlapNagy=Igaz.
A képek fájl nevének generálása a következő módon történik: "P"+Termek_ID+Sorrend"+".JPG" Ahol: Termek_ID 6 karakter hosszú, Sorrend 3 karakter hosszú. Például: P033984_001.JPG
Products
Product*^
@Product ID : int
@Code* : varchar(20)
@Name* : varchar(100)
@Name lang varchar(100)
@BarCode* : varchar(13) ; mennyiségi egység szerinti vonalkód
@BuyProhibited : int ; 1, ha a Használható beszerzéskor = 0
@SaleProhibited : int ; 1, ha a Használható eladáskor = 0
@UnitOfMeasure* : varchar(8) ; mennyiségi egység
@Comment : varchar(50)
@ReferenceUnitOfMeasure : varchar(8) ; referencia mennyiségi egység, paraméter szerint
@ReferenceRatio : int ; referencia átváltási arány, paraméter szerint
@VATPercent : varchar(8) ; Besorolási szám szerinti áfakulcs
@VATCategory : varchar(20) ; Besorolási szám kód
@NetWeight : varchar(8) ; Nettó tömeg
@GrossWeight : varchar(8) ; Bruttó tömeg
@Warranty : varchar(50) ; Garanciaidő felsorolt típus név
@Brand : varchar(50)
@LastModified : date
@Path^ : int ;termékfalevél ID
Categories^
@ID : smallint
@ItemID : smaillint
@Code : varchar(20)
/Categories
@Properties
Label
Value
/Properties
Substitute
@Code : varchar(20)
@Substitute ID : int
@Substitute two-way : boolean
/Substitute
Related
@Code : varchar(20)
@Substitute ID : int
@Substitute two-way : boolean
/Related
Suplimentar
@Code : varchar(20)
@Substitute ID : int
/Suplimentar
@Mas : foat
@ShortDescription : varchar(800)
Description : HTML
Links
@Type : varchar(25)
@Name : varchar(800)
/Links
Images
@Image Name: varchar(255) ; csak a kép neve, útvonal nélkül
@LastModified : date
/Images
Documents
@Subject: varchar(200) ; a csatolt iratban szereplő tárgy
@FileName : varchar(1245) ; a csatolt iratban szereplő fájl megnevezése. (útvonal\fájlnév-checksum(sha1).pdf)
DocumentCategory^
@ItemID: smallint ; a besorolásban szereplő irat kategória tételének azonosítója.
@Name : varchar(50) ; a besorolásban szereplő irat kategória tételének neve.
/DocumentCategory^
/Documents
@Warranty : varchar(20)
Prices
@Price Type : varchar(25)
@Currency : varchar(25)
@Value : foat
@Reference : boolean ; ártábla típusa paraméter szerint az ártábla lista gridből
@DiscountValidFrom : date ; ártáblához kapcsolódó százalékos érvényesség kezdete
@Discount ; ártáblához kapcsolódó százalékos engedmény, ha több van, akkor a legtovább tartó.(TermekAkciosEngedmeny.AkcioVeg)
@DiscountExpiry : date ; ártáblához kapcsolódó százalékos érvényesség vége
/Prices
Foreign
@Code : varchar(20)
@Name : varchar(100)
/Foreign
/Product
/Products
<Products>
<Product ID="17332">
<Code>katoa1</Code>
<Name>katoa1 termékx</Name>
<Barcode>1234567890123</Barcode>
<BuyProhibited>1</BuyProhibited>
<SaleProhibited>1</SaleProhibited>
<UnitOfMeasure>db</UnitOfMeasure>
<Comment>megjegyzés</Comment>
<ReferenceUnitOfMeasure>kg</ReferenceUnitOfMeasure>
<ReferenceRatio>0.1</ReferenceRatio>
<VATPercent>27.00</VATPercent>
<VATCategory>NN27</VATCategory>
<NetWeight>2</NetWeight>
<GrossWeight>2.3</GrossWeight>
<Warranty>1 év</Warranty>
<Brand>qwerty gyártó</Brand>
<LastModified>1319133465</LastModified>
<Path>29</Path>
<Path>136</Path>
<Categories>
<Category ID="1" ItemID="1" Code="Engedélyezett"/>
<Category ID="2" ItemID="2" Code="VIP"/>
</Categories>
<Properties>
<Property Label="Címkenév" Value="Érték" />
</Properties>
<Substitute Code="_kesztermek" ID="33986" two-way="1" />
<Related Code="_gysz klon" ID="29457" />
<Related Code="_gysz klon" ID="29457" />
<ShortDescription>rovid</ShortDescription>
<Links>
<Link Type="Manufacturer">www.lg.hu</Link>
<Link Type="Product">www.google.com/ro</Link>
</Links>
<Images>
<Image Path="P017332_001.JPG" LastModified="1253626985" />
</Images>
<Documents>
<Document Subject="Szerződés" FileName="ftp://localhost/pictures/Szerzodes2018-121A0BBB358144F5AD6826950E53C87F4BF35F20.pdf">
<DocumentCategory ItemID="1" Name="Melléklet" />
<DocumentCategory ItemID="2" Name="Egyéb dokumentum" />
</Document>
<Document Subject="Specifikáció" FileName="ftp://localhost/pictures/Spec2018-3A2C0BAF458154F5AC6812950E53A37F4BF6DC45.pdf" />
</Documents>
<Warranty>1 év</Warranty>
<LastModified>1322038800</LastModified>
<Prices>
<Price Type="Nettó nagykereskedelmi" Value="21.6700">
</Prices>
</Products>
Leírás: Termékfa törzs.
Mezők: ID, kód, és név. A products.xml-ben ID-vel történik a hivatkozás.
Algoritmus: 8 szintes termékfa minden levelével, figyelembe véve a paraméterben megadott termékfa szűrést (vagyis ha a paraméterben megvan adva a második szint akkor csak a második szinttől kerül át adat)
Rendezettség: levél kód szerint.
ItemCount : termékkategória-tételek száma adott kategórián belül.
ItemsType : termékkategória-tétel név típusa: ha bármelyik tételnévbe csak szám (0,1,2,3,4,5,6,7,8,9) van, akkor int, egyébként: string.
ProductTree
Item*^
@ID* : int
@Code* : varchar(128)
@Nev* : varchar(128)
/Item
MoreCategories
@Category ID* : int
@ItemCount : int
@ItemsType : varchar(8)
@Name : varchar(128)
/MoreCategories
/ProductTree
<ProductTree>
<Item ID="1" Code="SzámítástechnikaE" Name="Számítástechnikai eszközök">
<Item ID="2" Code="Monitor" Name="Monitorok">
<Item ID="3" Code="SONY" Name="SONY" />
<Item ID="4" Code="Philips" Name="Philips" />
<Item ID="12" Code="Egyéb" Name="Egyéb" />
</Item>
<Item ID="6" Code="Memória" Name="Memóriákx">
<Item ID="7" Code="Kingston" Name="Kingston" />
</Item>
<MoreCategories>
<Category ID="121" ItemCount="3" ItemsType="int">
<Name>Fordulatt</Name>
<Category ID="11" ItemCount="8" ItemsType="string">
<Name>Körfűrészek</Name>
</MoreCategories>
<ProductTree>
Leírás: Akciós ár.
Mezők: termék ID, érvényesség vége, nettó ár, deviza. A products.xml-ben ID-vel történik a hivatkozás.
Algoritmus: Mai naphoz vizsgálva érvénye(még nem járt le) akciós árak tételesen, a webábruház paraméterben megadott saját adat telephely megegyezik az akciós árban beállított saját adat telephellyel.
Amennyiben az akció árban nincs megadva saját adat, akkor minden eltérő saját adatú webshopexerts XML paraméterhez tartozik.
Figyeljük továbbá az akciós árban megadott ügyfélkategóriát, tételt és kizárás pipát és a paraméterben (Akciós ár szűrés) beállított azonos mezőkkel való megegyezést figyeljük
SpecialPrices
SpecialPrice*^
CustomerCategory ID : int
ItemID : int
@ItemID : int
@Product ID* : int
@Expiry* : date
@Price* : numeric
@Currency* : varchar(128)
@Name ; Akciós ár név
@Site : NevKoz ; saját adat telephely neve, ha meg van adva
/SpecialPrice
/SpecialPrices
<SpecialPrices>
<SpecialPrice>
<Product ID="25004" />
<Expiry>2011-12-15</Expiry>
<Price>100.00</Price>
<Currency>HUF</Currency>
</SpecialPrice>
<SpecialPrice>
<Product ID="24768" />
<Expiry>9999-12-31</Expiry>
<Price>1500.00</Price>
<Currency>HUF</Currency>
</SpecialPrice>
<SpecialPrice>
<Product ID="24768" />
<Expiry>9999-12-31</Expiry>
<Price>5.00</Price>
<Currency>EUR</Currency>
</SpecialPrice>
</SpecialPrices>
Leírás: Készlet információ.
Mezők: termék ID, raktárnév, tényleges készlet, diszponált készlet, várható beérkezés. A products.xml-ben ID-vel történik a hivatkozás.
Algoritmus: Minden raktárra, ahol Áruforgalom<>Nem szerepel
Stocks
Stock*^
@Product ID : int ;termék ID
@Product Code : int ;termék kód
@Code: varchar(128) ;raktár kód
@InTrade : numeric ;tényleges készlet
@Committed : numeric ;diszponált mennyiség
@InTransit : numeric ;várható beérkezés
/Stock
/Stocks
<Stocks>
<Stock>
<Product ID="17332" />
<Code>KözpontA</Code>
<InTrade>10</InTrade>
</Stock>
<Stock>
<Product ID="24768" />
<Code>KözpontA</Code>
<InTrade>10</InTrade>
</Stock>
<Stock>
<Product ID="24768" />
<Code>Kisker</Code>
<InTrade>5279</InTrade>
<Committed>1</Committed>
</Stock>
<Stock>
<Product ID="24768" />
<Code>Kisker</Code>
<InTrade>1</InTrade>
</Stock>
</Stocks>
A Termék besorolás funkcióba felvett adatokat tartalmazza az XML.
Termékkategória ID, termékkategória név, termékkategória-tétel ID, termékkategória-tétel kód, termékkategória-tétel név.
Minden olyan termékkategória szerepel, amely a paraméterben megvan adva WebaruhazParTermekKategoria táblában.
Categories
ProductCategories*^
@ProductCategory ID : int ;termék kategória ID
@Name : varchar(128) ;termék kategória név
@Type : varchar(128) enum ;0: szűrés, 1: paraméter
Items*^
@Item ID : int ;termék kategória tétel ID
@Code : varchar(128) ;termék kategória tétel kód
@Name : varchar(128) ;termék kategória tétel név
@Description : varchar(2000) ;termék kategória tétel leírás
/Items
/ProductCategory
/ProductCategories
/Categories
<Categories>
<ProductCategories>
<ProductCategory ID="4">
<Name>monitorok</Name>
<Items>
<Item ID="1">
<Code>17"</Code>
<Name>17" monitorok</Name>
</Item>
<Item ID="2">
<Code>19"</Code>
<Name>19" monitorok</Name>
</Item>
<Item ID="3">
<Code>17" Sony</Code>
<Name>17" Sony monitor</Name>
</Item>
</Items>
</ProductCategory>
<ProductCategory ID="7">
<Name>Berendezések</Name>
<Items>
<Item ID="2">
<Code>002</Code>
<Name>Ilyen berendezés</Name>
</Item>
<Item ID="3">
<Code>003</Code>
<Name>Olyan berendezés</Name>
</Item>
<Item ID="4">
<Code>004</Code>
<Name>Amolyan berendezés</Name>
</Item>
</Items>
</ProductCategory>
</ProductCategories>
...
<CustomerCategories>
<CustomerCategory ID="6">
<Name>Vevők</Name>
<Items>
<Item ID="1">
<Code>B</Code>
<Name>Belföldi</Name>
</Item>
<Item ID="5">
<Code>Devizás</Code>
<Name>Belföldi devizás vevő.</Name>
</Item>
<Item ID="6">
<Code>Külföldi</Code>
<Name>Külföldi vevő.</Name>
</Item>
</CustomerCategory>
</CustomerCategories>
<Categories>
Az ügyfelek alapadatai, valamint fizetési feltétel adattal kiegészítve.
Ügyélkód, név, elérhetőség, cím, telephely, dolgozó, és fizetési feltétel.
Paraméterben megadott ügyfél-kategória és tétel szerint.
Customers
Customer
ID ; ügyfél ID
@Code ; ügyfél kód
@ForeignCode ; idegen azonosító szerinti kód, melyből levágásra kerül a webáruház paraméterben aktuálisan megadott kód prefix, ahol pontos prefix egyezés van.
@LastModified
@Name
@FullName ; hosszú név
@VATNumber ; adószám, kötőjellel
@Phone ; hivatali
@Fax
@Mobile
@Type ; típus (Company/Private individual)
@Agent
@Code
@Name
@Address
@ZIP
@City
@Street
@Country ; ország, KodAlpha3 pl.: HUN
@Transport ; ügyfél fuvar név
@ShippingAddress ; telephelyek
@Code
@Name
@ZIP
@City
@Street
@Country ; ország, KodAlpha3 pl.: HUN
@Transport ; ügyfél telephely fuvar név
@PaymentMethod ; fizetési mód név, ahol a név angol
@PaymentGroup ; csoportos fizetési felítélt név
/Customer
<Customers>
<Customer ID="1">
<Code>0</Code>
<ForeignCode>web00000163</ForeignCode>
<LastModified>2016-01-08T11:01:52.633</LastModified>
<Name>Ka-Ba-La Pékség Kft.</Name>
<FullName>Ka-Ba-La Pékség kft. (hnév)</FullName>
<VATNumber>10788110-2-43</VATNumber>
<Phone>349-9150</Phone>
<Fax>350-4285</Fax>
<Mobile>70/378-7415</Mobile>
<Type>Company</Type>
<Agent Code="fl" Name="feketelaci" />
<Address ZIP="1138" City="Budapest" Street="Révész utca 27-31." Country="HUN" />
<ShippingAddress>
<Code>bp01</Code>
<Name>Vidék</Name>
<Address ZIP="2845" City="Nyíregyháza" Street="Babits M. úz 124" Country="HUN" />
</ShippingAddress>
<ShippingAddress>
<Code>bp02</Code>
<Name>BP</Name>
<Address ZIP="2000" City="Budapest/2" Street="Homonna u. 8/a" />
</ShippingAddress>
<ShippingAddress>
<Code>d01</Code>
<Name>vb_01_TH_02</Name>
<Address City="Debrecen" Street="mogyoro 12" Country="HUN" />
</ShippingAddress>
<PaymentMethod>Cash</PaymentMethod>
<PaymentGroup>Csop01 (Viszonteladó I)</PaymentGroup>
</Customer>
Az ügyfelek szokásos vásárlásai kerülnek átadásra, a paraméterben megadott időszakra szállítólevél szerint, mennyiség szerint csökkenő sorrendbe, ügyfelenként.
Ügyfél, termék, mennyiség
Paraméter szerint.
RecentlyDelivered
Customer
ID : int ; ügyfél ID
Product
ID : int ; termék ID
@Quantity :float ; mennyiség
/Product
/Customer
/RecentlyDelivered
<RecentlyDelivered>
<Customer ID="2">
<Product ID="98">
<Quantity>8.000</Quantity>
</Product>
</Customer>
</RecentlyDelivered>
Megegyezik a Webshop Experts részben leírt működéssel. (közös tárolt eljárás, és XML)
Küldés algoritmus:
A Webáruház paraméterben a Rendelésállapot feltöltés gyakoriság mezőben beállított rendszerességgel kerül feltöltésre az aktuális állapota a Paraméterben megadott termék útvonalra minden olyan rendelés összes tétele, mely a paraméterben megadott sorozatra lett felvéve és állapotváltozás következett be az előző ütemezett küldéshez képest.
Naponta egyszer a Paraméterben megadott Teljes feltöltés időpont-ban is feltöltésre kerül ugyan ezzel az algoritmussal, de a változás viszonyítási időpontja ez esetben a paraméterben megadott feltöltés időpont.
Továbbrendelés esetén átadjuk a szállítórendelésben* megadott igazolt határidő, mint várható beérkezést a webnek.
dbo.WA_WebShopExpertsXML_products lett kiegészíteni a várható szállítás dátummal
<Confirmed_supply_time>2020-12-20</Confirmed_supply_time>
*Rendelés-nyilvántartás paramétertől függ, hogy miként kezeljük a visszaigazolást, Visszaigazolás = nincs esetén a kért szállítási határidőben megadott dátumot fogjuk átadni a mezőben. Használható esetén a kért, Visszaigazolás válasz felvétele esetén az abban megadott igazolt dátum mező értékét adjuk át (azonos tétel több visszaigazolása esetén a legkésőbbi dátumot). Kötelező esetén pedig csak akkor kerül az XMLbe a mező, ha van válasz esemény a szállítórendelésen
Ha a paraméterben a Teljes feltöltés időpont módosításra kerül, akkor a módosítás mentése és a beállított értéktől függően előfordulhat akár az is, hogy csak pár perc változásai kerülnek felöltésre. A mező módosításakor tehát erre tekintettel kell lenni.
Xml szerkezet:
<OrderStatus
<TimeStamp ; időbélyeg, amikor az XML készült
<Order
<OrderHead_Code ; Vevőrendelés hivatkozási szám a Webáruház paraméterben megadott Kód prefix nélkül. Ha üres, akkor sERPa bizonylatszám.
<OtherData>
<OtherDataContent Name="További adat típus név 1" Value="További adat szöveg 1"/>
</OtherData>
<LastModified ; rendelés állapot utolsó változás időpontja
<Products
<Product
ID ; sERPa Termék ID. Ha a termék törlésre kerül a rendelésről, akkor csak a Termek_ID. Pl: <Product ID="555"/>
Quantity ; Mennyiség
Ordered ; Rendelt
Cancelled ; Elutasított
Refused ; Visszamondott
Confirmed ; Visszaigazolt
Confirmed_supply_time ;Szállítói továbbrendelés esetén a szállító által adott visszaigazolás dátumok közül a legkésőbbi.
Committed ; Diszponált
Fulfilled ; Teljesített
Delivered ; Szállított
Leírás: termékhez megadott leírás, rövid és hosszú és linkek (Termék leírás füléről )kerülnek átadásra a filebe. Azok a termékek leírása kerül bele amely termékek átadásra kerülnek a termék.xml-be is, ha van a termékhez nem magyar leírás rögzítve.
Products
Product*^
@Product ID : int
@lang : varchar(3) ; KodAlpha2 szerint
@ShortDescription : varchar(800)
Description : HTML
Links
@Type : varchar(25)
@Name : varchar(800)
/Links
/Product
/Products