/**
* Provide a copy of the current order's items, including image details and variations
* @todo what about subTitles? i.e the variation choosen (I think)
* @return array
*/
protected function getCurrentShoppingCartItems()
{
$result = array();
$items = ShoppingCart::curr()->Items();
if ($items->exists()) {
foreach ($items->getIterator() as $item) {
// Definitions
$data = array();
$product = $item->Product();
$data["id"] = (string) $item->ProductID;
$data["internalItemID"] = $product->InternalItemID;
$data["title"] = $product->Title;
$data["quantity"] = (int) $item->Quantity;
$data["unitPrice"] = $product->getPrice();
$data["href"] = $item->Link();
$data['categories'] = $product->getCategories()->column('Title');
$data["addLink"] = $item->addLink();
$data["removeLink"] = $item->removeLink();
$data["removeallLink"] = $item->removeallLink();
$data["setquantityLink"] = $item->setquantityLink();
// Image
if ($image = $item->Image()->ScaleWidth((int) Product_Image::config()->cart_image_width)) {
$data["image"] = array('alt' => $image->Title, 'src' => $image->Filename, 'width' => $image->Width, 'height' => $image->Height);
}
// Variations
if ($product->has_many("Variations")) {
$variations = $product->Variations();
if ($variations->exists()) {
$data['variations'] = array();
foreach ($variations as $variation) {
$data['variations'][] = array('id' => (string) $variation->ID, 'title' => $variation->Title);
}
}
}
$result[] = $data;
}
}
return $result;
}