Full Page Cache: Enterprise PageCache Model Container Catalog Product Item

Enterprise_PageCache_Model_Container_CatalogProductItem class in Magento? (Magento EE 1.13.0.2)

Object:$this => Enterprise_PageCache_Model_Container_CatalogProductItem

Following constants is used in above class :

  • const BLOCK_NAME_RELATED = ‘CATALOG_PRODUCT_ITEM_RELATED’;
  • const BLOCK_NAME_UPSELL = ‘CATALOG_PRODUCT_ITEM_UPSELL’;

Following variables is used in above class:

  • $_parentBlock
  • $_itemId
  • $_itemPosition
  • $_infoCacheId
  • $_sharedInfoData

Some important functions and its purpose in this class:

  • _getInfoCacheId(): This function returns cache identifier for informational data related to product lists.
  • _saveInfoCache(): This function is used to saves informational cache, containing parameters used to show lists.
  • _getItemId(): This function is used to get next item id.
  • applyInApp(): Generate and apply container content in controller after application is initialized
  • applyWithoutApp(): This function is used for check if could be applied without application
  • _getCacheId(): This function is used for to get cache id.

Functions used in class Enterprise_PageCache_Model_Container_CatalogProductItem

  • /**Get parent block type
    * @return null|string **/
    protected function _getListBlockType()
    elseif ($blockName == self::BLOCK_NAME_UPSELL)
    return null;
    }
  • /**Returns cache identifier for informational data about product lists
    * @return string **/
    protected function _getInfoCacheId()

    return $this->_infoCacheId;
    }

  • /**Saves informational cache, containing parameters used to show lists.
    * @return Enterprise_PageCache_Model_Container_CatalogProductItem **/
    protected function _saveInfoCache()
  • /**Get shared info param
    * @param string|null $key
    * @return mixed **/
    protected function _getSharedParam($key = null)
  • /**Set shared info param
    * @param string $key
    * @param mixed $value
    * @return Enterprise_PageCache_Model_Container_CatalogProductItem **/
    protected function _setSharedParam($key, $value)

    self::$_sharedInfoData[$placeholderName][‘info’][$key] = $value;
    return $this;
    }

  • /** Get parent (container) block
    * @return false|Enterprise_TargetRule_Block_Catalog_Product_List_Abstract
    */
    protected function _getParentBlock()

    return $this->_parentBlock;
    }

  • /**Get next item id
    * @return int|null **/
    protected function _getItemId()
  • /**Pop current item id
    * @return int **/
    protected function _popItem()
  • /**Generate and apply container content in controller after application is initialized
    * @param string $content
    * @return bool*/
    public function applyInApp(&$content)
  • /**Check if could be applied without application
    * @param string $content
    * @return bool*/
    public function applyWithoutApp(&$content)
  • /**Render element that was not cached
    * @return false|string **/
    protected function _renderBlock()
  • /** Retrieve cache id
    * @return string*/
    protected function _getCacheId()

Sample data for Product Page
Variables:
URL : https://localhost/oscp-store/mage-ent-test/furniture/living-room/ottoman.html
Note: Ottoman have assign only one related product and don’t have any upsell product.

  • $_parentBlock = /** Parent (container) block **/
    Enterprise_TargetRule_Block_Catalog_Product_List_Related
  • $_itemId = /** Current item id **/
    52
  • $_itemPosition = /** Container position in list **/
    0
  • $_infoCacheId = /** $_itemPosition **/
    CATALOG_PRODUCT_LIST_SHARED_866b61fa36e19333d7c7d515c23ad5b4
  • $_sharedInfoData = /**Data shared between all instances of current container**/
    = Array [2]0 = CATALOG_PRODUCT_ITEM_RELATED = Array [3]first = true
    info = Array [1]cursor = 1
    1 = CATALOG_PRODUCT_ITEM_UPSELL = Array [3]first = true
    info = Array [0]cursor = 1

Latest Posts