interchange 6 - open source shop machine

25
Übersicht Interchange6 Stack Status Quo DBIx::Class Payment Dancer Plugin Demo && Administration Interchange 6 - Open Source Shop Machine Stefan Hornburg (Racke) [email protected] 16. Deutscher Perl-Workshop, Hannover, 28. März 2013 racke Interchange 6 - Open Source Shop Machine

Upload: linuxia

Post on 24-Jun-2015

3.120 views

Category:

Software


2 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Interchange 6 - Open Source Shop Machine

Stefan Hornburg (Racke)[email protected]

16. Deutscher Perl-Workshop, Hannover, 28. März 2013

racke Interchange 6 - Open Source Shop Machine

Page 2: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Shopsoftware

I Magento

I Shopware

I Oxid

racke Interchange 6 - Open Source Shop Machine

Page 3: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

PHP Cauldron

racke Interchange 6 - Open Source Shop Machine

Page 4: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Standard Stack

I DBIx::Class

I Moo

I Dancer

I Template::Flute

I Solr

racke Interchange 6 - Open Source Shop Machine

Page 5: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Custom Stack

I DBIx::Class

I Moo

I Dancer Web::Simple

I Template::Flute Template Toolkit

I Solr Elastic Search

racke Interchange 6 - Open Source Shop Machine

Page 6: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Status Quo

I Interchange6::Schema (Businesslogik)

I Dancer::Plugin::Interchange6

racke Interchange 6 - Open Source Shop Machine

Page 7: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Interchange6::Schema

I Produkte, Attribute, Preise, Bestand

I Benutzer, Adressen

I Warenkorb, Sitzungen

I Bestellungen, Zahlungen

I Steuern, Versand (in Arbeit)

racke Interchange 6 - Open Source Shop Machine

Page 8: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Payment ModuleAblauf

Payment Module

I Business::OnlinePayment

I unterstützt viele Anbieter

I nicht sehr modern

I 3D secure, Redirect

racke Interchange 6 - Open Source Shop Machine

Page 9: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Payment ModuleAblauf

Alternativen

I AnyMerchanthttps://metacpan.org/pod/AnyMerchant

I keine Entwicklung

racke Interchange 6 - Open Source Shop Machine

Page 10: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Payment ModuleAblauf

Payment Module

I Business::OnlinePayment::IPayment (1&1)Silent CGI

I Business::OnlinePayment::FirstDataConnect (in Arbeit)

racke Interchange 6 - Open Source Shop Machine

Page 11: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Payment ModuleAblauf

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

Page 12: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Payment ModuleAblauf

Zahlung erfolgreich

I Status und Transaktionscode aktualisieren

$payment_order−>update ( {s ta tus => ’ success ’ ,auth_code => $bop_object−>au tho r i za t i on ,

} ) ;

I Bestellung abschließen

I Email(s) versenden

racke Interchange 6 - Open Source Shop Machine

Page 13: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Payment ModuleAblauf

Zahlung fehlgeschlagen

I Status aktualisieren

$payment_order−>update ( {s ta tus => ’ f a i l u r e ’ ,

} ) ;

racke Interchange 6 - Open Source Shop Machine

Page 14: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

KeywordsRoutesConfigurationHooks

Dancer::Plugin::Interchange6

I Keywords

I Routes

I Configuration

I Hooks

racke Interchange 6 - Open Source Shop Machine

Page 15: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

KeywordsRoutesConfigurationHooks

Keywords

I shop_schema

I shop_product, shop_address, ...$product = shop_product(’F0001’);

I shop_cart

I shop_charge

I shop_setup_routes

racke Interchange 6 - Open Source Shop Machine

Page 16: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

KeywordsRoutesConfigurationHooks

Routes

I Produkt

I Navigation

I Warenkorb

I Checkout

I Konto

racke Interchange 6 - Open Source Shop Machine

Page 17: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

KeywordsRoutesConfigurationHooks

Produkt

I Produkt “Dancer und DBIx::Class”

I sku 978-0815-0815

I uri Dancer-DBIx-Class

racke Interchange 6 - Open Source Shop Machine

Page 18: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

KeywordsRoutesConfigurationHooks

Navigation

I Kategorienhttp://www.cart.pm/Programming/Perl/Dancer

I Produktfilterhttp://www.cart.pm/Programming/Perl/Dancer/Author/racke/Sort/price

racke Interchange 6 - Open Source Shop Machine

Page 19: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

KeywordsRoutesConfigurationHooks

Fallback Routes

any qr { . ∗ } => sub {# check f o r matching product. . .

# check f o r matching nav iga t i on. . .

# d i sp lay not_found pages ta tus ’ not_found ’ ;forward 404;

} ;

racke Interchange 6 - Open Source Shop Machine

Page 20: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

KeywordsRoutesConfigurationHooks

Routes Configuration

In terchange6 : : Routes :c a r t :

template : checkout−g i f t i n f ou r i : warenkorb

nav iga t i on :template : l i s t i n grecords : 20

racke Interchange 6 - Open Source Shop Machine

Page 21: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

KeywordsRoutesConfigurationHooks

Hooks

hook ’ be fo re_nav iga t i on_d isp lay ’ => sub {my $nav_tokens = s h i f t ;

# load l i s t o f brandsmy $brands = shop_navigat ion−>search (

{ type => ’ manufacturer ’ ,a c t i v e => 1 } ) ;

$nav_tokens−>{brands } = [ $brands−>a l l ] ;} ;

racke Interchange 6 - Open Source Shop Machine

Page 22: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Demo Shop

I Wireframes https://github.com/interchange/Interchange6-Demo-Shop

I HTML (in Arbeit)

I Flowers hacking shophttps://github.com/interchange/Flowers

racke Interchange 6 - Open Source Shop Machine

Page 23: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Administration

I ERPI API

I OpenERPI Magento kompatibel

I TableEditorhttps://github.com/interchange/TableEditor

racke Interchange 6 - Open Source Shop Machine

Page 24: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Mitarbeit

I kleines Entwicklerteam

I GithubI IRC

I #interchange freenodeI #dancer

racke Interchange 6 - Open Source Shop Machine

Page 25: Interchange 6 - Open Source Shop Machine

ÜbersichtInterchange6 Stack

Status QuoDBIx::Class

PaymentDancer Plugin

Demo && Administration

Infos

Slides: http://www.linuxia.de/talks/pws2014/interchange6-de-beamer.pdf

racke Interchange 6 - Open Source Shop Machine