NAME
   Dancer::Plugin::Nitesi - Nitesi Shop Machine plugin for Dancer

VERSION
   Version 0.0090

SYNOPSIS
       use Dancer::Plugin::Nitesi;

       cart->add({sku => 'ABC', name => 'Foobar', quantity => 1, price => 42});
       cart->items();
       cart->clear();

       account->login(username => '[email protected]', password => 'nevairbe');
       account->acl(check => 'view_prices');
       account->logout();

DESCRIPTION
   This dancer plugin gives you access to the products, cart and account
   functions of the Nitesi shop machine.

PRODUCTS
CARTS
   The cart keyword returns a Nitesi::Cart object with the corresponding
   methods.

   You can use multiple carts like that:

       cart('wishlist')->add({sku => 'ABC', name => 'Foobar', quantity => 1, price => 42});
       cart('wishlist')->total;

   The DBI backend (Dancer::Plugin::Nitesi::Cart::DBI) allows you to load
   carts of arbitrary users.

       cart('', 123)->items;

ACCOUNTS
   The account keyword returns a Nitesi::Account::Manager object with the
   corresponding methods.

   Login to an account:

       account->login(username => '[email protected]', password => 'nevairbe');

   Logout:

       account->logout();

   Check permissions:

       account->acl(check => 'view_prices');

   Change password for current account:

       account->password('nevairbe');

   Change password for other account:

       account->password(username => '[email protected]', password => 'nevairbe');

   Create account:

       account->create(email => '[email protected]');

ROUTES
   Standard routes can be registered by including the
   Dancer::Plugin::Nitesi::Routes module and calling `shop_set_routes' at
   the end of your main application module:

       package MyShopApp;

       use Dancer ':syntax';
       use Dancer::Plugin::Nitesi;
       use Dancer::Plugin::Nitesi::Routes;

       ...

       shop_setup_routes;

       1;

 VIEWS
   The following views (template files) are needed for your shopping cart
   application:

   product
       Product detail page, with product description, product price and
       "Add to cart" button.

   cart
       Cart page.

HOOKS
   This plugin installs the following hooks:

 Add to cart
   The functions registered for these hooks receive the cart object and the
   item to be added as parameters.

   before_cart_add_validate
       Triggered before item is validated for adding to the cart.

   before_cart_add
       Triggered before item is added to the cart.

   after_cart_add
       Triggered after item is added to the cart. Used by DBI backend to
       save item to the database.

 Update cart
   The functions registered for these hooks receive the cart object, the
   current item in the cart and the updated item.

   before_cart_update
       Triggered before cart item is updated (changing quantity).

   after_cart_update
       Triggered after cart item is updated (changing quantity). Used by
       DBI backend to update item to the database.

 Remove from cart
   The functions registered for these hooks receive the cart object and the
   item to be added as parameters.

   before_cart_remove_validate
       Triggered before item is validated for removal. Receives cart object
       and item SKU.

   before_cart_remove
       Triggered before item is removed from the cart. Receives cart object
       and item.

   after_cart_remove
       Triggered after item is removed from the cart. Used by DBI backend
       to delete item from the database. Receives cart object and item.

 Clear cart
   before_cart_clear
       Triggered before cart is cleared.

   after_cart_clear
       Triggered after cart is cleared.

 Rename cart
   The functions registered for these hooks receive the cart object, the
   old name and the new name.

   before_cart_rename
       Triggered before cart is renamed.

   after_cart_rename
       Triggered after cart is renamed.

CONFIGURATION
   The default configuration is as follows:

       plugins:
         Nitesi:
           Account:
             Session:
               Key: account
             Provider: DBI
           Cart:
             Backend: Session
           Product:
             backend: DBI
             table: products
             key: sku
           Query:
             log: 0

 ACCOUNT
   Connection
   The connection used by Dancer::Plugin::Database can be set as follows:

       plugins:
         Nitesi:
           Account:
             Provider: DBI
             Connection: shop

   Fields
   Extra fields can be retrieved from the account provider and put into the
   session after a successful login:

       plugins:
         Nitesi:
           Account:
             Provider: DBI
             Fields: first_name,last_name,city

 PRODUCTS
   If your products table slightly varies from our default schema in
   Nitesi::Database::Schema, you can adjust this in your configuration:

       plugins:
         Nitesi:
           Product:
             attributes:
               name: description
               short_description: comment_short

   This directs Dancer::Plugin::Nitesi to use the description field instead
   of the name field and the comment_short field instead of the
   short_description field.

 QUERY
   DBI queries can be logged with debug level as follows:

       plugins:
         Nitesi:
           Query:
             log: 1

CAVEATS
   Please anticipate API changes in this early state of development.

AUTHOR
   Stefan Hornburg (Racke), `[email protected]'

BUGS
   Please report any bugs or feature requests to `bug-nitesi at
   rt.cpan.org', or through the web interface at
   http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Dancer-Plugin-Nitesi. I
   will be notified, and then you'll automatically be notified of progress
   on your bug as I make changes.

SUPPORT
   You can find documentation for this module with the perldoc command.

       perldoc Dancer-Plugin-Nitesi

   You can also look for information at:

   * RT: CPAN's request tracker (report bugs here)
       http://rt.cpan.org/NoAuth/Bugs.html?Dist=Dancer-Plugin-Nitesi

   * AnnoCPAN: Annotated CPAN documentation
       http://annocpan.org/dist/Dancer-Plugin-Nitesi

   * CPAN Ratings
       http://cpanratings.perl.org/d/Dancer-Plugin-Nitesi

   * Search CPAN
       http://search.cpan.org/dist/Dancer-Plugin-Nitesi/

ACKNOWLEDGEMENTS
   The Dancer developers and community for their great application
   framework and for their quick and competent support.

LICENSE AND COPYRIGHT
   Copyright 2010-2013 Stefan Hornburg (Racke).

   This program is free software; you can redistribute it and/or modify it
   under the terms of either: the GNU General Public License as published
   by the Free Software Foundation; or the Artistic License.

   See http://dev.perl.org/licenses/ for more information.

SEE ALSO
   Nitesi