Modern Perlcommerce Past and Future API Development & Deployment

Modern Perlcommerce Past and Future API Development & Deployment

Modern PerlCommerce Past and Future API Development & Deployment Modern PerlCommerce Stefan Hornburg (Racke) [email protected] Pittsburgh Perl Workshop, 8th October 2011 racke Modern PerlCommerce Modern PerlCommerce Perl Buzzwords Past and Future Modern Perl API PerlCommerce Choices Development & Deployment Nitesi racke Modern PerlCommerce Modern PerlCommerce Perl Buzzwords Past and Future Modern Perl API PerlCommerce Choices Development & Deployment Perl Buzzwords I Marketing Perl I Modern Perl I Postmodern Perl racke Modern PerlCommerce Modern PerlCommerce Perl Buzzwords Past and Future Modern Perl API PerlCommerce Choices Development & Deployment Modern Perl I CPAN I Best Practices I Tests I Separation (Modules, Plugins, Hooks, Templates) I PSGI/Plack racke Modern PerlCommerce Modern PerlCommerce Perl Buzzwords Past and Future Modern Perl API PerlCommerce Choices Development & Deployment PerlCommerce Choices I Interchange I Handel I Agora I Business::Cart::Generic racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment Past I 1995 CGI I 1995 MiniVend I 1998 http://www.materialboerse.de/ I 2001 Interchange racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment Interchange Development I Lot of things I Small community I Same codebase racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment Status quo racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment References I Backcountry http://www.backcountry.com/ I FragnanceNet http://www.fragrancenet.com/ racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment Future racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment Principles I KISS I Components I Agnostic I Expressive racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment Agnostic Cart I Session I DBI I Webservice * racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment Agnostic Account Manager I DBI I LDAP * I OpenID * racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment Agnostic Templating Engine I Template::Toolkit I Template::Flute racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment Agnostic Web framework I Catalyst I Mojo I Dancer racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment Preferences I Dancer I Template::Flute I DBI racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment Framework I Dispatching requests I Parameter parsing I Session handling I Template engine I I18N racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment Extensions I Bundles I Plugins I Hooks racke Modern PerlCommerce Modern PerlCommerce Past and Future Past API Future Development & Deployment Features I Navigation I Cart I Checkout I Accounts racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Cart I SKU, Name, Quantity, Price I Price > 0 I Combines automatically I Multiple carts I Storage everywhere I Price caching racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Nitesi::Cart Methods use Dancer:: Plugin :: Nitesi; cart −>add(sku => ’POM253’ , name => ’Pomelo’ , price => 3.00, quantity => 10); cart −>remove(sku => ’POM253’ ); cart −>count ( ) ; cart −>c l e a r ( ) ; cart −>t o t a l ( ) ; cart −>subtotal (); racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Everything is a Cart I Saved Carts I Wishlists I Collections racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Multiple Carts cart( ’wishlist ’)−>add(sku => ’ORA322’ , name => ’Orange’ , price => 2.00, quantity => 5); racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Cart Backends I Session I DBI racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Inventory Check MinQuantityField min_quantity MaxQuantityField inventory:quantity racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Inventory Check Hook hook ’before_cart_add ’ => sub { my ($cart, $item) = @_; my ($inventory ); $inventory = query−>select_field(table => ’products’, field => ’inventory’, where => {sku => $item −>{sku } } ) ; i f ( $item −>{quantity} > $inventory) { $item −>{error} = ’Out of stock’; } }; racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Cart Hooks I before_cart_add I after_cart_add racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Cart Hooks I before_cart_remove I after_cart_remove racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Checkout I Taxes I Shipping I Payment I Invoice racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Payment I Business::OnlinePayment racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Tax Modules on CPAN I Business::Tax::Canada I Business::CA::GST I Business::Tax::VAT I Business::Tax::VAT::Validation racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Shipping I Simple Shipping I Crazy Shipping I Shipping API racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Costs $cart −>apply_cost(amount => 5); $cart −>apply_cost(amount => 0.19, relative => 1); racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms PDF Invoices I HTML template I Template::Flute::PDF racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Accounts post ’/login’ => sub { i f ( account−>login(username => params( ’body ’)−>{username} , password => params( ’body ’)−>{password})) { redirect ’/customerservice ’; } else { redirect ’/login’; } }; racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Accounts get ’/checkout’ => sub { i f ( account−>acl(check => ’submit_orders’)) { return template ’checkout ’; } redirect ’/access_denied’; }; racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Account manager I Account Providers I Login/Logout I Account Information I Login status I Forgot password I Registration racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Account Provider I DBI I LDAP * I Htpasswd * I OpenID * I OAuth * racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Access Control I User I Roles I Permissions racke Modern PerlCommerce Modern PerlCommerce Cart Past and Future Checkout API Accounts and Access Control Development & Deployment Forms Forms I Display I Validation I Storage racke Modern PerlCommerce Modern PerlCommerce Dancer Past and Future Contribution API The End Development & Deployment Routes I Categories I Products I Cart I Checkout I Login/Logout I Customer Service racke Modern PerlCommerce Modern PerlCommerce Dancer Past and Future Contribution API The End Development & Deployment Default Route get qr { / ( . ∗ ) } => sub { my ($sku) = splat; my $product ; # check for existing product i f ($product = database−>quick_select( ’products’, {sku => $sku})) { # display flypage template ’flypage ’, $product; } else { # display not found page status ’not_found’; forward ’404’; } }; racke Modern PerlCommerce Modern PerlCommerce Dancer Past and Future Contribution API The End Development & Deployment CPAN/GitHub I http://search.cpan.org/dist/Nitesi/ I http://search.cpan.org/dist/Nitesi-DBI/ I http://search.cpan.org/dist/ Dancer-Plugin-Nitesi/ I https://github.com/racke/Nitesi I https://github.com/racke/Nitesi-DBI I https: //github.com/racke/Dancer-Plugin-Nitesi racke Modern PerlCommerce Modern PerlCommerce Dancer Past and Future Contribution API The End Development & Deployment The End Slides: http://www.linuxia.de/talks/perlcommerce/ perlcommerce-beamer.pdf Project: https://vsc.state.gov/ racke Modern PerlCommerce.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    44 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us