Models_Cart

Описание

Модель: Cart


Класс Models_Cart реализует логику взаимодействия с корзиной товаров.
- Добавляет товар в корзину;
- Получает список id продуктов из корзины;
- Расчитывает суммарную стоимость всех товаров в корзине;
- Очищает содержимое корзины.
- Обновляет содержимое корзины.
- Проверяет корзину на заполненность.
- Получает данные о всех продуктах в корзине.

Методы со знаком * содержат хуки

Методы класса

bool 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(622$property1196);
array createProperty() Создает информацию для последующего сохранения свойства для товара положенного в корзину из входящего массива.
$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() * Сравнивает добавляемый товар с товарами в корзине, если в корзине
есть такой же товар с 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() Удаляет товар из корзины.
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() * Возвращает суммарную стоимость всех товаров в корзине.
$cart = new Models_Cart();
echo 
$cart->getTotalSumm();
void clearCart() Очищает содержимое корзины.
Models_Cart::clearCart();
bool refreshCart() * Обновляет содержимое корзины.
$arr = Array()
=> Array(
    
'id' => 102,
    
'count' => 1,
    
'property' => '&amp;lt;div class=&amp;quot;prop-position&amp;quot;&amp;gt; &amp;lt;span class=&amp;quot;prop-name&amp;quot;&amp;gt;дополнительно: переходник&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;prop-val&amp;quot;&amp;gt; + 100 руб.&amp;lt;/span&amp;gt;&amp;lt;/div&amp;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() * Проверяет корзину на заполненность.
$result Models_Cart::isEmptyCart();
var_dump($result);
array getItemsCart() * Возвращает данные о всех продуктах в корзине.
$cart = new Models_Cart();
$result $cart->getItemsCart();
viewData($result);
void repairCart() Проверяет целостность корзины.
Необходимо, когда был удален один из продуктов из БД, но у пользователя остался ID продукта
Models_Cart::repairCart();
float 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() * Применяет скидку по купону
$model = new Models_Product;
$product $model->getProduct(62);
$price Models_Cart::applyCoupon($_SESSION['couponCode'], 150$product);
echo 
$price;
Описание методов и примеры их использования

Метод

bool addToCart (int $idint $count 1, array $property = Array, int $variantId)

Параметры

  • $id: товара.
  • $count: количество.
  • $property: характеристики товара.
  • $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(622$property1196);

Метод

array createProperty (array $arr)

Параметры

  • $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 $idstring $propertyint $variant)

Параметры

  • $id: товара.
  • $property: характеристки товара.
  • $variant: id варианта товара.

Результат работы метода можно изменить хуком: 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 $idstring $propertyint $variantId)

Параметры

  • $id: товара.
  • $property: характеристки товара.
  • $variantId: id варианта.

Описание

Удаляет товар из корзины.

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();

Метод

void clearCart ()

Описание

Очищает содержимое корзины.

Models_Cart::clearCart();

Метод

bool refreshCart (array $arr)

Параметры

  • $arr: массив продуктов в корзине.

Результат работы метода можно изменить хуком: Models_Cart_refreshCart

Описание

Обновляет содержимое корзины.

$arr = Array()
=> Array(
    
'id' => 102,
    
'count' => 1,
    
'property' => '&amp;lt;div class=&amp;quot;prop-position&amp;quot;&amp;gt; &amp;lt;span class=&amp;quot;prop-name&amp;quot;&amp;gt;дополнительно: переходник&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;prop-val&amp;quot;&amp;gt; + 100 руб.&amp;lt;/span&amp;gt;&amp;lt;/div&amp;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)

Параметры

  • $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 $codestring $price, array  $product)

Параметры

  • $code: код купона товара.
  • $price: входящая стоимость.
  • $product: информация о продукте.

Результат работы метода можно изменить хуком: Models_Cart_applyCoupon

Описание

Применяет скидку по купону

$model = new Models_Product;
$product $model->getProduct(62);
$price Models_Cart::applyCoupon($_SESSION['couponCode'], 150$product);
echo 
$price;