Разработка дизайна электронного адреса, доставки и подарка на базе CodeIgniter - PullRequest
1 голос
/ 18 декабря 2010

При создании платформы электронной коммерции у меня возникли проблемы с дизайном. Я работаю со встроенным классом корзины CodeIgniter. Он хранит всю информацию о корзине в сессии. Допустим, корзина уже заполнена продуктами и кликами пользователей оформляется. Когда я должен хранить заказ в базе данных? Просто после этого клика или после нескольких шагов сбора информации и сохранения ее в сессии? Как бороться с дополнительными функциями, такими как различные способы доставки? Стоит ли сначала добавить его в корзину и получить дополнительный (адрес подарка) к сеансу? Я не хочу хранить его в базе данных, потому что необходима связь между адресом подарка и заказом, и так как я не знаю, каков идентификатор заказа. Я озадачен :) Кроме того, я думаю, что крайне важно, чтобы корзина знала о способах доставки и дополнительных купленных услугах (при выборе адреса для подарка взимается дополнительная плата), поскольку содержимое корзины похоже на получение?

Вкратце, как лучше всего оформить заказ?

1 Ответ

3 голосов
/ 23 декабря 2010

Вы можете добавить дополнительные атрибуты к вашей корзине (например, параметры доставки), используя «параметры» значения корзины .

$data = array(
           'id'      => 'sku_123ABC',
           'qty'     => 1,
           'price'   => 39.95,
           'name'    => 'T-Shirt',
           'options' => array('shipId' => '1234abcd5678efghi')
        );

$this->cart->insert($data);

Имейте в виду, что вы этого не делаетенужны инкрементные идентификаторы из базы данных;Вы можете создавать уникальные идентификаторы с помощью uniqid () или com_create_guid () .

Поскольку вы запрашиваете мнение ... Вы должны хранить разные адреса доставкиотдельная таблица адресной книги, относящаяся к пользователю, не присоединенная к заказу.Когда вы, наконец, создадите заказ как часть оформления заказа, вам следует скопировать все данные (адресные данные и данные о соответствующем продукте) в отдельные таблицы заказов, поскольку данные о продукте и адресной книге могут измениться;Данные заказа должны быть записаны один раз и никогда не обновляться, кроме статуса.После сохранения заказа вы можете удалить данные сеанса.

...