public function postProcess() { parent::postProcess(); if (Tools::isSubmit('markAsReceived')) { $idOrder = (int) Tools::getValue('id_order'); $order = new Order($idOrder); if (Validate::isLoadedObject($order)) { if ($order->getCurrentState() == 15) { $new_history = new OrderHistory(); $new_history->id_order = (int) $order->id; $new_history->changeIdOrderState(16, $order); // 16: Ready for Production //var_dump($order,$new_history); $myfile = fopen(PS_PRODUCT_IMG_PATH . "/orders/" . $order->reference . ".txt", "w") or die("Unable to open file!"); $txt = "Order Confirmed\n Order Reference: " . $order->reference; fwrite($myfile, $txt); fclose($myfile); $new_history->addWithemail(true); } $this->context->smarty->assign('receipt_confirmation', true); } else { $this->_errors[] = Tools::displayError('Error: Invalid order number'); } } }
function TransactionNotification($notificationCode) { ob_clean(); global $cookie; $credentials = new PagSeguroAccountCredentials(Configuration::get("PAGSEGURO_BUSINESS"), Configuration::get("PAGSEGURO_TOKEN")); try { $transaction = PagSeguroNotificationService::checkTransaction($credentials, $notificationCode); $id_transaction = $transaction->getCode(); $id_status = $transaction->getStatus()->getValue(); $order_state = Configuration::get("PAGSEGURO_STATUS_{$id_status}"); $orderState = new OrderState($order_state); $status = $orderState->name[$cookie->id_lang]; $id_order = Db::getInstance()->getValue("SELECT id_order FROM " . _DB_PREFIX_ . "pagseguro_order WHERE id_transaction = '{$id_transaction}'"); $order = new Order(intval($id_order)); /** ENVIO DO EMAIL * */ $pagseguro = new pagseguro(); $idCustomer = $order->id_customer; $idLang = $order->id_lang; $customer = new Customer(intval($idCustomer)); $mailVars = array('{email}' => Configuration::get('PS_SHOP_EMAIL'), '{firstname}' => stripslashes($customer->firstname), '{lastname}' => stripslashes($customer->lastname), '{terceiro}' => stripslashes($pagseguro->displayName), '{id_order}' => stripslashes($pagseguro->currentOrder), '{status}' => stripslashes($status)); $pagseguro->enviar($mailVars, 'pagseguro', $status, $pagseguro->displayName, $idCustomer, $idLang, $customer->email, 'modules/pagseguro/mails/'); /** /ENVIO DO EMAIL * */ $extraVars = array(); $history = new OrderHistory(); $history->id_order = intval($id_order); $history->changeIdOrderState(intval($order_state), intval($id_order)); $history->addWithemail(true, $extraVars); die("Sucesso!"); } catch (PagSeguroServiceException $e) { file_put_contents(dirname(__FILE__) . "/error.log", var_export($e, true)); die("Error!"); } }
private function canceledOrderForError() { $history = new OrderHistory(); $history->id_order = (int) $this->pagSeguro->currentOrder; $history->changeIdOrderState(6, (int) $this->pagSeguro->currentOrder); $history->save(); }
public function refund($order_id) { $this->log_identifier = time(); if (!$this->util->isPaymillOrder($order_id)) { return false; } $data = $this->getTransactionData($order_id); try { $result = $this->refund->create(array('transactionId' => $data['transaction'], 'params' => array('amount' => number_format($data['total_paid'], 2) * 100))); $return_value = isset($result['response_code']) && $result['response_code'] === 20000; $this->log('Refund resulted in ' . (string) $return_value, var_export($result, true)); $db = Db::getInstance(); $db->execute('UPDATE `' . _DB_PREFIX_ . 'pigmbh_paymill_transactiondata` SET `refund`=1 WHERE `id`=' . pSQL($order_id)); } catch (Exception $exception) { $this->log('Refund exception ', var_export($exception->getMessage(), true)); $return_value = false; } if ($return_value) { $new_order_state = Configuration::get('PS_OS_REFUND'); $order = new Order($order_id); $history = new OrderHistory(); $history->id_order = (int) $order->id; $history->changeIdOrderState($new_order_state, (int) $order->id); //order status=3 $history->add(true); } return $return_value; }
/** * @see FrontController::postProcess() */ public function postProcess() { $oplata = new Oplata(); if ($_POST['order_status'] == OplataCls::ORDER_DECLINED) { $this->errors[] = Tools::displayError('Order declined'); } $settings = array('merchant_id' => $oplata->getOption('merchant'), 'secret_key' => $oplata->getOption('secret_key')); $isPaymentValid = OplataCls::isPaymentValid($settings, $_POST); if ($isPaymentValid !== true) { $this->errors[] = Tools::displayError($isPaymentValid); } $cart = $this->context->cart; if ($cart->id_customer == 0 || $cart->id_address_delivery == 0 || $cart->id_address_invoice == 0 || !$this->module->active) { Tools::redirect('index.php?controller=order&step=1'); } $customer = new Customer($cart->id_customer); if (!Validate::isLoadedObject($customer)) { Tools::redirect('index.php?controller=order&step=1'); } if (empty($this->errors)) { list($orderId, ) = explode(OplataCls::ORDER_SEPARATOR, $_POST['order_id']); $history = new OrderHistory(); $history->id_order = $orderId; $history->changeIdOrderState((int) Configuration::get('PS_OS_PAYMENT'), $orderId); $history->addWithemail(true, array('order_name' => $orderId)); Tools::redirect('index.php?controller=order-confirmation&id_cart=' . $cart->id . '&id_module=' . $this->module->id . '&id_order=' . $this->module->currentOrder . '&key=' . $customer->secure_key); } }
public function updateStatus(&$resp) { $this->log_on = Configuration::get('YA_P2P_LOGGING_ON'); if ($resp->status == 'success') { $cart = $this->context->cart; if ($cart->id > 0) { if ($cart->orderExists()) { $ord = new Order((int) Order::getOrderByCartId($cart->id)); $id_order = $ord->id; } else { $ord = $this->module->validateOrder($cart->id, Configuration::get('PS_OS_PAYMENT'), $cart->getOrderTotal(true, Cart::BOTH), $this->module->displayName . " Банковская карта", null, array(), null, false, $cart->secure_key); $id_order = $this->module->currentOrder; } if ($ord) { $history = new OrderHistory(); $history->id_order = $id_order; $history->changeIdOrderState(Configuration::get('PS_OS_PAYMENT'), $id_order); $history->addWithemail(true); } } if ($this->log_on) { $this->module->logSave('payment_card: #' . $this->module->currentOrder . ' ' . $this->module->l('Order success')); } Tools::redirect($this->context->link->getPageLink('order-confirmation') . '&id_cart=' . $this->context->cart->id . '&id_module=' . $this->module->id . '&id_order=' . $this->module->currentOrder . '&key=' . $this->context->cart->secure_key); } }
/** * @see FrontController::postProcess() */ public function postProcess() { if (empty($_POST)) { $fap = json_decode(file_get_contents("php://input")); $_POST = array(); foreach ($fap as $key => $val) { $_POST[$key] = $val; } } try { if ($_POST['order_status'] == FondyCls::ORDER_DECLINED) { exit('Order declined'); } $fondy = new Fondy(); $settings = array('merchant_id' => $fondy->getOption('merchant'), 'secret_key' => $fondy->getOption('secret_key')); $isPaymentValid = FondyCls::isPaymentValid($settings, $_POST); if ($isPaymentValid !== true) { exit($isPaymentValid); } list($orderId, ) = explode(FondyCls::ORDER_SEPARATOR, $_POST['order_id']); $history = new OrderHistory(); $history->id_order = $orderId; $id_order_state = _PS_OS_PAYMENT_; $history->changeIdOrderState(intval($id_order_state), intval($orderId)); $history->addWithemail(true, ""); exit('OK'); } catch (Exception $e) { exit(get_class($e) . ': ' . $e->getMessage()); } }
function canceledOrderForErro($pag_seguro) { $currentOrder = (int) $pag_seguro->currentOrder; $history = new OrderHistory(); $history->id_order = $currentOrder; $history->changeIdOrderState(6, $currentOrder); $history->save(); }
public function validateOrderPay($id_cart, $id_order_state, $amount_paid, $extraCosts, $payment_method = 'Unknown', $message = null, $extra_vars = array(), $currency_special = null, $dont_touch_amount = false, $secure_key = false, Shop $shop = null) { $statusPending = Configuration::get('PAYNL_WAIT'); $statusPaid = Configuration::get('PAYNL_SUCCESS'); // Als er nog geen order van dit cartid is, de order valideren. $orderId = Order::getOrderByCartId($id_cart); if ($orderId == false) { if ($id_order_state == $statusPaid) { if ($extraCosts != 0) { $id_order_state_tmp = $statusPending; } else { $id_order_state_tmp = $statusPaid; } } else { $id_order_state_tmp = $id_order_state; } $result = parent::validateOrder($id_cart, $id_order_state_tmp, $amount_paid, $payment_method, $message, $extra_vars, $currency_special, $dont_touch_amount, $secure_key, $shop); $orderId = $this->currentOrder; if ($extraCosts == 0 && $id_order_state_tmp == $statusPaid) { //Als er geen extra kosten zijn, en de order staat op betaald zijn we klaar return $result; } } if ($orderId && $id_order_state == $statusPaid) { $order = new Order($orderId); $shippingCost = $order->total_shipping; $newShippingCosts = $shippingCost + $extraCosts; $extraCostsExcl = round($extraCosts / (1 + 21 / 100), 2); if ($extraCosts != 0) { //als de order extra kosten heeft, moeten deze worden toegevoegd. $order->total_shipping = $newShippingCosts; $order->total_shipping_tax_excl = $order->total_shipping_tax_excl + $extraCostsExcl; $order->total_shipping_tax_incl = $newShippingCosts; $order->total_paid_tax_excl = $order->total_paid_tax_excl + $extraCostsExcl; $order->total_paid_tax_incl = $order->total_paid_real = $order->total_paid = $order->total_paid + $extraCosts; } $result = $order->addOrderPayment($amount_paid, $payment_method, $extra_vars['transaction_id']); if (number_format($order->total_paid_tax_incl, 2) !== number_format($amount_paid, 2)) { $id_order_state = Configuration::get('PS_OS_ERROR'); } //paymentid ophalen $orderPayment = OrderPayment::getByOrderId($order->id); $history = new OrderHistory(); $history->id_order = (int) $order->id; $history->changeIdOrderState((int) $id_order_state, $order, $orderPayment); $res = Db::getInstance()->getRow(' SELECT `invoice_number`, `invoice_date`, `delivery_number`, `delivery_date` FROM `' . _DB_PREFIX_ . 'orders` WHERE `id_order` = ' . (int) $order->id); $order->invoice_date = $res['invoice_date']; $order->invoice_number = $res['invoice_number']; $order->delivery_date = $res['delivery_date']; $order->delivery_number = $res['delivery_number']; $order->update(); $history->addWithemail(); } return $result; }
private function updateStatus($orderId, $statusId) { $order_state_id = $this->getStatus($statusId); $history = new OrderHistory(); $history->id_order = $orderId; $history->id_order_state = $order_state_id; $history->changeIdOrderState($order_state_id, $orderId); $history->add(true); }
public static function changeOrderStatus($id_order, $id_new_state) { $new_history = new OrderHistory(); $new_history->id_order = (int) $id_order; $new_history->changeIdOrderState((int) $id_new_state, $id_order, true); if (!$new_history->addWithemail(true)) { ShiptomyidLog::addLog('Error changing order_state to #' . $id_new_state, $id_order); } }
function addSyspayOrderHistory($id_order, $order_state, $use_existings_payment = false) { $history = new OrderHistory(); $history->id_order = $id_order; $history->id_employee = (int) Configuration::get('SYSPAY_EMPLOYEE'); $history->changeIdOrderState($order_state, $id_order, $use_existings_payment); $history->id_order_state = $order_state; $history->add(true); }
public function postProcess() { parent::postProcess(); //ИД заказа $ordernumber = Tools::getValue('InvId'); //Сумма заказа $amount = Tools::getValue('OutSum'); $signature = md5($amount . ':' . $ordernumber . ':' . Configuration::get('robokassa_password2')); //Проверка подписи if (strtoupper($signature) != Tools::getValue('SignatureValue')) { robokassa::validateAnsver($this->module->l('Invalid signature')); } if (Configuration::get('robokassa_postvalidate')) { $cart = new Cart((int) $ordernumber); //Проверка существования заказа if (!Validate::isLoadedObject($cart)) { robokassa::validateAnsver($this->module->l('Cart does not exist')); } $total_to_pay = $cart->getOrderTotal(true, Cart::BOTH); $currency_rub = new Currency(Currency::getIdByIsoCode('RUB')); if ($cart->id_currency != $currency_rub->id) { $currency = new Currency($cart->id_currency); $total_to_pay = $total_to_pay / $currency->conversion_rate * $currency_rub->conversion_rate; } $total_to_pay = number_format($total_to_pay, 2, '.', ''); //Проверка суммы заказа if ($amount != $total_to_pay) { robokassa::validateAnsver($this->module->l('Incorrect payment summ')); } $this->module->validateOrder((int) $cart->id, Configuration::get('PS_OS_PAYMENT'), $cart->getOrderTotal(true, Cart::BOTH), $this->module->displayName, NULL, array(), NULL, false, $cart->secure_key); } else { $order = new Order((int) $ordernumber); //Проверка существования заказа if (!Validate::isLoadedObject($order)) { robokassa::validateAnsver($this->module->l('Order does not exist')); } $total_to_pay = $order->total_paid; $currency_rub = new Currency(Currency::getIdByIsoCode('RUB')); if ($order->id_currency != $currency_rub->id) { $currency = new Currency($order->id_currency); $total_to_pay = $total_to_pay / $currency->conversion_rate * $currency_rub->conversion_rate; } $total_to_pay = number_format($total_to_pay, 2, '.', ''); //Проверка суммы заказа if ($amount != $total_to_pay) { robokassa::validateAnsver($this->module->l('Incorrect payment summ')); } //Меняем статус заказа $history = new OrderHistory(); $history->id_order = $ordernumber; $history->changeIdOrderState(Configuration::get('PS_OS_PAYMENT'), $ordernumber); $history->addWithemail(true); } die('OK' . $ordernumber); }
/** * @see FrontController::postProcess() */ public function postProcess() { // Log requests from Privat API side in Debug mode. if (Configuration::get('PRIVAT24_DEBUG_MODE')) { $logger = new FileLogger(); $logger->setFilename(_PS_ROOT_DIR_ . '/log/' . $this->module->name . '_' . date('Ymd_His') . '_response.log'); $logger->logError($_POST); } $payment = array(); parse_str(Tools::getValue('payment'), $payment); $hash = sha1(md5(Tools::getValue('payment') . $this->module->merchant_password)); if ($payment && $hash === Tools::getValue('signature')) { if ($payment['state'] == 'ok') { $state = Configuration::get('PRIVAT24_WAITINGPAYMENT_OS'); $cart_id = (int) $payment['order']; $order = new Order(Order::getOrderByCartId($cart_id)); if (!Validate::isLoadedObject($order)) { PrestaShopLogger::addLog('Privat24: cannot get order by cart id ' . $cart_id, 3); die; } if ($order->getCurrentState() != $state) { PrestaShopLogger::addLog(sprintf('Privat24: order id %s current state %s !== expected state %s', $order->id, $order->getCurrentState(), $state), 3); die; } // Check paid currency and paid amount. $id_currency = Currency::getIdByIsoCode($payment['ccy']); if (!$id_currency) { PrestaShopLogger::addLog(sprintf('Privat24: order id %s cannot get currency id by iso code: %s', $order->id, $payment['ccy']), 3); die; } if ($order->id_currency != $id_currency) { PrestaShopLogger::addLog(sprintf('Privat 24: order id %s, order currency id %s does not match with %s', $order->id, $order->id_currency, $id_currency), 3); die; } if ((double) $order->total_paid != (double) $payment['amt']) { PrestaShopLogger::addLog(sprintf('Privat 24: order id %s order total paid %s does not match %s', $order->id, $order->total_paid, $payment['amt']), 3); die; } $order_history = new OrderHistory(); $order_history->id_order = $order->id; $order_history->changeIdOrderState(_PS_OS_PAYMENT_, $order->id); $order_history->addWithemail(); $this->setPaymentTransaction($order, $payment); $this->module->paymentNotify($order, $payment); PrestaShopLogger::addLog(sprintf('Privat24 payment accepted: order id: %s, amount: %s, ref: %s', $order->id, $payment['amt'], $payment['ref']), 1); } else { PrestaShopLogger::addLog(sprintf('Privat24 payment failed: state: %s, order: %s, ref: %s', $payment['state'], $payment['order'], $payment['ref']), 3, null, null, null, true); } } else { PrestaShopLogger::addLog('Privat24: Payment callback bad signature.', 3, null, null, null, true); } die; }
function updateOrder($orderId, $response) { $order_state_id = (int) Configuration::get('PS_OS_BCASH_CANCELLED'); if ($response->transactionStatusId == 6) { $order_state_id = (int) Configuration::get('PS_OS_BCASH_REFUNDED'); } $history = new OrderHistory(); $history->id_order = $orderId; $history->id_order_state = $order_state_id; $history->changeIdOrderState($order_state_id, $orderId); $history->add(true); }
public function initContent() { global $smarty, $cart; $this->display_column_left = false; $this->display_column_right = false; parent::initContent(); if (!empty($_POST)) { $b_is_SSL = function_exists('curl_init') && function_exists('curl_setopt') && function_exists('curl_exec') && function_exists('curl_close'); $p24_session_id = $_POST["p24_session_id"]; $p24_order_id = $_POST["p24_order_id"]; $p24_id_sprzedawcy = Configuration::get('P24_ID_SPRZEDAWCY'); //TWÓJ ID_SPRZEDAWCY; $sa_sid = explode('|', $_POST["p24_session_id"]); $sa_sid = preg_replace('/[^a-z0-9]/i', '', $sa_sid[1]); $o_order = Db::getInstance()->getRow('SELECT `i_id_order`,`i_amount` FROM `' . _DB_PREFIX_ . 'przelewy24_amount` WHERE `s_sid`="' . $sa_sid . '"'); $p24_kwota = (int) $o_order['i_amount']; // WYNIK POBRANY Z TWOJEJ BAZY (w groszach) $i_id_order = $o_order['i_id_order']; $WYNIK = false; $url = 'secure.przelewy24.pl'; if (Configuration::get('P24_TEST_MODE') == 1) { $url = 'sandbox.przelewy24.pl'; } if ($b_is_SSL) { $WYNIK = p24_weryfikujSSL($p24_id_sprzedawcy, $p24_session_id, $p24_order_id, $p24_kwota, $url); } else { $WYNIK = p24_weryfikujNoSSL($p24_id_sprzedawcy, $p24_session_id, $p24_order_id, $p24_kwota, $url); } $o_przelewy24 = new Przelewy24(); $opis = "przelewy24.pl"; $cart = new Cart($i_id_order); $secure_key = $cart->secure_key; if ($WYNIK[0] == 'TRUE') { $order_id = Order::getOrderByCartId(intval($i_id_order)); $order = new Order($order_id); $history = new OrderHistory(); $history->id_order = intval($order_id); $order_state = Configuration::get('P24_ORDER_STATE_2'); $history->changeIdOrderState($order_state, intval($order_id)); $history->addWithemail(true); $payments = $order->getOrderPaymentCollection(); if (count($payments) > 0) { $payments[0]->transaction_id = $p24_order_id; $payments[0]->update(); } } $smarty->assign('p24_status', 'success'); } $this->setTemplate('paymentSuccessful.tpl'); }
private function updateOrderStatus($orderId, $statusName) { $query = ' SELECT osl.`id_order_state`, osl.`name` FROM `' . _DB_PREFIX_ . 'order_state_lang` osl JOIN `' . _DB_PREFIX_ . 'order_state` os ON osl.`id_order_state` = os.`id_order_state` AND module_name = \'pagseguro\' WHERE osl.`name` LIKE "' . $statusName . '" GROUP BY osl.`name` LIMIT 0, 1 '; if ($result = Db::getInstance()->executeS($query)) { $status = $result[0]['id_order_state']; $order = new Order($orderId); $history = new OrderHistory(); $history->id_order = (int) $order->id; $history->changeIdOrderState($status, $order->id); return (bool) $history->addWithemail(); } return false; }
public function initContent() { $order_id = (int) Tools::getValue('merchantReference'); Logger::addLog('Adyen module: incoming notification for id_order ' . $order_id); if ($this->validateNotificationCredential()) { $psp_reference = (string) Tools::getValue('pspReference'); $event_code = (string) Tools::getValue('eventCode'); $auth_result = (string) Tools::getValue('authResult'); $payment_method = (string) Tools::getValue('paymentMethod'); $success = (string) Tools::getValue('success'); $event_data = !empty($event_code) ? $event_code : $auth_result; // check if notification is already executed on server based on psp_reference and event_code if ((int) $order_id > 0 && !$this->isDuplicate($psp_reference, $event_code)) { // save notification to table so notification is handled only once Db::getInstance()->insert('adyen_event_data', array('psp_reference' => pSQL($psp_reference), 'adyen_event_code' => pSQL($event_code), 'adyen_event_result' => pSQL($event_data), 'id_order' => (int) $order_id, 'payment_method' => pSQL($payment_method), 'created_at' => date('Y-m-d H:i:s'))); // get the order $order = new Order($order_id); $history = new OrderHistory(); $history->id_order = (int) $order->id; if (strcmp($success, 'false') == 0 || $success == '' || $event_code == 'CANCELLATION') { // failed if post value success is false or not filled in $history->changeIdOrderState((int) Configuration::get('ADYEN_STATUS_CANCELLED'), (int) $order->id); $history->add(); Logger::addLog('Adyen module: status for id_order ' . $order->id . ' is changed to cancelled'); } else { // if success is not false then check if eventCode is AUTHORISATION so that order status is accepted if ($event_code == 'AUTHORISATION') { $history->changeIdOrderState((int) Configuration::get('ADYEN_STATUS_AUTHORIZED'), (int) $order->id); $history->add(); Logger::addLog('Adyen module: status for id_order ' . $order->id . ' is changed to authorized'); } else { Logger::addLog('Adyen module: status for id_order ' . $order->id . ' is ' . $event_code . ' and is ignored'); } } } else { Logger::addLog('Adyen module: incoming notification ignored because it is already handled for id_order ' . $order_id); } } else { Logger::addLog('Adyen module: invalid credential for incoming notification of id_order ' . $order_id, 4); // unauthorized header('HTTP/1.1 401 Unauthorized', true, 401); exit; } // always return accepted die('[accepted]'); }
/** * Makes requesting a refund */ public function display() { $sa = new DotpaySellerApi($this->config->getDotpaySellerApiUrl()); $result = $sa->makeReturnMoney($this->config->getDotpayApiUsername(), $this->config->getDotpayApiPassword(), Tools::getValue('payment'), Tools::getValue('amount'), Tools::getValue('order_id'), Tools::getValue('description')); if ($result['http_code'] == 200) { $status = 'success'; $state = $this->config->getDotpayWaitingRefundStatusId(); $history = new OrderHistory(); $history->id_order = Tools::getValue('order_id'); $history->changeIdOrderState($state, $history->id_order); $history->addWithemail(true); } else { $status = 'error'; $this->context->cookie->dotpay_error = $result['detail']; } Tools::redirectAdmin($this->getRedirectUrl($status)); }
public function processPayment($result, $orderId) { $gopay = new Gopay(); $gpErrors = ""; $history = new OrderHistory(); $history->id_order = $orderId; if ($result["code"] == GopayHelper::WAITING) { $gpErrors = $result["description"]; } else { if ($result["code"] == GopayHelper::PAYMENT_DONE) { if ($history->getLastOrderState($orderId)->id == intval(_PS_OS_GOPAY_)) { $history->changeIdOrderState(intval(_PS_OS_PAYMENT_), intval($orderId)); $history->addWithemail(); } } else { if ($result["code"] == GopayHelper::CANCELED || $result["code"] == GopayHelper::TIMEOUTED) { if ($history->getLastOrderState($orderId)->id == intval(_PS_OS_GOPAY_)) { $history->changeIdOrderState(intval(_PS_OS_CANCELED_), $orderId); $history->addWithemail(); } $gpErrors = $result["description"]; } } } return $gpErrors; }
public function afterUninstall() { Yii::app()->settings->clear($this->id); //Yii::app()->unintallComponent('cart'); $db = Yii::app()->db; $tablesArray = array(Order::model()->tableName(), OrderHistory::model()->tableName(), OrderProduct::model()->tableName(), OrderStatus::model()->tableName(), OrderProductHistroy::model()->tableName(), ShopPaymentMethod::model()->tableName(), ShopPaymentMethodTranslate::model()->tableName(), ShopDeliveryMethod::model()->tableName(), ShopDeliveryMethodTranslate::model()->tableName(), ShopDeliveryPayment::model()->tableName(), ProductNotifications::model()->tableName()); foreach ($tablesArray as $table) { $db->createCommand()->dropTable($table); } return parent::afterInstall(); }
/** * @see FrontController::initContent() */ public function initContent() { // if customer press "back" from VTweb, they'll be redirected to re-order link in order to put back their order into shopping cart (normally, their shopping cart is emptied before redirected to VTWeb, so re-order is needed to make sure they have their order back in shopping cart). $this->display_column_left = false; $this->display_column_right = false; parent::initContent(); global $smarty; if (null !== Tools::getValue('order_id') && '' !== Tools::getValue('order_id')) { $order_id = Tools::getValue('order_id'); } // set order status in backend to be failure $history = new OrderHistory(); $history->id_order = $order_id; $history->changeIdOrderState(Configuration::get('VI_PAYMENT_FAILURE_STATUS_MAP'), $order_id); $history->add(true); // $cart = $this->context->cart; $status = 'back'; $this->context->smarty->assign(array('status' => $status, 'order_id' => $order_id, 'this_path' => $this->module->getPathUri(), 'this_path_ssl' => Tools::getShopDomainSsl(true, true) . __PS_BASE_URI__ . 'modules/' . $this->module->name . '/')); $this->setTemplate('notification.tpl'); }
/** * @see FrontController::postProcess() */ public function postProcess() { try { if ($_POST['order_status'] == OplataCls::ORDER_DECLINED) { exit('Order declined'); } $oplata = new Oplata(); $settings = array('merchant_id' => $oplata->getOption('merchant'), 'secret_key' => $oplata->getOption('secret_key')); $isPaymentValid = OplataCls::isPaymentValid($settings, $_POST); if ($isPaymentValid !== true) { exit($isPaymentValid); } list($orderId, ) = explode(OplataCls::ORDER_SEPARATOR, $_POST['order_id']); $history = new OrderHistory(); $history->id_order = $orderId; $history->changeIdOrderState((int) Configuration::get('PS_OS_PAYMENT'), $orderId); $history->addWithemail(true, array('order_name' => $orderId)); exit('OK'); } catch (Exception $e) { exit(get_class($e) . ': ' . $e->getMessage()); } }
public function postProcess() { list($orderId, ) = explode(FondyCls::ORDER_SEPARATOR, $_POST['order_id']); $this->_order = new Order(intval($orderId)); $this->_customer = new Customer($this->_order->id_customer); if ($_POST['order_status'] == FondyCls::ORDER_DECLINED) { $this->showError(Tools::displayError('Order declined')); } $settings = array('merchant_id' => $this->getOption('merchant'), 'secret_key' => $this->getOption('secret_key')); $isPaymentValid = FondyCls::isPaymentValid($settings, $_POST); if ($isPaymentValid !== true) { $this->showError(Tools::displayError($isPaymentValid)); } if (!Validate::isLoadedObject($this->_customer)) { Tools::redirectLink(__PS_BASE_URI__ . 'order.php?step=1'); } $history = new OrderHistory(); $history->id_order = $orderId; $id_order_state = _PS_OS_PAYMENT_; $history->changeIdOrderState(intval($id_order_state), intval($orderId)); $history->addWithemail(true, ""); // redirect to success Tools::redirectLink(__PS_BASE_URI__ . 'modules/fondy/result-success.php'); }
public function changeIdOrderState($new_order_state = NULL, $id_order) { if ($new_order_state != NULL) { Hook::updateOrderStatus(intval($new_order_state), intval($id_order)); /* Best sellers */ $newOS = new OrderState(intval($new_order_state)); $oldOrderStatus = OrderHistory::getLastOrderState(intval($id_order)); $cart = Cart::getCartByOrderId($id_order); $isValidated = $this->isValidated(); if (Validate::isLoadedObject($cart)) { foreach ($cart->getProducts() as $product) { /* If becoming logable => adding sale */ if ($newOS->logable and (!$oldOrderStatus or !$oldOrderStatus->logable)) { ProductSale::addProductSale($product['id_product'], $product['cart_quantity']); } elseif (!$newOS->logable and ($oldOrderStatus and $oldOrderStatus->logable)) { ProductSale::removeProductSale($product['id_product'], $product['cart_quantity']); } if (!$isValidated and $newOS->logable and isset($oldOrderStatus) and $oldOrderStatus and $oldOrderStatus->id == _PS_OS_ERROR_) { Product::updateQuantity($product); Hook::updateQuantity($product, $order); } } } $this->id_order_state = intval($new_order_state); /* Change invoice number of order ? */ $newOS = new OrderState(intval($new_order_state)); $order = new Order(intval($id_order)); if (!Validate::isLoadedObject($newOS) or !Validate::isLoadedObject($order)) { die(Tools::displayError('Invalid new order state')); } /* The order is valid only if the invoice is available and the order is not cancelled */ $order->valid = $newOS->logable; $order->update(); if ($newOS->invoice and !$order->invoice_number) { $order->setInvoice(); } if ($newOS->delivery and !$order->delivery_number) { $order->setDelivery(); } Hook::postUpdateOrderStatus(intval($new_order_state), intval($id_order)); } }
/** * Checks a payment status of order in shop */ public function initContent() { $cookie = new Cookie('lastOrder'); if ($cookie->orderId != null) { $lastOrderState = OrderHistory::getLastOrderState($cookie->orderId); switch ($lastOrderState->id) { case $this->config->getDotpayNewStatusId(): if (Tools::getValue('lastRequest') === true) { $cookie->logout(); } die('0'); case _PS_OS_PAYMENT_: $cookie->logout(); die('1'); default: die('-1'); } } else { die('NO'); } }
public function changeOrderStatusSub($id_order) { Log::DEBUG("change:1." . $id_order); if ($id_order) { Log::DEBUG("change:2." . $id_order); $lastHistory = OrderHistory::getLastOrderState($id_order); if ($lastHistory->id == Configuration::get('PS_OS_PAYMENT')) { Log::DEBUG("change:2.1." . $id_order); return true; } $history = new OrderHistory(); $history->id_order = (int) $id_order; $history->changeIdOrderState(Configuration::get('PS_OS_PAYMENT'), (int) $id_order); Log::DEBUG("change:3." . $id_order); if ($history->addWithemail()) { Log::DEBUG("change:4." . $id_order); return true; } } return false; }
public function cron($jobname, $params, &$message, &$errorcount) { switch ($jobname) { case 'set_shipping_completed': $this->setOrderShippingCompleted($message, $errorcount); break; case 'cancel_orders': $this->log("cron executed job '" . $jobname . "'", ShopgateLogger::LOGTYPE_DEBUG); $cancellationStatus = ConfigurationCore::get('SG_CANCELLATION_STATUS'); $select = sprintf('SELECT ' . (version_compare(_PS_VERSION_, '1.5.0', '>=') ? ' o.current_state, ' : ' o.id_order, ') . ' so.id_shopgate_order from %sshopgate_order as so JOIN %sorders as o on so.id_order=o.id_order WHERE so.is_cancellation_sent_to_shopgate = 0', _DB_PREFIX_, _DB_PREFIX_); $result = Db::getInstance()->ExecuteS($select); if (empty($result)) { $this->log('no orders to cancel found for shop:' . $this->config->getShopNumber(), ShopgateLogger::LOGTYPE_DEBUG); return; } foreach ($result as $order) { $sgOrder = new ShopgateOrderPrestashop($order['id_shopgate_order']); if (is_string($sgOrder->order_number)) { $sgOrder->order_number = (int) $sgOrder->order_number; } if (version_compare(_PS_VERSION_, '1.5.0', '>=')) { $state = $order['current_state']; } else { $stateObject = OrderHistory::getLastOrderState($order['id_order']); $state = $stateObject->id; } if ($state == $cancellationStatus) { $sgOrder->cancelOrder($message); } else { $sgOrder->cancelOrder($message, true); } } break; default: $this->log("job '" . $jobname . "' not found", ShopgateLogger::LOGTYPE_ERROR); throw new ShopgateLibraryException(ShopgateLibraryException::PLUGIN_CRON_UNSUPPORTED_JOB, 'Job name: "' . $jobname . '"', true); } }
} else { $message = $ppec->l('Price payed on paypal is not the same that on PrestaShop.') . '<br />'; } } if (_PS_VERSION_ >= '1.5') { $ppec->getContext()->cookie->id_cart = $cart->id; $ppec->validateOrder((int) $cart->id, $payment_type, (double) $cart->getOrderTotal(true, Cart::BOTH), 'PayPal', $message, $transaction, (int) $cart->id_currency, false, $customer->secure_key, $ppec->getContext()->shop); } else { $ppec->validateOrder((int) $cart->id, $payment_type, (double) $cart->getOrderTotal(true, Cart::BOTH), 'PayPal', $message, $transaction, (int) $cart->id_currency, false, $customer->secure_key); } if (!$ppec->currentOrder) { $ppec->logs[] = $this->l('Cannot create order'); } else { $id_order = (int) $ppec->currentOrder; $order = new Order($id_order); $history = new OrderHistory(); $history->id_order = (int) $id_order; $history->changeIdOrderState((int) $payment_type, $id_order); $history->addWithemail(); $history->add(); } unset(Context::getContext()->cookie->{PaypalExpressCheckout::$COOKIE_NAME}); // Update for the Paypal shipping cost if ($order) { $values = array('key' => $customer->secure_key, 'id_module' => (int) $ppec->id, 'id_cart' => (int) $cart->id, 'id_order' => (int) $ppec->currentOrder); $query = http_build_query($values, '', '&'); if (_PS_VERSION_ < '1.5') { Tools::redirectLink(__PS_BASE_URI__ . '/modules/paypal/express_checkout/submit.php?' . $query); } else { $controller = new FrontController(); $controller->init();
public function update_cart_by_junglee_xml($order_id, $data) { $xml = simplexml_load_string($data); $prefix = _DB_PREFIX_; $tablename = $prefix . 'orders'; $total_amount = 0; $total_principal = 0; $shipping_amount = 0; $total_promo = 0; foreach ($xml->ProcessedOrder->ProcessedOrderItems->ProcessedOrderItem as $item) { $product_id = (string) $item->SKU; $product = new Product((int) $product_id); $SKU = $product->reference; $Title = (string) $item->Title; $Amount = (double) $item->Price->Amount; $other_promo = 0; foreach ($item->ItemCharges->Component as $amount_type) { $item_charge_type = (string) $amount_type->Type; if ($item_charge_type == 'Principal') { $principal = (string) $amount_type->Charge->Amount; } if ($item_charge_type == 'Shipping') { $Shipping = (string) $amount_type->Charge->Amount; } if ($item_charge_type == 'PrincipalPromo') { $principal_promo = (string) $amount_type->Charge->Amount; } if ($item_charge_type == 'ShippingPromo') { $shipping_promo = (string) $amount_type->Charge->Amount; } if ($item_charge_type == 'OtherPromo') { $other_promo = (string) $amount_type->Charge->Amount; } } $CurrencyCode = (string) $item->Price->CurrencyCode; $Quantity = (int) $item->Quantity; $total_principal += $principal; $total_amount += $principal - $principal_promo + ($Shipping - $shipping_promo); $shipping_amount += $Shipping; $total_promo += $principal_promo + $shipping_promo + $other_promo; } $ShippingServiceLevel = (string) $xml->ProcessedOrder->ShippingServiceLevel; $sql = 'UPDATE `' . $prefix . 'pwa_orders` set `shipping_service` = "' . $ShippingServiceLevel . '" , `order_type` = "junglee" where `prestashop_order_id` = "' . $order_id . '" '; Db::getInstance()->Execute($sql); $email = (string) $xml->ProcessedOrder->BuyerInfo->BuyerEmailAddress; $sql = 'SELECT * from `' . $prefix . 'customer` where email = "' . $email . '" '; $results = Db::getInstance()->ExecuteS($sql); if (empty($results)) { $name = (string) $xml->ProcessedOrder->BuyerInfo->BuyerName; $name_arr = explode(' ', $name); if (count($name_arr) > 1) { $firstname = ''; for ($i = 0; $i <= count($name_arr) - 2; $i++) { $firstname = $firstname . ' ' . $name_arr[$i]; } $lastname = $name_arr[count($name_arr) - 1]; } else { $firstname = $name; $lastname = '.'; } $password = Tools::passwdGen(); $customer = new Customer(); $customer->firstname = trim($firstname); $customer->lastname = $lastname; $customer->email = (string) $xml->ProcessedOrder->BuyerInfo->BuyerEmailAddress; $customer->passwd = md5($password); $customer->active = 1; if (Configuration::get('PS_GUEST_CHECKOUT_ENABLED')) { $customer->is_guest = 1; } else { $customer->is_guest = 0; } $customer->add(); $customer_id = $customer->id; if (Configuration::get('PS_CUSTOMER_CREATION_EMAIL') && !Configuration::get('PS_GUEST_CHECKOUT_ENABLED')) { Mail::Send($this->context->language->id, 'account', Mail::l('Welcome!'), array('{firstname}' => $customer->firstname, '{lastname}' => $customer->lastname, '{email}' => $customer->email, '{passwd}' => $password), $customer->email, $customer->firstname . ' ' . $customer->lastname); } } else { $customer_id = $results[0]['id_customer']; } $id_country = Country::getByIso((string) $xml->ProcessedOrder->ShippingAddress->CountryCode); if ($id_country == 0 || $id_country == '') { $id_country = 110; } $name = (string) $xml->ProcessedOrder->ShippingAddress->Name; $name_arr = explode(' ', $name); if (count($name_arr) > 1) { $firstname = ''; for ($i = 0; $i <= count($name_arr) - 2; $i++) { $firstname = $firstname . ' ' . $name_arr[$i]; } $lastname = $name_arr[count($name_arr) - 1]; } else { $firstname = $name; $lastname = '.'; } $address = new Address(); $address->id_country = $id_country; $address->id_state = 0; $address->id_customer = $customer_id; $address->alias = 'My Address'; $address->firstname = trim($firstname); $address->lastname = $lastname; $address->address1 = (string) $xml->ProcessedOrder->ShippingAddress->AddressFieldOne; $address->address2 = (string) $xml->ProcessedOrder->ShippingAddress->AddressFieldTwo; $address->postcode = (string) $xml->ProcessedOrder->ShippingAddress->PostalCode; $address->city = (string) $xml->ProcessedOrder->ShippingAddress->City . ' ' . (string) $xml->ProcessedOrder->ShippingAddress->State; $address->active = 1; $address->add(); $address_id = $address->id; //$id_order_state = Configuration::get('PS_OS_PREPARATION'); $id_order_state = 99; $reference = Order::generateReference(); $order = new Order(); $order->id = $order_id; $order->id_customer = (int) $customer_id; $order->id_address_invoice = (int) $address_id; $carrier = null; $sql = 'SELECT id_carrier from `' . $prefix . 'carrier` where `active` = 1 and `deleted` = 0 limit 0,1'; $result = Db::getInstance()->ExecuteS($sql); $id_carrier = $result[0]['id_carrier']; $sql = 'SELECT id_currency from `' . $prefix . 'currency` where `active` = 1 and `deleted` = 0 and `iso_code` = "INR" limit 0,1'; $result = Db::getInstance()->ExecuteS($sql); $currency_id = $result[0]['id_currency']; $sql = 'UPDATE `' . $tablename . '` set `id_customer` = ' . (int) $customer_id . ', `id_carrier` = ' . $id_carrier . ', `id_address_invoice` = ' . (int) $address_id . ', `id_address_delivery` = ' . (int) $address_id . ', `id_currency` = ' . $currency_id . ', `reference` = "' . $reference . '", `secure_key` = "' . md5(uniqid()) . '", `total_paid` = ' . $total_amount . ', `total_paid_tax_incl` = ' . $total_amount . ', `total_paid_tax_excl` = ' . $total_amount . ', `total_paid_real` = 0, `total_shipping` = ' . $shipping_amount . ', `total_shipping_tax_incl` = ' . $shipping_amount . ', `total_shipping_tax_excl` = ' . $shipping_amount . ', `total_discounts` = ' . (double) $total_promo . ', `total_discounts_tax_incl` = ' . (double) $total_promo . ', `total_discounts_tax_excl` = ' . (double) $total_promo . ', `total_products` = ' . $total_principal . ', `total_products_wt` = ' . $total_principal . ', `invoice_date` = "0000-00-00 00:00:00", `delivery_date` = "0000-00-00 00:00:00" where `id_order` = ' . $order_id . ' '; //`round_mode` = '.Configuration::get('PS_PRICE_ROUND_MODE').', /*`total_wrapping_tax_incl` = '.$WrappingAmount.', `total_wrapping_tax_excl` = '.$WrappingAmount.', `total_wrapping` = '.$WrappingAmount.',*/ Db::getInstance()->Execute($sql); $acknowledge_arr = array(); $i = 0; foreach ($xml->ProcessedOrder->ProcessedOrderItems->ProcessedOrderItem as $item) { $product_id = (string) $item->SKU; $product = new Product((int) $product_id); $SKU = $product->reference; $AmazonOrderItemCode = (string) $item->AmazonOrderItemCode; $Title = (string) $item->Title; $Amount = (double) $item->Price->Amount; $acknowledge_arr['items'][$i]['AmazonOrderItemCode'] = $AmazonOrderItemCode; $acknowledge_arr['items'][$i]['product_id'] = $product_id; $CurrencyCode = (string) $item->Price->CurrencyCode; $Quantity = (int) $item->Quantity; $other_promo = 0; foreach ($item->ItemCharges->Component as $amount_type) { $item_charge_type = (string) $amount_type->Type; if ($item_charge_type == 'Principal') { $principal = (string) $amount_type->Charge->Amount; } if ($item_charge_type == 'Shipping') { $Shipping = (string) $amount_type->Charge->Amount; } if ($item_charge_type == 'PrincipalPromo') { $principal_promo = (string) $amount_type->Charge->Amount; } if ($item_charge_type == 'ShippingPromo') { $shipping_promo = (string) $amount_type->Charge->Amount; } if ($item_charge_type == 'OtherPromo') { $other_promo = (string) $amount_type->Charge->Amount; } } $sql = 'INSERT into `' . $prefix . 'order_detail` set `id_order` = ' . $order_id . ', `product_id` = ' . $product_id . ', `product_name` = "' . $Title . '", `product_quantity` = ' . $Quantity . ', `product_quantity_in_stock` = ' . $Quantity . ', `product_price` = ' . $Amount . ', `product_reference` = "' . $SKU . '", `total_price_tax_incl` = ' . $Amount * $Quantity . ', `total_price_tax_excl` = ' . $Amount * $Quantity . ', `unit_price_tax_incl` = ' . $Amount . ', `unit_price_tax_excl` = ' . $Amount . ', `original_product_price` = ' . $Amount . ' '; Db::getInstance()->Execute($sql); $sql = 'UPDATE `' . $prefix . 'stock_available` set `quantity` = `quantity` - ' . $Quantity . ' where `id_product` = ' . $product_id . ' and `id_product_attribute` = 0 '; Db::getInstance()->Execute($sql); $date = date('Y-m-d'); $sql = 'UPDATE `' . $prefix . 'product_sale` set `quantity` = `quantity` + ' . $Quantity . ', `sale_nbr` = `sale_nbr` + ' . $Quantity . ', `date_upd` = ' . $date . ' where `id_product` = ' . $product_id . ' '; Db::getInstance()->Execute($sql); $i++; } // Adding an entry in order_carrier table if (!is_null($carrier)) { $order_carrier = new OrderCarrier(); $order_carrier->id_order = (int) $order->id; $order_carrier->id_carrier = (int) $id_carrier; $order_carrier->weight = '0'; $order_carrier->shipping_cost_tax_excl = (double) $shipping_amount; $order_carrier->shipping_cost_tax_incl = (double) $shipping_amount; $order_carrier->add(); } else { $order_carrier = new OrderCarrier(); $order_carrier->id_order = (int) $order->id; $order_carrier->id_carrier = (int) $id_carrier; $order_carrier->weight = '0'; $order_carrier->shipping_cost_tax_excl = (double) $shipping_amount; $order_carrier->shipping_cost_tax_incl = (double) $shipping_amount; $order_carrier->add(); } // Set the order status $history = new OrderHistory(); $history->id_order = (int) $order->id; $history->changeIdOrderState((int) $id_order_state, $order->id, true); $history->addWithemail(true, array()); $acknowledge_arr['MerchantOrderID'] = (int) $order->id; }