-
Notifications
You must be signed in to change notification settings - Fork 9.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Import product csv, if categories change, it's adding to the existing instead of replacing #7930
Comments
Hi, Why did you use Add/Update behavior instead of Replace? How to replace products:
Notes:
|
Because he wanted to update a value as "Add/Update" would appear to be capable of to any reasonable person. If you're saying that the already useless import process that contains no documentation, awful validation is also incapable of this for one specific column... Have you ever tried importing real products? |
Hello, does anyone have solution for this? Very strange behaviour in my opinion. Using "replace" is very strange for such situation. Actualy this means, that i have to use replace function all the time. I guess it will cause problems with products returns and everything that is related with product id. |
Any solution for this? |
Dear Super Magento team ( @veloraven ), This bug is from December 2016. Could it be possible to fix it as soon as possible and stop waiting a year for bug updates ? Thank you in advance |
@MattDelac, thank you for your report. |
This is not fixed in either 2.1.9 or 2.2.x. It appends categories indefinitely. Even if you wipe out the category field in the csv and import, the previously tagged categories will still be there. Using the "replace" method would be a very bad thing as it would be a brand new product and I'm guessing the customer reviews would not follow to the new product. |
This really needs to be reopened.. if I import a product and assign it to category A, and then change my mind, and replace A with B in the import sheet, I expect the product to now be in category B. In reality the product is now in both A and B, which is not what anyone would want. More specifically, if I first had A in the categories column, but now B, I would like it to update. If I first did not have a categories column at all, but then I imported another sheet with a categories column, I expect the categories data to be added. That's how I interpret the Add/Update functionality to work. |
Hmm, from looking at the code, this seems like this is a feature, not a bug:
I know I'll be patching this on my end.. Suggesting the replace method isn't great since it's very destructive on a live site. By changing the product IDs you'll be blasting away all customer carts, any re-order functionality, product/sales links, reports/statistics, etc. |
@erfanimani - Did you come up with a patch for this? Thank you. |
@sharmstr Unfortunately I didn't. I think I ended up deleting the category and reimported everything again. From what I can remember, fixing the issue wasn't as straightforward as I thought initially... |
@erfanimani I cant believe it works this way. I'll give fixing it a shot and report back. Thank you. |
Getting this same error on magento2.2.2(latest version in today's date.) |
@magento-engcom-team , Can you please update on the status of this issue. In which version it got fixed please share. The issue was reported on Dec 2016 and till now, every one getting same issue. Please reopen it and recheck it again. |
Can't believe this is closed as 'can't reproduce'. It's very easy to reproduce. |
I just experienced same issue with Magento 2.2.3 and, yes, it is quite easy to reproduce it. I can't believe that such issue last 2+ more years without fixes. |
It does still exist for the latest CE 2.2.5 when will it be fixed? |
I have created new issuse with better descirption which passed all tests and reproduced case. You can follow it here. |
It's very discouraging that Magento can be this obtuse about this issue. |
Hey guys, i stepped into the same problem and solved it with a quite dirty workaorund. May you can use this too. Take yourself the time to bind the sku and the categoryIds ^^ Ain't nobody have time for this 💃 /**
* @param array $rowData
* @return array
*/
protected function processRowCategories($rowData)
{
$categoriesString = empty($rowData[self::COL_CATEGORY]) ? '' : $rowData[self::COL_CATEGORY];
$categoryIds = [];
if (!empty($categoriesString)) {
$categoryIds = $this->categoryProcessor->upsertCategories(
$categoriesString,
$this->getMultipleValueSeparator()
);
// **** WORKAORUND START **** \\
// This is a workaround for really updating the categories and not just simply add product to category
$categoryNoDeleteIds = implode(",", $categoryIds);
$deleteString = '
delete
ccp
from
catalog_category_product ccp
left join
catalog_product_entity cpe on ccp.product_id = cpe.entity_id
where
cpe.sku = "'. $rowData['sku'] . '"
and
ccp.category_id not in (' . $categoryNoDeleteIds .');';
$this->_connection->query($deleteString);
// **** WORKAROUND FINISH **** \\
foreach ($this->categoryProcessor->getFailedCategories() as $error) {
$this->errorAggregator->addError(
AbstractEntity::ERROR_CODE_CATEGORY_NOT_VALID,
ProcessingError::ERROR_LEVEL_NOT_CRITICAL,
$rowData['rowNum'],
self::COL_CATEGORY,
__('Category "%1" has not been created.', $error['category'])
. ' ' . $error['exception']->getMessage()
);
}
}
return $categoryIds;
} |
Any updates on this? |
That's impressive. |
The "fix" of @ulftietze works (I still don't know if it's a bug or a feature request). I used a plugin instead of his fix, but in the concept, it actually works. |
This is really not a fix. That's just a dirty workaround for something i don't find an appropriate solution. |
"fix" ^^ |
As anyone found a solution? I have magento 2.4, same problem. |
Preconditions
Steps to reproduce
Expected result
Actual result
Comments
There is the same issue with the picture, if I run multiple imports with different images, thus the product will have all the images as extra image and the one specified as base image (even if I only have 1 additional image)
Thank you
The text was updated successfully, but these errors were encountered: