/** * delete all items and items' attributes from recommender * */ public function clear(DataApi\Client $client) { if (!$this->config->isAppend()) { $client->deleteItems(); $itemsAttributes = $client->getItemsAttributes(); if (isset($itemsAttributes['attributes'])) { foreach ($itemsAttributes['attributes'] as $attribute) { $client->deleteItemsAttribute($attribute['name']); } } } return $this; }
/** * @return void */ private function refreshItemsAttributes() { $expectedAttributes = [self::ATTRIBUTE_NAME, self::ATTRIBUTE_DESCRIPTION, self::ATTRIBUTE_WEIGHT]; $actualAttributes = $this->getAttributesNames($this->client->getItemsAttributes()); foreach ($actualAttributes as $attribute) { if (!in_array($attribute, $expectedAttributes)) { $this->client->deleteItemsAttribute($attribute); } } if (!in_array(self::ATTRIBUTE_NAME, $actualAttributes)) { $this->client->addItemsAttribute(self::ATTRIBUTE_NAME, DataType::TEXT, 'en', MetaType::TITLE); } if (!in_array(self::ATTRIBUTE_DESCRIPTION, $actualAttributes)) { $this->client->addItemsAttribute(self::ATTRIBUTE_DESCRIPTION, DataType::TEXT, 'en'); } if (!in_array(self::ATTRIBUTE_WEIGHT, $actualAttributes)) { $this->client->addItemsAttribute(self::ATTRIBUTE_WEIGHT, DataType::INTEGER); } }