Handel::Cart::Item - Module representing an individual shopping cart item


Handel documentation  | view source Contained in the Handel distribution.

Index


NAME

Top

Handel::Cart::Item - Module representing an individual shopping cart item

SYNOPSIS

Top

    use Handel::Cart::Item;

    my $item = Handel::Cart::Item->create({
        cart     => '11111111-1111-1111-1111-111111111111',
        sku      => '1234',
        price    => 1.23,
        quantity => 1
    });

DESCRIPTION

Top

Handel::Cart::Item is used in two main ways. First, you can create or edit cart items individually:

    use Handel::Cart::Item;

    my $item = Handel::Cart::Item->create({
        cart => '11111111-1111-1111-1111-111111111111',
        sku => '1234',
        price => 1.23,
        quantity => 1
    });

As a general rule, you probably want to add/edit items using the cart objects items and add methods below instead.

Second, the items method of any valid Handel::Cart object returns a collection of Handel::Cart::Item objects:

    my @items = $cart->items;
    foreach (@items) {
        print $_->sku;
    };

CONSTRUCTOR

Top

create

Arguments: \%data [, \%options]

You can create a new Handel::Cart::Item object by calling the new method:

    my $item = Handel::Cart::Item->create({
        cart => '11111111-1111-1111-1111-111111111111',
        sku => '1234',
        price => 1.23,
        quantity => 1
    });

    $item->quantity(2);

    print $item->total;

The following options are available:

storage

A storage object to use to create a new item object. Currently, this storage object must have the same columns as the default storage object for the current item class.

COLUMNS

Top

The following methods are mapped to columns in the default cart schema. These methods may or may not be available in any subclasses, or in situations where a custom schema is being used that has different column names.

id

Returns the id of the current cart item.

    print $item->id;

See id in Handel::Schema::Cart::Item for more information about this column.

cart

Gets/sets the id of the cart this item belongs to.

    $item->cart('11111111-1111-1111-1111-111111111111');
    print $item->cart;

See cart in Handel::Schema::Cart::Item for more information about this column.

sku

Arguments: $sku

Gets/sets the sku (stock keeping unit/part number) for the cart item.

    $item->sku('ABC123');
    print $item->sku;

See sku in Handel::Schema::Cart::Item for more information about this column.

quantity

Arguments: $quantity

Gets/sets the quantity, or the number of this item being purchased.

    $item->quantity(3);
    print $item->quantity;

By default, the value supplied will be checked against constraint_quantity in Handel::Constraints to verify it is within the valid range of values.

See quantity in Handel::Schema::Cart::Item for more information about this column.

price

Arguments: $price

Gets/sets the price for the cart item. The price is returned as a stringified Handel::Currency object.

    $item->price(12.95);
    print $item->price;
    print $item->price->format;




See price in Handel::Schema::Cart::Item for more information about this column.

total

Returns the total price for the cart item as a stringified Handel::Currency object. This is really just quantity*total and is provided for convenience.

    print $item->total;
    print $item->total->format;

description

Arguments: $description

Gets/sets the description for the current cart item.

    $item->description('Best Item Ever');
    print $item->description;

See description in Handel::Schema::Cart::Item for more information about this column.

SEE ALSO

Top

Handel::Cart, Handel::Schema::Cart::Item, Handel::Currency

AUTHOR

Top

    Christopher H. Laco
    CPAN ID: CLACO
    claco@chrislaco.com
    http://today.icantfocus.com/blog/



Handel documentation  | view source Contained in the Handel distribution.