The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dancer::Plugin::Interchange6::Routes - Routes for Interchange6 Shop Machine

ROUTES

The following routes are provided by this plugin.

Active routes are automatically installed by the shop_setup_routes keyword:

cart (/cart)

Route for displaying and updating the cart.

checkout (/checkout)

Route for the checkout process (not active and not recommended).

login (/login)

Login route.

logout (/logout)

Logout route.

Route for displaying navigation pages, for example categories and menus.

The number of products shown on the navigation page can be configured with the records option:

  plugins:
    Interchange6::Routes:
      navigation:
        records: 20
product

Route for displaying products.

CONFIGURATION

The template for each route type can be configured:

    plugins:
      Interchange6::Routes:
        account:
          login:
            template: login
            uri: login
            success_uri:
          logout:
            template: logout
            uri: logout
        cart:
          template: cart
          uri: cart
          active: 1
        checkout:
          template: checkout
          uri: checkout
          active: 0
        navigation:
          template: listing
          records: 0
        product:
          template: product

This sample configuration shows the current defaults.

HOOKS

The following hooks are available to manipulate the values passed to the templates:

before_product_display

The hook sub receives a hash reference, where the Product object is the value of the product key.

before_cart_display
before_checkout_display
before_navigation_display

The hook sub receives the navigation data as hash reference:

Navigation object.

products

Products for this navigation item.

count

Number of products.

pager

Page for products.

template

Name of template. In order to use another template, change the value in the hashref.

    hook 'before_navigation_display' => sub {
        my $navigation_data = shift;

        if ($navigation_data->{navigation}->uri =~ /^admin/) {
             $navigation_data->{template} = 'admin_listing';
        }
    };
before_login_display

EXAMPLES

Disable parts of layout on the login view:

    hook 'before_login_display' => sub {
        my $tokens = shift;

        $tokens->{layout_noleft} = 1;
        $tokens->{layout_noright} = 1;
    };