Documentation

BufferChecker
in package

Table of Contents

Properties

$actionName  : string
$checkCount  : int
$checkInterval  : int
$instance  : self|null

Methods

executeChecker()  : void
Executes the checker logic for processing the buffer.
getInstance()  : self
Get the singleton instance of the BufferChecker class.
removeScheduledCron()  : void
Removes the scheduled cron job if it is set.
scheduleChecker()  : void
Schedules the cron job that runs periodically to execute the checker.
updateOtherCollectionsSingleProduct()  : bool
Updates multiple product collections for a single product based on language and country.
__construct()  : mixed
getAnyBlogId()  : int|null
updateAttributesCollection()  : bool
Updates attributes collection based on the given records.
updateExternalProductsCollection()  : bool
Updates external products collection (only when a full regeneration is required).
updateOtherCollections()  : bool
Updates localized collections derived from products.
updateProductsCollection()  : bool
Updates the global ProductsCollection based on buffered product records.
updateSingleProduct()  : bool
Updates a single product in the collection.

Properties

$actionName

private string $actionName = 'wsc_check_api_buffer'

Methods

executeChecker()

Executes the checker logic for processing the buffer.

public executeChecker() : void

This function will be triggered when the cron job is run.

getInstance()

Get the singleton instance of the BufferChecker class.

public static getInstance() : self
Return values
self

The instance of BufferChecker.

removeScheduledCron()

Removes the scheduled cron job if it is set.

public removeScheduledCron() : void

scheduleChecker()

Schedules the cron job that runs periodically to execute the checker.

public scheduleChecker([string $context = "" ]) : void

This function will schedule the cron event to run every minute. It also registers a custom cron interval.

Parameters
$context : string = ""

updateOtherCollectionsSingleProduct()

Updates multiple product collections for a single product based on language and country.

public updateOtherCollectionsSingleProduct(string $id, array<string|int, mixed> $blogIds, array<string|int, mixed> $classes) : bool

This function iterates through all available countries where the given language is used, and updates the product in multiple collection instances.

Parameters
$id : string

The product ID to update.

$blogIds : array<string|int, mixed>
$classes : array<string|int, mixed>

An array of collection class names to update.

Return values
bool

Returns true if all updates were successful, otherwise false.

getAnyBlogId()

private getAnyBlogId() : int|null
Return values
int|null

updateAttributesCollection()

Updates attributes collection based on the given records.

private updateAttributesCollection(array<string|int, mixed> $records) : bool
Parameters
$records : array<string|int, mixed>
Return values
bool

updateExternalProductsCollection()

Updates external products collection (only when a full regeneration is required).

private updateExternalProductsCollection(bool $forceFullRebuild) : bool
Parameters
$forceFullRebuild : bool
Return values
bool

updateOtherCollections()

Updates localized collections derived from products.

private updateOtherCollections(array<string|int, mixed> $records, array<string|int, mixed> $langs[, bool $updateAllLocales = false ][, bool $forceFullRebuild = false ]) : bool

If the number of records exceeds a predefined threshold (or forceFullRebuild is true), entire collections are regenerated for each site. Otherwise, individual product documents are updated selectively.

Parameters
$records : array<string|int, mixed>

List of product records to be updated.

$langs : array<string|int, mixed>

List of languages for which the collections should be updated.

$updateAllLocales : bool = false

Whether to update all locales for each record.

$forceFullRebuild : bool = false

Forces full regeneration of localized collections.

Return values
bool

Returns true if all updates were successful, otherwise false.

updateProductsCollection()

Updates the global ProductsCollection based on buffered product records.

private updateProductsCollection(array<string|int, mixed> $records) : bool

If the number of records is below a predefined threshold, individual product documents are updated. Otherwise, the entire products collection is regenerated once (not per locale).

Parameters
$records : array<string|int, mixed>

List of product records to be updated.

Return values
bool

Returns true if all updates were successful, otherwise false.

updateSingleProduct()

Updates a single product in the collection.

private updateSingleProduct(string $id, ProductsCollection $productsColl) : bool

If the product update fails, it logs an error and returns false.

Parameters
$id : string

The ID of the product to be updated.

$productsColl : ProductsCollection
Return values
bool

Returns true if the product was successfully updated, otherwise false.


        
On this page

Search results