Docs For Class Models_Cart

Models_Cart

Описание

Модель: Cart

Класс Models_Cart реализует логику взаимодействия с корзиной товаров.

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

Методы класса
bool addToCart() Добавляет товар в корзину.
int|null alreadyInCart() Сравнивает добавляемый товар с товарами в корзине, если в корзине есть такой же товар с id и его свойства совпадают с текущим, то увеличиваем счетчик иначе просто добавляем новую позицию продукта с выбранными параметрами.
float applyCoupon() Применяет скидку по купону
array applyDiscountSystem() Применяет скидку по системе скидок - накопительная или объемная
void clearCart() Очищает содержимое корзины.
array createProperty() Создает информацию для последующего сохранения свойства для товара положенного в корзину из входящего массива.
float customPrice() Функция возвращает минимальную цену с учетом скидки по купону, объемной и накопительно скидок или если находит пользовательскую функцию обработки цены, возвращает её результат.
bool delFromCart() Удаляет товар из корзины.
array getItemsCart() Возвращает данные о всех продуктах в корзине.
array getListItemId() Возвращает список id продуктов из корзины.
float getTotalSumm() Возвращает суммарную стоимость всех товаров в корзине.
bool isEmptyCart() Проверяет корзину на заполненность.
bool refreshCart() Обновляет содержимое корзины.
void repairCart() Проверяет целостность корзины.
Описание методов и примеры их использования

Метод

bool addToCart (int $id, [int $count = 1], [array $property = array('property' => '', 'propertyReal' => '')], [int $variantId = null])

Параметры

  • $id: id товара.
  • $count: количество.
  • $property: характеристики товара.
  • $variantId: вариант товара (если есть).

Описание

Добавляет товар в корзину.

Пример использования

  1.  $property array(
  2.      'property' => '<div class="prop-position"> <span class="prop-name">дополнительно: переходник</span> <span class="prop-val"> + 100 руб.</span></div>',
  3.      'propertyReal' => '<div class="prop-position"> <span class="prop-name">дополнительно: переходник</span> <span class="prop-val"> переходник#100#</span></div>'
  4.  );
  5.  $cart new Models_Cart();
  6.  $cart->addToCart(622$property1196);

Метод

int|null alreadyInCart (int $id, string $property, [int $variant = null])

Параметры

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

Описание

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

Пример использования

  1.      62,
  2.      '<div class="prop-position"> <span class="prop-name">дополнительно: переходник</span> <span class="prop-val"> + 100 руб.</span></div>',
  3.      1196
  4.  ));

Метод

float applyCoupon (string $code, string $price, [string $product = null])

Параметры

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

Описание

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

Пример использования

  1.  $model new Models_Product;
  2.  $product $model->getProduct(62);
  3.  $price Models_Cart::applyCoupon($_SESSION['couponCode']150$product);
  4.  echo $price;

Метод

array applyDiscountSystem (string $price, [array|null $product = null])

Параметры

  • $price: входящая стоимость.
  • $product: массив с товаром.

Описание

Применяет скидку по системе скидок - накопительная или объемная

Пример использования

  1.  $model new Models_Product;
  2.  $product $model->getProduct(62);
  3.  $result Models_Cart::applyDiscountSystem(150$product);
  4.  viewData($result);

Метод

void clearCart ()

Описание

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

Пример использования

Метод

array createProperty (array $arr)

Параметры

Описание

Создает информацию для последующего сохранения свойства для товара положенного в корзину из входящего массива.

Пример использования

  1.  $arr array(
  2.    'calcPrice' => 1,          // рассчет цены
  3.    'inCartProductId' => 102,  // id товара
  4.    'amount_input' => 4,       // количество товара
  5.    'variant' => 1240,         // id варианта товара
  6.    '46#0' => '+100 руб.'      // где 46 - id характеристики, 0 - id варианта характеристики, 100 - наценка
  7.  );
  8.  $result Models_Cart::createProperty($arr);
  9.  viewData($result);

Метод

float customPrice ($arFields $arFields)

Параметры

  • $arFields: массив данных, которые можно использовать для формирования своей цены.

Описание

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

Пример использования

  1.  $model new Models_Product;
  2.  $product $model->getProduct(62);
  3.  $arFields array(
  4.    'product' => $product,       // информация о продукте, включающая оригинальную цену.
  5.    'priceWithCoupon' => 100,    // цена с примененной скидкой по купону.
  6.    'priceWithDiscount' => 150   // цена с примененной накопительной или объемной скидкой.
  7.  );
  8.  $price Models_Cart::customPrice($arFields);
  9.  echo $price;

Метод

bool delFromCart (int $id, string $property, int $variantId)

Параметры

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

Описание

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

Пример использования

  1.      62,
  2.      '<div class="prop-position"> <span class="prop-name">дополнительно: переходник</span> <span class="prop-val"> + 100 руб.</span></div>',
  3.      1196
  4.  );

Метод

array getItemsCart ()

Описание

Возвращает данные о всех продуктах в корзине.

Пример использования

  1.  $cart new Models_Cart();
  2.  $result $cart->getItemsCart();
  3.  viewData($result);

Метод

array getListItemId ()

Описание

Возвращает список id продуктов из корзины.

Пример использования

  1.  $result Models_Cart::getListItemId();
  2.  viewData($result);

Метод

float getTotalSumm ()

Описание

Возвращает суммарную стоимость всех товаров в корзине.

Пример использования

  1.  $cart new Models_Cart();
  2.  echo $cart->getTotalSumm();

Метод

bool isEmptyCart ()

Описание

Проверяет корзину на заполненность.

Пример использования

  1.  $result Models_Cart::isEmptyCart();
  2.  var_dump($result);

Метод

bool refreshCart (array $arr)

Параметры

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

Описание

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

Пример использования

  1.  $arr Array()
  2.    => Array(
  3.      'id' => 102,
  4.      'count' => 1,
  5.      '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;',
  6.      'propertyReal' => '<div class="prop-position"> <span class="prop-name">дополнительно: переходник</span> <span class="prop-val"> переходник#100#</span></div>',
  7.      'propertySetId' => 2,
  8.      'variantId' => 1240,
  9.      'price' => 6399,
  10.      'priceWithDiscount' => 6399,
  11.    )
  12.  );

Метод

void repairCart ()

Описание

Проверяет целостность корзины.

Необходимо, когда был удален один из продуктов из БД, но у пользователя остался ID продукта

Пример использования