protected function _rebuildProductIndex($storeId, $productIds = null, $useTmpIndex = false)
{
if ($productIds == null || count($productIds) == 0) {
$collection = $this->product_helper->getProductCollectionQuery($storeId, $productIds, $useTmpIndex);
$size = $collection->getSize();
if (!empty($productIds)) {
$size = max(count($productIds), $size);
}
$by_page = $this->config->getNumberOfElementByPage();
$nb_page = ceil($size / $by_page);
for ($i = 1; $i <= $nb_page; $i++) {
$data = array('store_id' => $storeId, 'product_ids' => $productIds, 'page_size' => $by_page, 'page' => $i, 'use_tmp_index' => $useTmpIndex);
$this->addToQueue('algoliasearch/observer', 'rebuildProductIndex', $data, $by_page);
}
} else {
$this->addToQueue('algoliasearch/observer', 'rebuildProductIndex', array('store_id' => $storeId, 'product_ids' => $productIds), count($productIds));
}
return $this;
}