Models_Product

Описание

Модель: Product

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

  • Добавляет товар в базу данных;
  • Изменяет данные о товаре;
  • Удаляет товар из базы данных;
  • Получает информацию о запрашиваемом товаре;
  • Получает продукт по его URL;
  • Получает цену запрашиваемого товара по его id.

Методы класса
$array addMarginToProp() Формирует добавочную строку к названию характеристики,
bool|int addProduct() Добавляет товар в базу данных.
void calcPrice() Обновление состояния корзины.
bool cloneImagesProduct() Клонирует изображения продукта.
bool cloneProduct() Клонируем товар.
$iso convertToIso() Конвертирование стоимости товаров по заданному курсу.
string createPropertyForm() Создает форму пользовательских характеристик для товара.
type createRelatedForm() Возвращает HTML блок связанных товаров
void decreaseCountProduct() Обновляет остатки продукта, уменьшая их количество, при смене статуса заказа с "отменент" на любой другой.
bool deleteImageProduct() Удаляет все миниатюры и оригинал изображения товара из папки upload.
void deleteImagesFolder()
void deleteImagesProduct() Удаляет все картинки привязанные к продукту
void deleteImagesVariant() Создание дубля цены в заданном курсе.
bool deleteProduct() Удаляет товар из базы данных.
boolean fastUpdateProduct() Обновление заданного поля продукта.
boolean fastUpdateProductVariant() Обновляет поле в варианте и синхронизирует привязку первого варианта с продуктом.
string getBlocksVariantsToCatalog() Формирует массив блоков варинтов товаров на странице каталога.
string getBlockVariants() Формирует блок варинтов товара.
array getProduct() Получает информацию о запрашиваемом товаре по его ID.
array getProductByUrl() Получает продукт по его URL.
array getProductByUserFilter() Получает информацию о запрашиваемом товаре.
bool|float getProductPrice() Получает цену запрашиваемого товара по его id.
array getProductsCount() Возвращает общее количество продуктов каталога.
$array getVariants() Возвращает набор вариантов товара.
void imagesConctruction() Создает массивы данных для картинок товара, возвращает три массива со ссылками, заголовками и альт, текстами.
boolean importUpdateProductVariant() Аналогичная fastUpdateProductVariant функция, но с поправками для процесса импорта вариантов.
void increaseCountProduct() Обновляет остатки продукта, увеличивая их на заданное количество
void movingProductImage() Копирует изображения товара в новую структуру хранения.
$array noPrintProperty() Возвращает массив id характеристик товара, которые ненужно выводить в карточке.
$array parseMarginToProp() Отделяет название характеристики от цены название_пункта#стоимость#.
void prepareImageName()
array preProcessUserProperty() Преобразует массив характеристик в удобный для работы вид.
boolean saveUserProperty() Сохраняет пользовательские характеристики для товара.
bool saveVariants() Сохраняет варианты товара.
void updatePriceCourse() Создание дубля цены в заданном курсе.
bool updateProduct() Изменяет данные о товаре.
Описание методов и примеры их использования
public $array addMarginToProp ($valueArr $margin, [ $rate = 1], [ $currency = false])
  • $valueArr $margin: - массив с наценкой

Формирует добавочную строку к названию характеристики,

в зависимости от наличия наценки и стоимости. *

public bool|int addProduct (array $array, [ $clone = false])
  • array $array: массив с данными о товаре.

Добавляет товар в базу данных.

public bool cloneImagesProduct ([array $imagesArray = array()], [ $oldId = 0], [ $newId = 0])
  • array $imagesArray: - массив url изображений, которые надо .

Клонирует изображения продукта.

public bool cloneProduct (int $id)
  • int $id: id клонируемого товара.

Клонируем товар.

public string createPropertyForm ([int $param = array( 'id' => null, 'maxCount' => null, 'productUserFields' => null, 'action' => "/catalog", 'method' => "POST", 'ajax' => true, 'blockedProp' => array(),'noneAmount'=>false,'titleBtn'=>"В корзину",'blockVariants'=>'','classForButton'=>'addToCart buy-product buy','noneButton'=>false,'addHtml'=>'','printStrProp'=>null,'printCompareButton'=>null,'buyButton'=>'','currency_iso'=>'','productData'=>null,)])
  • int $param: - массив параметров.

Создает форму пользовательских характеристик для товара.

В качестве входящего параметра получает массив:

  1.  $param array(
  2.  'id' => null// id товара.
  3.  'maxCount' => null// максимальное количество товара на складе.
  4.  'productUserFields' => null// массив пользовательских полей для данного продукта.
  5.  'action' => "/catalog"// ссылка для метода формы.
  6.  'method' => "POST"// тип отправки данных на сервер.
  7.  'ajax' => true// использовать ajax для пересчета стоимости товаров.
  8.  'blockedProp' => array()// массив из ID свойств, которые ненужно выводить в форме.
  9.  'noneAmount' => false// не выводить  input для количества.
  10.  'titleBtn' => "В корзину"// название кнопки.
  11.  'blockVariants' => ''// блок вариантов.
  12.  'classForButton' => 'addToCart buy-product buy'// классы для кнопки.
  13.  'noneButton' => false// не выводить кнопку отправки.
  14.  'addHtml' => '' // добавить HTML в содержимое формы.
  15.  'currency_iso' => ''// обозначение валюты в которой сохранен товар
  16.  )

public void decreaseCountProduct (type $id, type $code, type $count)
  • type $id: - Номер продукта.
  • type $count: - Прибавляемое значение к остатку.
  • type $code: - Артикул.

Обновляет остатки продукта, уменьшая их количество, при смене статуса заказа с "отменент" на любой другой.

public bool deleteProduct (int $id)
  • int $id: id удаляемого товара

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

public boolean fastUpdateProduct (type $id, type $array)
  • type $id: - id продукта.
  • type $array: - параметры для обновления.

Обновление заданного поля продукта.

public boolean fastUpdateProductVariant (type $id, type $array, type $product_id)
  • type $id: - id варианта.
  • type $array: - ассоциативный массив поле=>значение.
  • type $product_id: - id продукта.

Обновляет поле в варианте и синхронизирует привязку первого варианта с продуктом.

public string getBlocksVariantsToCatalog ($array $array, [$returnArray $returnArray = false])
  • $array $array: - массив id товаров
  • $returnArray $returnArray: - если true то вернет просто массив без html блоков

Формирует массив блоков варинтов товаров на странице каталога.

Метод создан для сокращения количества запросов к БД.

public string getBlockVariants ($id $id)
  • $id $id: - id товара

Формирует блок варинтов товара.

public array getProduct (int $id)
  • int $id: id запрашиваемого товара.

Получает информацию о запрашиваемом товаре по его ID.

public array getProductByUrl (string $url, [int $catId = false])
  • string $url: запрашиваемого товара.
  • int $catId: id-категории, т.к. в разных категориях могут быть одинаковые url.

Получает продукт по его URL.

public bool|float getProductPrice (int $id)
  • int $id: id изменяемого товара.

Получает цену запрашиваемого товара по его id.

public array getProductsCount (int $id)
  • int $id: id запрашиваемого товара.

Возвращает общее количество продуктов каталога.

public $array getVariants ($id $id, [ $title_variants = false])
  • $id $id: - id продукта для поиска его вариантов

Возвращает набор вариантов товара.

public void imagesConctruction (string $imageUrl, string $imageTitle, string $imageAlt, [ $id = 0])
  • string $imageUrl: строка с разделителями | мезжду ссылок
  • string $imageTitle: строка с разделителями | мезжду заголовков
  • string $imageAlt: строка с разделителями | мезжду тестов

Создает массивы данных для картинок товара, возвращает три массива со ссылками, заголовками и альт, текстами.

public boolean importUpdateProductVariant (type $id, type $array, type $product_id)
  • type $id: - id варианта.
  • type $array: - массив поле=значение.
  • type $product_id: - id продукта.

Аналогичная fastUpdateProductVariant функция, но с поправками для процесса импорта вариантов.

public void increaseCountProduct (type $id, type $code, type $count)
  • type $id: - номер продукта.
  • type $count: - прибавляемое значение к остатку.
  • type $code: - артикул.

Обновляет остатки продукта, увеличивая их на заданное количество

public void movingProductImage (array $images, int $productId, [string $path = 'uploads'], [bool $removeOld = true])
  • array $images: - массив изображений
  • int $productId: - id товара
  • string $path: - папка в которой лежат исходные изображения
  • bool $removeOld: - флаг удаления изображений из папки $path после копирования в новое место

Копирует изображения товара в новую структуру хранения.

public $array parseMarginToProp ($value $value)
  • $value $value: - строка которую надо распарсить

Отделяет название характеристики от цены название_пункта#стоимость#.

Пример входящей строки: Красный#300#

public boolean saveUserProperty (array $userProperty, int $id, [ $type = 'select'])
  • int $id: - id товара.
  • array $userProperty: набор характеристик.

Сохраняет пользовательские характеристики для товара.

public bool saveVariants ([array $variants = array()], int $id)
  • int $id: id товара
  • array $variants: набор вариантов

Сохраняет варианты товара.

public bool updateProduct (array $array, int $id)
  • array $array: массив с данными о товаре.
  • int $id: id изменяемого товара.

Изменяет данные о товаре.