• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Modern PerlCommerce
 

Modern PerlCommerce

on

  • 7,891 views

 

Statistics

Views

Total Views
7,891
Views on SlideShare
605
Embed Views
7,286

Actions

Likes
0
Downloads
2
Comments
0

10 Embeds 7,286

http://perldancer.org 4390
http://www.perldancer.org 2845
http://dancer.pm 32
http://localhost 9
http://translate.googleusercontent.com 3
http://0.0.0.0 2
http://127.0.0.1 2
http://172.16.123.130 1
http://192.168.1.204 1
http://www.irkstroi.ru 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Modern PerlCommerce Modern PerlCommerce Presentation Transcript

    • Modern PerlCommerce Past and Future API Development & Deployment Modern PerlCommerce Stefan Hornburg (Racke) racke@linuxia.dePittsburgh Perl Workshop, 8th October 2011 racke Modern PerlCommerce
    • Modern PerlCommerce Perl Buzzwords Past and Future Modern Perl API PerlCommerce Choices Development & DeploymentNitesi racke Modern PerlCommerce
    • Modern PerlCommerce Perl Buzzwords Past and Future Modern Perl API PerlCommerce Choices Development & DeploymentPerl Buzzwords Marketing Perl Modern Perl Postmodern Perl racke Modern PerlCommerce
    • Modern PerlCommerce Perl Buzzwords Past and Future Modern Perl API PerlCommerce Choices Development & DeploymentModern Perl CPAN Best Practices Tests Separation (Modules, Plugins, Hooks, Templates) PSGI/Plack racke Modern PerlCommerce
    • Modern PerlCommerce Perl Buzzwords Past and Future Modern Perl API PerlCommerce Choices Development & DeploymentPerlCommerce Choices Interchange Handel Agora Business::Cart::Generic racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentPast 1995 CGI 1995 MiniVend 1998 http://www.materialboerse.de/ 2001 Interchange racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentInterchange Development Lot of things Small community Same codebase racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentStatus quo racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentReferences Backcountry http://www.backcountry.com/ FragnanceNet http://www.fragrancenet.com/ racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentFuture racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentPrinciples KISS Components Agnostic Expressive racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentAgnostic Cart Session DBI Webservice * racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentAgnostic Account Manager DBI LDAP * OpenID * racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentAgnostic Templating Engine Template::Toolkit Template::Flute racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentAgnostic Web framework Catalyst Mojo Dancer racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentPreferences Dancer Template::Flute DBI racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentFramework Dispatching requests Parameter parsing Session handling Template engine I18N racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentExtensions Bundles Plugins Hooks racke Modern PerlCommerce
    • Modern PerlCommerce Past and Future Past API Future Development & DeploymentFeatures Navigation Cart Checkout Accounts racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsCart SKU, Name, Quantity, Price Price > 0 Combines automatically Multiple carts Storage everywhere Price caching racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsNitesi::Cart Methods use Dancer : : P l u g i n : : N i t e s i ; c a r t −>add ( sku => ’POM253 ’ , name => ’ Pomelo ’ , p r i c e => 3 . 0 0 , q u a n t i t y => 1 0 ) ; c a r t −>remove ( sku => ’POM253 ’ ) ; c a r t −>count ( ) ; c a r t −>c l e a r ( ) ; c a r t −> t o t a l ( ) ; c a r t −>s u b t o t a l ( ) ; racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsEverything is a Cart Saved Carts Wishlists Collections racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsMultiple Carts c a r t ( ’ w i s h l i s t ’ )−>add ( sku => ’ORA322 ’ , name => ’ Orange ’ , p r i c e => 2 . 0 0 , q u a n t i t y => 5 ) ; racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsCart Backends Session DBI racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsInventory Check MinQuantityField min_quantity MaxQuantityField inventory : q u a n t i t y racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsInventory Check Hook hook ’ b e f o r e _ c a r t _ a d d ’ => sub { my ( $ c a r t , $item ) = @_; my ( $ i n v e n t o r y ) ; $ i n v e n t o r y = query −> s e l e c t _ f i e l d ( t a b l e => ’ p r o d u c t s ’ , f i e l d => ’ i n v e n t o r y ’ , where => { sku => $item −>{sku } } ) ; i f ( $item −>{ q u a n t i t y } > $ i n v e n t o r y ) { $item −>{ e r r o r } = ’ Out o f s t o c k ’ ; } }; racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsCart Hooks before_cart_add after_cart_add racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsCart Hooks before_cart_remove after_cart_remove racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsCheckout Taxes Shipping Payment Invoice racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsPayment Business::OnlinePayment racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsTax Modules on CPAN Business::Tax::Canada Business::CA::GST Business::Tax::VAT Business::Tax::VAT::Validation racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsShipping Simple Shipping Crazy Shipping Shipping API racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsCosts $ c a r t −>a p p l y _ c o s t ( amount => 5 ) ; $ c a r t −>a p p l y _ c o s t ( amount => 0 . 1 9 , r e l a t i v e => 1 ) ; racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsPDF Invoices HTML template Template::Flute::PDF racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsAccounts p o s t ’ / l o g i n ’ => sub { i f ( account −>l o g i n ( username => params ( ’ body ’ ) − >{username } , password => params ( ’ body ’ ) − >{password } ) ) { r e d i r e c t ’ / customerservice ’ ; } else { redirect ’ / login ’ ; } }; racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsAccounts g e t ’ / checkout ’ => sub { i f ( account −>a c l ( check => ’ s u b m i t _ o r d e r s ’ ) ) { r e t u r n t e m p l a t e ’ checkout ’ ; } redirect ’ / access_denied ’ ; }; racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsAccount manager Account Providers Login/Logout Account Information Login status Forgot password Registration racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsAccount Provider DBI LDAP * Htpasswd * OpenID * OAuth * racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsAccess Control User Roles Permissions racke Modern PerlCommerce
    • Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsForms Display Validation Storage racke Modern PerlCommerce
    • Modern PerlCommerce Dancer Past and Future Contribution API The End Development & DeploymentRoutes Categories Products Cart Checkout Login/Logout Customer Service racke Modern PerlCommerce
    • Modern PerlCommerce Dancer Past and Future Contribution API The End Development & DeploymentDefault Route g e t q r { / ( . ∗ ) } => sub { my ( $sku ) = s p l a t ; my $ p r o d u c t ; # check f o r e x i s t i n g p r o d u c t i f ( $ p r o d u c t = database −>q u i c k _ s e l e c t ( ’ p r o d u c t s ’ , { sku => $sku } ) ) # display flypage template ’ flypage ’ , $product ; } else { # d i s p l a y n o t found page s t a t u s ’ not_found ’ ; f o r w a r d ’ 404 ’ ; } }; racke Modern PerlCommerce
    • Modern PerlCommerce Dancer Past and Future Contribution API The End Development & DeploymentCPAN/GitHub http://search.cpan.org/dist/Nitesi/ http://search.cpan.org/dist/Nitesi-DBI/ http://search.cpan.org/dist/ Dancer-Plugin-Nitesi/ https://github.com/racke/Nitesi https://github.com/racke/Nitesi-DBI https: //github.com/racke/Dancer-Plugin-Nitesi racke Modern PerlCommerce
    • Modern PerlCommerce Dancer Past and Future Contribution API The End Development & DeploymentThe End Slides: http://www.linuxia.de/talks/perlcommerce/ perlcommerce-beamer.pdf Project: https://vsc.state.gov/ racke Modern PerlCommerce