ECommerce: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 117: | Zeile 117: | ||
// Dazu wird Land, Plz, Ortsname und Ortsteil landesspeziefisch | // Dazu wird Land, Plz, Ortsname und Ortsteil landesspeziefisch | ||
// kombiniert. | // kombiniert. | ||
abu.Rabatt(PERSON_R) : boolean; | |||
// Zu der angegebenen Person wird ermittelt, ob sie Rabatte bekommt. | |||
// Wenn ja, wird true, andernfalls false zurückgegeben. | |||
abu.Preis(AUSGABEART_R,ARTIKEL_R,PERSON_R) : array of double; | |||
// | |||
// Ersetzt in Zukunft die beiden Methoden abu.ArtikelPreis und abu.ArtikelRabattPreis | |||
// Falls der Kunde Rabatte bekommt, was beim Login mit abu.Rabatt geprüft wird, | |||
// wird der Funktion der wirkliche PERSON_R übergeben, andernfalls 0. | |||
// Rückgabewerte sind der Preis und der Rabatt (in Prozent, 0 bei PERSON_R == 0). | |||
eCommerce - Funktionen "intern verfügbar" | eCommerce - Funktionen "intern verfügbar" |
Version vom 12. April 2005, 13:53 Uhr
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.
abu.Rabatt(PERSON_R) : boolean; // Zu der angegebenen Person wird ermittelt, ob sie Rabatte bekommt. // Wenn ja, wird true, andernfalls false zurückgegeben.
abu.Preis(AUSGABEART_R,ARTIKEL_R,PERSON_R) : array of double; // // Ersetzt in Zukunft die beiden Methoden abu.ArtikelPreis und abu.ArtikelRabattPreis // Falls der Kunde Rabatte bekommt, was beim Login mit abu.Rabatt geprüft wird, // wird der Funktion der wirkliche PERSON_R übergeben, andernfalls 0. // Rückgabewerte sind der Preis und der Rabatt (in Prozent, 0 bei PERSON_R == 0).
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