Модель: Cart
Класс Models_Cart реализует логику взаимодействия с корзиной товаров.
- Добавляет товар в корзину;
- Получает список id продуктов из корзины;
- Расчитывает суммарную стоимость всех товаров в корзине;
- Очищает содержимое корзины.
- Обновляет содержимое корзины.
- Проверяет корзину на заполненность.
- Получает данные о всех продуктах в корзине.
Методы со знаком * содержат хуки
bool | addToCart() * |
Добавляет товар в корзину.
$property = array( |
array | createProperty() |
Создает информацию для последующего сохранения свойства для товара положенного в корзину из входящего массива.
$arr = array( |
int|null | alreadyInCart() * |
Сравнивает добавляемый товар с товарами в корзине, если в корзине есть такой же товар с id и его свойства совпадают с текущим, то увеличиваем счетчик иначе просто добавляем новую позицию продукта с выбранными параметрами.
var_dump(Models_Cart::alreadyInCart( |
bool | delFromCart() |
Удаляет товар из корзины.
Models_Cart::delFromCart( |
array | getListItemId() |
Возвращает список id продуктов из корзины.
$result = Models_Cart::getListItemId(); |
float | getTotalSumm() * |
Возвращает суммарную стоимость всех товаров в корзине.
$cart = new Models_Cart(); |
void | clearCart() |
Очищает содержимое корзины.
Models_Cart::clearCart();
|
bool | refreshCart() * |
Обновляет содержимое корзины.
$arr = Array() |
bool | isEmptyCart() * |
Проверяет корзину на заполненность.
$result = Models_Cart::isEmptyCart(); |
array | getItemsCart() * |
Возвращает данные о всех продуктах в корзине.
$cart = new Models_Cart(); |
void | repairCart() |
Проверяет целостность корзины. Необходимо, когда был удален один из продуктов из БД, но у пользователя остался ID продукта
Models_Cart::repairCart();
|
float | customPrice() * |
Функция возвращает минимальную цену с учетом скидки по купону, объемной и накопительно скидок или если находит пользовательскую функцию обработки цены, возвращает её результат.
$model = new Models_Product; |
float | applyCoupon() * |
Применяет скидку по купону
$model = new Models_Product; |
Метод
bool addToCart (int $id, int $count = 1, array $property = Array, int $variantId)
Параметры
Результат работы метода можно изменить хуком: Models_Cart_addToCart
Описание
Добавляет товар в корзину.
$property = array(
'property' => '<div class="prop-position"> <span class="prop-name">дополнительно: переходник</span> <span class="prop-val"> + 100 руб.</span></div>',
'propertyReal' => '<div class="prop-position"> <span class="prop-name">дополнительно: переходник</span> <span class="prop-val"> переходник#100#</span></div>'
);
$cart = new Models_Cart();
$cart->addToCart(62, 2, $property, 1196);
Метод
array createProperty (array $arr)
Параметры
Описание
Создает информацию для последующего сохранения свойства для товара положенного в корзину из входящего массива.
$arr = array(
'calcPrice' => 1, // рассчет цены
'inCartProductId' => 102, // id товара
'amount_input' => 4, // количество товара
'variant' => 1240, // id варианта товара
'46#0' => '+100 руб.' // где 46 - id характеристики, 0 - id варианта характеристики, 100 - наценка
);
$result = Models_Cart::createProperty($arr);
viewData($result);
Метод
int|null alreadyInCart (int $id, string $property, int $variant)
Параметры
Результат работы метода можно изменить хуком: Models_Cart_alreadyInCart
Описание
Сравнивает добавляемый товар с товарами в корзине, если в корзине
есть такой же товар с id и его свойства совпадают с
текущим, то увеличиваем счетчик иначе просто добавляем новую
позицию продукта с выбранными параметрами.
var_dump(Models_Cart::alreadyInCart(
62,
'<div class="prop-position"> <span class="prop-name">дополнительно: переходник</span> <span class="prop-val"> + 100 руб.</span></div>',
1196
));
Метод
bool delFromCart (int $id, string $property, int $variantId)
Параметры
Описание
Удаляет товар из корзины.
Models_Cart::delFromCart(
62,
'<div class="prop-position"> <span class="prop-name">дополнительно: переходник</span> <span class="prop-val"> + 100 руб.</span></div>',
1196
);
Метод
array getListItemId ()
Описание
Возвращает список id продуктов из корзины.
$result = Models_Cart::getListItemId();
viewData($result);
Метод
float getTotalSumm ()
Результат работы метода можно изменить хуком: Models_Cart_getTotalSumm
Описание
Возвращает суммарную стоимость всех товаров в корзине.
$cart = new Models_Cart();
echo $cart->getTotalSumm();
Метод
bool refreshCart (array $arr)
Параметры
Результат работы метода можно изменить хуком: Models_Cart_refreshCart
Описание
Обновляет содержимое корзины.
$arr = Array()
0 => Array(
'id' => 102,
'count' => 1,
'property' => '&lt;div class=&quot;prop-position&quot;&gt; &lt;span class=&quot;prop-name&quot;&gt;дополнительно: переходник&lt;/span&gt; &lt;span class=&quot;prop-val&quot;&gt; + 100 руб.&lt;/span&gt;&lt;/div&gt;',
'propertyReal' => '<div class="prop-position"> <span class="prop-name">дополнительно: переходник</span> <span class="prop-val"> переходник#100#</span></div>',
'propertySetId' => 2,
'variantId' => 1240,
'price' => 6399,
'priceWithDiscount' => 6399,
)
);
Метод
bool isEmptyCart ()
Результат работы метода можно изменить хуком: Models_Cart_isEmptyCart
Описание
Проверяет корзину на заполненность.
$result = Models_Cart::isEmptyCart();
var_dump($result);
Метод
array getItemsCart ()
Результат работы метода можно изменить хуком: Models_Cart_getItemsCart
Описание
Возвращает данные о всех продуктах в корзине.
$cart = new Models_Cart();
$result = $cart->getItemsCart();
viewData($result);
Метод
void repairCart ()
Описание
Проверяет целостность корзины.
Необходимо, когда был удален один из продуктов из БД, но у пользователя остался ID продукта
Models_Cart::repairCart();
Метод
float customPrice ($arFields)
Параметры
Результат работы метода можно изменить хуком: Models_Cart_customPrice
Описание
Функция возвращает минимальную цену с учетом скидки по купону, объемной и накопительно скидок
или если находит пользовательскую функцию обработки цены, возвращает её результат.
$model = new Models_Product;
$product = $model->getProduct(62);
$arFields = array(
'product' => $product, // информация о продукте, включающая оригинальную цену.
'priceWithCoupon' => 100, // цена с примененной скидкой по купону.
'priceWithDiscount' => 150 // цена с примененной накопительной или объемной скидкой.
);
$price = Models_Cart::customPrice($arFields);
echo $price;
Метод
float applyCoupon (string $code, string $price, array $product)
Параметры
Результат работы метода можно изменить хуком: Models_Cart_applyCoupon
Описание
Применяет скидку по купону
$model = new Models_Product;
$product = $model->getProduct(62);
$price = Models_Cart::applyCoupon($_SESSION['couponCode'], 150, $product);
echo $price;