/** * @param \SimpleXMLElement $product * @return ErpProductEntity */ public static function createFromCatalogXmlResponse(\SimpleXMLElement $product) { $self = new self(); $sku = isset($product->attributes()->ItemNo) ? (string) $product->attributes()->ItemNo : null; if (!$sku) { throw new \InvalidArgumentException('Invalid product downloaded from catalog'); } $self->setSku($sku); $self->setTitle((string) $product->Description); $self->setLastUpdated(new \DateTime((string) $product->attributes()->LastUpdated)); $self->setDescription((string) $product->Description); foreach ($product->SupplementalData as $data) { foreach ($data->attributes() as $k => $v) { switch ((string) $v) { case 'webcategory': $self->setCategory((string) $data); break; } } } $self->setPrice((string) $product->Pricing->UnitPrice); $self->setQty((int) (string) $product->Availability->QtyAvailable); return $self; }
/** * @param $product * @return ShopifyProductEntity */ public static function createFromProductCreationResponse($product) { $self = new self(); $self->setId($product['product']['id']); $self->setVariantId($product['product']['variants'][0]['id']); $self->setCreatedAt(new \DateTime()); $self->setUpdatedAt(new \DateTime()); $self->setSku($product['product']['variants'][0]['sku']); $self->setHandle($product['product']['handle']); return $self; }
/** * {@inheritdoc} */ public static function fromArray(array $values) { $message = new self(); $values = array_merge(['sku' => null, 'category' => null, 'sort_order' => null, 'item_ids' => [], 'counts' => []], $values); $message->setSku($values['sku']); $message->setCategory($values['category']); $message->setSortOrder($values['sort_order']); foreach ($values['item_ids'] as $item) { $message->addItemIds($item); } foreach ($values['counts'] as $item) { $message->addCounts($item); } return $message; }