Example #1
0
 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;
 }