Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Modern PerlCommerce             Past and Future                         API   Development & Deployment       Modern PerlCo...
Modern PerlCommerce                                     Perl Buzzwords                   Past and Future                  ...
Modern PerlCommerce                                             Perl Buzzwords                           Past and Future  ...
Modern PerlCommerce                                               Perl Buzzwords                             Past and Futu...
Modern PerlCommerce                                             Perl Buzzwords                           Past and Future  ...
Modern PerlCommerce                            Past and Future   Past                                        API   Future ...
Modern PerlCommerce                            Past and Future   Past                                        API   Future ...
Modern PerlCommerce                       Past and Future   Past                                   API   Future           ...
Modern PerlCommerce                        Past and Future   Past                                    API   Future         ...
Modern PerlCommerce                   Past and Future   Past                               API   Future         Developmen...
Modern PerlCommerce                              Past and Future   Past                                          API   Fut...
Modern PerlCommerce                              Past and Future   Past                                          API   Fut...
Modern PerlCommerce                            Past and Future   Past                                        API   Future ...
Modern PerlCommerce                             Past and Future   Past                                         API   Futur...
Modern PerlCommerce                             Past and Future   Past                                         API   Futur...
Modern PerlCommerce                           Past and Future   Past                                       API   Future   ...
Modern PerlCommerce                          Past and Future   Past                                      API   Future     ...
Modern PerlCommerce                          Past and Future   Past                                      API   Future     ...
Modern PerlCommerce                             Past and Future   Past                                         API   Futur...
Modern PerlCommerce     Cart                             Past and Future   Checkout                                       ...
Modern PerlCommerce     Cart                                          Past and Future   Checkout                          ...
Modern PerlCommerce     Cart                               Past and Future   Checkout                                     ...
Modern PerlCommerce     Cart                                 Past and Future   Checkout                                   ...
Modern PerlCommerce     Cart                          Past and Future   Checkout                                      API ...
Modern PerlCommerce     Cart                                Past and Future   Checkout                                    ...
Modern PerlCommerce       Cart                                    Past and Future     Checkout                            ...
Modern PerlCommerce     Cart                           Past and Future   Checkout                                       AP...
Modern PerlCommerce     Cart                          Past and Future   Checkout                                      API ...
Modern PerlCommerce     Cart                           Past and Future   Checkout                                       AP...
Modern PerlCommerce     Cart                         Past and Future   Checkout                                     API   ...
Modern PerlCommerce     Cart                           Past and Future   Checkout                                       AP...
Modern PerlCommerce     Cart                          Past and Future   Checkout                                      API ...
Modern PerlCommerce      Cart                                     Past and Future    Checkout                             ...
Modern PerlCommerce     Cart                           Past and Future   Checkout                                       AP...
Modern PerlCommerce     Cart                                 Past and Future   Checkout                                   ...
Modern PerlCommerce     Cart                                   Past and Future   Checkout                                 ...
Modern PerlCommerce     Cart                           Past and Future   Checkout                                       AP...
Modern PerlCommerce     Cart                             Past and Future   Checkout                                       ...
Modern PerlCommerce     Cart                           Past and Future   Checkout                                       AP...
Modern PerlCommerce     Cart                               Past and Future   Checkout                                     ...
Modern PerlCommerce                                                  Dancer                                Past and Future...
Modern PerlCommerce                                                      Dancer                                   Past and...
Modern PerlCommerce                                          Dancer                        Past and Future                ...
Modern PerlCommerce                                          Dancer                        Past and Future                ...
Upcoming SlideShare
Loading in …5
×

Modern PerlCommerce

12,427 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Modern PerlCommerce

  1. 1. Modern PerlCommerce Past and Future API Development & Deployment Modern PerlCommerce Stefan Hornburg (Racke) racke@linuxia.dePittsburgh Perl Workshop, 8th October 2011 racke Modern PerlCommerce
  2. 2. Modern PerlCommerce Perl Buzzwords Past and Future Modern Perl API PerlCommerce Choices Development & DeploymentNitesi racke Modern PerlCommerce
  3. 3. Modern PerlCommerce Perl Buzzwords Past and Future Modern Perl API PerlCommerce Choices Development & DeploymentPerl Buzzwords Marketing Perl Modern Perl Postmodern Perl racke Modern PerlCommerce
  4. 4. 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
  5. 5. Modern PerlCommerce Perl Buzzwords Past and Future Modern Perl API PerlCommerce Choices Development & DeploymentPerlCommerce Choices Interchange Handel Agora Business::Cart::Generic racke Modern PerlCommerce
  6. 6. Modern PerlCommerce Past and Future Past API Future Development & DeploymentPast 1995 CGI 1995 MiniVend 1998 http://www.materialboerse.de/ 2001 Interchange racke Modern PerlCommerce
  7. 7. Modern PerlCommerce Past and Future Past API Future Development & DeploymentInterchange Development Lot of things Small community Same codebase racke Modern PerlCommerce
  8. 8. Modern PerlCommerce Past and Future Past API Future Development & DeploymentStatus quo racke Modern PerlCommerce
  9. 9. Modern PerlCommerce Past and Future Past API Future Development & DeploymentReferences Backcountry http://www.backcountry.com/ FragnanceNet http://www.fragrancenet.com/ racke Modern PerlCommerce
  10. 10. Modern PerlCommerce Past and Future Past API Future Development & DeploymentFuture racke Modern PerlCommerce
  11. 11. Modern PerlCommerce Past and Future Past API Future Development & DeploymentPrinciples KISS Components Agnostic Expressive racke Modern PerlCommerce
  12. 12. Modern PerlCommerce Past and Future Past API Future Development & DeploymentAgnostic Cart Session DBI Webservice * racke Modern PerlCommerce
  13. 13. Modern PerlCommerce Past and Future Past API Future Development & DeploymentAgnostic Account Manager DBI LDAP * OpenID * racke Modern PerlCommerce
  14. 14. Modern PerlCommerce Past and Future Past API Future Development & DeploymentAgnostic Templating Engine Template::Toolkit Template::Flute racke Modern PerlCommerce
  15. 15. Modern PerlCommerce Past and Future Past API Future Development & DeploymentAgnostic Web framework Catalyst Mojo Dancer racke Modern PerlCommerce
  16. 16. Modern PerlCommerce Past and Future Past API Future Development & DeploymentPreferences Dancer Template::Flute DBI racke Modern PerlCommerce
  17. 17. Modern PerlCommerce Past and Future Past API Future Development & DeploymentFramework Dispatching requests Parameter parsing Session handling Template engine I18N racke Modern PerlCommerce
  18. 18. Modern PerlCommerce Past and Future Past API Future Development & DeploymentExtensions Bundles Plugins Hooks racke Modern PerlCommerce
  19. 19. Modern PerlCommerce Past and Future Past API Future Development & DeploymentFeatures Navigation Cart Checkout Accounts racke Modern PerlCommerce
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. 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
  24. 24. Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsCart Backends Session DBI racke Modern PerlCommerce
  25. 25. 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
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsCheckout Taxes Shipping Payment Invoice racke Modern PerlCommerce
  30. 30. Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsPayment Business::OnlinePayment racke Modern PerlCommerce
  31. 31. 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
  32. 32. Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsShipping Simple Shipping Crazy Shipping Shipping API racke Modern PerlCommerce
  33. 33. 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
  34. 34. Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsPDF Invoices HTML template Template::Flute::PDF racke Modern PerlCommerce
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsAccount Provider DBI LDAP * Htpasswd * OpenID * OAuth * racke Modern PerlCommerce
  39. 39. Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsAccess Control User Roles Permissions racke Modern PerlCommerce
  40. 40. Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment FormsForms Display Validation Storage racke Modern PerlCommerce
  41. 41. Modern PerlCommerce Dancer Past and Future Contribution API The End Development & DeploymentRoutes Categories Products Cart Checkout Login/Logout Customer Service racke Modern PerlCommerce
  42. 42. 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
  43. 43. 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
  44. 44. 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

×