[Handel] [RFC] *::Item::Properties

Christopher H. Laco claco at chrislaco.com
Mon Jan 23 01:08:01 CET 2006


A suggestion has been made to allow Cart and Order to be able to use
multiple item_class classes. The premise is that some items need
different fields from others, fields that aren't quite generic enough to
be used across the board.

While I think this particular approach could turn into a nightmare
pretty quickly, I think I have an alternate plan that could work. I
wanted to get some feedback on it before I started working on it.

Option #1.

In short, two table and classes would be added;
cart_item_properties/Cart::Item::Properties and
order_item_properties/Order::Item::Properties.

Each table would basically consist of the following fields:

	id
	itemid
	name
	value

Each item would have a new properties collection:

  my $item = Handel::Cart::Item->new({
    sku => 'SKU123'
    quantity => 1,
    properties => {
        name1 => 'value1',
        name2 => 'value2'
    }
  });

  my $item = $cart->items({sku => 'SKU123'});
  my $properties = $item->properties;

  while my $prop = $properties->next {
     print $prop;
     print $prop->value;
  };


Option #2.

This is slightly lower tech. cart_items and order_items would get a new
field called...wait for it.... properties.

In this field, we would simply store a a YAML string with various
name/value pairs. The upside to this approach is that the properties
field can contain anything YAML supports; list, name/value collections,
trees, etc.


Option #3.

Do nothing. Leave this type of thing out of Handel, and leave it up to
people making custom subclasses.



Thoughts?
-=Chris
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: OpenPGP digital signature
Url : http://lists.rawmode.org/pipermail/handel/attachments/20060122/ff8300bb/signature.pgp


More information about the Handel mailing list