class ProductEventContainer

Class ProductEventContainer is injected as alligator.product.event.container. This container is connecting ProductManager manager to other services

Properties

protected ContainerInterface $container

Methods

__construct(ContainerInterface $container)

ProductEventContainer constructor.

ContainerInterface
getContainer()

No description

prepareSaveProduct(Product $product, mixed $categories, mixed $attributeSet, mixed $brand, Product $dbProduct)

Dispatch product prepare save event

prepareEditProduct(Product $product, mixed $categories, mixed $attributeSet, mixed $brand, Product $dbProduct)

Dispatch product prepare edit event

findBrand(Brand $brand)

Find brand

array
getCategoriesGroup(mixed $array)

Find array of categories for provided array

getDBAttributeSet(AttributeSet $attributeSet)

Find attribute set

array
getFeaturedProductsForHomepage()

Find featured products

getProductAttributeValuesById(int $id)

Find product attribute values by id

dispatchTeeGenerateSignal()

Dispatch re-cache categories signal

dispatchImportProductsFromCSVCustom(EventWithResult $event)

Dispatch import product from csv event

dispatchGenerateProductTranslationSignal(Product $product)

Dispatch generate specific product translations event

dispatchProductRemovedSignal(ArrayCollection $products)

Dispatch product removed event

dispatchProductGroupsUpdateEvent(ProductGroupEvent $productGroupEvent)

Dispatch update product group event

string
getDefaultLocale()

Get current locale from request

string
getLoggedUsername()

Get logged username, returns '' if user not logged

User|null
getLoggedUser()

Get logged user, null otherwise

bool
hasRoleAdmin()

Has logged user admin privileges

getDBCategory(Category $category)

Get category from database

mixed
getSearchParam()

Get search param from current request query

array
getDBImagesFromGroup(array $array)

Find collection of images for provided array

getDBBrand(Product $product)

Find brand for product

array
getDBCategories(Product $product)

Find product categories

float
getRelativeRatio(string $refCurrencyCode, string $currencyCode)

Get relative ratio between two currencies

null|Request
getRequest()

Get current request

object
getRedisSession()

No description

Event
dispatchPromoProductsReCache()

Dispatch re-cache promo products event

dispatchProductPriceChangedEvent(Product $product, mixed $oldPrice, mixed $lowerPrice, mixed $oldAttrValCosts, null $priceList = null)

Dispatch product changed price event

Money
convertToDefaultCurrency(int $price, bool $toDefault = false)

Convert custom price to default currency

array
dispatchProductAvailabilityChangeEvent()

Used when plugins need to change availability of products For example: not all products are available for different payment types

mixed
getBrandFieldsFromMetadata()

Find all brand fields

mixed
getCategoryFieldsFromMetadata()

Find all category fields

mixed
getAttributesFieldsFromMetadata()

Find all attribute fields

getDBSettingsFields()

Find import-export settings

array
getProductImportSettings()

Find product import settings

mixed
getDBCSVAttributeSetForAttributes(array $array)

No description

array
findAllAttributes()

Find all attributes

array
getAllDBCategories()

Find all categories

getReferenceForBrand(int $id)

Find brand reference

getReferenceForCategory(int $id)

Find category reference

getReferenceForProductsAttributeVal(int $id)

Find product attribute values reference

bool|Proxy|null|object|Product
getReferenceForProduct(int $id)

Find product reference

getProductById(int $id)

Find product by id

saveProduct(Product $product)

Persist new product

bool|Proxy|null|object|AttributeValue
getReferenceForAttributeValue(int $id)

Find attribute value reference

array
savePavsFromCSV(array $objectList)

Persist new product attribute values from array

mixed
findPavByErpCode(string $erpCode)

Find product attribute values by erp code

signalCategoryProductCountUpdate()

Dispatch recalculate items in category event

getBundledProductsForGroupProduct(int $groupId)

Find group product with all related products by group product id

getBundleProductForProductId(int $productId)

Find group product with all related products by related product id

saveBundleProduct(Product $product, ArrayCollection $productsArray, array $indexedProducts, bool $generatePrice)

Persist new bundle product

mixed
editBundleProduct(Product $product, array $productsArray, array $indexedProducts, bool $generatePrice)

Edit bundle product

deleteBundleProduct(int $id)

Remove bundle product

dispatchSignalFeaturedCategoriesEvent()

Dispatch re-cache featured categories

dispatchRemoveProductTranslation(array $keys)

Dispatch remove product translations for array of keys

dispatchProductSearchOptionsGenerate(array $ids)

Dispatch generate product search options value for array of product ids

bool|mixed|SearchSettings|string
getSearchSettings()

Find search settings

mixed
getCachedProductGroups()

Find cached product groups

array|null
getSearchFields()

Find search fields. Hook on product.search.fields event

array|null
getDefaultSortField()

Get default sort field. Hook on product.default.sort.field event

array|null
getAdditionalSearchData()

Find additional search data. Hook on product.additional.search.data event

mixed
dispatchProductFiltersSignalEvent(mixed $products)

Dispatch product filter signal

mixed
getCustomSearchProductsCount(ProductSearchWrapper $searchWrapper)

Find custom products count

bool
checkRolePermissions(string $string, int $int)

Check role permission

bool
checkUserAndProductPermissions(array|string $productPermissions, string $permission = RolePermissionTypes::CAN_SEE_QUANTITY_LIGHT_UNDERSCORE)

Check user permissions on product

dispatchProductSearchEvent(string $searchParam, bool $hasResults)

Dispatch save product search signal

array
getTopRated(int $numberOfProducts, array|null $limitData = null)

Find top rated products

array
getBestSeller(int $numberOfProducts, array|null $limitData = null)

Find best seller products

array
getMostViewed(int $numberOfProducts, array|null $limitData = null)

Find most viewed products

array
getNewest(int $numberOfProducts, array|null $limitData = null)

Find newest products

array
getLatestViewedProductsForUser(int $numberOfProducts)

Find latest viewed products for user

array
getMostViewedProductsForUser(int $numberOfProducts)

Find most viewed products for user

array
getBestSellerThatAreNotBoughtByUser(int $numberOfProducts, array|null $limitData = null)

Find best seller products that are not bought by user

getErpPrices(array $products)

Find and cache prices from ERP for provided array of products

int
getErpPrice(mixed $product)

Find price from ERP for provided product

array|null
isProductOnSpecialOffer(int $productId, int|null $pavId = null)

Check if product is on special offer

array
dispatchProductCustomExcludeFilter(array $possibleAttrs, ProductSearchWrapper $searchWrapper)

Dispatch product exclude filter event. Hook on additional-attr-values-for-filter event

dispatchCustomSearchWrapperChange(ProductSearchWrapper $searchWrapper)

Set custom logic to search wrapper

getCurrentProductSettings()

Find current product settings

float|int
convertPricelistPrice(float $price)

Convert price

float|int
convertFrontedCurrency(float $price, bool $toPricelistCurrency = false)

Convert price

float|int
simpleConvertMoney(float $price, string $from = null, string $to = null)

Simple convert price

Brand|null
getBrandBySlug(string $slug)

Find brand by slug

getUserSettings()

Find current user settings

dispatchCustomErpPriceLogic(string $userCode, array $products)

Get product prices from ERP

int|null
getCurrentUsersPricelistId()

Find user price list or default one

boolean
checkIfPermalinkIsAvailable(string $permalink)

Check permalink availability. Permalink must be unique on database level

array
dispatchCustomGetAttrsForProducts()

Dispatch generate custom filter event

array
getOfferForProductPage(int $id)

Find buy x get y offer for product by id

dispatchGenericProductSaveEvent(mixed $product)

Generic save event, use this instead of dispatching new events

Details

at line 58
__construct(ContainerInterface $container)

ProductEventContainer constructor.

Parameters

ContainerInterface $container

at line 66
ContainerInterface getContainer()

Return Value

ContainerInterface

at line 79
prepareSaveProduct(Product $product, mixed $categories, mixed $attributeSet, mixed $brand, Product $dbProduct)

Dispatch product prepare save event

Parameters

Product $product
mixed $categories
mixed $attributeSet
mixed $brand
Product $dbProduct

at line 98
prepareEditProduct(Product $product, mixed $categories, mixed $attributeSet, mixed $brand, Product $dbProduct)

Dispatch product prepare edit event

Parameters

Product $product
mixed $categories
mixed $attributeSet
mixed $brand
Product $dbProduct

at line 115
Brand findBrand(Brand $brand)

Find brand

Parameters

Brand $brand

Return Value

Brand

at line 126
array getCategoriesGroup(mixed $array)

Find array of categories for provided array

Parameters

mixed $array

Return Value

array

at line 137
AttributeSet getDBAttributeSet(AttributeSet $attributeSet)

Find attribute set

Parameters

AttributeSet $attributeSet

Return Value

AttributeSet

at line 146
array getFeaturedProductsForHomepage()

Find featured products

Return Value

array

at line 167
ProductAttributeValues getProductAttributeValuesById(int $id)

Find product attribute values by id

Parameters

int $id

Return Value

ProductAttributeValues

Exceptions

NoResultException
NonUniqueResultException

at line 176
CategoryTreeSignalEvent dispatchTeeGenerateSignal()

Dispatch re-cache categories signal

at line 185
dispatchImportProductsFromCSVCustom(EventWithResult $event)

Dispatch import product from csv event

Parameters

EventWithResult $event

at line 196
ProductEvent dispatchGenerateProductTranslationSignal(Product $product)

Dispatch generate specific product translations event

Parameters

Product $product

Return Value

ProductEvent

at line 207
ProductRemoveEvent dispatchProductRemovedSignal(ArrayCollection $products)

Dispatch product removed event

Parameters

ArrayCollection $products

Return Value

ProductRemoveEvent

at line 218
EventWithResult|Event dispatchProductGroupsUpdateEvent(ProductGroupEvent $productGroupEvent)

Dispatch update product group event

Parameters

ProductGroupEvent $productGroupEvent

Return Value

EventWithResult|Event

at line 227
string getDefaultLocale()

Get current locale from request

Return Value

string

at line 236
string getLoggedUsername()

Get logged username, returns '' if user not logged

Return Value

string

at line 245
User|null getLoggedUser()

Get logged user, null otherwise

Return Value

User|null

at line 254
bool hasRoleAdmin()

Has logged user admin privileges

Return Value

bool

at line 265
Category getDBCategory(Category $category)

Get category from database

Parameters

Category $category

Return Value

Category

at line 273
CategoryRepository getCategoryRepository()

Return Value

CategoryRepository

at line 283
mixed getSearchParam()

Get search param from current request query

Return Value

mixed

at line 294
array getDBImagesFromGroup(array $array)

Find collection of images for provided array

Parameters

array $array

Return Value

array

at line 305
Brand getDBBrand(Product $product)

Find brand for product

Parameters

Product $product

Return Value

Brand

at line 316
array getDBCategories(Product $product)

Find product categories

Parameters

Product $product

Return Value

array

at line 328
float getRelativeRatio(string $refCurrencyCode, string $currencyCode)

Get relative ratio between two currencies

Parameters

string $refCurrencyCode
string $currencyCode

Return Value

float

at line 336
ProductAttributeValuesRepository getProductAttributeValuesRepository()

at line 345
null|Request getRequest()

Get current request

Return Value

null|Request

at line 352
object getRedisSession()

Return Value

object

at line 361
Event dispatchPromoProductsReCache()

Dispatch re-cache promo products event

Return Value

Event

at line 376
ProductChangedPriceEvent|Event dispatchProductPriceChangedEvent(Product $product, mixed $oldPrice, mixed $lowerPrice, mixed $oldAttrValCosts, null $priceList = null)

Dispatch product changed price event

Parameters

Product $product
mixed $oldPrice
mixed $lowerPrice
mixed $oldAttrValCosts
null $priceList

Return Value

ProductChangedPriceEvent|Event

at line 397
Money convertToDefaultCurrency(int $price, bool $toDefault = false)

Convert custom price to default currency

Parameters

int $price
bool $toDefault

Return Value

Money

at line 409
array dispatchProductAvailabilityChangeEvent()

Used when plugins need to change availability of products For example: not all products are available for different payment types

Return Value

array

at line 423
mixed getBrandFieldsFromMetadata()

Find all brand fields

Return Value

mixed

See also

Brand

at line 434
mixed getCategoryFieldsFromMetadata()

Find all category fields

Return Value

mixed

See also

Category

at line 445
mixed getAttributesFieldsFromMetadata()

Find all attribute fields

Return Value

mixed

See also

Attribute

at line 454
ImportExportSettings getDBSettingsFields()

Find import-export settings

Return Value

ImportExportSettings

at line 465
array getProductImportSettings()

Find product import settings

Return Value

array

See also

ProductSettings

at line 477
mixed getDBCSVAttributeSetForAttributes(array $array)

Parameters

array $array

Return Value

mixed TODO: refactor

at line 488
array findAllAttributes()

Find all attributes

Return Value

array

See also

Attribute

at line 497
array getAllDBCategories()

Find all categories

Return Value

array

at line 508
Brand getReferenceForBrand(int $id)

Find brand reference

Parameters

int $id

Return Value

Brand

at line 519
Category getReferenceForCategory(int $id)

Find category reference

Parameters

int $id

Return Value

Category

at line 532
ProductAttributeValues getReferenceForProductsAttributeVal(int $id)

Find product attribute values reference

Parameters

int $id

Return Value

ProductAttributeValues

Exceptions

InvalidArgumentException

at line 543
bool|Proxy|null|object|Product getReferenceForProduct(int $id)

Find product reference

Parameters

int $id

Return Value

bool|Proxy|null|object|Product

at line 554
Product getProductById(int $id)

Find product by id

Parameters

int $id

Return Value

Product

at line 565
saveProduct(Product $product)

Persist new product

Parameters

Product $product

Exceptions

Exception

at line 576
bool|Proxy|null|object|AttributeValue getReferenceForAttributeValue(int $id)

Find attribute value reference

Parameters

int $id

Return Value

bool|Proxy|null|object|AttributeValue

at line 591
array savePavsFromCSV(array $objectList)

Persist new product attribute values from array

Parameters

array $objectList

Return Value

array

Exceptions

Exception

See also

ProductAttributeValues

at line 602
mixed findPavByErpCode(string $erpCode)

Find product attribute values by erp code

Parameters

string $erpCode

Return Value

mixed

at line 611
CategoryEvent signalCategoryProductCountUpdate()

Dispatch recalculate items in category event

Return Value

CategoryEvent

at line 625
GroupProduct getBundledProductsForGroupProduct(int $groupId)

Find group product with all related products by group product id

Parameters

int $groupId

Return Value

GroupProduct

Exceptions

NoResultException
NonUniqueResultException

at line 639
GroupProduct getBundleProductForProductId(int $productId)

Find group product with all related products by related product id

Parameters

int $productId

Return Value

GroupProduct

Exceptions

NoResultException
NonUniqueResultException

at line 653
GroupProduct saveBundleProduct(Product $product, ArrayCollection $productsArray, array $indexedProducts, bool $generatePrice)

Persist new bundle product

Parameters

Product $product
ArrayCollection $productsArray
array $indexedProducts
bool $generatePrice

Return Value

GroupProduct

at line 669
mixed editBundleProduct(Product $product, array $productsArray, array $indexedProducts, bool $generatePrice)

Edit bundle product

Parameters

Product $product
array $productsArray
array $indexedProducts
bool $generatePrice

Return Value

mixed

Exceptions

InvalidArgumentException

at line 681
deleteBundleProduct(int $id)

Remove bundle product

Parameters

int $id

Exceptions

NoResultException
NonUniqueResultException

at line 689
dispatchSignalFeaturedCategoriesEvent()

Dispatch re-cache featured categories

at line 699
dispatchRemoveProductTranslation(array $keys)

Dispatch remove product translations for array of keys

Parameters

array $keys

at line 708
dispatchProductSearchOptionsGenerate(array $ids)

Dispatch generate product search options value for array of product ids

Parameters

array $ids

at line 720
bool|mixed|SearchSettings|string getSearchSettings()

Find search settings

Return Value

bool|mixed|SearchSettings|string

at line 729
mixed getCachedProductGroups()

Find cached product groups

Return Value

mixed

at line 738
array|null getSearchFields()

Find search fields. Hook on product.search.fields event

Return Value

array|null

at line 750
array|null getDefaultSortField()

Get default sort field. Hook on product.default.sort.field event

Return Value

array|null

at line 762
array|null getAdditionalSearchData()

Find additional search data. Hook on product.additional.search.data event

Return Value

array|null

at line 776
mixed dispatchProductFiltersSignalEvent(mixed $products)

Dispatch product filter signal

Parameters

mixed $products

Return Value

mixed

at line 792
mixed getCustomSearchProductsCount(ProductSearchWrapper $searchWrapper)

Find custom products count

Parameters

ProductSearchWrapper $searchWrapper

Return Value

mixed

at line 809
bool checkRolePermissions(string $string, int $int)

Check role permission

Parameters

string $string
int $int

Return Value

bool

at line 822
bool checkUserAndProductPermissions(array|string $productPermissions, string $permission = RolePermissionTypes::CAN_SEE_QUANTITY_LIGHT_UNDERSCORE)

Check user permissions on product

Parameters

array|string $productPermissions
string $permission

Return Value

bool

at line 832
dispatchProductSearchEvent(string $searchParam, bool $hasResults)

Dispatch save product search signal

Parameters

string $searchParam
bool $hasResults

at line 849
array getTopRated(int $numberOfProducts, array|null $limitData = null)

Find top rated products

Parameters

int $numberOfProducts
array|null $limitData

Return Value

array

at line 861
array getBestSeller(int $numberOfProducts, array|null $limitData = null)

Find best seller products

Parameters

int $numberOfProducts
array|null $limitData

Return Value

array

at line 873
array getMostViewed(int $numberOfProducts, array|null $limitData = null)

Find most viewed products

Parameters

int $numberOfProducts
array|null $limitData

Return Value

array

at line 885
array getNewest(int $numberOfProducts, array|null $limitData = null)

Find newest products

Parameters

int $numberOfProducts
array|null $limitData

Return Value

array

at line 896
array getLatestViewedProductsForUser(int $numberOfProducts)

Find latest viewed products for user

Parameters

int $numberOfProducts

Return Value

array

at line 910
array getMostViewedProductsForUser(int $numberOfProducts)

Find most viewed products for user

Parameters

int $numberOfProducts

Return Value

array

at line 925
array getBestSellerThatAreNotBoughtByUser(int $numberOfProducts, array|null $limitData = null)

Find best seller products that are not bought by user

Parameters

int $numberOfProducts
array|null $limitData

Return Value

array

at line 939
getErpPrices(array $products)

Find and cache prices from ERP for provided array of products

Parameters

array $products

Exceptions

Exception

at line 952
int getErpPrice(mixed $product)

Find price from ERP for provided product

Parameters

mixed $product

Return Value

int

Exceptions

Exception

at line 964
array|null isProductOnSpecialOffer(int $productId, int|null $pavId = null)

Check if product is on special offer

Parameters

int $productId
int|null $pavId

Return Value

array|null

at line 980
array dispatchProductCustomExcludeFilter(array $possibleAttrs, ProductSearchWrapper $searchWrapper)

Dispatch product exclude filter event. Hook on additional-attr-values-for-filter event

Parameters

array $possibleAttrs
ProductSearchWrapper $searchWrapper

Return Value

array

at line 998
dispatchCustomSearchWrapperChange(ProductSearchWrapper $searchWrapper)

Set custom logic to search wrapper

Parameters

ProductSearchWrapper $searchWrapper

at line 1010
ProductSettings getCurrentProductSettings()

Find current product settings

Return Value

ProductSettings

at line 1021
float|int convertPricelistPrice(float $price)

Convert price

Parameters

float $price

Return Value

float|int

at line 1042
float|int convertFrontedCurrency(float $price, bool $toPricelistCurrency = false)

Convert price

Parameters

float $price
bool $toPricelistCurrency

Return Value

float|int

at line 1062
float|int simpleConvertMoney(float $price, string $from = null, string $to = null)

Simple convert price

Parameters

float $price
string $from
string $to

Return Value

float|int

at line 1079
Brand|null getBrandBySlug(string $slug)

Find brand by slug

Parameters

string $slug

Return Value

Brand|null

Exceptions

NonUniqueResultException

at line 1088
UserSettings getUserSettings()

Find current user settings

Return Value

UserSettings

at line 1100
EventWithResult|Event dispatchCustomErpPriceLogic(string $userCode, array $products)

Get product prices from ERP

Parameters

string $userCode
array $products

Return Value

EventWithResult|Event

at line 1114
int|null getCurrentUsersPricelistId()

Find user price list or default one

Return Value

int|null

at line 1125
boolean checkIfPermalinkIsAvailable(string $permalink)

Check permalink availability. Permalink must be unique on database level

Parameters

string $permalink

Return Value

boolean

at line 1134
array dispatchCustomGetAttrsForProducts()

Dispatch generate custom filter event

Return Value

array

at line 1145
array getOfferForProductPage(int $id)

Find buy x get y offer for product by id

Parameters

int $id

Return Value

array

at line 1158
dispatchGenericProductSaveEvent(mixed $product)

Generic save event, use this instead of dispatching new events

Parameters

mixed $product