Версия: 6.x
burger close
Класс OfferApi
Граф наследования:OfferApi:
EntityList BaseModel

Подробное описание

API комплектаций товара

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

 __construct ()
 
 applyFormFilter ($get_filters, $url_params=[])
 
 getFormFilterParts ()
 
 saveOffers ($product_id, $offers, $use_unconverted_propsdata=false)
 
 updateProductNum ($product_id)
 
 deleteExcludedOffers ($product_id, $offers_ids)
 
 deleteOffersByProductId ($product_id)
 
 rebuildSortn ($product_id)
 
 multiUpdate (array $data, $ids=[])
 
 cleanUnusedOffers ()
 
 getOffersLinkDialogData ($mainoffer, $product_id, $photo_id=null)
 
 linkPhotosToOffers ($product_id, $photos_id, $offers_id, $mainoffer)
 
 setOfferAsMain ($offer_id, $main_offer_data, $main_barcode, $excost, $main_sku=null)
 
 updateLinkedProperties ($product_id)
 
 updateLinkedPropertiesForAllProducts ()
 
- Открытые члены унаследованные от EntityList
 __construct (AbstractObject $orm_element, array $options=[])
 
 setDefaultOrder ($order)
 
 getNameField ()
 
 setNameField ($field)
 
 setAliasField ($field)
 
 setSortField ($field)
 
 setIdField ($field)
 
 getIdField ()
 
 getSiteIdField ()
 
 setLoadOnDelete ($bool)
 
 setSiteContext ($site_id=null)
 
 getSiteContext ()
 
 setMultisite ($bool)
 
 isMultisite ()
 
 resetQueryObject ()
 
 getCleanQueryObject ()
 
 queryObj ()
 
 setQueryObj (\RS\Orm\Request $q)
 
 defAlias ()
 
 setFilter ($key, $value=null, $type= '=', $prefix= 'AND', array $options=[])
 
 clearFilter ()
 
 getList ($page=null, $page_size=null, $order=null)
 
 getListAsArray ($page=0, $page_size=0, $order= '')
 
 getListAsResource ($page=0, $page_size=0, $order= '')
 
 getPagedList ($page_size)
 
 loadAssocList ($key_field, $value=null)
 
 getAssocList ($key_field, $value=null)
 
 setOrder ($order=null, array $values=null)
 
 setGroup ($group=null)
 
 getListCount ()
 
 getFirst ()
 
 getOneItem ($id)
 
 getById ($id, $request=null)
 
 getElement ()
 
 setElement ($object)
 
 getElementClass ()
 
 getNewElement ()
 
 save ($id=null, array $user_post=[])
 
 addFilterControl (\RS\Html\Filter\Control $filter_control)
 
 addTableControl (\RS\Html\Table\Control $table_control)
 
 del (array $ids)
 
 multiDelete ($ids)
 
 getSelectList ($first=[])
 
 multieditFormView ($tpl_path, $formfile, array $addparam=[])
 
 multiUpdate (array $data, $ids=[])
 
 moveElement ($from, $to, $flag,\RS\Orm\Request $extra_expr=null)
 
 noWriteRights ($right=DefaultModuleRights::RIGHT_UPDATE)
 
 getIdByAlias ($alias_or_id, $alias_field=null)
 
 saveRequest ($key)
 
 getIdsByRequest (\RS\Orm\Request $request)
 
- Открытые члены унаследованные от BaseModel
 addError ($message, $fieldname=null, $form=null)
 
 hasError ()
 
 getErrors ()
 
 cleanErrors ()
 
 getDisplayErrors ()
 
 getErrorsStr ()
 
 getFormErrors ($form, $separator= ', ')
 
 getNonFormErrors ($separator= ', ')
 
 exportErrors ()
 
 importErrors ($data)
 

Поля данных

const MASS_SAVE_OFFER_OPERATION = 'mass-save-offer-operation'
 
- Поля данных унаследованные от EntityList
const WHERE_CONDITION_VAR = 'where_conditions'
 
- Поля данных унаследованные от BaseModel
 $form_fieldname = []
 
 $errors_by_form = []
 
 $errors_non_form = []
 
 $errors = []
 

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

 $filter_parts = []
 
- Защищенные данные унаследованные от EntityList
 $default_order
 
 $load_on_delete = false
 
 $id_field = 'id'
 
 $alias_field
 
 $sort_field
 
 $name_field
 
 $site_id_field = 'site_id'
 
 $is_multisite = false
 
 $site_context
 
 $def_table_alias = 'A'
 
 $obj
 
 $obj_instance
 
 $filter_active = false
 
 $multiedit_template = '%system%/coreobject/multiedit_form.tpl'
 
 $assocPlainList = []
 
 $parsePrefixes = ['&' => 'AND'
 
 $q
 
- Защищенные данные унаследованные от BaseModel
 $default_error_fieldname = 'Информация'
 

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

- Открытые статические члены унаследованные от EntityList
static getInstance ($key= 'default')
 
static staticSelectList ($first=[])
 
static getSavedRequest ($key, $default=null)
 
- Защищенные члены унаследованные от EntityList
 parseArrayFilter ($filters)
 
 filterLike ($key, $value, $type, $prefix, $options)
 
 filterIs ($key, $value, $type, $prefix, $options)
 
 filterFullText ($key, $value, $type, $prefix, $options)
 
 filterIn ($key, $value, $type, $prefix, $options)
 
 filterNotin ($key, $value, $type, $prefix, $options)
 
 filterDefault ($key, $value, $type, $prefix, $options)
 
 setPage ($page, $pageSize)
 
 moveArrayUp ($arr)
 
 moveArrayDown ($arr)
 
- Статические защищенные данные унаследованные от EntityList
static $instance = []
 

Конструктор(ы)

__construct ( )

Методы

applyFormFilter (   $get_filters,
  $url_params = [] 
)

Устанавливает фильтры по комплектациям для карточки товара

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

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

Возвращает
int возвращает
deleteExcludedOffers (   $product_id,
  $offers_ids 
)

Удаляет комплектации, которые которые удалены у товара

Аргументы
integer$product_id- id товара для которого исключаеются комплектации
array$offers_ids- id комлектаций, которые дожны быть не тронуты(остатся)
deleteOffersByProductId (   $product_id)

Удаляет комплектации по id товара или массиву с id товаров

Аргументы
integer | array$product_id- id товара или массив с id товаров
getFormFilterParts ( )

Возвращает установленные фильтры в карточке товара

Возвращает
array
getOffersLinkDialogData (   $mainoffer,
  $product_id,
  $photo_id = null 
)

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

Аргументы
array$mainoffer- основная комплектация [

]

Аргументы
integer | null$product_id- id товара
integer$photo_id- id фотографии
Возвращает
array [ 'params' => [ключ => [значение1, значение2, значение3]], 'offers' => [id комплектации => название], 'selected' => [id комплектации, id комплектации] ]
linkPhotosToOffers (   $product_id,
  $photos_id,
  $offers_id,
  $mainoffer 
)

Привязывает/отвязывает фото к комплектациям

Аргументы
array$photos_id
array$offers_id
Возвращает
array возвращает массив выбранных фото для Основной комплектации
multiUpdate ( array  $data,
  $ids = [] 
)

Обновляет свойства у группы объектов

Аргументы
array$data- ассоциативный массив со значениями обновляемых полей
array$ids- список id объектов, которые нужно обновить
Возвращает
integer - возвращает количество обновленных элементов
rebuildSortn (   $product_id)

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

saveOffers (   $product_id,
  $offers,
  $use_unconverted_propsdata = false 
)

Сохраняет комплектации для товара

Аргументы
integer$product_idID товара
array$offersмассив с комплектациями. Если передан один элемент с ключем main, значит передана только основная комплектация. В этом случае Дополнительные комплектации (где sortn>0) не будут затронуты. В противном случае (когда все ключи - числовые), считается, что переданные комплектации должны полностью заместить существующие комплектации.
bool$use_unconverted_propsdata- Если true, то будет учитываться _propsdata для сохранения характеристик комплектаций
Возвращает
void
Исключения
EventException
\RS\Orm\Exception
setOfferAsMain (   $offer_id,
  $main_offer_data,
  $main_barcode,
  $excost,
  $main_sku = null 
)

Делает комплектацию offer_id основной, а основную комплектацию перемещает на место offer_id

Аргументы
integer$offer_id- ID комплектации, которую нужно сделать основной
array$main_offer_data- массив с данными основной комплектации (которая может быть еще не присутствует в базе)
array$excost- цены основной комплектации, которые могут еще не присутствовать в базе
Возвращает
array | false
updateLinkedProperties (   $product_id)

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

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

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

Возвращает
void
updateProductNum (   $product_id)

Обновляет общее количество товара, на основе количества комплектаций

Аргументы
integer$product_id- id товара
Возвращает
void

Поля

$filter_parts = []
protected
const MASS_SAVE_OFFER_OPERATION = 'mass-save-offer-operation'