Шаблон номера заказа указывается при редактировании магазина и по умолчанию равен {this.id}, вы можете использовать различные подстановки, чтобы сгенерировать собственный формат номера.
Номер заказа хранится в свойстве invoice
модели Shop_Order
и по умолчанию равен идентификатору заказа. В коде обработчика платежной системы, унаследованном от Shop_Payment_System_Handler
, необходимо переопределить метод _processOrder()
и добавить в него собственную логику генерации номера заказа.
protected function _processOrder() { parent::_processOrder(); // --- Рассчитываем номер заказа --- $oShop_Order = $this->getShopOrder(); $oShop_Order->invoice = date('dm-') . $oShop_Order->id; $oShop_Order->save(); // --- END / Рассчитываем номер заказа --- // Установка XSL-шаблонов в соответствии с настройками в узле структуры $this->setXSLs(); // Отправка писем клиенту и пользователю $this->send(); return $this; }
protected function _processOrder() { parent::_processOrder(); // --- Рассчитываем номер заказа --- $oShop_Order = $this->getShopOrder(); $date = date('Y-m-d'); $oShop_Orders = $oShop_Order->Shop->Shop_Orders; $oShop_Orders->queryBuilder() ->where('datetime', '>', "{$date} 00:00:00") ->where('datetime', '<', "{$date} 23:59:59"); $iCountOrders = $oShop_Orders->getCount(FALSE); $oShop_Order->invoice = 'PRF-' . date('dm') . '-' . $iCountOrders; $oShop_Order->save(); // --- END / Рассчитываем номер заказа --- // Установка XSL-шаблонов в соответствии с настройками в узле структуры $this->setXSLs(); // Отправка писем клиенту и пользователю $this->send(); return $this; }