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