/** * get full detail including items */ function getFullDetail($id, $currency = GLOBAL_DEFAULT_CURRENCY) { if (is_numeric($id)) { $basket = $this->detail($id); require_once 'models/ecommerce/ecommerce_basket_content.php'; $Basket_content = new ecommerce_basket_content(); $Basket_content->setCacheable(false); $basket['items'] = $Basket_content->getItems($id); $basket['currency'] = $currency; require_once 'models/ecommerce/ecommerce_product.php'; $Product = new ecommerce_product(); $Product->setCacheable(false); foreach ($basket['items'] as &$item) { $variety = $Product->getProductVarietyDetail($item['product_variety_id'], $item['price_id'], $currency); $item['product'] = $Product->ProductDetail($variety['product_id']); $node = $Product->findProductInNode($item['product']['id']); $item['product']['variety'] = $variety; $item['product']['node'] = $node[0]; $item['other_data'] = unserialize($item['other_data']); } return $basket; } else { return false; } }
protected function getProductInfo($product_variety_id) { // cache_local product info $key = "product_variety_id_{$product_variety_id}"; if (isset($this->cache_local[$key])) { return $this->cache_local[$key]; } require_once 'models/ecommerce/ecommerce_product.php'; $Product = new ecommerce_product(); $variety = $Product->getProductVarietyDetail($product_variety_id); $product = $Product->productDetail($variety['product_id']); $homepage = $Product->getProductHomepage($variety['product_id']); $product['url'] = translateURL('page/' . $homepage['id']); $Image = new Onxshop_Request("component/image&relation=product&role=main&width=120&node_id={$product['id']}&limit=0,1"); $product['variety'] = $variety; $product['image'] = $Image->getContent(); $this->cache_local[$key] = $product; return $product; }
/** * Return list of all ingredients for a recipe * Each element contains: * - ingredient data * - related product variety data as 'variety' field * - related product data as 'product' field * - unit name as 'unis_name' field */ public function getIngredientsForRecipe($recipe_id) { if (!is_numeric($recipe_id)) { return false; } $ingredients = $this->listing("recipe_id = {$recipe_id}"); require_once 'models/ecommerce/ecommerce_product.php'; $Product = new ecommerce_product(); $units_raw = $this->getUnits(); foreach ($units_raw as $unit) { $units[$unit['id']] = $unit['title']; } foreach ($ingredients as &$ingredient) { $ingredient['units_name'] = $units[$ingredient['units']]; $ingredient['variety'] = $Product->getProductVarietyDetail($ingredient['product_variety_id']); if ($ingredient['variety']) { $ingredient['product'] = $Product->detail($ingredient['variety']['product_id']); } $ingredient['name'] = $ingredient['product']['name']; } $ingredients = php_multisort($ingredients, array(array('key' => 'group_title', 'sort' => 'asc'), array('key' => 'name', 'sort' => 'asc'))); return $ingredients; }
/** * checkForFreePromoItem */ public function checkForFreePromoItem($promotion_data, $order_value) { if (is_array($promotion_data)) { $product_variety_id = $promotion_data['free_promo_products'][9999]; if (is_numeric($promotion_data['free_promo_products'][9999])) { require_once 'models/ecommerce/ecommerce_product.php'; $Product = new ecommerce_product(); $variety = $Product->getProductVarietyDetail($product_variety_id); if ($variety) { $variety['product'] = $Product->getDetail($variety['product_id']); return $variety; } } } return false; }