Interchange6::Cart - Cart class for Interchange6 Shop Machine
Generic cart class for Interchange6.
my $cart = Interchange6::Cart->new(); $cart->add( sku => 'ABC', name => 'Foo', price => 23.45 ); $cart->update( sku => 'ABC', quantity => 3 ); my $product = Interchange::Cart::Product->new( ... ); $cart->add($product); $cart->apply_cost( ... ); my $total = $cart->total;
Cart id can be used for subclasses, e.g. primary key value for carts in the database.
The cart name. Default is 'main'.
Called without args returns a hash reference of Interchange6::Cart::Product. Should not normally be called with args but rather via the various "PRODUCT METHODS" detailed below.
The session ID for the cart.
Returns current cart subtotal excluding costs.
Returns current cart total including costs.
The user id of the logged in user.
See Interchange6::Role::Costs for details of cost attributes and methods.
Removes all products from the cart.
Returns the number of different products in the shopping cart. If you have 5 apples and 6 pears it will return 2 (2 different products).
Return boolean 1 or 0 depending on whether the cart is empty or not.
Returns the product at the specified index;
This method returns the index of the first matching product in the cart. The matching is done with a subroutine reference you pass to this method. The subroutine will be called against each element in the array until one matches or all elements have been checked.
This method requires a single argument.
my $index = $cart->product_index( sub { $_->sku eq 'ABC' } );
Returns an array of Interchange::Cart::Product(s)
Inherited method. Returns a new Cart object.
Add product to the cart. Returns product in case of success.
The product is an Interchange6::Cart::Product or a hash (reference) of product attributes that would be passed to Interchange6::Cart::Product->new().
Searches for an cart product with the given SKU. Returns cart product in case of sucess or undef on failure.
if ($product = $cart->find(9780977920174)) { print "Quantity: $product->{quantity}.\n"; }
predicate on "subtotal".
predicate on "total".
Returns the sum of the quantity of all products in the shopping cart, which is commonly used as number of products. If you have 5 apples and 6 pears it will return 11.
print 'Products in your cart: ', $cart->quantity, "\n";
Remove product from the cart. Takes SKU of product to identify the product.
Seeds products within the cart from $product_ref.
NOTE: use with caution since any existing products in the cart will be lost.
$cart->seed([ { sku => 'BMX2015', price => 20, quantity = 1 }, { sku => 'KTM2018', price => 400, quantity = 5 }, { sku => 'DBF2020', price => 200, quantity = 5 }, ]);
Writer method for sessions_id.
Update quantity of products in the cart.
Parameters are pairs of SKUs and quantities, e.g.
$cart->update(9780977920174 => 5, 9780596004927 => 3);
A quantity of zero is equivalent to removing this product.
Returns updated products that are still in the cart. Products removed via quantity 0 or products for which quantity has not changed will not be returned.
Stefan Hornburg (Racke), <racke@linuxia.de> Peter Mottram (SysPete), <peter@sysnix.com>
Copyright 2011-2014 Stefan Hornburg (Racke) <racke@linuxia.de>.
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.
To install Interchange6, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Interchange6
CPAN shell
perl -MCPAN -e shell install Interchange6
For more information on module installation, please visit the detailed CPAN module installation guide.