Форум пользователей Impera CMS
Impera CMS - отличный движок для лёгкого создания интернет магазина.
Обладает невероятным количеством функций, необходимых в онлайн торговле.

Следить
Главная
08:44
09 янв
#
?
написал:

Кто знает где в базе данных или в файле хранятся данные о заказах интернет магазина которые оформляет клиент?

11:51
09 янв
#
написал:

Записи о заказах покупателей (так называемые расходные ордеры) хранятся в следующих таблицах базы данных Impera CMS, где первую таблицу можно назвать основной, вторую - ведомой в том смысле, что в своих записях содержит указатели принадлежности к записям первой таблицы:

  • orders   -   общая информация о заказе (грубо говоря, шапка документа)
  • orders_products   -   сведения о товарных позициях заказа

Рассмотрим структуру таблицы orders. Здесь указаны: имя поля таблицы, тип значения в этом поле и описание поля. Для удобства поля перечислим поблочно по целям.

  • относящиеся к идентификации записи

    • order_id   -   integer   -   идентификатор заказа (он же номер заказа)
    • code   -   string   -   код для url страницы заказа
    • date   -   datetime   -   дата оформления заказа

      так как в Impera CMS пока не предусмотрено отдельное поле для номера заказа в произвольном формате, например 10-123/27/65-0023, то этим полем невольно вынуждено выступать поле идентификатора заказа, и как следствие номер заказа является обычным автоинкрементным числом

      код для url страницы заказа - это та автоматически генерируемая системой правая часть адреса страницы, которая добавляется к имени сайта, чтобы впоследствии получился полный адрес страницы заказа, доступной для просмотра заказа покупателем (то есть с клиентской стороны сайта); например если code был сгенерирован равным dt78ug4werg8gew4hgre, то страница этого оформленного заказа будет доступна покупателю по адресу http://сайт/order/dt78ug4werg8gew4hgre

  • относящиеся к приватности

    • hidden   -   tinyint   -   признак "страница заказа скрыта от посторонних"

      несмотря на то, что генерируемый код для url достаточно сложен для подбора, тем не менее создан специальный признак приватности, его значением может быть:

      • 0   -   заказ разрешено видеть любому, кто знает url страницы заказа
      • 1   -   покупатель пожелал закрыть страницу заказа своим логином/паролем

      данный признак относится только к просмотру заказа с клиентской стороны; администратор видит заказ в любом случае

  • указывающие на пользователя

    • user_id   -   integer   -   идентификатор пользователя, если заказ оформлял авторизованный

      данное поле содержит либо 0, либо указатель на конкретную запись в таблице users (зарегистрированные пользователи сайта)

  • информация о покупателе/получателе

    • name   -   string   -   имя покупателя (хранится в формате фамилия|отчество|имя)
    • country_id   -   integer   -   идентификатор страны покупателя (указатель на таблицу countries)
    • region_id   -   integer   -   идентификатор области покупателя (указатель на таблицу regions)
    • town_id   -   integer   -   идентификатор города покупателя (указатель на таблицу towns)
    • address   -   string   -   адрес доставки (хранится в формате страна|область|город|улица|дом|корпус|подъезд|код_двери_подъезда|квартира|почтовый_индекс)
    • address2   -   string   -   адрес 2 доставки (хранится в аналогичном формате)
    • phone   -   string   -   телефон покупателя
    • phone2   -   string   -   телефон 2 покупателя
    • email   -   string   -   емейл покупателя
    • email2   -   string   -   емейл 2 покупателя
    • icq   -   string   -   ICQ номер покупателя
    • icq2   -   string   -   ICQ номер 2 покупателя
    • skype   -   string   -   Skype имя покупателя
    • skype2   -   string   -   Skype имя 2 покупателя

      в типичном случае для заказов авторизованных пользователей эти поля будут содержать (дублировать) сведения аналогичных полей записи из таблицы users, тем не менее эти поля существуют в записи заказа именно потому, что во-первых, заказ может оформляться не только авторизованным покупателем, а во-вторых, по воле авторизованного оформителя заказа адрес доставки и контактная информация получателя могут отличаться от его собственных

      обратите также внимание, что поля name, address и address2 хранятся в собственном формате: по сути это строка со своей внутренней структурой, где "поля" структуры разделены символом вертикальной черты

  • заметки покупателя

    • comment   -   string   -   комментарий покупателя к заказу
    • to_date   -   string   -   к какой дате покупатель пожелал получить доставку
    • to_time   -   string   -   к какому времени дня покупатель пожелал получить доставку

  • относящиеся к доставке

    • delivery_method_id   -   integer   -   ИД способа доставки (указатель на таблицу delivery_methods)
    • delivery_type   -   integer   -   ИД типа доставки (указатель на таблицу delivery_types)
    • delivery_tracking   -   string   -   код отслеживания груза (трекинг номер посылки)

  • относящиеся к оплате

    • desire_payment_id   -   integer   -   ИД желаемого способа оплаты (которым предполагал оплатить)
    • payment_method_id   -   integer   -   ИД способа оплаты (которым реально воспользовался)
    • payment_status   -   integer   -   состояние оплаты
      • 0   -   заказ не оплачен
      • 1   -   заказ оплачен
    • payment_date   -   datetime   -   дата оплаты
    • payment_details   -   text   -   детали платежа (что сообщил платежный сервис после платежа)

      обратите внимание, детали платежа хранятся в формате serialize; поля идентификаторов способов оплаты указывают на таблицу payment_methods

  • относящиеся к кредиту

    • credit_id   -   integer   -   ИД кредитной программы (указатель на таблицу credit_programs)
    • credit_details   -   text   -   детали кредита (что заполнил покупатель о себе в кредитной анкете)

      обратите внимание, детали кредита хранятся в формате serialize; если покупатель прикреплял в свою кредитную анкету сканы паспорта, фотографии, скан налогового номера и прочие требуемые документы, эти файлы хранятся в папке http://сайт/files/orders/

  • ценовые

    • delivery_price   -   float   -   цена доставки
    • discount_sum   -   float   -   сумма дополнительной скидки

      в каждой записи о товарной позиции заказа существует информация о скидке на эту позицию, однако в определенных случаях менеджеру необходимо дать покупателю некую произвольную скидку; для этих целей и существует поле дополнительной скидки

  • относящиеся к состояниям

    • written_off   -   tinyint   -   признак списания товаров со склада по этому заказу
      • 0   -   еще не списывались
      • 1   -   товары списаны
    • status   -   integer   -   состояние заказа
      • 0   -   новый
      • 1   -   находится в обработке
      • 2   -   выполнен
      • 3   -   аннулирован
    • state   -   integer   -   ИД стадии состояния заказа (указатель на таблицу orders_phases)
    • comment_status   -   string   -   комментарий админа к состоянию

  • относящиеся к партнерке

    • affiliate_id   -   integer   -   идентификатор реферала (указатель на таблицу users)

      согласно реализованной в движке партнерской программе, авторизованные пользователи могут приводить на сайт покупателей и в случае оформления и оплаты последними заказов, на внутренний счет зазывателя (реферала) будет автоматически перечислена комиссия, обозначенная в настройках партнерской программы; потому в заказе существует данное поле - кто из пользователей привел этого покупателя

  • докладные

    • ip   -   string   -   с какого IP-адреса оформляли заказ (хранится в формате ip|имя_хоста)


Теперь рассмотрим структуру ведомой таблицы orders_products. Здесь точно так указаны: имя поля таблицы, тип значения и описание поля. И перечислены поблочно.

  • относящиеся к идентификации записи

    • orderitem_id   -   integer   -   идентификатор записи
    • order_id   -   integer   -   идентификатор заказа (указатель на таблицу orders)
    • product_id   -   integer   -   идентификатор товара (указатель на таблицу products)
    • variant_id   -   integer   -   ИД варианта товара (указатель на таблицу products_variants)

  • именующие товарную позицию

    • product_name   -   string   -   название товара
    • variant_name   -   string   -   название варианта товара
    • name_properties   -   text   -   список выбранных покупателем свойств

      несмотря на то, что в записи уже хранятся указатели на товар и его вариант, здесь все же хранятся и сведения о том, как назывался этот товар на момент оформления заказа; чтобы при возможном дальнейшем удалении товара из базы или его переименовании в заказе продолжала сохраняться действительная информация о названии проданного на тот момент товара

  • количественно-ценовые

    • quantity   -   integer   -   количество товара
    • price   -   float   -   цена продажи (то есть с учетом скидок) единицы товара
    • real_price   -   float   -   исходная цена единицы товара
    • price_id   -   integer   -   ИД ценовой группы (из какой колонки бралась исходная цена)

  • позиционные

    • position   -   integer   -   положение товарной позиции в листинге заказа

Написание ответа

Перед публикацией рекомендуется использовать Предпросмотр, чтобы увидеть конечный вид сообщения.


Обратите внимание! Для противодействия спаму новые посты форума проявляются с задержкой от нескольких минут, пока не пройдут модерацию.