public function parseProducts() { $products = new Products(); $keyParams = array(); $currencies = $this->parseCurrencies(); $measurements = $this->parseMeasurements(); foreach ($this->xmlProducts as $xmlProduct) { $code = $xmlProduct->getCode(); $name = $xmlProduct->getName(); $isAGroup = $xmlProduct->isAGroup(); $articul = $xmlProduct->getArticul(); $basicMeasurementUnitCode = $xmlProduct->getBasicMeasurementUnit(); $basicMeasurementUnit = $measurements->getUnitByCode($basicMeasurementUnitCode); $price = $xmlProduct->getPrice(); $currencyCode = $xmlProduct->getCurrency(); $currency = $currencies->getUnitByCode($currencyCode); $measurementUnitCode = $xmlProduct->getBasicMeasurementUnit(); $measurementUnit = $measurements->getUnitByCode($measurementUnitCode); if (!empty($code) && !in_array($code, $keyParams)) { array_push($keyParams, $code); $product = new Product(); $product->setIsAGroup($isAGroup); $product->setCode($code); $product->setName($name); $product->setArticul($articul); $product->setBasicMeasurementUnit($basicMeasurementUnit); $product->setPrice($price); $currency == null ? '' : $product->setCurrency($currency); $measurementUnit == null ? '' : $product->setMeasurementUnit($measurementUnit); $products->setItem($product); } } $categories = $this->parseCategories(); foreach ($this->xmlProducts as $xmlProduct) { $catCode = $xmlProduct->getCategoryCode(); $code = $xmlProduct->getCode(); $current = $products->getItemByCode($code); $parent = $categories->getItemByCode($catCode); if ($parent != null) { $current->setParent($parent); } } $productDAO = new ProductDAO(); $productDAO->insertItems($products); return $products; }
/** * @param $productID * @return Product */ public function getProduct($productID) { APIWrapper::verifyReadiness(); $requestURL = "https://app.fetchapp.com/api/v2/products/" . $productID; $product = APIWrapper::makeRequest($requestURL, "GET"); if (is_a($product, "SimpleXMLElement")) { $tempProduct = new Product(); $tempProduct->setProductID($product->id); $tempProduct->setSKU($product->sku); $tempProduct->setName($product->name); $tempProduct->setPrice($product->price); $tempProduct->setCurrency(Currency::getValue($product->currency)); $tempProduct->setOrderCount($product->order_count); $tempProduct->setDownloadCount($product->download_count); $tempProduct->setPaypalAddToCartLink($product->paypal_add_to_cart_link['href']); $tempProduct->setPaypalBuyNowLink($product->paypal_buy_now_link['href']); $tempProduct->setPaypalViewCartLink($product->paypal_view_cart_link['href']); $tempProduct->setCreationDate(new \DateTime($product->created_at)); $tempProduct->setFilesUri($product->files_uri); $tempProduct->setDownloadsUri($product->downloads_uri); } return $tempProduct; }
/** * Populate product object * * @param array $product * @return object */ protected function getProductObject($product) { if (empty($product)) { throw new BuyatException('Malformed response from server'); } $productObject = new Product(); $productObject->setProductID($product['product_id']); $productObject->setProductSKU($product['product_sku']); $productObject->setProductURL($product['product_url']); $productObject->setProductName($product['product_name']); $productObject->setBrandName($product['brand_name']); $productObject->setDescription($product['description']); $productObject->setOnlinePrice($product['online_price']); $productObject->setCurrency($product['currency']); $productObject->setCurrencySymbol($product['currency_symbol']); $productObject->setImageURL($product['image_url']); $productObject->setProgrammeName($product['programme_name']); $productObject->setProgrammeURL($product['programme_url']); $productObject->setProgrammeID($product['programme_id']); $productObject->setLevel1CategoryID($product['level1_category_id']); $productObject->setLevel1CategoryName($product['level1_category_name']); $productObject->setLevel2CategoryID($product['level2_category_id']); $productObject->setLevel2CategoryName($product['level2_category_name']); $productObject->setFeedID($product['feed_id']); $productObject->setFeedName($product['feed_name']); return $productObject; }