Compare and Contrast between Interchange 5 and Interchange 6

Richard Templet
End Point Corporation
Perl::Dancer Conference
9th October 2014

Database Differences

  1. SQL versus DBIx::Class
  2. transactions became orders
  3. orderline became orderlines
  4. userdb became users
  5. addition of attributes tables
  6. slimmed down orders table
  7. addition of addresses tables

Attributes System

  1. No more adding fields to tables
  2. Only define an attribute once (size,color,height,width)
  3. Only define an attribute value once
  4. Associate the same attribute and value to multiple things
    (size of an image versus a product)

Addresses System

  1. Only define an address once
  2. Tie the address to the billing or shipping address in the orders table
  3. Tie the address to the users_id field in the users table
  4. No more duplicate address information in the orders or users table

SEO friendliness

  1. Product Detail
    1. http://www.domain.com/cgi-bin/site/900
    2. http://www.domain.com/item/A-Nifty-Product/900
    3. http://www.domain.com/A-Nifty-Product/900
  2. Product List
    1. http://www.domain.com/cgi-bin/site/scan/mp=cat/se=Mens-Shoes.html
    2. http://www.domain.com/Shoes/Mens-Shoes/

Server Setup

  1. CGI versus Plackup
  2. Both can use TCP or Unix sockets
  3. Both work with either Nginx or Apache

Action Maps versus Routes

Not as different as you might think

Template systems

  1. Interchange 5 allows for Bootstrap and ITL
  2. Interchange 6 allows for any CPAN Template module
    Like Template::Toolkit or Template::Flute

Order / Form profiles versus Dancer::Plugin::ValidateTiny (and others)

Vend::Payment versus Business::Online::Payment

  1. Vend::Payment relies on Session data
  2. Business::Online::Payment relies on information being passed into it

Convert database script

  1. Interchange 5 MySQL to Interchange 6 Postgres
  2. Add all extra products table fields to attributes system
  3. Add all addresses from userdb and transactions to the addresses system

Questions?