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