Модель: Product
Класс Models_Product реализует логику взаимодействия с товарами магазина.
- Добавляет товар в базу данных;
- Изменяет данные о товаре;
- Удаляет товар из базы данных;
- Получает информацию о запрашиваемом товаре;
- Получает продукт по его URL;
- Получает цену запрашиваемого товара по его id.
Методы со знаком * содержат хуки
int|bool | addProduct() * |
Добавляет товар в базу данных.
$array = array( |
bool | updateProduct() * |
Изменяет данные о товаре.
$array = array( |
bool | fastUpdateProductVariant() |
Обновляет поле в варианте и синхронизирует привязку первого варианта с продуктом.
$array = array( |
bool | importUpdateProductVariant() |
Аналогичная fastUpdateProductVariant функция, но с поправками для процесса импорта вариантов.
$model = new Models_Product(); |
bool | fastUpdateProduct() * |
Обновление заданного поля продукта.
$array = array( |
bool | saveVariants() |
Сохраняет варианты товара.
$variants = Array( |
array | cloneProduct() * |
Клонирует товар.
$productId = 25; |
bool | cloneImagesProduct() |
Клонирует изображения продукта.
$imagesArray = array( |
bool | deleteProduct() * |
Удаляет товар, его свойства, варианты, локализации, оптовые цены из базы данных.
$productId = 25; |
void | deleteImagesFolder() |
Удаляет папки из структуры папок изображений относящиеся к заданному продукту.
$productId = 25; |
void | deleteImagesProduct() |
Удаляет все картинки привязанные к продукту.
$array = array( |
array | getProductByUserFilter() |
Получает информацию о запрашиваемом товаре.
$where = '`cat_id` IN (5,6)'; |
array | getProduct() * |
Получает информацию о запрашиваемом товаре по его ID.
$productId = 25; |
array | imagesConctruction() * |
Создает массивы данных для картинок товара, возвращает три массива со ссылками, заголовками и альт, текстами.
$model = new Models_Product(); |
void | increaseCountProduct() |
Обновляет остатки продукта, увеличивая их на заданное количество.
Models_Product::increaseCountProduct(37, 'SKU348', 2);
|
void | decreaseCountProduct() |
Обновляет остатки продукта, уменьшая их количество, при смене статуса заказа с "отменен" на любой другой.
Models_Product::decreaseCountProduct(37, 'SKU348', 2);
|
int | getProductsCount() |
Возвращает общее количество продуктов каталога.
$result = Models_Product::getProductsCount(); |
array | getProductByUrl() * |
Получает продукт по его URL.
$url = 'nike-air-versitile_102'; |
bool|float | getProductPrice() |
Получает цену запрашиваемого товара по его id.
$result = Models_Product::getProductPrice(5); |
string | createPropertyForm() * |
Создает форму пользовательских характеристик для товара. В качестве входящего параметра получает массив:
$param = array( |
string|array | getBlockVariants() |
Формирует блок вариантов товара.
$model = new Models_Product; |
string|array | getBlocksVariantsToCatalog() |
Формирует массив блоков вариантов товаров на странице каталога. Метод создан для сокращения количества запросов к БД.
$model = new Models_Product; |
string | addMarginToProp() |
Формирует добавочную строку к названию характеристики, в зависимости от наличия наценки и стоимости.
$model = new Models_Product; |
array | parseMarginToProp() |
Отделяет название характеристики от цены название_пункта#стоимость#. Пример входящей строки: "Красный#300#"
$model = new Models_Product; |
void | calcPrice() |
Обновление состояния корзины. Используеться для пересчета корзины и обновления цены в карточке товара ajax'ом
$model = new Models_Product; |
void | getVariantImages() |
Возвращает оригинал и все варианты миниатюр изображений варианта Используется Ajax'ом при изменении варианта в карточке и миникарточке товара |
array | getVariants() * |
Возвращает набор вариантов товара.
$productId = 25; |
array | noPrintProperty() |
Возвращает массив id характеристик товара, которые не нужно выводить в карточке.
$result = Models_Product::noPrintProperty($productId); |
string | createRelatedForm() * |
Возвращает HTML блок связанных товаров.
$args = array( |
void | convertToIso() |
Конвертирование стоимости товаров по заданному курсу.
$model = new Models_Product; |
void | updatePriceCourse() |
Обновления цены товаров в соответствии с курсом валюты.
$model = new Models_Product; |
bool | deleteImagesVariant() |
Удаляет картинки вариантов товара.
$model = new Models_Product; |
array | prepareImageName() |
Подготавливает названия изображений товара.
$model = new Models_Product; |
void | setZeroStock() |
Обнуляет остатки товара и всех его вариантов по всем складам.
$productId = 1; |
void | movingProductImage() |
Копирует изображения товара в новую структуру хранения. |
array | recalculateStoragesAll() |
Пересчитывает все остатки по складам по всем товарам и вариантам. Записывает количество в таблицу товаров для оптимизации запросов. |
bool | recalculateStoragesById() |
Пересчитывает все остатки по складам для конкретного товара и всех его вариантов. Записывает количество в таблицу товаров для оптимизации запросов. |
bool | recalculateStorages() |
Пересчитывает все остатки по складам для всех переданных товаров и их вариантов. Записывает количество в таблицу товаров для оптимизации запросов. |
int | getProductsTotalCount() |
Возвращает общее количество всех остатков всех товаров и вариантов по всем складам.
$model = new Models_Product; |
int | getProductIdByExternalId() |
Возвращает идентификатор товара по его внешнему идентификатору (1c_id).
$externalProductId = 'some1cid'; |
bool | updateStorageCount() |
Устанавливает количество товара или его варианта на конкретном складе. Метод обновляет текущую запись о количестве, если она имеется или добавляет новую.
$model = new Models_Product; |
bool | setNewStorageCount() |
Устанавливает количество товара или его варианта на конкретном складе. Метод удаляет все существующие записи для переданного товара, варианта и склада, а затем добавляет новую.
$model = new Models_Product; |
bool | deleteStorageRecordsAll() |
Метод удаляет все записи о количестве переданного товара и всех его вариантов на переданном складе.
$model = new Models_Product; |
bool | deleteStorageRecordsProductOnly() |
Метод удаляет все записи о количестве переданного товара без учёта его вариантов на переданном складе.
$model = new Models_Product; |
bool | deleteStorageRecordsVariantOnly() |
Метод удаляет все записи о количестве переданного варианта переданного товара на переданном складе.
$model = new Models_Product; |
bool | deleteStorageRecordsAllVariants() |
Метод удаляет все записи о количестве переданного варианта переданного товара на переданном складе.
$model = new Models_Product; |
bool | addStorageRecord() |
Добавляет новую запись о количестве товара/варианта в таблицу остатков по складам.
$model = new Models_Product; |
bool | clearStoragesTable() |
Полностью очищает таблицу остатков товаров и вариантов по складам (TRUNCATE).
$model = new Models_Product; |
bool | destroyStorageStocks() |
Удаляет все записи о количестве товаров и вариантах на определенном складе.
$outdatedStorageId = 'th330305562b6b754a754707361933eo'; |
int | getProductStorageCount() |
Возвращает количество товара/варианта на определенном складе.
$storageId = 'th330305562b6b754a754707361933eo'; |
int | getVariantIdByCode() |
Возвращает идентификатор варианта по его артикулу.
$variantVendorCode = 'CN31-2'; |
array | getProductStorageData() |
Возвращает данные об остатках для переданного товара и варианта на складах, а так же склад списания остатков в зависимости от настроек списания.
$productId = 1; |
array | getProductStoragesData() |
Возвращает для переданного товара и варианта остатки по всем складам.
$productId = 1; |
int | getProductStorageTotalCount() |
Возвращает сумму остатков по всем складам для переданного товара и варианта.
$productId = 1; |
bool | decreaseCountProductOnStorage() |
Метод списывает количество товара со склада. Используется при оформлении заказа. Если в $storage передать 'all', то списание произойдёт со склада, автоматически выбранного согласно настройкам.
$productInfo = [ |
bool|array | orderDecreaseProductStorageCount() | Списывает товары со складов в соответствии с их настройками или с переданного склада. |
bool | resetLastUpdate() | Устанавливает новую дату обновления товара или варианта. |
bool | cloneStorageData() |
Клонирует остатки по складам с одного товара/варианта на другой, используется при клонировании товаров и вариантов. |
array | getStoragesCountsByVariantsIds() |
Возвращает остатки для списка вариантов с переданного или со всех складов. |
bool | checkStoragesRecalculation() |
Проверяет, требуется ли перерасчёт остатков товаров по складам. |
Метод
int|bool addProduct (array $array, bool $clone = false)
Параметры
Результат работы метода можно изменить хуком: 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)
Параметры
Результат работы метода можно изменить хуком: 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 $array, int $product_id)
Параметры
Описание
Обновляет поле в варианте и синхронизирует привязку первого варианта с продуктом.
$array = array(
'price' => 200, // цена
'count' => 50 // количество
);
$model = new Models_Product();
$model->fastUpdateProductVariant(5, $array, 2);
Метод
bool importUpdateProductVariant (int $id, array $array, int $product_id)
Параметры
Описание
Аналогичная fastUpdateProductVariant функция, но с поправками для
процесса импорта вариантов.
$model = new Models_Product();
$model->importUpdateProductVariant(5, $array, 2);
Метод
bool fastUpdateProduct (int $id, array $array)
Параметры
Результат работы метода можно изменить хуком: Models_Product_fastUpdateProduct
Описание
Обновление заданного поля продукта.
$array = array(
'price' => 200, // цена
'sort' => 5, // номер сортировки
'count' => 50 // количество
);
$model = new Models_Product();
$model->fastUpdateProduct(5, $array);
Метод
bool saveVariants (array $variants, int $id)
Параметры
Описание
Сохраняет варианты товара.
$variants = Array(
0 => 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($variants, 51);
Метод
array cloneProduct (int $id)
Параметры
Результат работы метода можно изменить хуком: Models_Product_cloneProduct
Описание
Клонирует товар.
$productId = 25;
$model = new Models_Product;
$model->cloneProduct($productId);
Метод
bool cloneImagesProduct (array $imagesArray, int $oldId, int $newId)
Параметры
Описание
Клонирует изображения продукта.
$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)
Параметры
Результат работы метода можно изменить хуком: Models_Product_deleteProduct
Описание
Удаляет товар, его свойства, варианты, локализации, оптовые цены из базы данных.
$productId = 25;
$model = new Models_Product;
$model->deleteProduct($productId);
Метод
deleteImagesFolder (int $id)
Параметры
Описание
Удаляет папки из структуры папок изображений относящиеся к заданному продукту.
$productId = 25;
$model = new Models_Product;
$model->deleteImagesFolder($productId);
Метод
deleteImagesProduct (array $arrayImages, int $productId = false)
Параметры
Описание
Удаляет все картинки привязанные к продукту.
$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 = '`cat_id` IN (5,6)';
$model = new Models_Product;
$result = $model->deleteImagesFolder($where);
viewData($result);
Метод
array getProduct (int $id, bool $getProps = true, bool $disableCashe = false)
Параметры
Результат работы метода можно изменить хуком: Models_Product_getProduct
Описание
Получает информацию о запрашиваемом товаре по его ID.
$productId = 25;
$model = new Models_Product;
$product = $model->getProduct($productId);
viewData($product);
Метод
array imagesConctruction (string $imageUrl, string $imageTitle, string $imageAlt, string $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 $id, string $code, int $count)
Параметры
Описание
Обновляет остатки продукта, увеличивая их на заданное количество.
Models_Product::increaseCountProduct(37, 'SKU348', 2);
Метод
decreaseCountProduct (int $id, string $code, int $count)
Параметры
Описание
Обновляет остатки продукта, уменьшая их количество,
при смене статуса заказа с "отменен" на любой другой.
Models_Product::decreaseCountProduct(37, 'SKU348', 2);
Метод
int getProductsCount ($where)
Описание
Возвращает общее количество продуктов каталога.
$result = Models_Product::getProductsCount();
viewData($result);
Метод
array getProductByUrl (string $url, int $catId = false)
Параметры
Результат работы метода можно изменить хуком: Models_Product_getProductByUrl
Описание
Получает продукт по его URL.
$url = 'nike-air-versitile_102';
$result = Models_Product::getProductByUrl($url);
viewData($result);
Метод
bool|float getProductPrice (int $id)
Параметры
Описание
Получает цену запрашиваемого товара по его id.
$result = Models_Product::getProductPrice(5);
viewData($result);
Метод
string createPropertyForm (array $param = Array, string $adminOrder = nope, $returnArray = false)
Параметры
Результат работы метода можно изменить хуком: 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 $id, int $cat_id, string $returnArray = false)
Параметры
Описание
Формирует блок вариантов товара.
$model = new Models_Product;
$result = $model->getBlockVariants(5);
echo $result;
Метод
string|array getBlocksVariantsToCatalog (int $array, array $returnArray = false, bool $mgadmin = false)
Параметры
Описание
Формирует массив блоков вариантов товаров на странице каталога.
Метод создан для сокращения количества запросов к БД.
$model = new Models_Product;
$result = $model->getBlocksVariantsToCatalog(array(2,3,4));
echo $result;
Метод
string addMarginToProp (float $margin, float $rate = 1, string $currency = false, string $productCurr)
Параметры
Описание
Формирует добавочную строку к названию характеристики,
в зависимости от наличия наценки и стоимости.
$model = new Models_Product;
$result = $model->addMarginToProp(250);
echo $result;
Метод
array parseMarginToProp (string $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 $id, string|bool $title_variants = false, bool $sort = false, $forceNullVariants = false, $ignoreCatRate = false)
Параметры
Результат работы метода можно изменить хуком: 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 $args, string $title = С этим товаром покупают, string $layout = layout_related)
Параметры
Результат работы метода можно изменить хуком: 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)
Параметры
Описание
Конвертирование стоимости товаров по заданному курсу.
$model = new Models_Product;
$model->convertToIso('USD', array(2, 3, 4));
Метод
updatePriceCourse (string $iso, array $listId)
Параметры
Описание
Обновления цены товаров в соответствии с курсом валюты.
$model = new Models_Product;
$model->updatePriceCourse('USD', array(2, 3, 4));
Метод
bool deleteImagesVariant (int $productId)
Параметры
Описание
Удаляет картинки вариантов товара.
$model = new Models_Product;
$model->deleteImagesVariant(4);
Метод
array prepareImageName (array $product)
Параметры
Описание
Подготавливает названия изображений товара.
$model = new Models_Product;
$res = $model->prepareImageName($product);
viewData($res);
Метод
void setZeroStock (int $productId)
Параметры
Описание
Обнуляет остатки товара и всех его вариантов по всем складам.
$productId = 1;
$model = new Models_Product;
$model->setZeroStock($productId);
Метод
void movingProductImage (array $images, int $productId, string $path = uploads, bool $removeOld = true)
Параметры
Описание
Копирует изображения товара в новую структуру хранения.
Метод
array recalculateStoragesAll (int $offset, $noTimeLimit = false)
Параметры
Описание
Пересчитывает все остатки по складам по всем товарам и вариантам. Записывает количество в таблицу товаров для оптимизации запросов.
Метод
bool recalculateStoragesById (int $productId)
Параметры
Описание
Пересчитывает все остатки по складам для конкретного товара и всех его вариантов. Записывает количество в таблицу товаров для оптимизации запросов.
Метод
bool recalculateStorages (array $allProductsIds)
Параметры
Описание
Пересчитывает все остатки по складам для всех переданных товаров и их вариантов. Записывает количество в таблицу товаров для оптимизации запросов.
Метод
int getProductsTotalCount ()
Описание
Возвращает общее количество всех остатков всех товаров и вариантов по всем складам.
$model = new Models_Product;
$allStocksCount = $model->getProductsTotalCount();
Метод
int getProductIdByExternalId (string $externalId)
Параметры
Описание
Возвращает идентификатор товара по его внешнему идентификатору (1c_id).
$externalProductId = 'some1cid';
$model = new Models_Product;
$productId = $model->getProductIdByExternalId($externalProductId);
Метод
bool updateStorageCount (int $productId, string $storageId, float $count, int $variantId)
Параметры
Описание
Устанавливает количество товара или его варианта на конкретном складе. Метод обновляет текущую запись о количестве, если она имеется или добавляет новую.
$model = new Models_Product;
$productId = 17;
$variantId = 2;
$newCount = 71;
$storageId = 'th330305562b6b754a754707361933eo';
$updateCountResult = $model->updateStorageCount($productId, $storageId, $newCount, $variantId);
Метод
bool setNewStorageCount (int $productId, string $storageId, float $count, int $variantId)
Параметры
Описание
Устанавливает количество товара или его варианта на конкретном складе. Метод удаляет все существующие записи для переданного товара, варианта и склада, а затем добавляет новую.
$model = new Models_Product;
$productId = 17;
$variantId = 2;
$newCount = 71;
$storageId = 'th330305562b6b754a754707361933eo';
$setNewCountResult = $model->setNewStorageCount($productId, $storageId, $newCount, $variantId);
Метод
bool deleteStorageRecordsAll (int $productId, string $storageId)
Параметры
Описание
Метод удаляет все записи о количестве переданного товара и всех его вариантов на переданном складе.
$model = new Models_Product;
$productId = 17;
$storageId = 'th330305562b6b754a754707361933eo';
$deleteAllRecordsResult = $model->deleteStorageRecordsAll($productId, $storageId);
Метод
bool deleteStorageRecordsProductOnly (int $productId, string $storageId)
Параметры
Описание
Метод удаляет все записи о количестве переданного товара без учёта его вариантов на переданном складе.
$model = new Models_Product;
$productId = 17;
$storageId = 'th330305562b6b754a754707361933eo';
$deleteProductRecordsOnlyResult = $model->deleteStorageRecordsProductOnly($productId, $storageId);
Метод
bool deleteStorageRecordsVariantOnly (int $productId, int $variantId, string $storageId)
Параметры
Описание
Метод удаляет все записи о количестве переданного варианта переданного товара на переданном складе.
$model = new Models_Product;
$productId = 17;
$variantId = 2;
$storageId = 'th330305562b6b754a754707361933eo';
$deleteVariantsRecordsOnlyResult = $model->deleteStorageRecordsVariantOnly($productId, $variantId, $storageId);
Метод
bool deleteStorageRecordsAllVariants (int $productId, int $variantId, string $storageId)
Параметры
Описание
Метод удаляет все записи о количестве переданного варианта переданного товара на переданном складе.
$model = new Models_Product;
$productId = 17;
$variantId = 2;
$storageId = 'th330305562b6b754a754707361933eo';
$deleteVariantRecordsOnlyResult = $model->deleteStorageRecordsVariantOnly($productId, $variantId, $storageId);
Метод
bool addStorageRecord (int $productId, string $storageId, float $count, int $variantId)
Параметры
Описание
Добавляет новую запись о количестве товара/варианта в таблицу остатков по складам.
$model = new Models_Product;
$productId = 17;
$variantId = 2;
$newCount = 71;
$storageId = 'th330305562b6b754a754707361933eo';
$createNewCountRecordResult = $model->addStorageRecord($productId, $storageId, $newCount, $variantId);
Метод
bool clearStoragesTable ()
Описание
Полностью очищает таблицу остатков товаров и вариантов по складам (TRUNCATE).
$model = new Models_Product;
$clearStocksTableResult = $model->clearStoragesTable();
Метод
bool destroyStorageStocks (string $storage)
Параметры
Описание
Удаляет все записи о количестве товаров и вариантах на определенном складе.
$outdatedStorageId = 'th330305562b6b754a754707361933eo';
$model = new Models_Product;
$clearStocksTableResult = $model->destroyStorageStocks($outdatedStorageId);
Метод
int getProductStorageCount (string $storageId, int $productId, int $variantId)
Параметры
Описание
Возвращает количество товара/варианта на определенном складе.
$storageId = 'th330305562b6b754a754707361933eo';
$productId = 3;
$variantId = 1;
$model = new Models_Product;
$variantCount = $model->getProductStorageCount($storageId, $productId, $variantId);
Метод
int getVariantIdByCode (string $code)
Параметры
Описание
Возвращает идентификатор варианта по его артикулу.
$variantVendorCode = 'CN31-2';
$model = new Models_Product;
$variantId = $model->getVariantByCode($variantVendoreCode);
Метод
array getProductStorageData (int $productId, int $variantId)
Параметры
Описание
Возвращает данные об остатках для переданного товара и варианта на складах, а так же склад списания остатков в зависимости от настроек списания.
$productId = 1;
$variantId = 7;
$model = new Models_Product;
$storagesInfo = $model->getProductStorageData($productId, $variantId);
$stocksOnStorages = $storagesInfo['storageArray'];
$writeOffStorage = $storagesInfo['storage'];
$firstStorageId = $stocksOnStorages[0]['storage'];
$firstStorageCount = $stocksOnStorages[0]['count'];
Метод
array getProductStoragesData (int $productId, int $variantId)
Параметры
Описание
Возвращает для переданного товара и варианта остатки по всем складам.
$productId = 1;
$variantId = 7;
$model = new Models_Product;
$stocksOnStorages = $model->getProductStoragesData($productId, $variantId);
$firstStorageId = $stocksOnStorages[0]['storage'];
$firstStorageCount = $stocksOnStorages[0]['count'];
Метод
int getProductStorageTotalCount (int $productId, int $variantId)
Параметры
Описание
Возвращает сумму остатков по всем складам для переданного товара и варианта.
$productId = 1;
$variantId = 7;
$model = new Models_Product;
$totalStocksCount = $model->getProductStorageTotalCount($productId, $variantId);
Метод
bool decreaseCountProductOnStorage (array $product, int $storage = all)
Параметры
Описание
Метод списывает количество товара со склада. Используется при оформлении заказа. Если в $storage передать 'all', то списание произойдёт со склада, автоматически выбранного согласно настройкам.
$productInfo = [
'id' => 1,
'variantId' => 3,
'count' => 4,
];
$storageId = 'th330305562b6b754a754707361933eo';
$model = new Models_Product;
$decreasingResult = $model->decreaseCountProductOnStorage($productInfo, $storageId);
Метод
bool|array orderDecreaseProductStorageCount (string $storage, array $cartItems)
Параметры
Описание
Списывает товары со складов в соответствии с их настройками или с переданного склада.
Метод
bool resetLastUpdate (array $product)
Параметры
Описание
Устанавливает новую дату обновления товара или варианта.
Метод
bool cloneStorageData (int $oldId, int $newId, int $newVariantId)
Параметры
Описание
Клонирует остатки по складам с одного товара/варианта на другой, используется при клонировании товаров и вариантов.
Метод
array getStoragesCountsByVariantsIds (array $variantsIds, string $storaeg, $storage)
Параметры
Описание
Возвращает остатки для списка вариантов с переданного или со всех складов.