Mango::Order - Module representing an order
my $order = $provider->create({ user => $user }); my $iterator = $order->items; while (my $item = $iterator->next) { print $item->sku; print $item->price; print $item->total; };
Mango::Order represents an order.
Adds a new item to the current order and returns an instance of the item class. You can either pass the item data as a hash reference:
my $item = $order->add({ sku => 'SKU1234', quantity => 1, price => 1.25 });
or pass an existing item:
$order->add( $cart->items->first );
When passing an existing cart/order item to add, all columns in the source item will be copied into the destination item if the column exists in both the destination and source, and the column isn't the primary key or the foreign key of the item relationship.
Deletes all items from the current order.
$order->clear;
Returns the number of items in the order object.
my $numitems = $order->count;
Deletes the item matching the supplied filter from the current order.
$order->delete({ sku => 'ABC-123' });
Deletes the current order and its items.
Loads the current orders items matching the specified filter and returns a Mango::Iterator in scalar context, or a list of items in list context.
my $iterator = $order->items; while (my $item = $iterator->next) { print $item->sku; }; my @items = $order->items;
The following options are available:
Order the items by the column(s) and order specified. This option uses the SQL style syntax:
my $items = $order->items(undef, {order_by => 'sku ASC'});
Marks the current order type as ORDER_TYPE_SAVED.
ORDER_TYPE_SAVED
$order->save
This method copies the specified carts items into the order only if the item count or the subtotal differ.
Returns the id of the current order.
print $order->id;
See "id" in Handel::Schema::Order for more information about this column.
Gets/sets the type of the current order. Currently the two types allowed are:
ORDER_TYPE_TEMP
The order is temporary and may be purged during any [external] cleanup process after the designated amount of inactivity.
The order should be left untouched by any cleanup process and is available to the shopper at any time.
$order->type(ORDER_TYPE_SAVED); print $order->type;
Gets/sets the order number.
$order->number(1015275); print $order->number;
Gets/sets the date/time when the order was created. The date is returned as a stringified DateTime object.
$order->created('2006-04-11T12:34:65'); print $order->created;
Gets/sets the date/time when the order was last updated. The date is returned as a stringified DateTime object.
$order->updated('2006-04-11T12:34:65'); print $order->updated;
Gets/sets the comments for this order.
$order->comments('Handel with care'); print $order->comments;
Gets/sets the shipping method for this order.
$order->shipmethod('UPS 2nd Day'); print $order->shipmethod;
Gets/sets the shipping cost for the order item. The price is returned as a stringified Mango::Currency object.
$item->shipping(12.95); print $item->shipping; print $item->shipping->format;
Gets/sets the handling cost for the order item. The price is returned as a stringified Mango::Currency object.
$item->handling(12.95); print $item->handling; print $item->handling->format;
Gets/sets the tax for the order item. The price is returned as a stringified Mango::Currency object.
$item->tax(12.95); print $item->tax; print $item->tax->format;
Gets/sets the subtotal for the order item. The price is returned as a stringified Mango::Currency object.
$item->subtotal(12.95); print $item->subtotal; print $item->subtotal->format;
Gets/sets the total for the order item. The price is returned as a stringified Mango::Currency object.
$item->total(12.95); print $item->total; print $item->total->format;
Gets/sets the bill to first name.
$order->billtofirstname('Chistopher'); print $order->billtofirstname;
Gets/sets the bill to last name
$order->billtolastname('Chistopher'); print $order->billtolastname;
Gets/sets the bill to address line 1
$order->billtoaddress1('1234 Main Street'); print $order->billtoaddress1;
Gets/sets the bill to address line 2
$order->billtoaddress2('Suite 34b'); print $order->billtoaddress2;
Gets/sets the bill to address line 3
$order->billtoaddress3('Floor 5'); print $order->billtoaddress3;
Gets/sets the bill to city
$order->billtocity('Smallville'); print $order->billtocity;
Gets/sets the bill to state/province
$order->billtostate('OH'); print $order->billtostate;
Gets/sets the bill to zip/postal code
$order->billtozip('12345-6500'); print $order->billtozip;
Gets/sets the bill to country
$order->billtocountry('US'); print $order->billtocountry;
Gets/sets the bill to day phone number
$order->billtodayphone('800-867-5309'); print $order->billtodayphone;
Gets/sets the bill to night phone number
$order->billtonightphone('800-867-5309'); print $order->billtonightphone;
Gets/sets the bill to fax number
$order->billtofax('888-132-4335'); print $order->billtofax;
Gets/sets the bill to email address
$order->billtoemail('claco@chrislaco.com'); print $order->billtoemail;
When true, the ship address is the same as the bill to address.
$order->shiptosameasbillto(1); print $order->shiptosameasbillto;
Gets/sets the ship to first name.
$order->shiptofirstname('Chistopher'); print $order->shiptofirstname;
Gets/sets the ship to last name
$order->shiptolastname('Chistopher'); print $order->shiptolastname;
Gets/sets the ship to address line 1
$order->shiptoaddress1('1234 Main Street'); print $order->shiptoaddress1;
Gets/sets the ship to address line 2
$order->shiptoaddress2('Suite 34b'); print $order->shiptoaddress2;
Gets/sets the ship to address line 3
$order->shiptoaddress3('Floor 5'); print $order->shiptoaddress3;
Gets/sets the ship to city
$order->shiptocity('Smallville'); print $order->shiptocity;
Gets/sets the ship to state/province
$order->shiptostate('OH'); print $order->shiptostate;
Gets/sets the ship to zip/postal code
$order->shiptozip('12345-6500'); print $order->shiptozip;
Gets/sets the ship to country
$order->shiptocountry('US'); print $order->shiptocountry;
Gets/sets the ship to day phone number
$order->shiptodayphone('800-867-5309'); print $order->shiptodayphone;
Gets/sets the ship to night phone number
$order->shiptonightphone('800-867-5309'); print $order->shiptonightphone;
Gets/sets the ship to fax number
$order->shiptofax('888-132-4335'); print $order->shiptofax;
Gets/sets the ship to email address
$order->shiptoemail('claco@chrislaco.com'); print $order->shiptoemail;
Saves any changes made to the order back to the provider.
$order->number(12345); $order->update;
Whenever "update" is called, "updated" is automatically set to the current time in UTC.
Returns the date and time in UTC the order was last updated as a DateTime object.
print $order->updated;
The following columns are really just methods to hold sensitive order data that we don't want to actually store in the database.
Gets/sets the credit cart number.
$order->ccn(4444333322221111); print $order->ccn;
Gets/sets the credit cart type.
$order->cctype('MasterCard'); print $order->cctype;
Gets/sets the credit cart expiration month.
$order->ccm(1); print $order->ccm;
Gets/sets the credit cart expiration year.
$order->ccyear(2010); print $order->ccyear;
Gets/sets the credit cart verification number.
$order->cvvn(102); print $order->cvvn;
Gets/sets the credit cart holders name as it appears on the card.
$order->ccname('CHRISTOPHER H. LACO'); print $order->ccname;
Gets/sets the credit cart issue number.
$order->ccissuenumber(16544); print $order->ccissuenumber;
Gets/sets the credit cart start date.
$order->ccstartdate('1/2/2009'); print $order->ccstartdate;
Gets/sets the credit cart end date.
$order->ccenddate('12/31/2011'); print $order->ccenddate;
Mango::Order::Item, Mango::Schema::Order
Christopher H. Laco CPAN ID: CLACO claco@chrislaco.com http://today.icantfocus.com/blog/
To install Mango, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mango
CPAN shell
perl -MCPAN -e shell install Mango
For more information on module installation, please visit the detailed CPAN module installation guide.