public function add($data, $oID, $tax = 0, $taxIncluded = 0, $taxName = '') { $db = Database::connection(); $product = StoreProduct::getByID($data['product']['pID']); $productName = $product->getProductName(); $productPrice = $product->getActivePrice(); $sku = $product->getProductSKU(); $qty = $data['product']['qty']; $inStock = $product->getProductQty(); $newStock = $inStock - $qty; $variation = $product->getVariation(); if ($variation) { if (!$variation->isUnlimited()) { $product->updateProductQty($newStock); } } elseif (!$product->isUnlimited()) { $product->updateProductQty($newStock); } $order = StoreOrder::getByID($oID); $orderItem = new self(); $orderItem->setProductName($productName); $orderItem->setSKU($sku); $orderItem->setPricePaid($productPrice); $orderItem->setTax($tax); $orderItem->setTaxIncluded($taxIncluded); $orderItem->setTaxName($taxName); $orderItem->setQty($qty); $orderItem->setOrder($order); if ($product) { $orderItem->setProductID($product->getID()); } $orderItem->save(); foreach ($data['productAttributes'] as $optionGroup => $selectedOption) { $optionGroupID = str_replace("pog", "", $optionGroup); $optionGroupName = self::getProductOptionGroupNameByID($optionGroupID); $optionValue = self::getProductOptionValueByID($selectedOption); $orderItemOption = new StoreOrderItemOption(); $orderItemOption->setOrderItemOptionKey($optionGroupName); $orderItemOption->setOrderItemOptionValue($optionValue); $orderItemOption->setOrderItem($orderItem); $orderItemOption->save(); } return $orderItem; }
/** * @param $product * @return ShopifyProductEntity */ public static function createFromResponse($product) { $self = new self(); $self->setId($product['id']); $self->setVariantId($product['variants'][0]['id']); $self->setCreatedAt(new \DateTime()); $self->setUpdatedAt(new \DateTime()); $self->setSku($product['variants'][0]['sku']); $self->setQty($product['variants'][0]['inventory_quantity']); $self->setHandle($product['handle']); return $self; }
/** * @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; }