'Оплата на сайте', '2' => 'Оплата при получении' ]; $pay_id = 2; // по умолчанию оплата при получении /** был изменен способ доставки в форме * 1 - электронная * 2 - самовывоз * 3 - курьером */ //print_r($_POST); /* ищем есть ли товар */ $price_id = db_get("SELECT * FROM `price` WHERE `priceslug` = '$priceslug' LIMIT 1"); if (!isset($price_id['price_id'])) { echo 'товар не найден'; return false; } # отправляем цену на форму в js if ($delivery_id == 1){ // тип товара = 1 (только электронная) $price = $price_id['price']; // электронный прайс } else { $price = $price_id['offline_price']; // бумажный прайс $delivery = delivery_list(); // список доставок для бумажной версии } /** если клиент залогинен */ if (defined('CLIENT_ID')){ $client = client_find_id(CLIENT_ID); if (isset($client['result']['client_id'])){ $client = $client['result']; } } # если пришла форма if (count($_POST) > 0){ $errors = []; // ошибки которые вернуться в форму if (isset($_POST['delivery_id'])){ $delivery_id = (int)$_POST['delivery_id']; } if (isset($_POST['pay_id'])){ $pay_id = (int)$_POST['pay_id']; } # указан ли в поле email if (isset($_POST['clientmail']) and trim($_POST['clientmail']) !== '') { $clientmail = $_POST['clientmail']; if (!filter_var($clientmail, FILTER_VALIDATE_EMAIL)){ $errors['buy_email'] = 'Не верно указана электронная почта'; // if ($delivery_id == 1 or $pay_id == 1){ $err_critical = True; # обязательное поле для цифрового заказа или оплаты онлайн // } } else { $client = api_add_client($clientmail); # ищем или создаем клиента } } else { $err_critical = True; $errors['buy_email'] = 'Не указана электронная почта (обязательна для электронных заказов и оплаты онлайн)'; } # указано ли поле имя if (isset($_POST['buy_name']) and trim($_POST['buy_name']) !== '' ) { $add['buy_name'] = trim($_POST['buy_name']); } else { if ($delivery_id > 1){ $err_critical = True; // обязательное поле для физических заказов $errors['buy_name'] = 'Не указано имя. Обязательно для получения самовывозом'; } } # указано поле телефон if (isset($_POST['buy_tel']) and trim($_POST['buy_tel']) !== '') { $add['buy_tel'] = trim($_POST['buy_tel']); } else { if ($delivery_id == 3){ // обязательное поле для доставки курьером $err_critical = True; $errors['buy_tel'] = 'Не указан телефон по которому можно уточнить детали доставки'; } } # указано поле адрес if (isset($_POST['buy_adress']) and trim($_POST['buy_adress']) !== '') { $add['buy_adress'] = trim($_POST['buy_adress']); } else { if ($delivery_id == 3){ $err_critical = True; // обязательное поле для доставки курьером $errors['buy_adress'] = 'Не указан адрес куда доставить товар'; } } // все поля формы заполнены - пушим заказ if (!$err_critical){ $add_order = True; } if (isset($_POST['count'])) $count = $_POST['count']; else $count = 1; /** определяем цену товара */ if ($delivery_id == 1){ // тип товара = 1 (только электронная) $price = $price_id['price']; // электронный прайс } else { # физический товар if ($price_id['pieces'] > 0 ){ $price = $price_id['offline_price']; // бумажный прайс if ($delivery_id == 2){ #самовывоз $price = $price * $count; } elseif($delivery_id == 2){ #курьером 300рэ $price = $price * $count; $price = $price + 300; } elseif($delivery_id == 2){ #почта россии за каждый кулек своя доставка $price = $price + 250; $price = $price * $count; } }else{ echo 'Товара больше нет в наличии'; return; } } } /** фикстируем клиента в базу */ if (isset($client['client_id'])) { $add['client_id'] = $client['client_id']; $add['buy_email'] = $client['clientmail']; if ($delivery_id == 1) { $add_order = True; // для электронного заказа достаточно активного клиента } } #создаем заказ if ($add_order){ $add['buy_status'] = 0; $add['mail_status'] = 0; $add['number_id'] = $price_id['price_id']; $add['pay_id'] = 3; // оплата через Юкассу $add['delivery_id'] = $delivery_id; $add['date_start'] = date('Y-m-d H:i:s'); $add['buy_active'] = 0; $add['count'] = $count; /** фиксируем цену в базу */ $add['buy_price'] = $price; $add['price'] = $price; $order_id = db_insert('anbuy', $add, 'chitatel'); // добавляем в базу заказ $order_url = SITE."status/$order_id"; if (is_array($order_id)){ // неудалось создать заказ $error_mail = True; $error['no_order'] = 'Не удалось сформировать заказ'; } else { # заказ создался if ( $delivery_id == 1){ //уводим на оплату онлайн в Юкассу return anpay_kuri($order_id); } else { // даем пользователю номер заказа #минус один товар со склада // $pieces = $price_id['pieces'] - 1; // $pi_sql = "UPDATE `price` SET `pieces` = '$pieces' WHERE `price_id` = '{$price_id['price_id']}';"; // $pi_res = db_get($pi_sql, 'chitatel'); if ($_POST['pay_id'] == 1){ # оплата на сайте return anpay_kuri($order_id); } if (isset($add['buy_email'])) { $message = "Ваш заказ «{$price_id['pricename']}» на сумму ($price руб.) подтвержден.
Номер заказа $order_id.
Сообщите его менеджеру при необходимости.
"; $subject = "Аргументы Недели: платеж подтвержден"; $result = klanmail($add['buy_email'], $subject, $message, set('klanmail')); if ($result == True){ # сообщение отправлено клиенту push_ok($order_id); } # отправляем заказ оператору: $subject = "Заказ № $order_id c klan.argumenti.ru"; $message = "Номер заказа $order_id.
Товар: {$price_id['pricename']}
Имя: {$add['buy_name']}
Адрес: {$add['buy_adress']}
Телефон: {$add['buy_tel']}
E-mail: {$add['buy_email']}
Доставка: {$delivery[$delivery_id]['delivery']}
Сумма заказа: $price руб.
Оплата: при получении "; $mresult = klanmail(OFFMAIL, $subject, $message, set('klanmail')); } header("Location: $order_url"); // переводим на инфу про заказа } } } $submit_link = SITE."checkout/$priceslug/$delivery_id"; $tempcontent = VIEWPATH.'checkout.phtml'; include VIEWPATH.'layout_pay.phtml'; } # страница с которой function status_kuri($order_id){ # получаем инфу о заказе $buy_find = " SELECT `buy_id`, `buy_status`, `delivery_id`, `shop_id` FROM `anbuy` WHERE `buy_id` = '$order_id' LIMIT 1 "; $buy_id = db_get($buy_find); //$tempcontent = VIEWPATH.'order_status.phtml'; //include VIEWPATH.'order_status.phtml'; $tempcontent = VIEWPATH.'order_status.phtml'; include VIEWPATH.'layout_pay.phtml'; } function delivery_list() { $result = []; $delivery = db_get("SELECT * FROM delivery WHERE delivery_id > 1"); foreach ($delivery as $del){ $key = $del['delivery_id']; $result[$key] = $del; } return $result; }