/** * @param \stdClass $jsonObject * @param ModelFactoryInterface $factory * * @return static */ public static function createFromJson(\stdClass $jsonObject, ModelFactoryInterface $factory) { $productSearchResult = new static(); $productSearchResult->pageHash = $jsonObject->pageHash; $productSearchResult->productCount = $jsonObject->product_count; $productSearchResult->rawFacets = $jsonObject->facets; foreach ($jsonObject->products as $key => $jsonProduct) { $productSearchResult->products[$key] = $factory->createProduct($jsonProduct); } $productSearchResult->parseFacets($jsonObject->facets, $factory); return $productSearchResult; }
/** * @param \stdClass $jsonObject * @param ModelFactoryInterface $factory * * @return static */ public static function createFromJson(\stdClass $jsonObject, ModelFactoryInterface $factory) { $productsEansResult = new static(); $productsEansResult->pageHash = isset($jsonObject->pageHash) ? $jsonObject->pageHash : null; if (isset($jsonObject->eans)) { foreach ($jsonObject->eans as $jsonProduct) { if (isset($jsonProduct->error_code)) { $productsEansResult->errors[] = $jsonProduct; $productsEansResult->eansNotFound = array_merge($productsEansResult->eansNotFound, $jsonProduct->ean); continue; } $productsEansResult->products[] = $factory->createProduct($jsonProduct); } } return $productsEansResult; }
/** * @param \stdClass $jsonObject * @param ModelFactoryInterface $factory * * @return static */ public static function createFromJson(\stdClass $jsonObject, ModelFactoryInterface $factory) { $productsResult = new static(); $productsResult->pageHash = isset($jsonObject->pageHash) ? $jsonObject->pageHash : null; if (isset($jsonObject->ids)) { foreach ($jsonObject->ids as $key => $jsonProduct) { if (isset($jsonProduct->error_code)) { $productsResult->idsNotFound[] = $key; $productsResult->errors[] = $jsonProduct; continue; } $productsResult->products[$key] = $factory->createProduct($jsonProduct); } } return $productsResult; }
protected static function parseStyles($jsonObject, ModelFactoryInterface $factory) { $styles = []; if (!empty($jsonObject->styles)) { foreach ($jsonObject->styles as $style) { $styles[] = $factory->createProduct($style); } } return $styles; }
/** * parse autocompleted products. * * @param \stdClass $jsonObject * @param ModelFactoryInterface $factory * * @return Products[] */ protected static function parseProducts(\stdClass $jsonObject, ModelFactoryInterface $factory) { if (!property_exists($jsonObject, 'products')) { return self::NOT_REQUESTED; } if ($jsonObject->products === null) { return array(); } $products = array(); foreach ($jsonObject->products as $product) { $products[] = $factory->createProduct($product); } return $products; }
protected function parseItems($jsonObject, ModelFactoryInterface $factory) { $products = array(); if (!empty($jsonObject->products)) { foreach ($jsonObject->products as $productId => $jsonProduct) { $products[$productId] = $factory->createProduct($jsonProduct); } } $this->products = $products; $vids = array(); if (!empty($jsonObject->order_lines)) { foreach ($jsonObject->order_lines as $index => $jsonItem) { if (isset($jsonItem->set_items)) { $item = $factory->createBasketSet($jsonItem, $products); } else { $vids[] = $jsonItem->variant_id; $item = $factory->createBasketItem($jsonItem, $products); } if ($item->hasErrors()) { $this->errors[$index] = $item; } else { $this->items[$item->getId()] = $item; } } } $vids = array_values(array_unique($vids)); $this->uniqueVariantCount = count($vids); }