Beim letzten deutschen Perlworkshop haben wir den Mangel an einsatzbereiten "Produkte" als ein Marketingproblem von Perl identifiziert. Wir haben zwar eine große Auswahl an möglichen Lösungen, aber für klassische Aufgabenstellungen wie Blog, CMS, Shop usw. fehlen die echten "Produkte" um mit anderen Programmiersprachen konkurrieren zu können.
Wir wollen das für den Bereich eCommerce/Onlineshop ändern und gestalten die altgediente Perlsoftware Interchange von Grund auf neu und planen ein fertiges, einfach zu installierendes Produkt zur Verfügung zu stellen.
Dabei kommt natürlich "Modernes Perl" zum Einsatz, z.B. Moo, DBIx::Class und Dancer.
Dieser Vortrag berichtet über den aktuellen Stand der Dinge.
7. Übersicht
Interchange6 Stack
Status Quo
DBIx::Class
Payment
Dancer Plugin
Demo && Administration
Interchange6::Schema
Produkte, Attribute, Preise, Bestand
Benutzer, Adressen
Warenkorb, Sitzungen
Bestellungen, Zahlungen
Steuern, Versand (in Arbeit)
racke Interchange 6 - Open Source Shop Machine
8. Übersicht
Interchange6 Stack
Status Quo
DBIx::Class
Payment
Dancer Plugin
Demo && Administration
Payment Module
Ablauf
Payment Module
Business::OnlinePayment
unterstützt viele Anbieter
nicht sehr modern
3D secure, Redirect
racke Interchange 6 - Open Source Shop Machine
10. Übersicht
Interchange6 Stack
Status Quo
DBIx::Class
Payment
Dancer Plugin
Demo && Administration
Payment Module
Ablauf
Payment Module
Business::OnlinePayment::IPayment (1&1)
Silent CGI
Business::OnlinePayment::FirstData
Connect (in Arbeit)
racke Interchange 6 - Open Source Shop Machine
11. Übersicht
Interchange6 Stack
Status Quo
DBIx::Class
Payment
Dancer Plugin
Demo && Administration
Payment Module
Ablauf
PaymentOrder erzeugen
$payment_order = $schema−>r e s u l t s e t ( ’ PaymentOrder ’ )
−>create (%payment_data ) ;
racke Interchange 6 - Open Source Shop Machine
12. Übersicht
Interchange6 Stack
Status Quo
DBIx::Class
Payment
Dancer Plugin
Demo && Administration
Payment Module
Ablauf
Zahlung erfolgreich
Status und Transaktionscode aktualisieren
$payment_order−>update ( {
status => ’ success ’ ,
auth_code => $bop_object−>authorization ,
} ) ;
Bestellung abschließen
Email(s) versenden
racke Interchange 6 - Open Source Shop Machine
13. Übersicht
Interchange6 Stack
Status Quo
DBIx::Class
Payment
Dancer Plugin
Demo && Administration
Payment Module
Ablauf
Zahlung fehlgeschlagen
Status aktualisieren
$payment_order−>update ( {
status => ’ f a i l u r e ’ ,
} ) ;
racke Interchange 6 - Open Source Shop Machine
19. Übersicht
Interchange6 Stack
Status Quo
DBIx::Class
Payment
Dancer Plugin
Demo && Administration
Keywords
Routes
Configuration
Hooks
Fallback Routes
any qr { . ∗ } => sub {
# check f o r matching product
. . .
# check f o r matching navigation
. . .
# display not_found page
status ’ not_found ’ ;
forward 404;
} ;
racke Interchange 6 - Open Source Shop Machine
20. Übersicht
Interchange6 Stack
Status Quo
DBIx::Class
Payment
Dancer Plugin
Demo && Administration
Keywords
Routes
Configuration
Hooks
Routes Configuration
Interchange6 : : Routes :
cart :
template : checkout−g i f t i n f o
u r i : warenkorb
navigation :
template : l i s t i n g
records : 20
racke Interchange 6 - Open Source Shop Machine
21. Übersicht
Interchange6 Stack
Status Quo
DBIx::Class
Payment
Dancer Plugin
Demo && Administration
Keywords
Routes
Configuration
Hooks
Hooks
hook ’ before_navigation_display ’ => sub {
my $nav_tokens = shift ;
# load l i s t of brands
my $brands = shop_navigation−>search (
{ type => ’ manufacturer ’ ,
active => 1 } ) ;
$nav_tokens−>{brands } = [ $brands−>a l l ] ;
} ;
racke Interchange 6 - Open Source Shop Machine
22. Übersicht
Interchange6 Stack
Status Quo
DBIx::Class
Payment
Dancer Plugin
Demo && Administration
Demo Shop
Wireframes https://github.com/interchange/
Interchange6-Demo-Shop
HTML (in Arbeit)
Flowers hacking shop
https://github.com/interchange/Flowers
racke Interchange 6 - Open Source Shop Machine