本文整理匯總了PHP中Magento\CatalogImportExport\Model\Import\Product::getRowScope方法的典型用法代碼示例。如果您正苦於以下問題:PHP Product::getRowScope方法的具體用法?PHP Product::getRowScope怎麽用?PHP Product::getRowScope使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Magento\CatalogImportExport\Model\Import\Product
的用法示例。
在下文中一共展示了Product::getRowScope方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: _populateForUrlGeneration
/**
* Create product model from imported data for URL rewrite purposes.
*
* @param array $rowData
*
* @return ImportExport
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
protected function _populateForUrlGeneration($rowData)
{
$newSku = $this->import->getNewSku($rowData[ImportProduct::COL_SKU]);
if (empty($newSku) || !isset($newSku['entity_id'])) {
return null;
}
if ($this->import->getRowScope($rowData) == ImportProduct::SCOPE_STORE && empty($rowData[self::URL_KEY_ATTRIBUTE_CODE])) {
return null;
}
$rowData['entity_id'] = $newSku['entity_id'];
$product = $this->catalogProductFactory->create();
$product->setId($rowData['entity_id']);
foreach ($this->vitalForGenerationFields as $field) {
if (isset($rowData[$field])) {
$product->setData($field, $rowData[$field]);
}
}
$this->categoryCache[$rowData['entity_id']] = $this->import->getProductCategories($rowData['sku']);
$this->websiteCache[$rowData['entity_id']] = $this->import->getProductWebsites($rowData['sku']);
foreach ($this->websiteCache[$rowData['entity_id']] as $websiteId) {
if (!isset($this->websitesToStoreIds[$websiteId])) {
$this->websitesToStoreIds[$websiteId] = $this->storeManager->getWebsite($websiteId)->getStoreIds();
}
}
$this->setStoreToProduct($product, $rowData);
if ($this->isGlobalScope($product->getStoreId())) {
$this->populateGlobalProduct($product);
} else {
$this->addProductToImport($product, $product->getStoreId());
}
return $this;
}
示例2: clearProductUrls
/**
* @param ImportProduct $import
* @return void
*/
protected function clearProductUrls(ImportProduct $import)
{
$oldSku = $import->getOldSku();
while ($bunch = $import->getNextBunch()) {
$idToDelete = [];
foreach ($bunch as $rowNum => $rowData) {
if ($import->validateRow($rowData, $rowNum) && ImportProduct::SCOPE_DEFAULT == $import->getRowScope($rowData)) {
$idToDelete[] = $oldSku[$rowData[ImportProduct::COL_SKU]]['entity_id'];
}
}
foreach ($idToDelete as $productId) {
$this->urlPersist->deleteByData([UrlRewrite::ENTITY_ID => $productId, UrlRewrite::ENTITY_TYPE => ProductUrlRewriteGenerator::ENTITY_TYPE]);
}
}
}
示例3: isRowValid
/**
* Validate row attributes. Pass VALID row data ONLY as argument.
*
* @param array $rowData
* @param int $rowNum
* @param bool $isNewProduct Optional
* @return bool
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
public function isRowValid(array $rowData, $rowNum, $isNewProduct = true)
{
$error = false;
$rowScope = $this->_entityModel->getRowScope($rowData);
if (\Magento\CatalogImportExport\Model\Import\Product::SCOPE_NULL != $rowScope) {
foreach ($this->_getProductAttributes($rowData) as $attrCode => $attrParams) {
// check value for non-empty in the case of required attribute?
if (isset($rowData[$attrCode]) && strlen($rowData[$attrCode])) {
$error |= !$this->_entityModel->isAttributeValid($attrCode, $attrParams, $rowData, $rowNum);
} elseif ($this->_isAttributeRequiredCheckNeeded($attrCode) && $attrParams['is_required']) {
// For the default scope - if this is a new product or
// for an old product, if the imported doc has the column present for the attrCode
if (\Magento\CatalogImportExport\Model\Import\Product::SCOPE_DEFAULT == $rowScope && ($isNewProduct || array_key_exists($attrCode, $rowData))) {
$this->_entityModel->addRowError(\Magento\CatalogImportExport\Model\Import\Product::ERROR_VALUE_IS_REQUIRED, $rowNum, $attrCode);
$error = true;
}
}
}
}
$error |= !$this->_isParticularAttributesValid($rowData, $rowNum);
return !$error;
}
示例4: testGetRowScope
/**
* @dataProvider getRowScopeDataProvider
*/
public function testGetRowScope($rowData, $expectedResult)
{
$result = $this->importProduct->getRowScope($rowData);
$this->assertEquals($expectedResult, $result);
}