private function getProductInfo($product_id, $sku_id = null, $order_id = null) { $product = new shopProduct($product_id); $data = $product->getData(); if (!$data) { return array(); } $rate = 1; $currency_model = $this->getModel('currency'); if ($order_id) { $order = $this->getOrder($order_id); $rate = $order['rate']; } $data['price'] = (double) $currency_model->convertByRate($data['price'], 1, $rate); $data['max_price'] = (double) $currency_model->convertByRate($data['max_price'], 1, $rate); $data['min_price'] = (double) $currency_model->convertByRate($data['min_price'], 1, $rate); $data['skus'] = $product->skus; foreach ($data['skus'] as &$sku) { $sku['price'] = (double) $currency_model->convertByRate($sku['primary_price'], 1, $rate); } unset($sku); if ($sku_id === null) { $sku_id = count($data['skus']) > 1 ? $product->sku_id : null; } if ($sku_id && isset($data['skus'][$sku_id])) { $sku_price = $data['skus'][$sku_id]['price']; } else { $sku_price = $data['price']; } $data['services'] = $this->getServices($product_id, $sku_id, $order_id, $sku_price); return $data; }