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;
 }