Plentymarkets interface documentation

Catalog

Containers

CatalogMappingValueContainer

The CatalogMappingValueContainer collects and returns multiple CatalogMappingValues.

Namespace

Plenty\Modules\Catalog\Containers

Methods
public addMappingValue($value):void

Add a mapping value to the container

Parameters

Name

Type

Description

$value

CatalogMappingValue

public getMappingValues():array

Get all mapping values that are collected in the container.

CatalogTemplateFieldContainer

The CatalogTemplateFieldContainer collects and returns multiple CatalogTemplateFields.

Namespace

Plenty\Modules\Catalog\Containers

Methods
public addField($field):void

Add a field to the container.

Parameters

Name

Type

Description

$field

CatalogTemplateFieldContract

public getField($key):Plenty\Modules\Catalog\Contracts\CatalogTemplateFieldContract
Return type: CatalogTemplateFieldContract

Get a specified field out of the container.

Parameters

Name

Type

Description

$key

string

public getFields():array

Get all fields that are collected in the container.

TemplateGroupContainer

The TemplateGroupContainer collects all groups of a specific template.

Namespace

Plenty\Modules\Catalog\Containers

Methods
public addGroup($group):void
Parameters

Name

Type

Description

$group

TemplateGroup

public getGroups():array
public getGroup($identifier):Plenty\Modules\Catalog\Models\TemplateGroup
Return type: TemplateGroup
Parameters

Name

Type

Description

$identifier

string

Contracts

CatalogContentRepositoryContract

The CatalogContentRepositoryContract is the interface for the catalogue content repository. This interface allows to read and update a catalogue's content. The content contains the specific catalogue data that is used in the exports.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public get($id):array

Returns the content of the catalogue.

Parameters

Name

Type

Description

$id

string

The id of the catalogue

public update($id, $data):array

Updates the content of the catalogue.

Parameters

Name

Type

Description

$id

string

The id of the catalogue

$data

array

The content that should be inserted into the catalogue

CatalogExportFilterServiceContract

To be written

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public applyFilters($documentSearch, $config):void
Parameters

Name

Type

Description

$documentSearch

DocumentSearch

$config

array

CatalogExportRepositoryContract

The CatalogExportRepositoryContract is the interface for the catalogue export repository. It allows to receive an instance of CatalogExportServiceContract to export a specific catalogue.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public exportById($id):Plenty\Modules\Catalog\Contracts\CatalogExportServiceContract
Return type: CatalogExportServiceContract

Returns an instance of CatalogExportServiceContract to export a specific catalogue.

Parameters

Name

Type

Description

$id

string

The id of the catalogue

public initiateQueue($id):void

Initiates the queue which exports a specific catalogue.

Parameters

Name

Type

Description

$id

string

public download($id, $hash = "", $extension = "csv", $public = false, $token = ""):array

Provides the response with file attachment to download in browser

Parameters

Name

Type

Description

$id

string

$hash

string

$extension

string

$public

bool

$token

string

CatalogExportServiceContract

The CatalogExportServiceContract is the interface for the catalogue export service. It allows you to configure and start the export of a catalogue.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public setAdditionalFields($additionalFields):void
Deprecated!

Use fields with the attribute 'hidden' and 'default' in Plenty\Modules\Catalog\Contracts\DataProviderContract::getData instead

Specifies fields that should be exported in addition to the mappings configured in the catalogue.

Parameters

Name

Type

Description

$additionalFields

array

The fields that should be exported additionally. Each field will be specified by an entry in the array, while the key of that entry determines the key that the field will have in the exported item.

public addMutator($mutator):void
Deprecated!

Use Plenty\Modules\Catalog\Contracts\TemplateContract::getPreMutators or Plenty\Modules\Catalog\Contracts\TemplateContract::getPostMutators instead.

Parameters

Name

Type

Description

$mutator

callable

public setSettings($settings):void

Defines the settings that are used in the mappings and for filtering.

Parameters

Name

Type

Description

$settings

array

public setNumberOfDocumentsPerShard($numberOfDocumentsPerShard):void
Deprecated!

Use Plenty\Modules\Catalog\Contracts\CatalogExportServiceContract::setItemsPerPage instead.

Parameters

Name

Type

Description

$numberOfDocumentsPerShard

int

public setItemsPerPage($itemsPerPage):void

Defines the amount of items that will be returned in each iteration of the export. In specific formats such as variation, it can have more results e.g. if items per page is set to 500, but variations 500 and 501 belong to the same item. In this case, variation 501 will also be returned.

Parameters

Name

Type

Description

$itemsPerPage

int

The amount of items per page

public setPage($page):void

Defines the page number that will be returned

Parameters

Name

Type

Description

$page

int

public setUpdatedSince($timestamp):void

Limits the results of items to only those that were updated after the given timestamp.

Parameters

Name

Type

Description

$timestamp

Carbon

public getResult():Plenty\Modules\Catalog\Models\CatalogExportResult
Return type: CatalogExportResult

Returns an instance of CatalogExportResult, which can be iterated to receive the different pages of the exported data.

public buildQueuedAsyncExport():void

ASYNC - Returns an instance of CatalogExportResult, which can be iterated to receive the different pages of the exported data.

public getAsyncResultPage($page):array

Builds a single page of the export and uploads it to S3

Parameters

Name

Type

Description

$page

int

public getPreview():void

CatalogGroupedTemplateProviderContract

The CatalogGroupedTemplateProviderContract is the interface that has to be implemented by the catalogue template providers. Each registered template should have a catalogue template provider (multiple templates can use the same one) to avoid booting them if they are not necessary. A catalogue template provider fills a template with data at the moment the template gets booted.Use the abstract class Plenty\Modules\Catalog\Templates\Providers\AbstractGroupedTemplateProvider.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public getTemplateGroupContainer():Plenty\Modules\Catalog\Containers\TemplateGroupContainer
Return type: TemplateGroupContainer

Returns a container in which all TemplateGroups of this template are collected.

public getFilter():array

Returns the filters that will be applied in each export of templates that will be booted by this provider.

public getPreMutator():Plenty\Modules\Catalog\Contracts\CatalogMutatorContract
Return type: CatalogMutatorContract

Returns the Mutator instance that should be called to manipulate data before the mapping.

public getPostMutator():Plenty\Modules\Catalog\Contracts\CatalogMutatorContract
Return type: CatalogMutatorContract

Returns the Mutator instance that should be called to manipulate data after the mapping.

public getSkuCallback():callable

Returns a callback function that is called if a field with the specific key "sku" got mapped. The function will receive the value that got mapped, the raw data array of this item and the type of the mapped source. It should return the new value (e.g. function ($value, array $item, $mappingType){ --your code-- return $value})).

public getSettings():array

Returns an array of settings that will be displayed in the UI of each catalogue with a template that uses this provider. The selected values for all those settings can then be used in the export.

public getMetaInfo():array

Returns an array of meta information which can be used to forward information to the export which could otherwise not be received.

public getCustomFilters():array
public getAssignments():array

CatalogMappingValueProviderContract

The CatalogMappingValueProvider provides all mapping values for a specific field.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public getValueById($id):Plenty\Modules\Catalog\Models\CatalogMappingValue
Return type: CatalogMappingValue

Get a CatalogMappingValue specified by its id

Parameters

Name

Type

Description

$id

string

public getValuesByParentId($parentId = null):Plenty\Modules\Catalog\Containers\CatalogMappingValueContainer
Return type: CatalogMappingValueContainer

Get a CatalogMappingValueContainer that contains all CatalogMappingValues that match the given parentId. If no parentId is provided, all CatalogMappingValues that have no parent value are returned.

Parameters

Name

Type

Description

$parentId

string

public getValues($params = []):Plenty\Modules\Catalog\Containers\CatalogMappingValueContainer
Return type: CatalogMappingValueContainer

Get a CatalogMappingValueContainer dependent on provided params.

Parameters

Name

Type

Description

$params

array

CatalogMutatorContract

The CatalogMutatorContract represents one mutator that will be used to manipulate a specific item in the export either before or after it has been mapped.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public mutate($item):void
Parameters

Name

Type

Description

$item

CatalogRepositoryContract

The CatalogRepositoryContract is the interface for the catalogue repository. It allows you to create, read, update and delete catalogues.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public create($data):Plenty\Modules\Catalog\Models\Catalog
Return type: Catalog

Create a catalog

Parameters

Name

Type

Description

$data

array

public update($id, $data):Plenty\Modules\Catalog\Models\Catalog
Return type: Catalog

Update a catalog

Parameters

Name

Type

Description

$id

string

$data

array

public get($id):Plenty\Modules\Catalog\Models\Catalog
Return type: Catalog

Get the latest version of a catalog

Parameters

Name

Type

Description

$id

string

public getByVersion($id, $version = ""):Plenty\Modules\Catalog\Models\Catalog
Return type: Catalog

Get a specific version of a catalog

Parameters

Name

Type

Description

$id

string

$version

string

public restoreVersion($id, $version = ""):Plenty\Modules\Catalog\Models\Catalog
Return type: Catalog

Restore a past version of a catalog to become latest

Parameters

Name

Type

Description

$id

string

$version

string

public listVersions($id):Illuminate\Support\Collection
Return type: Collection

Lists catalog versions

Parameters

Name

Type

Description

$id

string

Catalog ID

public getArchive():array

Gets the archive

public restoreArchived($id):Plenty\Modules\Catalog\Models\Catalog
Return type: Catalog

Restores an archived catalog

Parameters

Name

Type

Description

$id

string

public delete($id):bool

Delete a catalog

Parameters

Name

Type

Description

$id

string

Catalog ID

public copy($data):array

Copy a catalog or multiple catalogs

Parameters

Name

Type

Description

$data

array

public copyCatalog($id, $modifiedAttributes):Plenty\Modules\Catalog\Models\Catalog
Return type: Catalog

Copy a single catalog

Parameters

Name

Type

Description

$id

string

Catalog ID

$modifiedAttributes

array

Attributes to add or modify

public copyCatalogFormat($catalogId, $data):array

Copy a catalog format

Parameters

Name

Type

Description

$catalogId

string

Catalog ID

$data

array

public all($page = 1, $perPage = 25):Plenty\Repositories\Models\PaginatedResult
Return type: PaginatedResult

Get list of all catalogs

Parameters

Name

Type

Description

$page

int

$perPage

int

public activate($id, $active):array

Activate a catalog

Parameters

Name

Type

Description

$id

string

$active

bool

public getCatalogPreview($id):array

Gets the preview for an export with a specific catalog

Parameters

Name

Type

Description

$id

string

public migrate():bool

Migrates catalogs from Dynamo DB to S3

public generateToken():string

Generates an alphanumeric token

public buildDownloadPublicURL($id, $data):string

Builds the catalog's public download url

Parameters

Name

Type

Description

$id

string

$data

array

public buildDownloadPrivateURL($id, $data):string

Builds the catalog's private download url

Parameters

Name

Type

Description

$id

string

$data

array

public exportCatalog($id):array

Exports the catalog. The catalog ID is required.

Parameters

Name

Type

Description

$id

string

public importCatalog($content):Plenty\Modules\Catalog\Models\Catalog
Return type: Catalog

Imports the catalog. The catalog ID is required.

Parameters

Name

Type

Description

$content

string

public setFilters($filters = []):void

Sets the filter array.

Parameters

Name

Type

Description

$filters

array

public getFilters():void

Returns the filter array.

public getConditions():void

Returns a collection of parsed filters as Condition object

public clearFilters():void

Clears the filter array.

CatalogResultConverterContract

To be written

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public addData($data):void

Through this a single entry of a catalog result should be added

Parameters

Name

Type

Description

$data

public getConvertedResult():string

Converts the data that was inserted into the specific output format

public getType():string

Returns the type of the converted result

public clear():void

CatalogRuntimeConfigContract

To be written

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public applyRuntimeConfig($template, $catalog):void

Will be run before every export and is meant to provide filters on the template which can't be defined before the runtime of the export

Parameters

Name

Type

Description

$template

TemplateContract

$catalog

Catalog

public applyPreviewRuntimeConfig($template, $catalog):void

Will be run before every preview and is meant to provide filters on the template which can't be defined before the runtime of the preview

Parameters

Name

Type

Description

$template

TemplateContract

$catalog

Catalog

CatalogRuntimeConfigProviderContract

To be written

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public isPreviewable():bool

Determines if a preview can be exported through catalogs that use the specific template

public getRuntimeConfigClass():string

Returns a class name through which the export can be configured with information that isn't known before the export runtime

public getResultConverterClass():string

Returns a class name through which the export result can be converted into the necessary format (e.g. json or csv)

CatalogTemplateFieldCallableContract

The CatalogTemplateFieldCallableContract is the Interface that has to be implemented by each callable that is going to be linked to a field.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public call($item, $value, $originType):void

This method will be called if the linked field is mapped. The method will receive the loaded data for the item, the value that was mapped by the catalog and the origin of that value.

Parameters

Name

Type

Description

$item

$value

$originType

string

CatalogTemplateFieldContract

The CatalogTemplateFieldContract representes a single field in a template. Use a specific implementation of this interface to create a field.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public getExportKey():string

Returns the key that will be present in the exported result

public getKey():string

Returns a unique identifier for this field

public getLabel():string

Returns the label of the field that will be visible in the UI

public isRequired():bool

Defines if the field is required.

public isLocked():bool

Defines if the field is locked. Locked fields will be visible in the UI but can not be overwritten.

public isArray():bool

Defines if (true) all found sources will be exported as an array or (false) the first filled source will be used to fill the field.

public getCallable():Plenty\Modules\Catalog\Contracts\CatalogTemplateFieldCallableContract
Return type: CatalogTemplateFieldCallableContract

Returns a callable that should be run after mapping the field to manipulate it if necessary.

public getMeta():array

Returns an array of meta information that will not be used by the catalog itself. This array can be used to pass data through the export that the specific implementation needs.

public getDefaultSources():array

Returns an array of default sources. Default sources will be used if no other sources are manually added through the UI.

public getMappingValueProvider():Plenty\Modules\Catalog\Contracts\CatalogMappingValueProviderContract
Return type: CatalogMappingValueProviderContract
public getNestedFields():Plenty\Modules\Catalog\Containers\CatalogTemplateFieldContainer
Return type: CatalogTemplateFieldContainer
public getType():int

CatalogTemplateProviderContract

The CatalogTemplateProviderContract is the interface that has to be implemented by the catalogue template providers. Each registered template should have a catalogue template provider (multiple templates can use the same one) to avoid booting them if they are not necessary. A catalogue template provider fills a template with data at the moment the template gets booted. Whenever it is possible, use the abstract class Plenty\Modules\Catalog\Templates\BaseTemplateProvider.

Deprecated!

Use \Plenty\Modules\Catalog\Contracts\CatalogGroupedTemplateProviderContract instead.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public getMappings():array
Deprecated!

Whole interface is deprecated

Returns the different mapping sections including the information which data provider fills them. Each entry in the array represents a section of the catalogue UI.

public getFilter():array
Deprecated!

Whole interface is deprecated

Returns the filters that will be applied in each export of templates that will be booted by this provider.

public getPreMutators():array
Deprecated!

Whole interface is deprecated

Returns the callback functions that will be applied to the raw data (so before the mapping occurs) of each item in the export. Every callback function will receive an array of the raw item data and should return this array with the changes that should be applied (e.g. function (array $item){ --your code-- return $item}).

public getPostMutators():array
Deprecated!

Whole interface is deprecated

Returns the callback functions that will be applied to the mapped data of each item in the export. Every callback function will receive an array of the mapped item data und should return this array with the changes that should be applied (e.g. function (array $item){ --your code-- return $item}).

public getSkuCallback():callable
Deprecated!

Whole interface is deprecated

Returns a callback function that is called if a field with the specific key "sku" got mapped. The function will receive the value that got mapped, the raw data array of this item and the type of the mapped source. It should return the new value (e.g. function ($value, array $item, $mappingType){ --your code-- return $value})).

public getSettings():array
Deprecated!

Whole interface is deprecated

Returns an array of settings that will be displayed in the UI of each catalogue with a template that uses this provider. The selected values for all those settings can then be used in the export.

public getMetaInfo():array
Deprecated!

Whole interface is deprecated

Returns an array of meta information which can be used to forward information to the export which could otherwise not be received.

DataProviderContract

The DataProviderContract is the interface for data providers. Data providers provide the available fields that can be mapped in a template to create a catalogue. Whenever it is possible, use one of the concrete implementations Plenty\Modules\Catalog\DataProviders\BaseDataProvider, Plenty\Modules\Catalog\DataProviders\KeyDataProvider or Plenty\Modules\Catalog\DataProviders\NestedKeyDataProvider.

Deprecated!

Use \Plenty\Modules\Catalog\Contracts\CatalogTemplateFieldContract instead.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public getData($query = ""):array
Deprecated!

Whole interface is deprecated

Returns the data that should be provided.

Parameters

Name

Type

Description

$query

string

public setTemplate($template):void
Deprecated!

Whole interface is deprecated

Parameters

Name

Type

Description

$template

TemplateContract

public setMapping($mapping):void
Deprecated!

Whole interface is deprecated

Parameters

Name

Type

Description

$mapping

array

FieldGroupRepositoryContract

The FieldGroupRepositoryContract is the contract for the field group repository. It allows to retrieve fields of a field group. Field groups represent the different groups of available sources that can be seen in the data picker component in the catalogue UI. Each field represents a mappable source.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public getFields($id, $page, $itemsPerPage, $parentId = null):Plenty\Repositories\Models\PaginatedResult
Return type: PaginatedResult

Get list of fields

Parameters

Name

Type

Description

$id

string

$page

int

$itemsPerPage

int

$parentId

string

public getSearchFields($id, $hidden = []):array

Get list of fields for search

Parameters

Name

Type

Description

$id

string

$hidden

array

public getFieldById($id, $fieldId):array

Get field by id

Parameters

Name

Type

Description

$id

string

$fieldId

string

public getFieldsByCatalogId($id, $catalogId):array

Get Fields by id of the catalog

Parameters

Name

Type

Description

$id

string

$catalogId

string

public fieldValuesTree($id, $page, $itemsPerPage):array
Parameters

Name

Type

Description

$id

string

$page

int

$itemsPerPage

int

NestedDataProviderContract

The NestedDataProviderContract is the interface for nested data providers. Nested data providers are used to provide nested options that can be selected for export. E.g. a list of categories of a specific marketplace. Whenever it is possible, use the concrete implementation Plenty\Modules\Catalog\DataProviders\NestedKeyDataProvider.

Deprecated!

Use \Plenty\Modules\Catalog\Contracts\CatalogTemplateFieldContract instead.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public getNestedData($parentId, $query = "", $meta = []):array
Deprecated!

Whole interface is deprecated

Returns the data of a specific level, which is determined via the id of a parent value.

Parameters

Name

Type

Description

$parentId

string

$query

string

$meta

array

public getDataByValue($id):array
Deprecated!

Whole interface is deprecated

Returns a specific value of the nested data determined by its id.

Parameters

Name

Type

Description

$id

string

public getData($query = ""):array
Deprecated!

Whole interface is deprecated

Returns the data that should be provided.

Parameters

Name

Type

Description

$query

string

public setTemplate($template):void
Deprecated!

Whole interface is deprecated

Parameters

Name

Type

Description

$template

TemplateContract

public setMapping($mapping):void
Deprecated!

Whole interface is deprecated

Parameters

Name

Type

Description

$mapping

array

TemplateContainerContract

The TemplateContainerContract is the interface of the template container. The template container is a singleton, which allows to register and retrieve templates.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public register($name, $type, $providerClass = "", $exportType = "Plenty\Modules\Catalog\Dummy\VariationCatalogExportType"):Plenty\Modules\Catalog\Contracts\TemplateContract
Return type: TemplateContract

Registers a new template that can be used to create a catalogue.

Parameters

Name

Type

Description

$name

string

The specific name of the template

$type

string

The type of the template. Multiple templates can be grouped in one type

$providerClass

string

Class name of the provider that boots the template

$exportType

string

Determines which data is available for mappings in the export. The default is variation data. (Currently only variation data can be exported via catalogues.)

public getTemplates():array

Returns all registered templates.

public getTemplate($identifier):Plenty\Modules\Catalog\Contracts\TemplateContract
Return type: TemplateContract

Returns a specific template by its identifier.

Parameters

Name

Type

Description

$identifier

string

public getTemplateWithoutBootingIt($identifier):Plenty\Modules\Catalog\Contracts\TemplateContract
Return type: TemplateContract

Returns a specific template by its identifier without booting it.

Parameters

Name

Type

Description

$identifier

string

TemplateContract

The TemplateContract is the interface for templates. Templates are used to define a specific schema that can be used to create and configure a catalogue.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public getName():string

Returns the name of the template.

public getType():string

Returns the type of the template.

public getExportType():string

Returns the export type of the template.

public getMappings():array
Deprecated!

All templates that are provided by \Plenty\Modules\Catalog\Contracts\CatalogGroupedTemplateProviderContract should use Plenty\Modules\Catalog\Contracts\TemplateContract::getGroupContainer instead.

Returns the mappings of a template.

public addMapping($mapping):void
Deprecated!

All templates that are provided by \Plenty\Modules\Catalog\Contracts\CatalogGroupedTemplateProviderContract should use Plenty\Modules\Catalog\Contracts\TemplateContract::addGroupContainer instead.

Adds a mapping to the template. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$mapping

array

public getGroupContainer():Plenty\Modules\Catalog\Containers\TemplateGroupContainer
Return type: TemplateGroupContainer

Returns a container that contains all groups of fields that are present in this template. Each group will represent a portlet in the catalog UI. The order of the portlets is identical to the order the groups were added to the container.

public addGroupContainer($groupContainer):void

Adds a group of fields to the template. Those groups will be displayed in the UI. The position in the UI depends on the order of adding the groups to the template.

Parameters

Name

Type

Description

$groupContainer

TemplateGroupContainer

public addMutator($callback):void
Deprecated!

Use Plenty\Modules\Catalog\Contracts\TemplateContract::setPostMutator instead.

Parameters

Name

Type

Description

$callback

callable

public addPreMutator($callback):void
Deprecated!

Premutators will be removed entirely in the near future. Please do not use them in any new implementation.

Adds a pre mutator to the template. Pre mutators are applied to the export data before the mapping occurs. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$callback

callable

public addPostMutator($callback):void
Deprecated!

Use Plenty\Modules\Catalog\Contracts\TemplateContract::setPreMutator or Plenty\Modules\Catalog\Contracts\TemplateContract::setPostMutator instead.

Adds a post mutator to the template. Post mutators are applied to the export data once the mapping occurred. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$callback

callable

public setPreMutator($preMutator):void
Deprecated!

Premutators will be removed entirely in the near future. Please do not use them in any new implementation

Defines the pre mutator of the template. The pre mutator is applied to the export data before the mapping occurs. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$preMutator

CatalogMutatorContract

public setPostMutator($postMutator):void

Defines the post mutator of the template. The post mutator is applied to the export data once the mapping occurred. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$postMutator

CatalogMutatorContract

public getFilter():array

Returns the filters of the template.

public addFilter($filter):void

Adds a filter to the template. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$filter

array

public getIdentifier():string

Returns the unique identifier of the template.

public getMutators():array
Deprecated!

Use Plenty\Modules\Catalog\Contracts\TemplateContract::getPreMutators or Plenty\Modules\Catalog\Contracts\TemplateContract::getPostMutators instead.

public getPreMutators():array
Deprecated!

Use Plenty\Modules\Catalog\Contracts\TemplateContract::getPreMutator instead.

Returns the pre mutators of the template.

public getPostMutators():array
Deprecated!

Use Plenty\Modules\Catalog\Contracts\TemplateContract::getPostMutator instead.

Returns the post mutators of the template.

public getPreMutator():Plenty\Modules\Catalog\Contracts\CatalogMutatorContract
Deprecated!

Premutators will be removed entirely in the near future. Please do not use them in any new implementation.

Return type: CatalogMutatorContract

Returns the pre mutator of the template.

public getPostMutator():Plenty\Modules\Catalog\Contracts\CatalogMutatorContract
Return type: CatalogMutatorContract

Returns the post mutator of the template.

public setSkuCallback($callback):void

Defines the callback function that will be called after the mapping is done for a field with the key "sku".

Parameters

Name

Type

Description

$callback

callable

public getSkuCallback():callable

Retrieves the callback function that will be called after the mapping is done for a field with the key "sku".

public addSetting($setting):void

Adds a setting to the templates. Settings create components in the UI of catalogues which use this template. The components will provide data for the export in accordance with the user input in the catalogue. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$setting

array

public getSettings():array

Returns the settings of a template.

public setMetaInfo($meta):void

Sets the meta info for a template. Meta info is used to provide data which has to be known when working with the template. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$meta

array

public getMetaInfo():array

Returns the meta info of a template.

public isPreviewable():bool

Determines if this template supports preview exports

public allowPreview($isPreviewable):void

Used to activate / deactivate the possibility to export previews through this template

Parameters

Name

Type

Description

$isPreviewable

bool

public hasRuntimeConfig():bool
public hasResultConverter():bool
public getRuntimeConfig():Plenty\Modules\Catalog\Contracts\CatalogRuntimeConfigContract
Return type: CatalogRuntimeConfigContract
public getResultConverter():Plenty\Modules\Catalog\Contracts\CatalogResultConverterContract
Return type: CatalogResultConverterContract
public getCustomFilter():array

Returns the custom filters of the template.

public addCustomFilter($customFilter):void

Adds a custom filter to the template. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$customFilter

array

public getAssignments():array

Returns the general assignment of the template.

public addAssignment($assignment):void

Adds a general assignment to the template. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$assignment

array

public isBooted():bool

Returns the current boot state of the template.

public translatedToArray($language):array
Parameters

Name

Type

Description

$language

string

public toArray():array

Get the instance as an array.

public jsonSerialize():void

TemplateRepositoryContract

The TemplateRepositoryContract is the interface for the template repository. It allows to retrieve templates and their mappings.

Namespace

Plenty\Modules\Catalog\Contracts

Methods
public getTemplates():array

Get list of templates

public getTemplate($id, $data):array

Get template

Parameters

Name

Type

Description

$id

string

$data

string

public getMappings($id):array

Get list of mappings

Parameters

Name

Type

Description

$id

string

public getMapping($id, $mappingId):array

Get mapping

Parameters

Name

Type

Description

$id

string

$mappingId

string

public getMappingData($id, $mappingId, $parentId = null):array

Get mapping data

Parameters

Name

Type

Description

$id

string

$mappingId

string

$parentId

string

public getMappingDataById($id, $mappingId, $dataId):array

Get mapping data by id

Parameters

Name

Type

Description

$id

string

$mappingId

string

$dataId

string

public test($id):void

Test export of a catalog

Parameters

Name

Type

Description

$id

string

public getAllMappings($id):array

Get all mappings

Parameters

Name

Type

Description

$id

string

public getAssignments($id):array

Get assignments

Parameters

Name

Type

Description

$id

string

DataProviders

BaseDataProvider

The BaseDataProvider is used to define a section of simple mappings in the catalogue. A simple mapping refers to the assignment of a value in the plentymarkets system or a manually predefined value to a specific key. E.g. mapping the value of a specific text property to the key 'description'.

Deprecated!

Use Plenty\Modules\Catalog\Models\SimpleTemplateField instead.

Namespace

Plenty\Modules\Catalog\DataProviders

Methods
public getRows():array
public setTemplate($template):void
Parameters

Name

Type

Description

$template

TemplateContract

public setMapping($mapping):void
Parameters

Name

Type

Description

$mapping

array

KeyDataProvider

The KeyDataProvider is used to define a section of a complex mapping in the catalogue. A complex mapping refers to the assignment of a value from a predefined list of possible values to a key if a specific requirement is met. E.g. put the value 'awesomeBrand' into the key 'brand', if manufacturer 'awesomeManufacturer' is linked to a variation.

Deprecated!

Use Plenty\Modules\Catalog\Models\ComplexTemplateField instead.

Namespace

Plenty\Modules\Catalog\DataProviders

Methods
public getKey():string
public getRows():array
public setTemplate($template):void
Parameters

Name

Type

Description

$template

TemplateContract

public setMapping($mapping):void
Parameters

Name

Type

Description

$mapping

array

NestedKeyDataProvider

The NestedKeyDataProvider is used to define a section of a complex mapping in the catalogue. It is specifically used if the list of available values contains nested values. E.g. a list of categories with sub-categories.

Deprecated!

Use Plenty\Modules\Catalog\Models\ComplexTemplateField instead.

Namespace

Plenty\Modules\Catalog\DataProviders

Methods
public getKey():string
public getNestedRows($parentId):array
Parameters

Name

Type

Description

$parentId

public getMetaData():void
public getNestedData($parentId, $query = "", $meta = []):array
Parameters

Name

Type

Description

$parentId

string

$query

string

$meta

array

public getRows():array
public setTemplate($template):void
Parameters

Name

Type

Description

$template

TemplateContract

public setMapping($mapping):void
Parameters

Name

Type

Description

$mapping

array

public getDataByValue($id):array
Deprecated!

Whole interface is deprecated

Returns a specific value of the nested data determined by its id.

Parameters

Name

Type

Description

$id

string

Helpers

ContentTypeHelper

Provides a list of valid content types that can be returned in a CatalogResultConverter

Namespace

Plenty\Modules\Catalog\Helpers

Methods
public static isValidType($type):bool

Checks wether a given type is valid as return type in a CatalogResultConverter

Parameters

Name

Type

Description

$type

string

Models

Catalog

The catalog model - stores on S3

Namespace

Plenty\Modules\Catalog\Models

Properties
Name Type Description

data

array

Contains the mappings and template settings

settings

array

Contains the settings

name

string

The name of the catalogue

template

string

The id of the template that was used to create the catalogue

id

string

The id of the catalogue

active

bool

Determines whether a catalogue can be exported

showMandatoryFields

bool

Determines if only the mandatory fields should be displayed in the catalogue UI

updatedAt

string

The updated at date in W3C

createdAt

string

The created at date in W3C

Methods
public toArray()

Returns this model as an array.

CatalogExportResult

The CatalogExportResult represents the exported data in a specific catalogue export. It implements the Iterator interface and can therefore be used in a foreach loop to retrieve the different pages of the export data.

Namespace

Plenty\Modules\Catalog\Models

Methods
public toArray()

Returns this model as an array.

CatalogMappingValue

A CatalogMappingValue represents a single available option in the catalog UI.

Namespace

Plenty\Modules\Catalog\Models

Methods
public toArray()

Returns this model as an array.

ComplexTemplateField

To be written.

Namespace

Plenty\Modules\Catalog\Models

Methods
public toArray()

Returns this model as an array.

SimpleTemplateField

To be written.

Namespace

Plenty\Modules\Catalog\Models

Methods
public toArray()

Returns this model as an array.

TemplateGroup

A TemplateGroup represents a portlet in the catalog UI. Each container field will be displayed in the same portlet. The order of the fields depends on the order they were added into the group.

Namespace

Plenty\Modules\Catalog\Models

Methods
public toArray()

Returns this model as an array.

Templates

BaseTemplateProvider

The BaseTemplateProvider is the abstract class that should be used to implement a template provider.

Deprecated!

Use Plenty\Modules\Catalog\Templates\Providers\AbstractGroupedTemplateProvider instead.

Namespace

Plenty\Modules\Catalog\Templates

Methods
public getMappings():array
public getPreMutators():array
public getPostMutators():array
public getFilter():array
public getSkuCallback():callable
public getSettings():array
public getMetaInfo():array
public getCustomFilters():array
public getAssignments():array

Template

Templates are used to define a schema for the creation of catalogues.

Namespace

Plenty\Modules\Catalog\Templates

Methods
public getMappings():array

Returns the mappings of a template.

public addMapping($section):void

Adds a mapping to the template. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$section

array

public addMutator($callback):void
Deprecated!

Use Plenty\Modules\Catalog\Contracts\TemplateContract::addPreMutator or Plenty\Modules\Catalog\Contracts\TemplateContract::addPreMutator instead.

Parameters

Name

Type

Description

$callback

callable

public getMutators():array
Deprecated!

Use Plenty\Modules\Catalog\Contracts\TemplateContract::getPreMutators or Plenty\Modules\Catalog\Contracts\TemplateContract::getPostMutators instead.

public addPreMutator($callback):void

Adds a pre mutator to the template. Pre mutators are applied to the export data before the mapping occurs. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$callback

callable

public addPostMutator($callback):void

Adds a post mutator to the template. Post mutators are applied to the export data once the mapping occurred. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$callback

callable

public getFilter():array

Returns the filters of the template.

public addFilter($filter):void

Adds a filter to the template. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$filter

array

public getPreMutators():array

Returns the pre mutators of the template.

public getPostMutators():array

Returns the post mutators of the template.

public setSkuCallback($callback):void

Defines the callback function that will be called after the mapping is done for a field with the key "sku".

Parameters

Name

Type

Description

$callback

callable

public getSkuCallback():callable

Returns the callback function that will be called after the mapping is done for a field with the key "sku"

public addSetting($setting):void

Adds a setting to the templates. Settings create components in the UI of catalogues which use this template. The components will provide data for the export in accordance with the user input in the catalogue. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$setting

array

public getSettings():array

Returns the settings of a template.

public setMetaInfo($meta):void

Sets the meta info for a template. Meta info is used to provide data which has to be known when working with the template. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$meta

array

public getMetaInfo():void
public getGroupContainer():Plenty\Modules\Catalog\Containers\TemplateGroupContainer
Return type: TemplateGroupContainer
public addGroupContainer($groupContainer):void
Parameters

Name

Type

Description

$groupContainer

TemplateGroupContainer

public getPreMutator():Plenty\Modules\Catalog\Contracts\CatalogMutatorContract
Return type: CatalogMutatorContract
public getPostMutator():Plenty\Modules\Catalog\Contracts\CatalogMutatorContract
Return type: CatalogMutatorContract
public setPreMutator($preMutator):void
Parameters

Name

Type

Description

$preMutator

CatalogMutatorContract

public setPostMutator($postMutator):void
Parameters

Name

Type

Description

$postMutator

CatalogMutatorContract

public getCustomFilter():array

Returns the custom filters of the template.

public addCustomFilter($customFilter):void

Adds a custom filter to the template. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$customFilter

array

public getAssignments():array

Returns general assignments.

public addAssignment($assignment):void

Adds a general assignments to the template. If possible, don't use this directly and let it be handled by the catalogue template provider.

Parameters

Name

Type

Description

$assignment

array

public getName():string
public getExportType():string
public getType():string
public translatedToArray($language):array
Parameters

Name

Type

Description

$language

string

public toArray():array
public jsonSerialize():void
public getIdentifier():string
public getFormatSettings():array
public getExportSettings():array
public isPreviewable():bool
public allowPreview($isPreviewable):void
Parameters

Name

Type

Description

$isPreviewable

bool

public getRuntimeConfig():Plenty\Modules\Catalog\Contracts\CatalogRuntimeConfigContract
Return type: CatalogRuntimeConfigContract
public getResultConverter():Plenty\Modules\Catalog\Contracts\CatalogResultConverterContract
Return type: CatalogResultConverterContract
public hasRuntimeConfig():bool
public hasResultConverter():bool
public isBooted():bool

Contracts

Status

CatalogStatusRepositoryContract

Get, list, create, update and delete catalog statuses.

Namespace

Plenty\Modules\Catalog\Contracts\Status

Methods
public create($data):void

Create catalog status

Parameters

Name

Type

Description

$data

array

public get($id):void

Get a catalog status

Parameters

Name

Type

Description

$id

int

public list($page = 1, $perPage = \Plenty\Modules\Catalog\Models\Status\CatalogStatus::ITEMS_PER_PAGE, $filters = []):Plenty\Repositories\Models\PaginatedResult
Return type: PaginatedResult

List catalog statuses

Parameters

Name

Type

Description

$page

int

$perPage

int

$filters

array

public update($id, $data):void

Update catalog status

Parameters

Name

Type

Description

$id

int

$data

array

public delete($id):void

Delete catalog status

Parameters

Name

Type

Description

$id

int

public clearCriteria():void

Resets all Criteria filters by creating a new instance of the builder object.

public applyCriteriaFromFilters():void

Applies criteria classes to the current repository.

public setFilters($filters = []):void

Sets the filter array.

Parameters

Name

Type

Description

$filters

array

public getFilters():void

Returns the filter array.

public getConditions():void

Returns a collection of parsed filters as Condition object

public clearFilters():void

Clears the filter array.

Example

Model

Example

The example model.

Namespace

Plenty\Modules\Catalog\Legacy\ElasticExport\Example\Model

Properties
Name Type Description

exampleId

int

The ID of the example

exampleName

string

The Name of the example

exampleText

string

The text of the example

examplePrice

float

The Price of the example

Methods
public toArray()

Returns this model as an array.

Models

Status

CatalogStatus

The catalog status model.

Namespace

Plenty\Modules\Catalog\Models\Status

Properties
Name Type Description

id

int

The ID of the status

catalog_id

int

The ID of the catalog

type

string

The type of status ( run, etc )

subtype

string

The subtype of the status ( marketplace, async, etc )

has_data

bool

The check if it has a status file on S3

has_logs

bool

The check if it has logs on S3

initiator

string

The initiator of this status. Who started it. ( User, Cron, Marketplace )

initiator_id

string

The initiator ID

state

string

The state of this status (Starting, Processing, Completed, Failed, etc)

total

int

The total count of what needs to be processed

processed

int

The processed count

successful

int

The successful processes count

createdAt

The date when the status was created

updatedAt

The date when the status was last updated

Methods
public toArray()

Returns this model as an array.

Templates

Providers

AbstractGroupedTemplateProvider

The AbstractGroupedTemplateProvider is the abstract class that should be used to implement a template provider.

Namespace

Plenty\Modules\Catalog\Templates\Providers

Methods
public getTemplateGroupContainer():Plenty\Modules\Catalog\Containers\TemplateGroupContainer
Return type: TemplateGroupContainer

Returns a container in which all TemplateGroups of this template are collected.

public getFilter():array

Returns the filters that will be applied in each export of templates that will be booted by this provider.

public getPreMutator():Plenty\Modules\Catalog\Contracts\CatalogMutatorContract
Return type: CatalogMutatorContract

Returns the Mutator instance that should be called to manipulate data before the mapping.

public getPostMutator():Plenty\Modules\Catalog\Contracts\CatalogMutatorContract
Return type: CatalogMutatorContract

Returns the Mutator instance that should be called to manipulate data after the mapping.

public getSkuCallback():callable

Returns a callback function that is called if a field with the specific key "sku" got mapped. The function will receive the value that got mapped, the raw data array of this item and the type of the mapped source. It should return the new value (e.g. function ($value, array $item, $mappingType){ --your code-- return $value})).

public getSettings():array

Returns an array of settings that will be displayed in the UI of each catalogue with a template that uses this provider. The selected values for all those settings can then be used in the export.

public getMetaInfo():array

Returns an array of meta information which can be used to forward information to the export which could otherwise not be received.

public getCustomFilters():array
public getAssignments():array