Версия: 6.x
burger close
Класс Product
Граф наследования:Product:
OrmObject AbstractObject AcceptBehavior AcceptBehaviorInterface

Открытые члены

 _init ()
 
 getDebugActions ()
 
 keepSpecDirs ($bool)
 
 keepUpdateProductCategory ($bool)
 
 getPropObjects ()
 
 afterObjectLoad ()
 
 beforeWrite ($flag)
 
 afterWrite ($flag)
 
 fillProperty ($onlyVisible=false)
 
 fillOffersStock ()
 
 fillOffersStockStars ()
 
 getMainOffer ()
 
 getOffers ()
 
 fillOffers ()
 
 fillAffiliateDynamicNum ()
 
 setWarehousesForDynamicNum ($warehouse_ids)
 
 fillMultiOffers ()
 
 fillVirtualMultiOffers ()
 
 getVirtualMultiOffersByPropertyKeys ()
 
 getWarehouseGroupStocks ($offer_id=null, $only_available_warehouses=true)
 
 getMultiOffersByPropertyKeys ()
 
 getUnit ($property=null)
 
 getRatingPercent ()
 
 getRatingBall ()
 
 getMaxBall ()
 
 getCommentsNum ()
 
 inDir ($alias)
 
 getSpecDirs ($only_id=false)
 
 specDirCount ()
 
 fillCategories ()
 
 getMainDir ()
 
 inCompareList ()
 
 inFavorite ()
 
 fillCost ()
 
 calculateUserCost ()
 
 updateSearchIndex ()
 
 getOffersBarcodes ()
 
 getImageStub ()
 
 fillImages ()
 
 getMainImage ($width=null, $height=null, $type= 'xy', $absolute=false)
 
 getOfferMainImage ($offer_id=null, $width=null, $height=null, $type= 'xy')
 
 getImages ($without_first=false)
 
 hasImage ()
 
 hasCost ()
 
 getCost ($cost_id=null, $offer_id=null, $format=true, $inBaseCurrency=false)
 
 getBaseCost ($cost_id=null, $offer_id=null)
 
 getOldCost ($offer_id=null, $format=true, $inBaseCurrency=false)
 
 getUserCost ()
 
 setUserCost ($cost)
 
 getOfferCost ($offer_key, $xcost)
 
 getCurrency ()
 
 getCurrencyCode ()
 
 getBaseCurrency ()
 
 getUrl ($absolute=false)
 
 getVisiblePropertyList ($cache=true, $exportVisible=false)
 
 getPropertyValueByTitle ($name, $default=null, $textView=true, $available=false)
 
 cleanForBasket ()
 
 getProductsDialog ()
 
 getProductsDialogConcomitant ()
 
 getRecommended ($return_hidden=false, $add_dir_recommended=true, $hide_self=true)
 
 isHaveRecommended ()
 
 getConcomitant ($add_dir_concomitant=true)
 
 isHaveConcomitant ()
 
 getMetaTitle ()
 
 getMetaKeywords ()
 
 getMetaDescription ()
 
 getOrderType ()
 
 getBarCode ($offer_id)
 
 getOfferTitle ($offer_id)
 
 addProperty ($property_id, $value, $is_my=1)
 
 getShortDescription ($max_len=300)
 
 getWeight ($offer_id=null, $weight_unit=null)
 
 shouldReserve ()
 
 isReservationForced ()
 
 canBeReserved ()
 
 getOfferCount ()
 
 getNum ($offer_id=null)
 
 getSKU ($offer_id=null)
 
 getCurrencies ()
 
 getCostList ()
 
 getMySpecDir ()
 
 setFastMarkOffersUse ($bool)
 
 isOffersUse ()
 
 setFastMarkMultiOffersUse ($bool)
 
 isMultiOffersUse ()
 
 setFastMarkVirtualMultiOffersUse ($bool)
 
 isVirtualMultiOffersUse ()
 
 fillMultiOffersPhotos ()
 
 isAvailable ($only_main_offer=true)
 
 getBrand ()
 
 getWarehouseStock ()
 
 getWarehouseFullStock ()
 
 getWarehouseStickInfo ($cache=true)
 
 getAvailableWarehouses ($offer_id=null, $cache=true)
 
 useOffersUnconvertedPropsdata ($bool=true)
 
 getFiles ($access=null)
 
 setDefaultProductDimensions ($width, $height, $depth)
 
 getDefaultProductDimensions ($dimention_type=null)
 
 getButtonTypeByOffer ($offer_sortn)
 
 getListProperties (Dir $dir=null)
 
 getMinPrice ($cost_id=null, $format=true, $in_base_currency=false, &$has_difference=null)
 
 getAmountStep ($offer_id=0, $cache=true)
 
 getMinOrderQuantity ($cache=true)
 
 getMaxOrderQuantity ($cache=true)
 
 checkPropExist ()
 
 getDimensionsObject ()
 
 getFlag ($flag)
 
 setFlag (string $flag, $value=true)
 
 getYoutubeVideoId ()
 
 getYoutubeVideoType ()
 
 getOffersJson (array $options=[], $as_array=false, $cache=true, $update_db=true)
 
 isBulk ()
 
 getSubstitutePriceTextBySaleStatus ($sale_status)
 
 getSubstitutePriceText ($offer_id=null, $cost_id=null)
 
 getSaleStatus ($offer_id=null, $cost_id=null)
 
- Открытые члены унаследованные от OrmObject
 __construct ($id=null, $cache=true)
 
 getPrimaryKeyProperty ()
 
 saveInCache ($id)
 
 loadFromCache ($id)
 
- Открытые члены унаследованные от AbstractObject
static __construct ()
 
 __destruct ()
 
 fillDefaults ()
 
 getClassParameter ($key=null)
 
 setClassParameter ($key, $value=null)
 
 issetClassParameter ($key=null)
 
 setLocalParameter ($key, $value=null)
 
 getLocalParameter ($key, $default=null)
 
 getParameter ($key, $default=null)
 
 setPropertyIterator (PropertyIterator $iterator)
 
 checkRights ($bool)
 
 clear ()
 
 offsetExists ($offset)
 
 offsetGet ($offset)
 
 offsetSet ($offset, $value)
 
 __set ($offset, $value)
 
 __get ($offset)
 
 offsetUnset ($offset)
 
 getShortAlias ()
 
 load ($primaryKeyValue=null)
 
 insert ($ignore=false, $on_duplicate_update_keys=[], $on_duplicate_uniq_fields=[])
 
 update ($primaryKey=null)
 
 replace ()
 
 delete ()
 
 exists ($primaryKeyValue)
 
 getFromArray (array $data, $remove_prefix=null, $mark_modify=true, $call_afterload_event=false)
 
 getValues ()
 
 isModified ($property)
 
 getPropertyIterator ()
 
 appendProperty (array $properties)
 
 _getTableArray ()
 
 getPrimaryKeyProperty ()
 
 getProperties ()
 
 getProp ($offset)
 
 save ($primaryKeyValue=null, $user_post=[], $post_var=null, $files_var=null)
 
 replaceOn ($bool)
 
 setWriteBit ($n)
 
 usePostKeys (array $keys)
 
 excludePostKeys (array $keys)
 
 checkData ($user_post=[], $post_var=null, $files_var=null, $usekeys=null, $exclude=null, $flag=self::UPDATE_FLAG)
 
 fillFromPost ($user_post=[], $post_var=null, $files_var=null, $usekeys=null, $exclude=null)
 
 validateData ($flag=self::UPDATE_FLAG)
 
 validate ()
 
 setCheckFields (array $fields)
 
 escapeFields (array $escape_fields)
 
 escapeAll ($bool)
 
 checkField ($property)
 
 addError ($string, $form=null)
 
 addErrors ($array, $form=null)
 
 getLastError ()
 
 getErrors ()
 
 getErrorsStr ()
 
 hasError ()
 
 getFormError ()
 
 getErrorsByForm ($key=null, $sep=null)
 
 getDisplayErrors ()
 
 noWriteRights ($right=DefaultModuleRights::RIGHT_UPDATE)
 
 getNonFormErrors ()
 
 clearErrors ()
 
 setTemporaryId ()
 
 setFormTemplate ($template)
 
 dbUpdate ()
 
 addIndex ($fields, $type=self::INDEX_KEY, $name=null, $using=null)
 
 getIndexes ()
 
 getForm (array $tpl_vars=null, $switch=null, $is_multiedit=false, $template=null, $tpl_maker=null, $tpl_folder=null)
 
 getPropertyView ($key, $attributes=[], $view_params=[])
 
 getHiddenKeyVal ()
 
 addHiddenFields ($keys, $value=null)
 
 addDebugActions (array $actions, $local=false)
 
 addDebugAction (\RS\Debug\Action\AbstractAction $action, $local=false)
 
 getDebugAttributes ()
 
 beforeWrite ($save_flag)
 
 afterWrite ($save_flag)
 
 afterObjectLoad ()
 
 getDebugActions ()
 
 dropTable ()
 
 exportErrors ()
 
 current ()
 
 key ()
 
 next ()
 
 rewind ()
 
 valid ()
 
 __sleep ()
 
 __wakeup ()
 
 __clone ()
 
 __isset ($offset)
 
 getRightRead ()
 
 getRightCreate ()
 
 getRightUpdate ()
 
 getRightDelete ()
 
 getHtmlEncodedFields ()
 
- Открытые члены унаследованные от AcceptBehavior
 attachInstanceBehavior (BehaviorAbstract $behavior_class)
 
 detachInstanceBehavior (BehaviorAbstract $behavior_class=null)
 
 getAttachedBehaviors ()
 
 behaviorMethodExists ($method_name)
 
 __call ($method_name, $arguments)
 
- Открытые члены унаследованные от AcceptBehaviorInterface
 attachInstanceBehavior (\RS\Behavior\BehaviorAbstract $behavior_class)
 
 detachInstanceBehavior (\RS\Behavior\BehaviorAbstract $behavior_class=null)
 

Открытые статические члены

static resetOffersJsonCache ($id)
 
static getSaleStatusTitles (array $first=[])
 
- Открытые статические члены унаследованные от OrmObject
static loadSingle ($id)
 
- Открытые статические члены унаследованные от AbstractObject
static loadByWhere ($expr, array $values=null, $prefix= 'AND', $in_prefix= 'AND')
 
static _getTable ()
 
static chkDepend ($coreobj, $value, $real_errtext, $real_chk, array $conditions, $real_params=[])
 
static destroyClass ()
 
- Открытые статические члены унаследованные от AcceptBehavior
static attachClassBehavior (BehaviorAbstract $behavior_class)
 
static detachClassBehavior (BehaviorAbstract $behavior_class=null)
 
- Открытые статические члены унаследованные от AcceptBehaviorInterface
static attachClassBehavior (\RS\Behavior\BehaviorAbstract $behavior_class)
 
static detachClassBehavior (\RS\Behavior\BehaviorAbstract $behavior_class=null)
 

Поля данных

const MAX_RATING = 5
 
const IMAGES_TYPE = 'catalog'
 
const FILE_ACCESS_HIDE = 0
 
const FILE_ACCESS_PUBLIC = 1
 
const FILE_ACCESS_PAID = 2
 
const ORDER_TYPE_BASKET = 'basket'
 
const ORDER_TYPE_UNOBTAINABLE = 'unobtainable'
 
const ORDER_TYPE_ADVORDER = 'advorder'
 
const FLAG_DONT_RESET_IMPORT_HASH = 'dont_reset_import_hash'
 
const FLAG_DONT_UPDATE_SEARCH_INDEX = 'dont_update_search_index'
 
const FLAG_DONT_UPDATE_DIR_COUNTER = 'dont_update_dir_counter'
 
const SALE_STATUS_DEFAULT = 'default'
 
const SALE_STATUS_SHOW_COST = 'show_cost'
 
const SALE_STATUS_ON_REQUEST = 'on_request'
 
const SALE_STATUS_DISCONTINUED = 'discontinued'
 
const SALE_STATUS_NO_COST = 'no_cost'
 
const DP_NUM_HASH = 'dynamic_num_hash'
 
const DP_COST_ID = 'cost_id'
 
const DP_OLD_COST_ID = 'old_cost_id'
 
const VIDEO_TYPE_SHORTS = 'shorts'
 
const VIDEO_TYPE_DEFAULT = 'default'
 
- Поля данных унаследованные от AbstractObject
const INSERT_FLAG = 'insert'
 
const UPDATE_FLAG = 'update'
 
const REPLACE_FLAG = 'replace'
 
const INDEX_PRIMARY = 'primary key'
 
const INDEX_UNIQUE = 'unique'
 
const INDEX_KEY = 'index'
 
const INDEX_FULLTEXT = 'fulltext'
 
- Поля данных унаследованные от AcceptBehavior
 $class_behaviors = []
 
 $cache_behavior_instances = []
 
 $instance_behaviors = []
 

Защищенные члены

 buildOffersStockStars ($offer_items)
 
 isMainOffer ($offer_id=null)
 
 appendOfferDynamicNum (OrmRequest $q)
 
 baseWarehouseAvailabilityRequest ($offer_id=null, $only_available_warehouses=true)
 
 getCostIdByTitle ($title)
 
 fixDynamicBefore ($data, $dynamic_params)
 
 fixDynamicAfter ($data, $dynamic_params, $options)
 
 updateOffersJson ($data, $update_db)
 
 getOffersJsonMultioffersSection (array $data)
 
 getOffersJsonOffersSection (array $data, $dynamic_params)
 
 getOffersJsonVirtualSection ($data)
 
 prepareOffersImagesUrl ($data, array $options)
 
 prepareOffersPropertyImagesUrl ($data, array $options)
 
 getOfferSaleStatus ($offer_price)
 
- Защищенные члены унаследованные от OrmObject
 _init ()
 
- Защищенные члены унаследованные от AbstractObject
 initProperties ()
 
 _init ()
 
 _initDefaults ()
 
 afterInit ()
 
 getStorageInstance ()
 
 getTableEngine ()
 
 getPropertyHash ($is_multiedit, $switch=null)
 

Защищенные данные

 $fast_mark_offers_use
 
 $fast_mark_multioffers_use
 
 $fast_mark_virtual_multioffers_use
 
 $keep_update_prod_cat = true
 
 $keep_spec_dirs = false
 
 $cache_visible_property
 
 $cache_amount_step = []
 
 $cache_min_order_quantity
 
 $cache_max_order_quantity
 
 $cache_warehouse_stick
 
 $user_cost
 
 $stock = null
 
 $full_stock = null
 
 $offer_xcost = []
 
 $dir_alias_cache = []
 
 $calculate_user_cost = null
 
 $files
 
 $dimensions_object
 
 $flags = []
 
- Защищенные данные унаследованные от AbstractObject
 $_values = []
 
 $_self_class
 
 $_local_id
 

Статические защищенные данные

static $table = 'product'
 
static $property_name_id = []
 
static $cost_title_id = []
 
static $spec_dirs = []
 
static $cost_list
 
static $dirlist
 
- Статические защищенные данные унаследованные от OrmObject
static $self_singleton_cache = []
 
- Статические защищенные данные унаследованные от AbstractObject
static $db = DB_NAME
 
static $table = null
 
static $iterator = 0
 
static $init_default_method = '_initDefaults'
 
static $local = []
 
static $default_local_parameters
 
static static $class = []
 
static $default_class_parameters
 

Дополнительные унаследованные члены

- Статические открытые данные унаследованные от OrmObject
static $self_cache = []
 
- Защищенные статические члены унаследованные от OrmObject
static getIdHash ($id)
 
- Защищенные статические члены унаследованные от AbstractObject
static _tableName ($with_quotes=true)
 
static _dbName ($with_quotes=true)
 

Методы

_init ( )
addProperty (   $property_id,
  $value,
  $is_my = 1 
)

Добавить характеристику для сохранения

Аргументы
integer$property_id- уникальный идентификатор характеристики
mixed$value- значение характеристики
integer$is_my- флаг означающий, что нужно добавить флаг перезаписывающий значения установленные через категорию
afterObjectLoad ( )

Вызывается после загрузки объекта

Возвращает
void
afterWrite (   $flag)

Вызывается после сохранения объекта

Аргументы
mixed$flag- флаг процедуры записи (insert, update, replace)
Возвращает
void
Исключения
DbException
EventException
RSException
appendOfferDynamicNum ( OrmRequest  $q)
protected

Добавляет к объекту запроса комплектаций условие для выборки остатков только на связанных с филиалом складах. Результат будет в поле dynamic_num

Аргументы
OrmRequest$q
Возвращает
OrmRequest
baseWarehouseAvailabilityRequest (   $offer_id = null,
  $only_available_warehouses = true 
)
protected

Возвращает базовый запрос на получение остатков по группам складов

Аргументы
int$offer_id- id комплектации
bool$only_available_warehouses- искать остатки только на доступных складах
Возвращает
OrmRequest
beforeWrite (   $flag)

Вызывается перед сохранением объекта

Аргументы
string$flag- строковое представление текущей операции (insert или update)
Возвращает
false|void
buildOffersStockStars (   $offer_items)
protected

Заполняет поле sticks у каждой комплектации

Аргументы
array$offer_items
Возвращает
mixed
calculateUserCost ( )

Пересчитает автоматически формируемые цены

Возвращает
void
canBeReserved ( )

Возвращает true, если товар потенциально может быть предзаказан. т.е. у него не установлен запрет на предзаказ и опция в админ панели "разрешить предзаказ товаров с нулевым остатком"

Возвращает
bool
checkPropExist ( )

Проверка есть ли у какой то из комплектаций персональные характеристики

Возвращает
bool
cleanForBasket ( )

Очищает поля, которые не понадобятся при отображении товара в корзине Это уменьшит объект в сериализованном виде.

Возвращает
void
fillAffiliateDynamicNum ( )

Добавляет к товару поле dynamic_num с остатком только на складах выбранного филиала. После вызова данного метода fillOffers() будет также добавлять dynamic_num к каждой комплектации Актуально для Мегамаркета

Возвращает
void
fillCategories ( )

Загружает категории, в которых состоит товар

Возвращает
void
fillCost ( )

Подгружает все цены товара, если они не загружены раннее

fillImages ( )

Загружает фотографии для товара

Возвращает
void
fillMultiOffers ( )

Заполняет уровни многомерных комплектаций у товара

Возвращает
array массив многомерных комплектаций
fillMultiOffersPhotos ( )

Подгружает к многомерным комплектациями фото к вариантам выбора Работает только, если у товара есть как комплектации так и многомерные комплектации

Возвращает
void
fillOffers ( )

Загружает информацию о комплектациях

Возвращает
array возвращает массив с комплектациями
fillOffersStock ( )

Заполняет значениями остатки по складам для разных складов

Возвращает
void
fillOffersStockStars ( )

Заполняет у товара остатки по складам в виде градаций по параметру warehouse_stars в настройках модуля Включает метки остатков только для тех складов, которые должны отображаться с учетом текущего филиала

Возвращает
void
fillProperty (   $onlyVisible = false)

Загружает характеристики у товара

Аргументы
bool$onlyVisible- если true, вернёт только видимые не пустые характеристики
Возвращает
array
fillVirtualMultiOffers ( )

Заполняет виртуальные многомерные комплектации у товаров

Возвращает
array
fixDynamicAfter (   $data,
  $dynamic_params,
  $options 
)
protected

Заполняет корректно поля price, oldPrice. В случае необходимости догружает данные в БД по новым cost_id, old_cost_id

Аргументы
array$data
array$dynamic_paramsдинамические параметры
array$options
Возвращает
array
fixDynamicBefore (   $data,
  $dynamic_params 
)
protected

Заполняет корректно поле num (остаток товара), в случае, если в JSON нет данных об остатках с учетом связанных с текущим филиалом складов, то остаток высчитывается и происходит частичная коррекция данных в offers_json в базе.

Аргументы
array$data
array$dynamic_paramsДинамические данные
Возвращает
array
getAmountStep (   $offer_id = 0,
  $cache = true 
)

Возвращает шаг количества товара

Аргументы
int$offer_idID комплектации, если необходимо узнать ее шаг изменения количества
bool$cache- использовать кеш
Возвращает
float
getAvailableWarehouses (   $offer_id = null,
  $cache = true 
)

Возвращает количество складов, на которых доступен товар Перед вызовом данного метода нужно вызвать fillOffersStockStars

Аргументы
integer$offer_id- id комплектации
bool$cache- использовать кэш
Возвращает
int
getBarCode (   $offer_id)

Возвращает артикул в зависимости от комплектации

Аргументы
integer$offer_idID комплектации
Возвращает
string
getBaseCost (   $cost_id = null,
  $offer_id = null 
)

Возвращает базовую цену товара

Аргументы
int | string$cost_id- id или Название цены. Если null, то текущая цена у пользователя.
integer$offer_id- id комплектации
Возвращает
float
getBaseCurrency ( )

Возвращает символ базовой валюты

Возвращает
string
getBrand ( )

Возвращает объект бренда товара

Возвращает
Brand
getButtonTypeByOffer (   $offer_sortn)

Возвращает тип кнопки для показа в зависимости от переданной комплектации. Купить, заказать, не показывать. (buy|reservation|none)

Аргументы
integer$offer_sortn- сортировочный индекс комплектации
Возвращает
string
getCommentsNum ( )

Возвращает количество комментариев

Возвращает
integer
getConcomitant (   $add_dir_concomitant = true)

Возвращает товары, сопутствующие для текущего

Аргументы
bool$add_dir_concomitant- Если true, будут добавлены сопутствующие из основной категории
Возвращает
Product[]
getCost (   $cost_id = null,
  $offer_id = null,
  $format = true,
  $inBaseCurrency = false 
)

Возвращает цену товара

Аргументы
int | string$cost_id- id или Название цены. Если null, то текущая цена у пользователя.
integer$offer_id- id комплектации
bool$format- форматировать цену
bool$inBaseCurrency- возвращать стоимость в базовой валюте
Возвращает
mixed
getCostIdByTitle (   $title)
protected

Возвращает id типа цены по его названию

Аргументы
string$title- имя типа цен
Возвращает
int|null
getCostList ( )

Возвращает Список цен, имеющихся в системе

Возвращает
array
getCurrencies ( )

Возвращает список доступных валют Используется в карточке товара в админ. панели

Возвращает
array
getCurrency ( )

Возвращает текущую валюту

Возвращает
string
getCurrencyCode ( )

Возвращает код текущей валюты

getDebugActions ( )

Возвращает отладочные действия, которые можно произвести с объектом

Возвращает
DebugAction[]
getDefaultProductDimensions (   $dimention_type = null)
Аргументы
string$dimention_type- тип габарита (width|height|depth). Если null - то вернёт массив значений
Возвращает
integer|array
getDimensionsObject ( )

Возвращает объект габаритов товара

Возвращает
ProductDimensions
getFiles (   $access = null)

Возвращает привязанные файлы к товару

Аргументы
string|string[]$access - идентификатор(ы) уровня доступа.
Возвращает
OrmFile[]
getFlag (   $flag)

Возвращает специальный флаг, список возможных флагов находится в константах класса

Аргументы
string$flag- флаг
Возвращает
bool
getImages (   $without_first = false)

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

Аргументы
boolean$without_first- если true, то не возвращать первое фото
Возвращает
PhotoImage[]
getImageStub ( )

Возвращает объект фото-заглушку

Возвращает
getListProperties ( Dir  $dir = null)

Возвращает характеристики, которые нужно отобразить в списке товаров в конкретной категории $dir

Аргументы
Dir$dirобъект текущей категории
Возвращает
array
getMainDir ( )

Возвращает объект главной директории

Возвращает
Dir
getMainImage (   $width = null,
  $height = null,
  $type = 'xy',
  $absolute = false 
)

Возвращает ссылку на главную фотографию (первая в списке фотографий) При вызове без параметров возвращает объект фотографии

Аргументы
int$width- ширина в пикселях
int$height- высота в пикселях
string$type- тип ресайза
boolean$absolute- возвращает абсолютный путь
Возвращает
|string
getMainOffer ( )

Возвращает основную комплектацию товара

Возвращает
Offer
getMaxBall ( )

Возвращает максимальное количество баллов, которое можно поставить данному товару

Возвращает
integer
getMaxOrderQuantity (   $cache = true)

Возвращает максимальное количество товара для заказа

Аргументы
bool$cache- использовать кеш
Возвращает
float
getMetaDescription ( )

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

Возвращает
string
getMetaKeywords ( )

Возвращает заданные в админ панели ключевые слова, а если они не заданны, то генерирует новые

Возвращает
string
getMetaTitle ( )

Возвращает заголовок МЕТА данных товара, если нет, то берёт из категорий

Возвращает
string
getMinOrderQuantity (   $cache = true)

Возвращает минимальное количество товара для заказа

Аргументы
bool$cache- использовать кеш
Возвращает
float
getMinPrice (   $cost_id = null,
  $format = true,
  $in_base_currency = false,
$has_difference = null 
)

Возвращает минимальную цену за товар, если существуют различия в стоимости комплектаций

Аргументы
integer | null$cost_idID или название цены. Если null, то будет использована цена по умолчанию
bool$formatесли true, то будет возвращена строка "от 12 500", в противном случае 12500.00
boolean$in_base_currencyесли true, то будет возвращена цена всегда в базовой валюте
bool$has_differenceвозвращает в данной переменно true, если цены комплектаций отличаются
Возвращает
float|string
getMultiOffersByPropertyKeys ( )

Возвращает виртуальные многомерные комплектации, где в ключи идут ключи из параметров со множеством возможных значений

Возвращает
array
getMySpecDir ( )

Возвращает список спецкатегорий, в которых состоит товар

Возвращает
array of Orm
getNum (   $offer_id = null)

Возвращает количество для необходимой комплектации или всего товара. Сперва возвращает динамически высчитанное значение из dynamic_num, если таковое есть. иначе - статическое значение из поля num.

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

Аргументы
int | null$offer_id- id комплектации или если null, то всего товара
Возвращает
mixed|Type
getOfferCost (   $offer_key,
  $xcost 
)

Возвращает цены откорректированные с учетом выбранной комплектации

Аргументы
integer$offer_keyкомплектация
array$xcostмассив: ID цены => Значение цены для нулевого offer'а
Возвращает
array
getOfferCount ( )

Возвращает количество комплектаций

Возвращает
int
getOfferMainImage (   $offer_id = null,
  $width = null,
  $height = null,
  $type = 'xy' 
)

Возвращает ссылку на главную фотографию комплектации (первая в списке фотографий) если не указана ширина изображения - возвращает объект фотографии

Аргументы
mixed$offer_id- id комплектации
mixed$width- ширина изображения
mixed$height- высота изображения
mixed$type- тип ресайза
Возвращает
PhotoImage|string
getOffers ( )

Возвращает список комплектаций товара

Возвращает
ProductOffersList
getOfferSaleStatus (   $offer_price)
protected

Возвращает статус продаж товара с учетом цены комплектации

Аргументы
float | \Closure$offer_price
Возвращает
string
getOffersBarcodes ( )

Возвращает артикулы комплектаций, используется для построения поискового индекса

Возвращает
string
getOffersJson ( array  $options = [],
  $as_array = false,
  $cache = true,
  $update_db = true 
)

Возвращает специально подготовленный JSON о комплектациях товара. Данный json будет использоваться в теме оформления для вывода комплектаций в списках, а также в карточке товара.

Данный JSON кэшируется у товара в базе, в случае если поле offers_json пустое, оно формируется налету и записывается в базу.

Данный JSON учитывает настройки ReadyScript и возвращает актуальную информацию даже с учетом текущего выбранного филиала (на Мегамаркете)

Аргументы
array$optionsМассив, с помощью которого можно указывать размер и масштабирование фото товара, ссылки на которые будут представлены в json. Пример: [ 'noVirtual' => false, // Если true, то не возвращать json, если товар содержит виртуальные многомерные 'disableCheckOffers' => false, //Если true, то будет возвращен массив с информацией даже об одной основной комплектации 'showStockNum' => true, //Если true, то у комплектаций будут оставаться сведения о конкретном количестве на складах. По умолчанию - false 'images' => [ 'url' => [ 'width' => 268, 'height' => 268, 'scale' => 'xy' ], 'url2x' => [ 'width' => 536, 'height' => 536, 'scale' => 'xy' ] ] ];
bool$as_array
bool$cacheЕсли true, то данные первично будут браться из кэша в базе.
bool$update_dbЕсли true, каждый раз, когда кэш в базе не найден, он будет там создан
Возвращает
null|string
getOffersJsonMultioffersSection ( array  $data)
protected

Подготавиливает секцию levels со сведениями об уровнях многомерной комплектации

Аргументы
array$dataНачальный массив с данными о комплектациях
Возвращает
array
getOffersJsonOffersSection ( array  $data,
  $dynamic_params 
)
protected

Подготавливает секции offers, со сведениями о комплектациях

Аргументы
array$dataНачальный массив с данными о комплектациях
array$dynamic_paramsУникальные параметры для пользователя
Возвращает
array
getOffersJsonVirtualSection (   $data)
protected

Формирует массив данных по виртуальным многомерным комплектациям

Аргументы
$data
Возвращает
array
getOfferTitle (   $offer_id)

Возвращает название комплектации. Если у товара есть комплектации, иначе false

Аргументы
integer$offer_idкомплектация
Возвращает
string
getOldCost (   $offer_id = null,
  $format = true,
  $inBaseCurrency = false 
)

Возвращает старую(зачеркнутую) цену, если она есть

Аргументы
integer$offer_id- id комплектации
bool$format- форматировать цену
bool$inBaseCurrency- возвращать стоимость в базовой валюте
Возвращает
float
getOrderType ( )

Возвращает тип кнопки, которую нужно отобразить на месте кнопки заказать

Возвращает
string - basket | unobtainable | advorder
getProductsDialog ( )

Возвращает HTML код для блока "рекомендуемые товары"

Возвращает
ProductDialog
getProductsDialogConcomitant ( )

Возвращает HTML код для блока "сопутствующие товары"

Возвращает
ProductDialog
getPropertyValueByTitle (   $name,
  $default = null,
  $textView = true,
  $available = false 
)

Возвращает значение свойста по его имени

Аргументы
string$name- название свойства
mixed$default- значение по-умолчанию
bool$textView- если задано true, то возвращает всегда текстовое значение характеристики
bool$available- возвращать только те значения, что есть в наличии у товара
Возвращает
string|null
getPropObjects ( )

Возвращает список характеристик в виде списка объектов. Для формы редактирования товара

Возвращает
array of Property
getRatingBall ( )

Возвращает средний балл товара

Возвращает
float
getRatingPercent ( )

Возвращает райтинг товара в процентах от 0 до 100

Возвращает
integer
getRecommended (   $return_hidden = false,
  $add_dir_recommended = true,
  $hide_self = true 
)

Возвращает товары, рекомендуемые вместе с текущим

Аргументы
bool$return_hidden- Если true, то метод вернет даже не публичные товары. Если false, то только публичные
bool$add_dir_recommended- Если true, будут добавлены рекоммендуемые из основной категории
bool$hide_selfЕсли true, то исключит из списка текущий товар
Возвращает
Product[]
getSaleStatus (   $offer_id = null,
  $cost_id = null 
)

Возвращает идентификатор статуса продаж товара в нужной комплектации

Аргументы
integer | null$offer_idID Комплектации, если не передано, то основная
integer | null$cost_idID Типа цен, на основании которого будет приниматься решение о статусе. Если null, то текущий тип цен.
Возвращает
string
static getSaleStatusTitles ( array  $first = [])
static

Возвращает название статусов продаж товара

Аргументы
array$first
Возвращает
array
getShortDescription (   $max_len = 300)

Возвращает текст с кратким описание товара

Аргументы
integer$max_lenмаксимально количество знаков
Возвращает
string
getSKU (   $offer_id = null)

Возвращает штрихкод указанной комплектации, в случае отсутствия возвращает штрихкод товара

Аргументы
int$offer_id- id комплектации
Возвращает
string
getSpecDirs (   $only_id = false)

Возвращает все спец. категории

Аргументы
bool$only_id- если true, то массив будет содержать только id категорий, иначе - объект Dir
Возвращает
array
getSubstitutePriceText (   $offer_id = null,
  $cost_id = null 
)

Возвращает замещающий цену текст или false, если текста нет. Например, "цена по запросу" или "снято с продаж". Этот текст нужно показывать вместо цены, если он есть

Аргументы
integer | null$offer_idID Комплектации, если не передано, то основная
Возвращает
string | bool(false)
getSubstitutePriceTextBySaleStatus (   $sale_status)

Возвращает замещающий цену текст по статусу продаж

Аргументы
string$sale_status
Возвращает
false|mixed
getUnit (   $property = null)

Возвращает объект единицы измерения, в котором измеряется данный продукт

Аргументы
string$property- имя свойства объекта Unit. Используется для быстрого обращения
Возвращает
Unit
getUrl (   $absolute = false)

Возвращает URL страницы товара

Аргументы
bool$absolute- Если true, то вернет абсолютный URL, иначе относительный
Возвращает
string
getUserCost ( )

Возвращает персональную цену для данного товара если у товара указана персональная цена, метод getCost вернёт именно её вне зависимости от параметров

Возвращает
float|null
getVirtualMultiOffersByPropertyKeys ( )

Возвращает виртуальные многомерные комплектации, где в ключи идут ключи из параметров со множеством возможных значений

Возвращает
array
getVisiblePropertyList (   $cache = true,
  $exportVisible = false 
)

Возвращает видимые характеристики товара

Аргументы
bool$cache- кэшировать результат
bool$exportVisible- если true, то возвращает видимые для эекспорта характеристики товара
Возвращает
array
getWarehouseFullStock ( )

Получает общие остатки по складам товара в виде массива Ключ - id склада Значение - количество товаров на складе

Возвращает
float[]
getWarehouseGroupStocks (   $offer_id = null,
  $only_available_warehouses = true 
)

Возвращает список остатков на группах складов, отсортированный по приоритету групп

Аргументы
int$offer_id- id комплектации
bool$only_available_warehouses- искать остатки только на доступных складах
Возвращает
float[]
getWarehouseStickInfo (   $cache = true)

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

  • список складов
  • количество диапазонов остатков
Аргументы
bool$cache- использовать кэш
Возвращает
array
getWarehouseStock ( )

Получает остатки у комплектаций по складам товара в виде массива Ключ - id склада Значение - информация по складам

Возвращает
array
getWeight (   $offer_id = null,
  $weight_unit = null 
)

Возвращает вес товара с учетом настроек ОСНОВНОЙ категории и настроек модуля

Аргументы
null | integer$offer_id- id комплектации от которой нужно вернуть вес
null | string$weight_unit- идентификатор единицы измерения, в которой нужно получить вес (список возможных констант в )
Возвращает
float
getYoutubeVideoId ( )

Возвращает ID ыидео, полученный из ссылки

Возвращает
string
getYoutubeVideoType ( )
hasCost ( )

Возвращает true если цены на товар заполнены

Возвращает
bool
hasImage ( )

Возвращает true, если у объекта есть фото

inCompareList ( )

Возвращает true, если товар присутствует в списке для сравнения

Возвращает
bool
inDir (   $alias)

Возвращает true, если товар состоит в категории с псевдонимом alias, иначе false

Аргументы
string | integer$alias- псевдоним категории
Возвращает
bool
inFavorite ( )

Возвращает true если данный продукт уже в избранном

Возвращает
bool
isAvailable (   $only_main_offer = true)

Возвращает true, если имеется возможность купить товар в комплектации по-умолчанию Если отключен контроль остатков - возвращает true Если включен контроль остатков - общее количество товара и остаток выбранной комплектации больше нуля - возвращает true В остальных случаях - false

Аргументы
bool$only_main_offer- Если true, то информация предоставляется только по основной комплектации. Если false, то по всему товару, т.е. если общий остаток > 0, значит вернется true
Возвращает
false
isBulk ( )

Возвращает true, если данный товар продается не штучно (например на развес)

Это влияет на то, что при создании отгрузки система будет понимать что на все количество товара будет один код маркировки

Возвращает
bool
isHaveConcomitant ( )

Возвращает есть ли у товара рекомендуемые Облегченный метод в основном используется для проверки показа блока рекомендуемых

Возвращает
bool
isHaveRecommended ( )

Возвращает есть ли у товара рекомендуемые Облегченный метод в основном используется для проверки показа блока рекомендуемых

Возвращает
boolean
isMainOffer (   $offer_id = null)
protected

Возвращает true, если $offer_id - это ID основной комплектации

Аргументы
integer$offer_id
Возвращает
bool
isMultiOffersUse ( )

Возвращает true, если у товара должны использоваться многомерные комплектации.

Возвращает
bool
isOffersUse ( )

Возвращает true, если у товара должны использоваться комплектации.

Возвращает
bool
isReservationForced ( )

Возвращает true, если товар (в основной комплектации) доступен только через предзаказ Без учета статуса продаж

Возвращает
bool
isVirtualMultiOffersUse ( )

Возвращает true, если у товара должны использоваться виртуальные многомерные комплектации.

Возвращает
bool
keepSpecDirs (   $bool)

Устанавливает, сохранять ли связь со spec категориями

Аргументы
bool$bool
Возвращает
void
keepUpdateProductCategory (   $bool)

Устанавливает обновлять ли категорию у товара или нет при обновлении данных товара В основном используется для импорта из 1С

Аргументы
bool$bool
Возвращает
void
prepareOffersImagesUrl (   $data,
array  $options 
)
protected

Заменяет изображеия на конкретные ссылки на эти изображения

Аргументы
array$dataНачальный массив с данными о комплектациях
array$options
Возвращает
array
prepareOffersPropertyImagesUrl (   $data,
array  $options 
)
protected

Заменяет изображения на конкретные ссылки на эти изображения

Аргументы
array$dataНачальный массив с данными о комплектациях
array$options
Возвращает
array
static resetOffersJsonCache (   $id)
static

Очищает кэш сведения по комплектациям товара. Они будут восстановлены при следующем обращении к getOffersJson

Аргументы
$id
setDefaultProductDimensions (   $width,
  $height,
  $depth 
)
Аргументы
integer$width- ширина товара в условных единицах
integer$height- высота товара в условных единицах
integer$depth- глубина товара в условных единицах
setFastMarkMultiOffersUse (   $bool)

Устанавливает используются ли у товаров комплектации. Установленное значение будет импользоваться для быстрого возврата результата методом isOffersUse

Аргументы
bool  |  null$bool
Возвращает
void
setFastMarkOffersUse (   $bool)

Устанавливает используются ли у товаров комплектации. Установленное значение будет импользоваться для быстрого возврата результата методом isOffersUse

Аргументы
bool  |  null$bool
Возвращает
void
setFastMarkVirtualMultiOffersUse (   $bool)

Устанавливает используются ли у товаров виртуальные многомерные комплектации. Установленное значение будет импользоваться для быстрого возврата результата методом isVirtualMultiOffersUse

Аргументы
bool  |  null$bool
Возвращает
void
setFlag ( string  $flag,
  $value = true 
)

Устанавливает специальный флаг, список возможных флагов находится в константах класса

Аргументы
string$flag- флаг
bool$value- значение
Возвращает
void
setUserCost (   $cost)

Устанавливает персональную цену для данного товара если у товара указана персональная цена, метод getCost вернёт именно её все зависимости от параметров

Аргументы
float | null$cost- пользовательская цена в базовой валюте
Возвращает
void
setWarehousesForDynamicNum (   $warehouse_ids)

Добавляет к товару поле dynamic_num с остатком только на указанных складах. После вызова данного метода fillOffers() бдет также добавлять dynamic_num к каждой комплектации

Аргументы
int[]$warehouse_ids
shouldReserve ( )

Возвращает true, если необходимо отобразить форму предварительного заказа, иначе false Без учета статуса продаж

Возвращает
bool
specDirCount ( )

Возвращает количество спец категорий

Возвращает
integer
updateOffersJson (   $data,
  $update_db 
)
protected

Обновляет поле offers_json в БД

Аргументы
$data
$update_db
updateSearchIndex ( )

Обновляет поисковый индекс

useOffersUnconvertedPropsdata (   $bool = true)

Устанавливает, что при сохранении комплектаций, нужно учитывать поле _propsdata, в котором характеристики комплектаций находятся в денормализованном виде.

Аргументы
mixed$bool

Поля

$cache_amount_step = []
protected
$cache_max_order_quantity
protected
$cache_min_order_quantity
protected
$cache_visible_property
protected
$cache_warehouse_stick
protected
$calculate_user_cost = null
protected
$cost_list
staticprotected
$cost_title_id = []
staticprotected
$dimensions_object
protected
$dir_alias_cache = []
protected
$dirlist
staticprotected
$fast_mark_multioffers_use
protected
$fast_mark_offers_use
protected
$fast_mark_virtual_multioffers_use
protected
$files
protected
$flags = []
protected
$full_stock = null
protected
$keep_spec_dirs = false
protected
$keep_update_prod_cat = true
protected
$offer_xcost = []
protected
$property_name_id = []
staticprotected
$spec_dirs = []
staticprotected
$stock = null
protected
$table = 'product'
staticprotected
$user_cost
protected
const DP_COST_ID = 'cost_id'
const DP_NUM_HASH = 'dynamic_num_hash'
const DP_OLD_COST_ID = 'old_cost_id'
const FILE_ACCESS_HIDE = 0
const FILE_ACCESS_PAID = 2
const FILE_ACCESS_PUBLIC = 1
const FLAG_DONT_RESET_IMPORT_HASH = 'dont_reset_import_hash'
const FLAG_DONT_UPDATE_DIR_COUNTER = 'dont_update_dir_counter'
const FLAG_DONT_UPDATE_SEARCH_INDEX = 'dont_update_search_index'
const IMAGES_TYPE = 'catalog'
const MAX_RATING = 5
const ORDER_TYPE_ADVORDER = 'advorder'
const ORDER_TYPE_BASKET = 'basket'
const ORDER_TYPE_UNOBTAINABLE = 'unobtainable'
const SALE_STATUS_DEFAULT = 'default'
const SALE_STATUS_DISCONTINUED = 'discontinued'
const SALE_STATUS_NO_COST = 'no_cost'
const SALE_STATUS_ON_REQUEST = 'on_request'
const SALE_STATUS_SHOW_COST = 'show_cost'
const VIDEO_TYPE_DEFAULT = 'default'
const VIDEO_TYPE_SHORTS = 'shorts'