ECommerce
eCommerce - Funktionen "Überblick"
Erstmalig werden Funktionen für Geschäftsabläufe aus OrgaMon in einem Zentralen Modul (eCommerce) gesammelt. Das Ziel ist, den ganzen Webshop bzw. alle Webanfragen ausschließlich über das eCommerce Modul laufen zu lassen. Dabei werden auch erstmals "r" Connections und "w" Connections eingesetzt, was dem zukünftigen raib-Server zugute kommt (Clustering). Nun eine Liste aller eCommerce Funktionen:
eCommerce - Funktionen "XML-RPC-Verfügbar"
abu.ArtikelSuche(SuchStr: string): array of integer; { ARTIKEL_R } // Suchmaschine für Artikelsuche
abu.ArtikelPreis(AUSGABEART_R, ARTIKEL_R:integer): double; // liefert den Preis des Artikels in dieser Ausgabeart // kostenlos = 0; // // cPreis_vergriffen = -1.0; // Artikel nicht mehr lieferbar. // cPreis_aufAnfrage = -2.0; // keine Preisinformation verfügbar.
abu.Land(LAND_R: integer): string; // liefert die Landesbezeichnung (als ISO-Kürzel)
abu.KontoInfo(PERSON_R: integer): double; // liefert den Kontostand des Kunden (zu zahlen!) // erzeugt als Nebeneffekt die aktuelle "Mahnung.html"
abu.BestellInfo(PERSON_R: integer): integer; // liefert den Lieferrückstand des Lieferanten (Erwartete Mengen!) // erzeugt als Nebeneffekt die aktuelle "Bestellung.html"
abu.Bestellen(PERSON_R: integer): integer; // erstellt aus dem Einkaufswagen des Kunden eine tatsächliche // Bestellung. Die (neue) Beleg-Nummer wird zurückgegeben. //
abu.ArtikelVersendetag(AUSGABEART_R, ARTIKEL_R:integer): integer; // // GELBE STATI // 0=keine Info über Verfügbarkeit vorhanden // // ROTE STATI: // 1=entgültig vergriffen // 2=zur Zeit vergriffen, Neuauflage jedoch ungewiss // 3=zur Zeit vergriffen, Neuauflage jedoch sicher // // // GRÜNE STATI: // 10=heute lieferbar (=ist am Lager, ohne Mengenangabe) // 11=morgen lieferbar (=wurde z.B. mit dieser Zusage bereits bestellt und kommt morgen) // 12=in 2 Tagen lieferbar... (=ist z.B. in dieser Zeit zu beschaffen) // 13=in 3 Tagen lieferbar... // 14= ... usw ... // // GRÜNE STATI: // 101= heute lieferbar (=ist am Lager, Lagermenge=1) // 102= heute lieferbar (=ist am Lager, Lagermenge=2) // 103= heute lieferbar (=ist am Lager, Lagermenge=3) // ... usw. // // GRÜNE STATI: // >20020101= Konkretes Lieferdatum (z.B. Erscheinungsdatum!) // 20031003= am 03.10.2003 lieferbar (da es z.B. an diesem Tag erscheint) // (Vorbestellungen natürlich möglich) //
abu.Verlag(VERLAG_R:integer): string; // Names des Verlages zu einem Verlags-RID // ACHTUNG: aus geschichtlichen Gründen sind VERLAG_R zumeist als PERSON_R(s) // zu verstehen!
abu.Versandkosten(PERSON_R:integer): double; // Liefert passend zum "Kunden,Umfang des Einkaufswagen,Versandart des Kunden" die // passenden Versandkosten. Im Moment als dummy immer 3,33 €.
abu.ArtikelInfo(AUSGABEART_R, ARTIKEL_R, LAND_R, VERLAG_R) : double, string; // Multi-Info-Funktion für weitere Informationen zu Artikel-Daten // Ergebnisse: Preis, "ISO-Landeskennzeichen" "-" "Verlag"
abu.BasePlug():array of string; // liefert diverse Informations-String: // 1) Datenbankname // 2) OrgaMon Versions-Nummer // 3) IBO Versions-Nummer // 4) Indy Versions-Nummer // 5) PDF Pfad (public) // 6) Musik Pfad // 7) HTML-Pfad (Rechnungen) // 8) Bild-URL // * Mit Hilfe des Verbindungsstrings sollte auf die entsprechende Datenbank // konnektiert werden. // * In der Datenbank sollten nun alle weiteren Parameter, den Shop betreffend // eingegeben sein! // für den Shop wichtige Parameter: // // MusicPath=\\Linus\user\abu\Delphi\abu\Musik\ // PDFPath=\\Linus\user\hebu\HeBu PDF\A4PDF\ // XMLRPCHost=BRUTUS // XMLRPCPort=3049 //
abu.ArtikelRabattPreis(AUSGABEART_R,ARTIKEL_R,PERSON_R) : array of double; // // wie Artikel-Preis, soll jedoch bei Kunden mit Rabatt-Code verwendet werden, // diese Funktion liefert noch die Rabatt-Zahl dazu! //
abu.PersonNeu : integer; { PERSON_R } // // Eine neue Person wird angelegt. Der (neue) RID wird als Ergebnis ge- // liefert. Der Webshop kann nun weitere Eintragungen machen. //
abu.Ort(PERSON_R) : string; { Adress-Ortsangabe } // // Zu der angegebenen Person wird die Orts-Angabe zusammengestellt. // Dazu wird Land, Plz, Ortsname und Ortsteil landesspeziefisch // kombiniert.
eCommerce - Funktionen "intern verfügbar"
procedure e_w_BedarfsAnzeige(AUSGABEART_R, ARTIKEL_R, POSTEN_R, MENGE: integer; Motivation: eMotivation); // dem Agenten signalisieren, dass Bestell-Bedarf besteht
procedure e_w_Wareneingang(AUSGABEART_R, ARTIKEL_R, MENGE: integer); // Waren im System verteilen
function e_r_Lieferant(ARTIKEL_R, MENGE: integer): integer; {PERSON_R} // Ermittelt den Lieferanten zu diesem Artikel
function e_w_BestellBeleg(PERSON_R: integer): integer; {BBELEG_R} // liefert die Nummer eines Bestellbelegs, ev. wird einer neu erzeugt
function e_r_Menge(AUSGABEART_R, ARTIKEL_R: integer): integer; { MENGE } // liefert die Lagermenge dieses Artikels in der angegebenen // Ausprägungsart
function e_w_Menge(AUSGABEART_R, ARTIKEL_R, MENGE: integer): integer; { MENGE } // bucht eine Lagermenge ab oder zu, oder als read-Only // liefert die neue Lagermenge