NAME

    Dancer::Plugin::Interchange6 - Interchange6 Shop Plugin for Dancer

VERSION

    Version 0.120

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 "var" in 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_redirect

    Calls "redirect" in Interchange6::Schema::ResultSet::UriRedirect with
    given args.

 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-2016 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