/** * Create Order by array * * @param mixed $data * @return bool|int|null|string */ public function createOrder($data) { global $db; $newID = $db->insertFromArray(TABLE_SHOP_ORDERS, $data); if ($newID) { //Create bitcoin transaction BuckysBitcoinTransaction::addTransaction($data['sellerID'], $data['buyerID'], BuckysBitcoinTransaction::ACTIVITY_TYPE_PRODUCT_PURCHASE, $newID, $data['totalPrice']); $shopProdIns = new BuckysShopProduct(); $product = $shopProdIns->getProductById($data['productID']); if (!$product['isDownloadable']) { $shopProdIns->updateProduct($data['productID'], ['status' => BuckysShopProduct::STATUS_SOLD]); } //Send notification if the seller wants to get notification $notificationIns = new BuckysShopNotification(); $notificationIns->createNotification($data['sellerID'], $data['buyerID'], BuckysShopNotification::ACTION_TYPE_PRODUCT_SOLD, $newID); return $newID; } return false; }
/** * Make payment for listing trade items. * * @param mixed $userID * @param mixed $itemID * @param mixed $paymentType * @return bool|int|null|string|void */ public function payListingFee($userID, $itemID, $paymentType = BuckysTradeItem::LIST_FEE_PAYMENT_TYPE_BTC) { $flag = false; if ($paymentType == BuckysTradeItem::LIST_FEE_PAYMENT_TYPE_CREDIT) { $transactionIns = new BuckysTransaction(); $flag = $transactionIns->useCreditsInTrade($userID, TRADE_ITEM_LISTING_FEE_IN_CREDIT); } else { if ($paymentType == BuckysTradeItem::LIST_FEE_PAYMENT_TYPE_BTC) { $flag = BuckysBitcoin::sendBitcoin($userID, TRADE_TNB_LISTING_FEE_RECEIVER_BITCOIN_ADDRESS, TRADE_ITEM_LISTING_FEE_IN_BTC); buckys_get_messages(); // this will flash the messages if ($flag) { //Create bitcoin transaction BuckysBitcoinTransaction::addTransaction(BuckysBitcoinTransaction::TNB_BITCOIN_RECEIVER_ID, $userID, BuckysBitcoinTransaction::ACTIVITY_TYPE_LISTING_TRADE_ITEM, $itemID, TRADE_ITEM_LISTING_FEE_IN_BTC); } } } return $flag; }