public function saveProduct($data) { if ($data['pID']) { //if we know the pID, we're updating. $product = self::getByID($data['pID']); $product->setProductPageDescription($data['pDesc']); } else { //else, we don't know it and we're adding a new product $product = new self(); $dt = Core::make('helper/date'); $product->setProductDateAdded(new \Datetime()); } $product->setProductName($data['pName']); $product->setProductSKU($data['pSKU']); $product->setProductDescription($data['pDesc']); $product->setProductDetail($data['pDetail']); $product->setProductPrice($data['pPrice']); $product->setProductSalePrice($data['pSalePrice']); $product->setIsFeatured($data['pFeatured']); $product->setProductQty($data['pQty']); $product->setIsUnlimited($data['pQtyUnlim']); $product->setAllowBackOrder($data['pBackOrder']); $product->setNoQty($data['pNoQty']); $product->setProductTaxClass($data['pTaxClass']); $product->setIsTaxable($data['pTaxable']); $product->setProductImageID($data['pfID']); $product->setIsActive($data['pActive']); $product->setCreatesUserAccount($data['pCreateUserAccount']); $product->setIsShippable($data['pShippable']); $product->setProductWidth($data['pWidth']); $product->setProductHeight($data['pHeight']); $product->setProductLength($data['pLength']); $product->setProductWeight($data['pWeight']); $product->setAutoCheckout($data['pAutoCheckout']); $product->setIsExclusive($data['pExclusive']); // if we have no product groups, we don't have variations to offer if (empty($data['pogName'])) { $product->setHasVariations(0); } else { $product->setHasVariations($data['pVariations']); } $product->save(); if (!$data['pID']) { $product->generatePage($data['selectPageTemplate']); } return $product; }
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; }