Модель: Order
Класс Models_Order реализует логику взаимодействия с заказами покупателей.
- Проверяет корректность ввода данных в форме оформления заказа;
- Добавляет заказ в базу данных.
- Отправляет сообщения на электронные адреса пользователя и администраторов, при успешном оформлении заказа.
- Удаляет заказ из базы данных.
Методы со знаком * содержат хуки
bool|string | isValidData() * |
Проверяет корректность ввода данных в форму заказа и регистрацию в системе покупателя.
$arrayData = array( |
void | addNewUser() |
Если заказ оформляется впервые на нового покупателя, то создает новую запись в таблице пользователей.
$model = new Models_Order(); |
int | addOrder() * |
Сохраняет заказ в базу сайта. Добавляет в массив корзины третий параметр 'цена товара', для сохранения в заказ. Это нужно для того, чтобы в последствии вывести детальную информацию о заказе. Если оставить только id то информация может оказаться неверной, так как цены меняются. @see Models_Order::isValidData() входящий массив
$model = new Models_Order(); |
void | sendStatusToEmail() * |
Отправляет сообщение о смене статуса заказа его владельцу.
$model = new Models_Order; |
bool | updateOrder() * |
Изменяет данные о заказе
$array = array( |
string | join1cidProducts() |
Добавляет к товарам в заказе идентификаторы 1С. |
bool | refreshCountProducts() * |
Пересчитывает количество остатков продуктов при отмене заказа.
$model = new Models_Order; |
bool | deleteOrder() * |
Удаляет заказ из базы данных.
$model = new Models_Order; |
array | getOrder() |
Возвращает массив заказов подцепляя данные о способе доставки.
$model = new Models_Order; |
bool | setOrderStatus() * |
Устанавливает переданный статус заказа.
$result = Models_Order::setOrderStatus(5, 4); |
string | _getHash() |
Генерация случайного хэша.
$email = 'admin@mail.mail'; |
array | getDeliveryMethod() |
Получение данных о способах доставки.
$order = new Models_Order(); |
bool | DeliveryExist() |
Проверяет, существуют ли способы доставки.
var_dump(Models_Order::DeliveryExist());
|
string | getOrderStatus() |
Расшифровка по id статуса заказа.
echo Models_Order::getOrderStatus(4);
|
array | getPaymentMethod() |
Расшифровка по id методов оплаты.
$order = new Models_Order(); |
array | getPaymentBlocksMethod() |
Получает набор всех способов оплаты.
$order = new Models_Order(); |
array | getListPayment() |
Возвращает весь список способов оплаты в ассоциативном массиве с индексами.
$result = Models_Order::getListPayment(); |
string | getMaxPrice() |
Возвращает максимальную сумму заказа.
echo Models_Order::getMaxPrice();
|
string | getMinPrice() |
Возвращает минимальную сумму заказа.
echo Models_Order::getMinPrice();
|
string | getMaxDate() |
Возвращает дату последнего заказа.
echo Models_Order::getMaxDate();
|
array | getMinDate() |
Возвращает дату первого заказа.
echo Models_Order::getMinDate();
|
array | getListDelivery() |
Возвращает весь список способов доставки в ассоциативном массиве с индексами.
$result = Models_Order::getListDelivery(); |
string | getPaidedStatus() |
Получение статуса оплаты.
echo Models_Order::getPaidedStatus(5);
|
string | getOrderCount() | Возвращает общее количество заказов. |
void | sendMailOfPayed() * |
Отправляет сообщение об оплате заказа.
$model = new Models_Order; |
array | getFileToOrder() |
Возвращает ссылки на скачивания электронных товаров.
$model = new Models_Order; |
bool | getFileByMd5() |
Возвращает файл по хэшу.
Models_Order::getFileByMd5('$1$.z8cFb7V$zt15YCRQ3442XaOU8mkWh1');
|
void | sendLinkForElectro() |
Отправляет письмо со ссылками на приобретенные электронные товары
$model = new Models_Order; |
void | sendMailOfUpdateOrder() |
Уведомляет админов о смене статуса заказа пользователем, высылая им письма.
$model = new Models_Order; |
array | getParamArray() |
Возвращает массив параметров оплаты.
$order = new Models_Order; |
bool | cloneOrder() * |
Создает дубль заказа
$order = new Models_Order; |
int | getNewOrdersCount() |
Возвращает общее количествo невыполненных заказов.
echo Models_Order::getNewOrdersCount();
|
array | getOrderStat() |
Возвращает статистику заказов за каждый день начиная с открытия магазина.
$result = Models_Order::getOrderStat(); |
array | getStatisticPeriod() |
Возвращает статистику заказов за выбранный период.
$result = Models_Order::getStatisticPeriod('01.01.2017','01.01.2018'); |
string | printOrder() |
Выводит на экран печатную форму для печати заказа в админке.
$model = new Models_Order; |
bool|void | getPdfOrder() |
Отдает pdf файл на скачивание.
$model = new Models_Order; |
void | getMassPdfOrders() |
Отдает pdf с несколькими заказами на скачивание |
void|string | printQittance() |
Выводит на экран печатную форму для печати квитанции на оплату заказа.
$model = new Models_Order; |
void | getExportCSV() |
Экспортирует параметры конкретного заказа в CSV файл.
$order = new Models_Order; |
bool | refreshCountAfterEdit() * |
Пересчитывает количество остатков продуктов при редактировании заказа.
$orderId = 5; |
bool | notSetGoods() * |
Проверяет есть в заказе комплект или нет при копировании заказа
$result = Models_Order::notSetGoods(3); |
array | exportToCsvOrder() |
Выгружает список заказов в CSV файл.
$order = new Models_Order; |
array | getOrderDiscount() * |
Поиск скидки, применяемой к заказу по промокоду или в рамках накопительной/объемной скидки.
$params = array( |
array|false | getOrderAdminComments() | Получить список доп. комментариев менеджеров к заказу по id |
boolean | addAdminCommentOrder() | Добавляет комментарий менеджера к заказу: если это первый комментарий, то он становиться главным, если последующий, то дополнительным. |
boolean | deleteAdminCommentOrder() | Удаляет доп. комментарий менеджера из заказа |
void | getCorrectOrderContent() |
Возвращает корзину заказа с округленной до копеек стоимостью товаров Исправляет расхождение суммы товаров с суммой заказа, если оно возникло в результате окргления |
Метод
bool|string isValidData (array $arrayData, array $require = Array, bool $createUser = true, string $error)
Параметры
Результат работы метода можно изменить хуком: Models_Order_isValidData
Описание
Проверяет корректность ввода данных в форму заказа и регистрацию в системе покупателя.
$arrayData = array(
'email' => 'admin@admin.ru', // почта пользователя
'phone' => '+7 (111) 111-11-11', // телефон пользователя
'fio' => 'Администратор', // имя покупателя
'address' => 'addr', // адрес доставки
'info' => 'comment', // комментарий покупателя
'customer' => 'fiz', // плательщик (fiz - физическое лицо, yur - юридическое)
'yur_info' => Array(
'nameyur' => null, // название юр лица
'adress' => null, // адрес юр лица
'inn' => null, // инн юр лица
'kpp' => null, // кпп юр лица
'bank' => null, // банк юр лица
'bik' => null, // бик юр лица
'ks' => null, // К/Сч юр лица
'rs' => null, // Р/Сч юр лица
),
'delivery' => 1, // ID доставки
'date_delivery' => '08.03.2018', // дата доставки
'payment' => 2 // ID оплаты
);
$order = new Models_Order;
$order->isValidData($arrayData);
Метод
addNewUser ($data)
Описание
Если заказ оформляется впервые на нового покупателя, то создает новую запись в таблице пользователей.
$model = new Models_Order();
$model->newUser = true;
$model->email = 'user@mail.mail';
$model->fio = 'username';
$model->address = 'адрес';
$model->phone = '8 (555) 555-55-55';
$model->ip = '127.0.0.1';
$model->addNewUser();
Метод
int addOrder (bool $adminOrder = false)
Параметры
Результат работы метода можно изменить хуком: Models_Order_addOrder
Описание
Сохраняет заказ в базу сайта.
Добавляет в массив корзины третий параметр 'цена товара', для сохранения в заказ.
Это нужно для того, чтобы в последствии вывести детальную информацию о заказе.
Если оставить только id то информация может оказаться неверной, так как цены меняются.
@see Models_Order::isValidData() входящий массив
$model = new Models_Order();
$model->isValidData($arrayData);
$orderId = $model->addOrder();
echo $orderId;
Метод
sendStatusToEmail (int $id, int $statusId, string $text)
Параметры
Результат работы метода можно изменить хуком: Models_Order_sendStatusToEmail
Описание
Отправляет сообщение о смене статуса заказа его владельцу.
$model = new Models_Order;
$model->sendStatusToEmail(5, 3, 'Ваш заказ передан в службу доставки');
Метод
bool updateOrder (array $array, bool $informUser = false, string $text)
Параметры
Результат работы метода можно изменить хуком: Models_Order_updateOrder
Описание
Изменяет данные о заказе
$array = array(
'address' => 'addr', // адрес доставки
'date_delivery' => '08.03.2018', // дата доставки
'comment' => 'comment', // комментарий менеджера
'delivery_cost' => 700, // стоимость доставки
'delivery_id' => 1, // ID доставки
'id' => 3, // ID заказа
'number' => 'M-0105268947551', // код заказа
'name_buyer' => 'Администратор', // имя покупателя
'payment_id' => 1, // ID оплаты
'phone' => '+7 (111) 111-11-11', // телефон пользователя
'status_id' => 0, // ID статуса заказа
'summ' => 100, // сумма заказа без доставки
'currency_iso' => 'RUR', // код валюты заказа
'user_email' => 'admin@admin.ru', // почта авторизации пользователя
'contact_email' => 'admin@admin.ru', // контактная почта пользователя
'order_content' => 'string', // сериализованный массив состава заказа
'storage' => 'default', // склад для заказа
'summ_shop_curr' => 100, // сумма заказа без доставки в основной валюте магазина
'delivery_shop_curr' => 700, // стоимость доставки в основной валюте магазина
'yur_info' => 'string' // сериализованный массив юридических данных
)
$model = new Models_Order;
$model->updateOrder($array , true, 'Ваш заказ успешно обновлен');
Метод
string join1cidProducts (string $order_content)
Параметры
Описание
Добавляет к товарам в заказе идентификаторы 1С.
Метод
bool refreshCountProducts (int $orderId, int $status_id)
Параметры
Результат работы метода можно изменить хуком: Models_Order_refreshCountProducts
Описание
Пересчитывает количество остатков продуктов при отмене заказа.
$model = new Models_Order;
$model->refreshCountProducts(5, 4);
Метод
bool deleteOrder (int $id, array|null $arrayId)
Параметры
Результат работы метода можно изменить хуком: Models_Order_deleteOrder
Описание
Удаляет заказ из базы данных.
$model = new Models_Order;
$model->deleteOrder(false, array(1,2,3,4,5));
Метод
array getOrder (string $where, $limit)
Параметры
Описание
Возвращает массив заказов подцепляя данные о способе доставки.
$model = new Models_Order;
$orders = $model->getOrder('id IN (1,2,3,4,5)');
viewData($orders);
Метод
bool setOrderStatus (int $id, int $statusId)
Параметры
Результат работы метода можно изменить хуком: Models_Order_setOrderStatus
Описание
Устанавливает переданный статус заказа.
$result = Models_Order::setOrderStatus(5, 4);
var_dump($result);
Метод
string _getHash (string $string)
Параметры
Описание
Генерация случайного хэша.
$email = 'admin@mail.mail';
$hash = Models_Order::_getHash($email);
echo $hash;
Метод
array getDeliveryMethod (bool $returnArray = true, int $id = -1)
Параметры
Описание
Получение данных о способах доставки.
$order = new Models_Order();
$result = $order->getDeliveryMethod();
viewData($result);
Метод
bool DeliveryExist ()
Описание
Проверяет, существуют ли способы доставки.
var_dump(Models_Order::DeliveryExist());
Метод
string getOrderStatus (int $statusId)
Параметры
Описание
Расшифровка по id статуса заказа.
echo Models_Order::getOrderStatus(4);
Метод
array getPaymentMethod (int $paymentId, $check = true)
Параметры
Описание
Расшифровка по id методов оплаты.
$order = new Models_Order();
$result = $order->getPaymentMethod(14);
viewData($result);
Метод
array getPaymentBlocksMethod ()
Описание
Получает набор всех способов оплаты.
$order = new Models_Order();
$result = $order->getPaymentBlocksMethod();
viewData($result);
Метод
array getListPayment ()
Описание
Возвращает весь список способов оплаты в ассоциативном массиве с индексами.
$result = Models_Order::getListPayment();
viewData($result);
Метод
string getMaxPrice ()
Описание
Возвращает максимальную сумму заказа.
echo Models_Order::getMaxPrice();
Метод
string getMinPrice ()
Описание
Возвращает минимальную сумму заказа.
echo Models_Order::getMinPrice();
Метод
string getMaxDate ()
Описание
Возвращает дату последнего заказа.
echo Models_Order::getMaxDate();
Метод
array getListDelivery ()
Описание
Возвращает весь список способов доставки в ассоциативном массиве с индексами.
$result = Models_Order::getListDelivery();
viewData($result);
Метод
string getPaidedStatus (array $paidedId)
Параметры
Описание
Получение статуса оплаты.
echo Models_Order::getPaidedStatus(5);
Метод
string getOrderCount (string $where)
Параметры
Описание
Возвращает общее количество заказов.
Метод
sendMailOfPayed (string $orderNumber, string $paySumm, string $pamentId)
Параметры
Результат работы метода можно изменить хуком: Models_Order_sendMailOfPayed
Описание
Отправляет сообщение об оплате заказа.
$model = new Models_Order;
$model->sendMailOfPayed(5, 1500, 19);
Метод
array getFileToOrder (int $orderId)
Параметры
Описание
Возвращает ссылки на скачивания электронных товаров.
$model = new Models_Order;
$result = $model->sendMailOfPayed(5);
viewData($result);
Метод
bool getFileByMd5 (string $md5)
Параметры
Описание
Возвращает файл по хэшу.
Models_Order::getFileByMd5('$1$.z8cFb7V$zt15YCRQ3442XaOU8mkWh1');
Метод
sendLinkForElectro (string $orderId)
Параметры
Описание
Отправляет письмо со ссылками на приобретенные электронные товары
$model = new Models_Order;
$model->sendLinkForElectro(5);
Метод
sendMailOfUpdateOrder (int $orderId, $comment, $status)
Параметры
Описание
Уведомляет админов о смене статуса заказа пользователем, высылая им письма.
$model = new Models_Order;
$model->sendMailOfUpdateOrder(5);
Метод
array getParamArray (int $pay, int $orderId, float $summ)
Параметры
Описание
Возвращает массив параметров оплаты.
$order = new Models_Order;
$paymentInfo = $order->getParamArray(15, 5, 1500);
viewData($paymentInfo);
Метод
bool cloneOrder ($id)
Параметры
Результат работы метода можно изменить хуком: Models_Order_cloneOrder
Описание
Создает дубль заказа
$order = new Models_Order;
$order->cloneOrder(5);
Метод
int getNewOrdersCount ()
Описание
Возвращает общее количествo невыполненных заказов.
echo Models_Order::getNewOrdersCount();
Метод
array getOrderStat ()
Описание
Возвращает статистику заказов за каждый день начиная с открытия магазина.
$result = Models_Order::getOrderStat();
viewData($result);
Метод
array getStatisticPeriod (string $dateFrom, string $dateTo)
Параметры
Описание
Возвращает статистику заказов за выбранный период.
$result = Models_Order::getStatisticPeriod('01.01.2017','01.01.2018');
viewData($result);
Метод
string printOrder (int $id, bool $sign = true, string $type = order, string $usestamp = false)
Параметры
Описание
Выводит на экран печатную форму для печати заказа в админке.
$model = new Models_Order;
echo $model->printOrder(5);
Метод
bool|void getPdfOrder (int $orderId, string $type = order, string $usestamp = false)
Параметры
Описание
Отдает pdf файл на скачивание.
$model = new Models_Order;
$model->getPdfOrder(5);
Метод
getMassPdfOrders (array $ordersIds)
Параметры
Описание
Отдает pdf с несколькими заказами на скачивание
Метод
void|string printQittance ($public = true)
Параметры
Описание
Выводит на экран печатную форму для печати квитанции на оплату заказа.
$model = new Models_Order;
$model->printQittance();
Метод
void getExportCSV ($orderId)
Параметры
Описание
Экспортирует параметры конкретного заказа в CSV файл.
$order = new Models_Order;
$order->getExportCSV(5);
Метод
bool refreshCountAfterEdit (int $orderId, string $content)
Параметры
Результат работы метода можно изменить хуком: Models_Order_refreshCountAfterEdit
Описание
Пересчитывает количество остатков продуктов при редактировании заказа.
$orderId = 5;
$content = 'a:1:{i:0;a:16:{s:2:\"id\";s:2:\"40\";s:7:\"variant\";s:4:\"1099\";s:5:\"title\";s:72:\"Чехол на руку для смартфона Demix+ Зелёный\";s:4:\"name\";s:72:\"Чехол на руку для смартфона Demix+ Зелёный\";s:8:\"property\";s:0:\"\";s:5:\"price\";s:3:\"499\";s:8:\"fulPrice\";s:3:\"499\";s:4:\"code\";s:6:\"SKU343\";s:6:\"weight\";s:1:\"0\";s:12:\"currency_iso\";s:3:\"RUR\";s:5:\"count\";s:1:\"2\";s:6:\"coupon\";s:1:\"0\";s:4:\"info\";s:0:\"\";s:3:\"url\";s:69:\"aksessuary/chehly-dlya-smartfonov/chehol-na-ruku-dlya-smartfona-demix\";s:8:\"discount\";s:1:\"0\";s:8:\"discSyst\";s:11:\"false/false\";}}';
$order = new Models_Order;
$result = $order->refreshCountAfterEdit($orderId, $content);
var_dump($result);
Метод
bool notSetGoods (int $id)
Параметры
Результат работы метода можно изменить хуком: Models_Order_notSetGoods
Описание
Проверяет есть в заказе комплект или нет при копировании заказа
$result = Models_Order::notSetGoods(3);
var_dump($result);
Метод
array exportToCsvOrder (array $listOrderId, bool $full = false, $exportToCSV = false)
Параметры
Описание
Выгружает список заказов в CSV файл.
$order = new Models_Order;
echo $order->exportToCsvOrder();
Метод
array getOrderDiscount (array $params)
Параметры
Результат работы метода можно изменить хуком: Models_Order_getOrderDiscount
Описание
Поиск скидки, применяемой к заказу по промокоду или в рамках
накопительной/объемной скидки.
$params = array(
'summ' => 1000, // сумма заказа
'email' => 'admin@admin.ru', // почта покупателя
'promocode' => 'DEFAULT-DISCONT', // код купона скидки
'cumulative' => 'true', // накопительная скидка
'volume' => 'true', // объемная скидка
'paymentId' => 5, // ID способа
'orderItems' => 'array' // массив с товарами заказа
);
$order = new Models_Order;
$order->getOrderDiscount($params);
Метод
array|false getOrderAdminComments (string|int $id)
Параметры
Описание
Получить список доп. комментариев менеджеров к заказу по id
Метод
boolean addAdminCommentOrder (string|int $id, string $text, string|int $user_id)
Параметры
Описание
Добавляет комментарий менеджера к заказу: если это первый комментарий, то он становиться главным, если последующий, то дополнительным.