The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
NAME
    Dancer::Plugin::Interchange6 - Interchange6 Shop Plugin for Dancer

VERSION
    Version 0.086

REQUIREMENTS
    All Interchange6 Dancer applications need to use the
    Dancer::Session::DBIC engine.

    The easiest way to configure this is in your main module, just after all
    the `use' statements:

       set session => 'DBIC';
       set session_options => {schema => schema};

CONFIGURATION
    Available configuration options:

      plugins:
        Interchange6:
          cart_class: MyApp::Cart
          carts_var_name: some_other_var

    * cart_class
        If you wish to subclass the cart you can have shop_cart return your
        subclassed cart instead. You set the cart class via `cart_class'.
        Defaults to Dancer::Plugin::Interchange6::Cart.

    * carts_var_name
        The plugin caches carts in a Dancer and the name of the var used can
        be set via `carts_var_name'. Defaults to `ic6_carts'.

ROUTES
    You can use the Dancer::Plugin::Interchange6::Routes plugin bundled with
    this plugin to setup standard routes for:

    product listing
    product display
    cart display
    checkout form

    To enable these routes, you put the `shop_setup_routes' keyword at the
    end of your main module:

        package MyShop;

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

        get '/shop' => sub {
            ...
        };

        ...

        shop_setup_routes;

        true;

    Please refer to Dancer::Plugin::Interchange6::Routes for configuration
    options and further information.

KEYWORDS
  shop_cart
    Returns Dancer::Plugin::Interchange6::Cart object.

  shop_charge
    Creates payment order and authorizes amount.

  shop_schema
    Returns Interchange6::Schema object.

  shop_...
    Accessors for Interchange6::Schema result classes. You can use it to
    retrieve a single object or the corresponding result set.

        shop_product('F0001')->uri;

        shop_navigation->search({type => 'manufacturer',
                                 active => 1});

    Available accessors are `shop_address', `shop_attribute',
    `shop_country', `shop_message', `shop_navigation', `shop_order',
    `shop_product', `shop_state' and `shop_user'.

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.

    before_cart_set_users_id
        Triggered before users_id is set for the cart.

    after_cart_set_users_id
        Triggered after users_id is set for the cart.

    before_cart_set_sessions_id
        Triggered before sessions_id is set for the cart.

    after_cart_set_sessions_id
        Triggered after sessions_id is set for the cart.

EXPIRE DBIC SESSIONS
    This command expires/manages DBIC sessions and carts. NOTE: For proper
    functionality please copy/link to Dancer App/bin directory.

        interchange6-expire-sessions

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

    Peter Mottram for his patches.

LICENSE AND COPYRIGHT
    Copyright 2010-2015 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
    Interchange6, Interchange6::Schema