Nettbutikkintegrasjon Menyvalg: Registrere - Nettbutikk – Innstillinger Opplasting og nedlasting til/fra nettbutikken skjer via xml-filer som blir sendt til/hentet fra asp*-sider i nettbutikken. Alle asp-sider ligger i en underkatalog som heter twinxml. twinxml skal ikke være en del av feltet Adresse til nettbutikk. Dette legger programmet på selv når det laster opp/henter ned. Eks om adressen til nettbutikken din er http://nettbutikkadresse.no så skal alle asp-sider som bruker i synkroniseringen ligger under http://nettbutikkadresse.no/twinxml/. Men du skriver bare inn http://nettbutikkadresse.no i feltet for Adresse til nettbutikk. *Det trenger ikke nødvendigvis være asp-sider, men det er det som er default. Under arket Sideadministrasjon i Innstillinger kan du spesifisere hva de ulike sidene heter (eks .php, .aspx etc). Men de må fremdeles ligge i twinxml-katalogen. Alle eksemplene i denne hjelpefilene tar utgangspunkt i at vi bruker default-sidene. Sidene som skal returnere en xml må ha ContentType "text/xml" Infoside Synkroniseringssiden inneholder info om nettsynken din. Noen data hentes fra Uni, mens noen felter hentes fra nettbutikken. Ved oppstart hentes det ut info om nettbutikken fra en statusside. Følgende url nyttes: http://nettbutikkadresse.no/twinxml/status.asp?user=brukernavnet&pass=passordet&lastupdate=20070101 Parameteren lastupdate indikerer når status-siden skal regne nye ordre og kunder fra. Dette representerer en dato på formatet yyyymmdd. Opplasting av varer Opplasting av varer skjer i to trinn når du har klikket knappen Last opp varer. Først lastes varegruppene opp (her lastes alle varegruppene opp hver gang). Så lastes varene opp (enten alle som er krysset av for web, eller bare de sist endrede, avhengig av valget du har gjort over knappen. For å gjøre en vare tilgjengelig må du krysse av for dette inne på varekortet under arkfanen Dokument/Web) Varegrupper XML'en for varegrupper ser ut som under. Her vises varegruppe 1 i Uni. Dersom denne hadde vært en undervare ville gruppenr til morgruppen lagt i feltet parentgroup. Denne xml'en lastes opp til http://nettbutikkadresse.no/twinxml/postproductgroup.asp?user=brukernavnet&pass=passordet Varer Denne xml'en lastes opp til http://nettbutikkadresse.no/twinxml/postproduct.asp?user=brukernavnet&pass=passordet Feltet longdesc som kommer fra Produktbeskrivelsesfeltet i Uni er gjort om til hex før det er satt inn i xml'en. (Flere feltbeskrivelser i slutten av artikkelen) Fjerning av vare fra nettbutikk Når en vare skal fjernes fra nettbutikken blir følgende url postet: http://nettbutikkadresse.no/twinxml/deleteproduct.asp?id=frakt&user=brukernavnet&pass=passordet Her representerer id varenummeret som skal fjernes. Når en varegruppe skal fjernes fra nettbutikken blir følgende url postet: http://nettbutikkadresse.no/twinxml/deleteproductgroup.asp?id=frakt&user=brukernavnet&pass=passordet Her representerer id varegruppenummeret på varegruppen som skal fjernes. Sletting av aller varer og varegrupper i nettbutikken (Etter at bruker har tastet inn passord) skjer ved at det det blir postet til følgende url: http://nettbutikkadresse.no/twinxml/deleteall.asp?user=brukernavnet&pass=passordet Bildeopplasting Bilder blir også lastet opp via en xml-fil. Da gjøres først bildet om til binære data (bin.base64) XML'en ser da slik ut: Denne lastes opp til følgende adresse: http://nettbutikkadresse.no/twinxml/postfiles.asp?user=brukernavnet&pass=passordet Id-feltet i xml'en representerer varenummer som bildet hører til. Opplasting av rabatter Rabatter blir lastet opp i to trinn. Den første delen er et rabattsystem. Her ligger kunder og kundekategorier som rabatter skal knyttes mot. Her vil også generelle rabatter på disse ligge. Denne xml'en blir lastet opp til følgende url: http://nettbutikkadresse.no/twinxml/postdiscountsystem.asp?user=brukernavnet&pass=passordet og ser slik ut: Her ser vi at kundenummer 100000 skal ha en generell rabatt på 10% på alle varer, slik det er satt opp i Uni. Neste del er dersom det i Uni er presisert at det er rabatter som går mot spesifikke varer eller varegrupper. Da blir det lastet opp en xml til følgende adresse: http://nettbutikkadresse.no/twinxml/postdiscountsystem.asp?user=brukernavnet&pass=passordet og den ser slik ut: Dette er en rabatt som i Uni går mot kundenr 100000. Dette er koblet i nettbutikken slik at discountsystemnumber inneholder verdien til sysid som ble lastet opp i discountsystem overfor. = . Slik kobler en da i dette eksempelet at kundenummer 100000 i tillegg til å ha en generell rabatt på 10% på alle varer har 25% rabatt på varenr k1. Ordrer som er klare til nedlasting Listen over ordrer som er klare for nedlasting hentes fra følgende adresse: http://nettbutikkadresse.no/twinxml/orders.asp?user=brukernavnet&pass=passordet Da får vi tilbake en xml som ser ut som under: Denne kan inneholde 0 eller flere -noder. Hver av disse representerer en ny ordre som ligger klar i nettbutikken. Inne i hver -node er det en tag som heter . Det er verdien i denne du bruker for å hente hver spesifikk ordre. Nedlasting av ordrer Nedlasting av ordrer gjøres ved at en og en ordre hentes ned fra følgende adresse:http://nettbutikkadresse.no/twinxml/singleorder.asp?id=200712121355890887&user=brukernavnet&pass=passordet Som id brukes session-nummeret som kom fra xml-en vi fikk ned under Oversikt over ordrer som er klare til nedlasting. Formatet på den enkelte xml-fil for hver ordre er som følger: Xml-filen skal inneholde en <orderhead>-node (ordrehode) og kan inneholde en eller flere <order>-noder (varelinjer). Følgende xml-felt / xml-tagger an benyttes ved innlesing i Uni: Felt for ordrehode angitt under xml-tag <orderhead>: <id>: Numerisk heltallsverdi som angir kundenummeret i nettbutikken. Kan (i visse tilfeller) settes blank eller utelates, jfr. merknad for felt <custno2>. <custno2>: Numerisk heltallsverdi som angir kundenummeret i Uni. Dersom det er angitt verdi blir ordren ført på denne kunden. OBS! Må komme etter <id> felt. Dersom verdi er satt blank, forutsettes at kunden er registrert i nettbutikken og at <id>-feltet er utfylt. Hvis det er importert ordrer på kunden tidligere vil det i Uni være opprettet en kobling mellom kundenummer i Uni og kundenummer i nettbutikken og ordren føres på aktuell Uni-kunde. Hvis det ikke er importert ordrer for kunden tidligere blir ny Uni kunde opprettet og koblet mot nettbutikk kundenr angitt i <id>. Dersom <custno2> utelates helt, forsøkes å finne korrekt Unikunde basert på kundes navn, addresse og/eller kontaktdata. Mislykkes det opprettes ny kunde. <companyname>: Kundenavn. Maks 50 tegn. <customername>: Deres ref. (dvs. Kundens ref. / bestillinger, kontaktperson). Maks 50 tegn. <address>: Adresselinje 1: Gate, vei, postboks. Maks 60 tegn <address2>: Adresselinje 2 dersom nødvendig. Maks 60 tegn <zipcode>: Postnr. Maks 10 tegn <cityplace>: Poststed. Maks 50 tegn <country>: Land. Maks 50 tegn <countrycode>: Landkode 2 tegn (Iht. ISO 3166-1 Alfa 2). <emailaddress>: Kundens epost. Maks 80 tegn. <telephone>: Kundens telefon. Maks 20 tegn. <mvanr>: Kundens organisasjonsnr, Maks 20 tegn, men som oftest 9 siffer. Angis uten skilletegn. <companyregno>: Kundens organisasjonsnr. Behandles på samme måte som mvanr. <currency>: Valuta for ordren. Alfa-kode: 3 tegn (Iht. ISO 4217) <gothiano>: Fylles ut dersom nettbutikk bruker Gothia PayByBill. Angir Gothia kundenr. <payment>: Betalingsbetingelse. Merkes med verdien «bill» dersom ordre skal betales ved oppkrav. Andre verdier i dette feltet ignoreres. <paymenttype>: Angir dimensjonsverdi (tekstverdi) som inntekt skal posteres på. Forutsetter at det er angitt dimensjonstype under «Dimensjon for kort-betalinger» i innstillinger for nettbutikkintegrasjon i Uni. Aktuelle dimensjonsverdier (tall og tekst) må være opprettet i Uni på aktuell dimensjon før import av ordrer. <dim2>: Kontodimensjon2 i Uni (vanligvis satt opp til å angi avdeling). Når ordre blir fakturert blir salgsinntekt postert på denne kontodimensjonen i tillegg til hovedbokskonto. <carrier>: Transportør/Fraktfirma, f.eks. «Bring», «UPS». Maks 40 tegn. <deliverytype>: Leveringsmåte/frakt måte, f.eks. «Pakkepost». Maks 50 tegn. <deliverdate>: Leveringsdato. Støttete format: dd.mm.yyyy, dd/mm/yyyy, dd-mm-yyyy <delivername>: Leveringsnavn. Legges i leveringsfeltet på ordre, alternativt i eget leveringsnavnfelt dersom tilpasning for splitt av leveringsadresse er installert i Uni. <deliveraddress>: Leveringsadresse, Gate/vei, bygning, Legges til leveringsfeltet på ordre, alternativt i eget leveringsnavnfelt dersom tilpasning for splitt av leveringsadresse er installert i Uni. <deliveraddress2>: Leveringsadresse2 om nødvendig. Legges til leveringsfeltet på ordre, alternativt i eget leveringsnavnfelt dersom tilpasning for splitt av leveringsadresse er installert i Uni. <deliverzipcode>: Postnr levering. Legges til leveringsfeltet på ordre, alternativt i eget leveringsnavnfelt dersom tilpasning for splitt av leveringsadresse er installert i Uni. <delivercityplace>: Poststed levering. Legges til leveringsfeltet på ordre, alternativt i eget leveringsnavnfelt dersom tilpasning for splitt av leveringsadresse er installert i Uni. <delivercountry>: Land levering. Legges til leveringsfeltet på ordre, alternativt i eget leveringsnavnfelt dersom tilpasning for splitt av leveringsadresse er installert i Uni. <delivercountrycode>: Landkode levering, 2 tegn (Iht. ISO 3166-1 Alfa 2). Legges til leveringsfeltet på ordre, alternativt i eget leveringsnavnfelt dersom tilpasning for splitt av leveringsadresse er installert i Uni. <deliverphone>: Kontakttelefon vedr. levering. Forutsetter Logistra integrasjon i Uni <deliveremail>: Epost vedr. levering. Forutsetter Logistra integrasjon i Uni Felt for ordrelinje angitt under xml-tag <order>: <lineid>: VarelinjeID i nettbutikk. Numerisk heltallsverdi. Hvis oppgitt lagrer Uni kobling mellom varelinjeID i Uni og varelinje i nettbutikk. <prodid>: Varenummer. Varen må være opprettet i Uni før import. Maks 20 tegn. <productdesc>: Varetekst. Maks 100 tegn <quantity>: Antall <price>: Stykkpris etter rabatt. Feltet brukes dersom det under nedlastingsinnstillinger er haket av for «Bruk den ferdigrabatterte prisen på ordre». <orgprice>: Stykkpris før rabatt. Feltet brukes dersom det under nedlastingsinnstillinger IKKE er haket av for «Bruk den ferdigrabatterte prisen på ordre». <rabatt>: Rabattprosent. Feltet brukes dersom det under nedlastingsinnstillinger IKKE er haket av for «Bruk den ferdigrabatterte prisen på ordre». Oppgis uten prosenttegn. Dvs. 10,5% rabatt angis som 10,5 (alternativt 10.5). <stockname>: Navn på lager varen skal plukkes fra. Lager må være opprettet i Uni før import. Maks. 40 tegn. <factor>: Enhetsfaktor. Dersom angitt vil linjesum bli beregnet som antall * faktor * pris. <vatcode>: Mvakode / Salgskode. Må være gyldig salgskode angitt under Faste registrer – mvakoder i uni. Bruken av mvakoder må samsvare med angitt pris. Angis pris inklusiv mva må nyttes mvakoder for pris inkl. mva. Feltet kan utelates eller settes blank. Mvakode hentes da fra varekortet for i Uni for varen angitt på varelinjen. Dersom kunde i Uni er merket som avgiftsfri kunde (f.eks. utenlandskunde) bli mvakode bli satt iht. til dette. Det som gjelder dersom kunde er angitt som bedriftsintern kunde. Dersom det under innstillinger for nettbutikkintegrasjon i Uni er slått på «Priser til/fra nettbutikk skal være ink. mva» og mva-kode ikke er eksplisitt angitt, vel det alltid bli brukt mva-koder ink. mva. Felt for ordrehode angitt under xml-tag <order>: Noen felt angitt under <order> gjelder for hele ordren. Disse er listet under. Dersom samme felt gjentas for flere varelinjer så er det info på siste varelinje som blir gjeldende. <entrydatetime>: Ordredato. Følgende datoformat støttes: dd.mm.åååå, dd-mm-åååå, dd/mm/åååå. <customerproductident>: Kundens rekvisisjonsnr. Maks 60 tegn. <reference>: Kundens ref / Deres ref. Maks 50 tegn. Overskriver ev. info satt i feltet <orderhead>.<customername>. <fritext>: Fritekst utfyllende info. Eventuelle ønskete linjeskift kan markeres med \n. <betaling>: Betalingsreferanse fra nettbutikken. Referansen forutsettes å være minimum 11 tegn lang. Hvis utfylt merkes ordre som forhåndsbetalt: Ved fakturering av ordre vil faktura merkes som betalt umiddelbart. Uni lager også en knytning fra ordre til info om forhåndsbetaling inkl. betalingsreferanse. Dersom Gothia betalingsløsning brukes i nettbutikken må <gothiano> på ordrehodet være fylt ut. Kommentarfelt på ordrehodet blir merket med «Faktura vil bli utstedt via Gothia PayByBill». Faktura vil bli oppgjort mot Gothia regnskapskonto angitt under Innstillinger for nettbutikk i Uni. Dersom det brukes annen betalingsløsning enn Gothia så merkes kommentarfeltet på ordrehodet med «Ordre er betalt via betalingsløsning i nettbutikken». Ved fakturering av ordre føres oppgjør av faktura umiddelbart mot konto for innbetalte webordrer angitt under Klient/System – Systeminnstillinger i Uni. Kvittering til nettbutikken etter innlesing av ordrer Dersom prosesseringen ordrer gikk bra i Uni må vi oppdatere nettbutikken og si at ordren er ferdig behandlet. Det gjøres på følgende måte:http://nettbutikkadresse.no/twinxml/updateorder.asp?id=200712121355890887&status=20&user=brukernavnet&pass=passordetvi setter status = 20 på den ordren hadde. Dette gjør at denne ordrer ikke lenger vil komme under oversikten over Ordrer som er klare for nedlasting i nettbutikken. (orders.asp) Synkronisering av kundedata Kundedata fra nettbutikken og ned til Uni kan bli synket på to måter: Enten ved å klikke på knappen Hent ned kundedata Når kunden handler og en laster ned ordren fra kunden blir automatisk kundedataene oppdatert. Når en klikker på knappen Hent ned kundedata gjøres da forespørsel til følgende url: http://nettbutikkadresse.no/twinxml/getcustomerlist.asp?user=brukernavnet&pass=passordet Da får man en xml tilbake som lister opp alle kunder som er registrert i nettbutikken: En går da igjennom den listen og henter ut alle id'feltene (som representerer kundenummeret i nettbutikken) og bruker det til å hente ned alle data om hver enkelt kunde på følgende url: http://nettbutikkadresse.no/twinxml/getcustomer.asp?id=1&user=brukernavnet&pass=passordet Da får en denne xml'en tilbake som representerer de opplysningene som ligger registrert på kunden i nettbutikken: Dersom dette er en kunde som er synket tilbake fra Uni til nettbutikken vil kundenummeret fra Uni finnes i custno2-feltet. I ordrenedlasting, dersom det er en registrert kunde i nettbutikken som har handlet vil kundedataene i Uni blir oppdatert (eventuelt opprettet) med de kundedataene en får fra http://nettbutikkadresse.no/twinxml/getcustomer.asp?id=1&user=brukernavnet&pass=passordet Dersom det er en registrert kunde som handler vil dataen han har lagret på seg selv ligge i getcustomer.asp, det er disse som blir lagt på kundekortet i Uni, mens det er dataene i singleorder.asp som blir lagt i ordrehodet. Dersom det er en kunde som ikke er registrert i nettbutikken har en bare de dataene som ligger i singleorder.asp å forholde seg til og det er disse som blir lagt på både kundekortet og ordren i Uni. Opplasting av kunder Opplasting av kunder skjer i to trinn når en klikker på knappen Last opp kunder: kunder blir lastet opp kundegrupper(kategorier) blir lastet opp. Først blir kundene lastet opp til følgende url: http://nettbutikkadresse.no/twinxml/postcustomer.asp?user=brukernavnet&pass=passordet Xml'en som blir lastet opp ser slik ut: Så blir kundekategoriene lastet opp til følgende url: http://nettbutikkadresse.no/twinxml/postcustomergroup.asp?user=brukernavnet&pass=passordet Xml'en som blir lastet opp ser slik ut: Vareopplasting - felter Følgende felter blir eksportert fra Uni til Nettbutikken (Feltnavn på varekort * Feltnavn i Uni database * Felt i nettbutikk * Felttype i Uni ): Varenr varer.varenr productident Tekstfelt Navn varer.varenavn1 description Tekstfelt Varenavn2 varer.varenavn2 alt01 Tekstfelt EAN ean_nr.ean alt02 Tekstfelt Lengde varer.dimension_y alt03 Desimaltall Bredde varer.dimension_x alt04 Desimaltall Høyde varer.dimension_z alt05 Desimaltall Volum varer.volum alt06 Desimaltall Varenavn3 varer.varenavn3 alt07 Tekstfelt Antall på lager quantityonhand Desimaltall Produktbeskrivelse varer.produktbeskrivelse longdesc Text Varegruppe varer.varegruppe productgroup Tekstfelt Standard utpris varer.pris1 price Desimaltall Pris2 varer.pris2 ordinaryprice Desimaltall Pris3 varer.pris3 netweight Desimaltall Standard innpris varer.innpris_selvkost netprice Desimaltall Vekt varer.vekt grsweight Desimaltall Enhet varer.enhet unit Tekstfelt Sist endret(ikke synlig) varer.lastedit lastedit Dato varer.variansparent parentno Tekstfelt .farge color Tekstfelt .størrelse dimen Tekstfelt Antall pr. kolli varer.antall_pr_kolli quantityinpack Desimaltall *[1] id debitor.diginr *[2] custno2 ordre.kundenr *[2] companyname ordre.kundenavn 50 customername ordre.deres_ref 20/50 *dersom companyname er blank brukes customername som kundenavn. Max 20 tegn om det brukes som deres refereanse, 50 om det brukes som kundenavn address ordre.address 60 zipcode ordre.postnr 10 cityplace ordre.poststed 50 country ordre.land 30 deliveraddress **disse** deliverzipcode **blir slått sammen** delivercityplace **leveringsadresse** delivercountry **ordre.levering... Som er et Text-felt på server og kan inneholde mye** emailaddress brukes til å opprette epostadresse på kunden 80 telephone brukes når å opprette telefon på kunden 20 *[3] prodid varelnordre.varenr 20 productdesc varelnordre.varetekst 150 quantiy varelnordre.antall price varelnordre.pris *det er en innstilling som sier bruk ferdig rabattert pris orgprice varelnordre.pris *dersom denne er på brukes feltet price til pris og 0 blir satt i rabatt rabatt varelnordre.rabatt *er dette feltet av brukes orgprice til pris og rabatt til rabatt entrydatetime ordre.ordredato siste varelinje bestemmer ordredatoen *[4] customerproductident ordre.rekvisisjon 60 siste varelinje bestemmer rekvisisjon *[4] reference ordre.deres_ref 20 siste varelinje bestemmer *[4] fritext ordre.fritekst Text.. Kan inneholde 2MB med data *[4] betaling [5] ***Dersom dette feltet er fyllt ut og er mer enn 10 tegn vil det si at ordren er betalt i nettbutikken (VISA/Mastercard etc). I tillegg blir det satt i kommentarfeltet at "Ordren er betalt" -------------------------------------------------------------------------------- [1] Ordrehode (-tagen) inneholder informasjon om kunden og levering. En ordre må ha ?og bare orderhead-tag [2] * id og custno2 brukes sammen. Dersom custno2-noden er med vil det si at det er en registrert bruker i nettbutikken og en kan gå utifra at id-feltet da representerer en unik verdi som er den samme for hver gang det kommer en ordre fra denne kunden. Da vil id-feltet legges i diginr-feltet i debitor-tabellen når kunden opprettes. Dersom custno2-noden i tillegg har en verdi skal det være kundenummeret i Uni-basen som den kan ha fått med opplasting av kunder. [3] en -tag representerer en ordrelinje. En ordre kan ha flere ordre-tager [4] Feltene entrydatetime, customerproductident, reference og fritext i order-tagen(varelinje) skal til henholdsvis Ordredato, Rekvisisjon, Deres referanse og Fritekst-feltet i ordrehodet i Uni. Siden vi kan ha mange varelinjer(order-tager), men bare har ett ordrehode, er det verdiene på siste varelinje som havner i ordrehodet på ordren i Uni [5] ***Dersom dette feltet er fylt ut og er mer enn 10 tegn vil det si at ordren er betalt i nettbutikken (VISA/Mastercard etc). Verdien representerer tranaksjonsid'en fra VISA. I tillegg blir det satt i kommentarfeltet at "Ordren er betalt"