Codeigniter Cart Class - дополнительная цена за опцию продукта - PullRequest
1 голос
/ 08 марта 2010

Можно ли добавить ценовые значения к опциям продукта в классе Codeigniter Cart. Например: цена на футболку составляет 10 долларов, а размер XXL - дополнительные 2 доллара.

$data = array(
           'id'      => 'abc',
           'qty'     => 1,
           'price'   => 10.00,
           'name'    => 'T-Shirt',
           'options' => array('Size' => 'XXL') // Where would you add $2.00 for XXL?
        );

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

Ответы [ 3 ]

1 голос
/ 09 марта 2010

Если посмотреть на класс корзины, похоже, что единственный способ сделать то, что вы просите, - это включить цену опционов в цену, которая передается в класс корзины CodeIgniter. Таким образом, вы передадите массив, который вы указали в своем примере, с $ data ['price'], установленным в 12.00 (10.00 плюс 2.00 для XXL)

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

0 голосов
/ 09 марта 2010

Это одна из причин, по которой мы создали собственную систему управления корзинами и заказами помимо оригинальной CI.

Лучший способ imho - расширить или перестроить класс корзины CI, чтобы внедрить продукт и опции прямо из результатов в БД. Таким образом, вы всегда можете отследить, как была рассчитана цена: исходя из ответа ericofsac, почему она оценивается в 12, а не в 10, и сколько опцион был снят во время продажи.

Вы также можете упростить реализацию интерфейсов записи от данных корзины до вашего заказа, но это еще один момент.

0 голосов
/ 09 марта 2010

Да, вы должны «объединить» товар с ценой опциона и поместить пакет с общей новой ценой в вашу корзину. Это, пожалуй, единственный способ, которым я могу придумать, если вы хотите использовать встроенные функции CI: общее количество тележек и т. Д.

...