NAME
Dancer::Plugin::Nitesi - Nitesi Shop Machine plugin for Dancer
VERSION
Version 0.0091
SYNOPSIS
use Dancer::Plugin::Nitesi;
cart->add({sku => 'ABC', name => 'Foobar', quantity => 1, price => 42});
cart->items();
cart->clear();
account->login(username => 'frank@nitesi.com', 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 => 'frank@nitesi.com', 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 => 'frank@nitesi.com', password => 'nevairbe');
Create account:
account->create(email => 'fina@nitesi.com');
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), `racke@linuxia.de'
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