Models_Product

Описание

Модель: Product


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

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

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

int|bool addProduct() * Добавляет товар в базу данных.
$array = array(
    
'title' => 'title'// название товара
    
'url' => 'link'// последняя часть ссылки на товар
    
'code' => 'CN230'// артикул товара
    
'price' => 100// цена товара
    
'old_price' => 200// старая цена товара
    
'image_url' => 1434653074061713.jpg// последняя часть ссылки на изображение товара
    
'image_title' => ''// title изображения товара
    
'image_alt' => ''// alt изображения товара
    
'count' => 77// остаток товара
    
'weight' => 5// вес товара
    
'cat_id' => 4// ID основной категории товара
    
'inside_cat' => '1,2'// дополнительные категории товаров
    
'description' => 'descr'// описание товара
    
'short_description' => 'short descr'// краткое описание товара
    
'meta_title' => 'title'// seo название товара
    
'meta_keywords' => 'title купить, CN230, title'// seo ключевые слова
    
'meta_desc' => 'meta descr'// seo описание товара
    
'currency_iso' => 'RUR'// код валюты товара
    
'recommend' => 0// выводить товар в блоке рекомендуемых
    
'activity' => 1// выводить товар
    
'unit' => 'шт.'// единица измерения товара (если null, то используется единица измерения основной категории товара)
    
'new' => 0// выводить товар в блоке новинок
    
'userProperty' => Array, // массив с характеристиками товара
    
'related' => 'В-500-1'// артикулы связанных товаров
    
'variants' => Array, // массив с вариантами товаров
    
'related_cat' => null// ID связанных категорий
    
'lang' => 'default'// язык для сохранения
    
'landingTemplate' => 'noLandingTemplate'// шаблон для лэндинга товара
    
'ytp' => ''// строка с торговым предложением для лэндинга
    
'landingImage' => 'no-img.jpg'// изображение для лэндинга
    
'storage' => 'all' // склад товара
);
$model = new Models_Product();
$id $model->addProduct($product);
echo 
$id;
bool updateProduct() * Изменяет данные о товаре.
$array = array(
    
'id' => 23// ID товара
    
'title' => 'title'// название товара
    
'url' => 'link'// последняя часть ссылки на товар
    
'code' => 'CN230'// артикул товара
    
'price' => 100// цена товара
    
'old_price' => 200// старая цена товара
    
'image_url' => 1434653074061713.jpg// последняя часть ссылки на изображение товара
    
'image_title' => ''// title изображения товара
    
'image_alt' => ''// alt изображения товара
    
'count' => 77// остаток товара
    
'weight' => 5// вес товара
    
'cat_id' => 4// ID основной категории товара
    
'inside_cat' => '1,2'// дополнительные категории товаров
    
'description' => 'descr'// описание товара
    
'short_description' => 'short descr'// краткое описание товара
    
'meta_title' => 'title'// seo название товара
    
'meta_keywords' => 'title купить, CN230, title'// seo ключевые слова
    
'meta_desc' => 'meta descr'// seo описание товара
    
'currency_iso' => 'RUR'// код валюты товара
    
'recommend' => 0// выводить товар в блоке рекомендуемых
    
'activity' => 1// выводить товар
    
'unit' => 'шт.'// единица измерения товара (если null, то используется единица измерения основной категории товара)
    
'new' => 0// выводить товар в блоке новинок
    
'userProperty' => Array, // массив с характеристиками товара
    
'related' => 'В-500-1'// артикулы связанных товаров
    
'variants' => Array, // массив с вариантами товаров
    
'related_cat' => null// ID связанных категорий
    
'lang' => 'default'// язык для сохранения
    
'landingTemplate' => 'noLandingTemplate'// шаблон для лэндинга товара
    
'ytp' => ''// строка с торговым предложением для лэндинга
    
'landingImage' => 'no-img.jpg'// изображение для лэндинга
    
'storage' => 'all' // склад товара
);
$model = new Models_Product();
$model->updateProduct($array);
bool fastUpdateProductVariant() Обновляет поле в варианте и синхронизирует привязку первого варианта с продуктом.
$array = array(
    
'price' => 200// цена
    
'count' => 50 // количество
);
$model = new Models_Product();
$model->fastUpdateProductVariant(5$array2);
bool importUpdateProductVariant() Аналогичная fastUpdateProductVariant функция, но с поправками для
процесса импорта вариантов.
$model = new Models_Product();
$model->importUpdateProductVariant(5$array2);
bool fastUpdateProduct() * Обновление заданного поля продукта.
$array = array(
    
'price' => 200// цена
    
'sort' => 5// номер сортировки
    
'count' => 50 // количество
);
$model = new Models_Product();
$model->fastUpdateProduct(5$array);
bool saveVariants() Сохраняет варианты товара.
$variants = Array(
    
=> Array(
        
'color' => 19// id цвета варианта
        
'size' => 11// id размера варианта
        
'title_variant' => '22 Голубой'// название
        
'code' => 'SKU241'// артикул
        
'price' => 2599// цена
        
'old_price' => 3000// старая цена
        
'weight' => 1// вес
        
'count' => 50// количество
        
'activity' => 1// активность
        
'id' => 1249// id варианта
        
'currency_iso' => 'RUR'// код валюты
        
'image' => '13140250299.jpg' // название картинки варианта
    
)
);
$model = new Models_Product();
$model->saveVariants($variants51);
array cloneProduct() * Клонирует товар.
$productId 25;
$model = new Models_Product;
$model->cloneProduct($productId);
bool cloneImagesProduct() Клонирует изображения продукта.
$imagesArray = array(
    
'40Untitled-1.jpg',
    
'41Untitled-1.jpg',
    
'42Untitled-1.jpg'
);
$oldId 40;
$newId 130;
$model = new Models_Product;
$model->deleteProduct($imagesArray$oldId$newId);
bool deleteProduct() * Удаляет товар, его свойства, варианты, локализации, оптовые цены из базы данных.
$productId 25;
$model = new Models_Product;
$model->deleteProduct($productId);
void deleteImagesFolder() Удаляет папки из структуры папок изображений относящиеся к заданному продукту.
$productId 25;
$model = new Models_Product;
$model->deleteImagesFolder($productId);
void deleteImagesProduct() Удаляет все картинки привязанные к продукту.
$array = array(
    
'product/100/105/120.jpg',
    
'product/100/105/122.jpg',
    
'product/100/105/121.jpg'
);
$model = new Models_Product();
$model->deleteImagesProduct($array);
array getProductByUserFilter() Получает информацию о запрашиваемом товаре.
$where '`cat_id` IN (5,6)';
$model = new Models_Product;
$result $model->deleteImagesFolder($where);
viewData($result);
array getProduct() * Получает информацию о запрашиваемом товаре по его ID.
$productId 25;
$model = new Models_Product;
$product $model->getProduct($productId);
viewData($product);
array imagesConctruction() * Создает массивы данных для картинок товара, возвращает три массива со ссылками, заголовками и альт, текстами.
$model = new Models_Product();
$imageUrl '120.jpg|121.jpg';
$imageTitle 'Каритинка товара';
$imageAlt 'Альтернативная подпись картинки';
$res $model->imagesConctruction($imageUrl$imageTitle$imageAlt);
viewData($res);
void increaseCountProduct() Обновляет остатки продукта, увеличивая их на заданное количество.
Models_Product::increaseCountProduct(37'SKU348'2);
void decreaseCountProduct() Обновляет остатки продукта, уменьшая их количество,
при смене статуса заказа с "отменен" на любой другой.
Models_Product::decreaseCountProduct(37'SKU348'2);
int getProductsCount() Возвращает общее количество продуктов каталога.
$result Models_Product::getProductsCount();
viewData($result);
array getProductByUrl() * Получает продукт по его URL.
$url 'nike-air-versitile_102';
$result Models_Product::getProductByUrl($url);
viewData($result);
bool|float getProductPrice() Получает цену запрашиваемого товара по его id.
$result Models_Product::getProductPrice(5);
viewData($result);
string createPropertyForm() * Создает форму пользовательских характеристик для товара.
В качестве входящего параметра получает массив:
$param = array(
    
'id' => null// id товара.
    
'maxCount' => null// максимальное количество товара на складе.
    
'productUserFields' => null// массив пользовательских полей для данного продукта.
    
'action' => "/catalog"// ссылка для метода формы.
    
'method' => "POST"// тип отправки данных на сервер.
    
'ajax' => true// использовать ajax для пересчета стоимости товаров.
    
'blockedProp' => array(), // массив из ID свойств, которые не нужно выводить в форме.
    
'noneAmount' => false// не выводить  input для количества.
    
'titleBtn' => "В корзину"// название кнопки.
    
'blockVariants' => ''// блок вариантов.
    
'classForButton' => 'addToCart buy-product buy'// классы для кнопки.
    
'noneButton' => false// не выводить кнопку отправки.
    
'addHtml' => '' // добавить HTML в содержимое формы.
    
'currency_iso' => ''// обозначение валюты в которой сохранен товар
    
'printStrProp' => 'true'// выводить строковые характеристики
    
'printCompareButton' => 'true'// выводить кнопку сравнения
    
'buyButton' => 'true'// показывать кнопку 'купить' в миникарточках (если false - показывается кнопка 'подробнее')
    
'productData' => 'Array'// массив с данными о товаре
    
'showCount' => 'true' // показывать блок с количеством
);
$model = new Models_Product;
$result $model->getProduct($param);
echo 
$result;
string|array getBlockVariants() Формирует блок вариантов товара.
$model = new Models_Product;
$result $model->getBlockVariants(5);
echo 
$result;
string|array getBlocksVariantsToCatalog() Формирует массив блоков вариантов товаров на странице каталога.
Метод создан для сокращения количества запросов к БД.
$model = new Models_Product;
$result $model->getBlocksVariantsToCatalog(array(2,3,4));
echo 
$result;
string addMarginToProp() Формирует добавочную строку к названию характеристики,
в зависимости от наличия наценки и стоимости.
$model = new Models_Product;
$result $model->addMarginToProp(250);
echo 
$result;
array parseMarginToProp() Отделяет название характеристики от цены название_пункта#стоимость#.
Пример входящей строки: "Красный#300#"
$model = new Models_Product;
$result $model->parseMarginToProp('Красный#300#');
echo 
$result;
void calcPrice() Обновление состояния корзины.
Используеться для пересчета корзины и обновления цены в карточке товара ajax'ом
$model = new Models_Product;
$model->calcPrice();
void getVariantImages() Возвращает оригинал и все варианты миниатюр изображений варианта
Используется Ajax'ом при изменении варианта в карточке и миникарточке товара
array getVariants() * Возвращает набор вариантов товара.
$productId 25;
$model = new Models_Product;
$variants $model->getVariants($productId);
viewData($variants);
array noPrintProperty() Возвращает массив id характеристик товара, которые не нужно выводить в карточке.
$result Models_Product::noPrintProperty($productId);
viewData($result);
string createRelatedForm() * Возвращает HTML блок связанных товаров.
$args = array(
    
'product' => 'CN182,В-500-1'// артикулы связанных товаров
    
'category' => '2,4' // ID связанных категорий
);
$model = new Models_Product;
$result $model->createRelatedForm($args);
echo 
$result;
void convertToIso() Конвертирование стоимости товаров по заданному курсу.
$model = new Models_Product;
$model->convertToIso('USD', array(234));
void updatePriceCourse() Обновления цены товаров в соответствии с курсом валюты.
$model = new Models_Product;
$model->updatePriceCourse('USD', array(234));
bool deleteImagesVariant() Удаляет картинки вариантов товара.
$model = new Models_Product;
$model->deleteImagesVariant(4);
array prepareImageName() Подготавливает названия изображений товара.
$model = new Models_Product;
$res $model->prepareImageName($product);
viewData($res);
void movingProductImage() Копирует изображения товара в новую структуру хранения.
Описание методов и примеры их использования

Метод

int|bool addProduct (array $arraybool $clone false)

Параметры

  • $array: массив с данными о товаре.
  • $clone: происходит ли клонирование или обычное добавление товара

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

Описание

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

$array = array(
    
'title' => 'title'// название товара
    
'url' => 'link'// последняя часть ссылки на товар
    
'code' => 'CN230'// артикул товара
    
'price' => 100// цена товара
    
'old_price' => 200// старая цена товара
    
'image_url' => 1434653074061713.jpg// последняя часть ссылки на изображение товара
    
'image_title' => ''// title изображения товара
    
'image_alt' => ''// alt изображения товара
    
'count' => 77// остаток товара
    
'weight' => 5// вес товара
    
'cat_id' => 4// ID основной категории товара
    
'inside_cat' => '1,2'// дополнительные категории товаров
    
'description' => 'descr'// описание товара
    
'short_description' => 'short descr'// краткое описание товара
    
'meta_title' => 'title'// seo название товара
    
'meta_keywords' => 'title купить, CN230, title'// seo ключевые слова
    
'meta_desc' => 'meta descr'// seo описание товара
    
'currency_iso' => 'RUR'// код валюты товара
    
'recommend' => 0// выводить товар в блоке рекомендуемых
    
'activity' => 1// выводить товар
    
'unit' => 'шт.'// единица измерения товара (если null, то используется единица измерения основной категории товара)
    
'new' => 0// выводить товар в блоке новинок
    
'userProperty' => Array, // массив с характеристиками товара
    
'related' => 'В-500-1'// артикулы связанных товаров
    
'variants' => Array, // массив с вариантами товаров
    
'related_cat' => null// ID связанных категорий
    
'lang' => 'default'// язык для сохранения
    
'landingTemplate' => 'noLandingTemplate'// шаблон для лэндинга товара
    
'ytp' => ''// строка с торговым предложением для лэндинга
    
'landingImage' => 'no-img.jpg'// изображение для лэндинга
    
'storage' => 'all' // склад товара
);
$model = new Models_Product();
$id $model->addProduct($product);
echo 
$id;

Метод

bool updateProduct (array $array)

Параметры

  • $array: массив с данными о товаре.

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

Описание

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

$array = array(
    
'id' => 23// ID товара
    
'title' => 'title'// название товара
    
'url' => 'link'// последняя часть ссылки на товар
    
'code' => 'CN230'// артикул товара
    
'price' => 100// цена товара
    
'old_price' => 200// старая цена товара
    
'image_url' => 1434653074061713.jpg// последняя часть ссылки на изображение товара
    
'image_title' => ''// title изображения товара
    
'image_alt' => ''// alt изображения товара
    
'count' => 77// остаток товара
    
'weight' => 5// вес товара
    
'cat_id' => 4// ID основной категории товара
    
'inside_cat' => '1,2'// дополнительные категории товаров
    
'description' => 'descr'// описание товара
    
'short_description' => 'short descr'// краткое описание товара
    
'meta_title' => 'title'// seo название товара
    
'meta_keywords' => 'title купить, CN230, title'// seo ключевые слова
    
'meta_desc' => 'meta descr'// seo описание товара
    
'currency_iso' => 'RUR'// код валюты товара
    
'recommend' => 0// выводить товар в блоке рекомендуемых
    
'activity' => 1// выводить товар
    
'unit' => 'шт.'// единица измерения товара (если null, то используется единица измерения основной категории товара)
    
'new' => 0// выводить товар в блоке новинок
    
'userProperty' => Array, // массив с характеристиками товара
    
'related' => 'В-500-1'// артикулы связанных товаров
    
'variants' => Array, // массив с вариантами товаров
    
'related_cat' => null// ID связанных категорий
    
'lang' => 'default'// язык для сохранения
    
'landingTemplate' => 'noLandingTemplate'// шаблон для лэндинга товара
    
'ytp' => ''// строка с торговым предложением для лэндинга
    
'landingImage' => 'no-img.jpg'// изображение для лэндинга
    
'storage' => 'all' // склад товара
);
$model = new Models_Product();
$model->updateProduct($array);

Метод

bool fastUpdateProductVariant (int $id, array $arrayint $product_id)

Параметры

  • $id: варианта.
  • $array: ассоциативный массив поле=>значение.
  • $product_id: id продукта.

Описание

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

$array = array(
    
'price' => 200// цена
    
'count' => 50 // количество
);
$model = new Models_Product();
$model->fastUpdateProductVariant(5$array2);

Метод

bool importUpdateProductVariant (int $id, array $arrayint $product_id)

Параметры

  • $id: варианта.
  • $array: массив поле = значение.
  • $product_id: id продукта.

Описание

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

$model = new Models_Product();
$model->importUpdateProductVariant(5$array2);

Метод

bool fastUpdateProduct (int $id, array $array)

Параметры

  • $id: - продукта.
  • $array: - параметры для обновления.

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

Описание

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

$array = array(
    
'price' => 200// цена
    
'sort' => 5// номер сортировки
    
'count' => 50 // количество
);
$model = new Models_Product();
$model->fastUpdateProduct(5$array);

Метод

bool saveVariants (array $variantsint $id)

Параметры

  • $variants: набор вариантов
  • $id: товара

Описание

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

$variants = Array(
    
=> Array(
        
'color' => 19// id цвета варианта
        
'size' => 11// id размера варианта
        
'title_variant' => '22 Голубой'// название
        
'code' => 'SKU241'// артикул
        
'price' => 2599// цена
        
'old_price' => 3000// старая цена
        
'weight' => 1// вес
        
'count' => 50// количество
        
'activity' => 1// активность
        
'id' => 1249// id варианта
        
'currency_iso' => 'RUR'// код валюты
        
'image' => '13140250299.jpg' // название картинки варианта
    
)
);
$model = new Models_Product();
$model->saveVariants($variants51);

Метод

array cloneProduct (int $id)

Параметры

  • $id: клонируемого товара.

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

Описание

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

$productId 25;
$model = new Models_Product;
$model->cloneProduct($productId);

Метод

bool cloneImagesProduct (array $imagesArrayint $oldIdint $newId)

Параметры

  • $imagesArray: массив url изображений, которые надо клонировать.
  • $oldId: старый ID товара.
  • $newId: новый ID товара.

Описание

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

$imagesArray = array(
    
'40Untitled-1.jpg',
    
'41Untitled-1.jpg',
    
'42Untitled-1.jpg'
);
$oldId 40;
$newId 130;
$model = new Models_Product;
$model->deleteProduct($imagesArray$oldId$newId);

Метод

bool deleteProduct (int $id)

Параметры

  • $id: удаляемого товара

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

Описание

Удаляет товар, его свойства, варианты, локализации, оптовые цены из базы данных.

$productId 25;
$model = new Models_Product;
$model->deleteProduct($productId);

Метод

deleteImagesFolder (int $id)

Параметры

  • $id: товара.

Описание

Удаляет папки из структуры папок изображений относящиеся к заданному продукту.

$productId 25;
$model = new Models_Product;
$model->deleteImagesFolder($productId);

Метод

deleteImagesProduct (array $arrayImagesint $productId false)

Параметры

  • $arrayImages: массив с названиями картинок
  • $productId: ID товара

Описание

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

$array = array(
    
'product/100/105/120.jpg',
    
'product/100/105/122.jpg',
    
'product/100/105/121.jpg'
);
$model = new Models_Product();
$model->deleteImagesProduct($array);

Метод

array getProductByUserFilter (string $where$joinVariant false)

Параметры

  • $where: необязательный параметр, формирующий условия поиска, например: id = 1

Описание

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

$where '`cat_id` IN (5,6)';
$model = new Models_Product;
$result $model->deleteImagesFolder($where);
viewData($result);

Метод

array getProduct (int $idbool $getProps truebool $disableCashe false)

Параметры

  • $id: запрашиваемого товара.
  • $getProps: возвращать ли характеристики.
  • $disableCashe: отключить ли кэш.

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

Описание

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

$productId 25;
$model = new Models_Product;
$product $model->getProduct($productId);
viewData($product);

Метод

array imagesConctruction (string $imageUrlstring $imageTitlestring $imageAltstring $id)

Параметры

  • $imageUrl: строка с разделителями | между ссылок.
  • $imageTitle: строка с разделителями | между заголовков.
  • $imageAlt: строка с разделителями | между тестов.
  • $id: ID товара.

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

Описание

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

$model = new Models_Product();
$imageUrl '120.jpg|121.jpg';
$imageTitle 'Каритинка товара';
$imageAlt 'Альтернативная подпись картинки';
$res $model->imagesConctruction($imageUrl$imageTitle$imageAlt);
viewData($res);

Метод

increaseCountProduct (int $idstring $codeint $count)

Параметры

  • $id: номер продукта.
  • $code: артикул.
  • $count: прибавляемое значение к остатку.

Описание

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

Models_Product::increaseCountProduct(37'SKU348'2);

Метод

decreaseCountProduct (int $idstring $codeint $count)

Параметры

  • $id: ID продукта.
  • $code: Артикул.
  • $count: Прибавляемое значение к остатку.

Описание

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

Models_Product::decreaseCountProduct(37'SKU348'2);

Метод

int getProductsCount ($where)

Описание

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

$result Models_Product::getProductsCount();
viewData($result);

Метод

array getProductByUrl (string $urlint $catId false)

Параметры

  • $url: запрашиваемого товара.
  • $catId: id-категории, т.к. в разных категориях могут быть одинаковые url.

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

Описание

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

$url 'nike-air-versitile_102';
$result Models_Product::getProductByUrl($url);
viewData($result);

Метод

bool|float getProductPrice (int $id)

Параметры

  • $id: изменяемого товара.

Описание

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

$result Models_Product::getProductPrice(5);
viewData($result);

Метод

string createPropertyForm (array $param = Array, string $adminOrder nope$returnArray false)

Параметры

  • $param: массив параметров.
  • $adminOrder: заказ для админки или нет (по умолчанию - нет).

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

Описание

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

$param = array(
    
'id' => null// id товара.
    
'maxCount' => null// максимальное количество товара на складе.
    
'productUserFields' => null// массив пользовательских полей для данного продукта.
    
'action' => "/catalog"// ссылка для метода формы.
    
'method' => "POST"// тип отправки данных на сервер.
    
'ajax' => true// использовать ajax для пересчета стоимости товаров.
    
'blockedProp' => array(), // массив из ID свойств, которые не нужно выводить в форме.
    
'noneAmount' => false// не выводить  input для количества.
    
'titleBtn' => "В корзину"// название кнопки.
    
'blockVariants' => ''// блок вариантов.
    
'classForButton' => 'addToCart buy-product buy'// классы для кнопки.
    
'noneButton' => false// не выводить кнопку отправки.
    
'addHtml' => '' // добавить HTML в содержимое формы.
    
'currency_iso' => ''// обозначение валюты в которой сохранен товар
    
'printStrProp' => 'true'// выводить строковые характеристики
    
'printCompareButton' => 'true'// выводить кнопку сравнения
    
'buyButton' => 'true'// показывать кнопку 'купить' в миникарточках (если false - показывается кнопка 'подробнее')
    
'productData' => 'Array'// массив с данными о товаре
    
'showCount' => 'true' // показывать блок с количеством
);
$model = new Models_Product;
$result $model->getProduct($param);
echo 
$result;

Метод

string|array getBlockVariants (int $idint $cat_idstring $returnArray false)

Параметры

  • $id: товара
  • $cat_id: id категории
  • $returnArray: вернуть массив (по умолчанию - нет)

Описание

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

$model = new Models_Product;
$result $model->getBlockVariants(5);
echo 
$result;

Метод

string|array getBlocksVariantsToCatalog (int $array, array $returnArray falsebool $mgadmin false)

Параметры

  • $array: массив id товаров
  • $returnArray: если true то вернет просто массив без html блоков
  • $mgadmin: если true то вернет данные для админки

Описание

Формирует массив блоков вариантов товаров на странице каталога.
Метод создан для сокращения количества запросов к БД.

$model = new Models_Product;
$result $model->getBlocksVariantsToCatalog(array(2,3,4));
echo 
$result;

Метод

string addMarginToProp (float $marginfloat $rate 1string $currency falsestring $productCurr)

Параметры

  • $margin: наценка
  • $rate: множитель цены
  • $currency: валюта
  • $productCurr: валюта товара

Описание

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

$model = new Models_Product;
$result $model->addMarginToProp(250);
echo 
$result;

Метод

array parseMarginToProp (string $value)

Параметры

  • $value: строка, которую надо распарсить

Описание

Отделяет название характеристики от цены название_пункта#стоимость#.
Пример входящей строки: "Красный#300#"

$model = new Models_Product;
$result $model->parseMarginToProp('Красный#300#');
echo 
$result;

Метод

calcPrice ()

Описание

Обновление состояния корзины.
Используеться для пересчета корзины и обновления цены в карточке товара ajax'ом

$model = new Models_Product;
$model->calcPrice();

Метод

getVariantImages ()

Описание

Возвращает оригинал и все варианты миниатюр изображений варианта
Используется Ajax'ом при изменении варианта в карточке и миникарточке товара

Метод

array getVariants (int $idstring|bool $title_variants falsebool $sort false)

Параметры

  • $id: продукта для поиска его вариантов
  • $title_variants: название варианта продукта для поиска его вариантов
  • $sort: использовать ли сортировку результатов (из настройки 'filterSortVariant')

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

Описание

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

$productId 25;
$model = new Models_Product;
$variants $model->getVariants($productId);
viewData($variants);

Метод

array noPrintProperty ()

Описание

Возвращает массив id характеристик товара, которые не нужно выводить в карточке.

$result Models_Product::noPrintProperty($productId);
viewData($result);

Метод

string createRelatedForm (array $argsstring $title С этим товаром покупаютstring $layout layout_related)

Параметры

  • $args: массив с данными о товарах
  • $title: заголовок блока
  • $layout: используемый лэйаут

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

Описание

Возвращает HTML блок связанных товаров.

$args = array(
    
'product' => 'CN182,В-500-1'// артикулы связанных товаров
    
'category' => '2,4' // ID связанных категорий
);
$model = new Models_Product;
$result $model->createRelatedForm($args);
echo 
$result;

Метод

convertToIso (string $iso, array $productsId)

Параметры

  • $iso: валюта в которую будет производиться конвертация.
  • $productsId: массив с id продуктов.

Описание

Конвертирование стоимости товаров по заданному курсу.

$model = new Models_Product;
$model->convertToIso('USD', array(234));

Метод

updatePriceCourse (string $iso, array $listId)

Параметры

  • $iso: валюта в которую будет производиться конвертация.
  • $listId: массив с id продуктов.

Описание

Обновления цены товаров в соответствии с курсом валюты.

$model = new Models_Product;
$model->updatePriceCourse('USD', array(234));

Метод

bool deleteImagesVariant (int $productId)

Параметры

  • $productId: ID товара

Описание

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

$model = new Models_Product;
$model->deleteImagesVariant(4);

Метод

array prepareImageName (array $product)

Параметры

  • $product: массив с товаром

Описание

Подготавливает названия изображений товара.

$model = new Models_Product;
$res $model->prepareImageName($product);
viewData($res);

Метод

void movingProductImage (array $imagesint $productIdstring $path uploadsbool $removeOld true)

Параметры

  • $images: - массив изображений
  • $productId: - id товара
  • $path: - папка в которой лежат исходные изображения
  • $removeOld: - флаг удаления изображений из папки

Описание

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