I've been battling with this issue for the last week now, and am really hoping someone here might be able to help me with it.
After repeatedly importing products from a CSV generated by a different (and slightly older) Magento store, using both the Import and the Dataflow/Import All Products tools, I can get them to show up in the backend, seemingly with all the data intact and with images and everything, but they simply will not show up in the frontend.
It seems that the only way to make them show up in the frontend is to save them from the admin product page, which I'd rather not make the client do on 1922 products. They do not show up if I add them to categories from the category manager, only (as far as I know) if I save them from the product manager page.
Also note that all products
- are enabled
- have stock quantity > 0, weight > 0 and price > 0
- have stock availability = In Stock
- have visibility = "Catalog, search"
- have the correct website assigned to them
- have the right tax class associated with them
In addition, the cache has been entirely disabled and I've re-indexed everything at least two dozen times. I've also tried running the following snippet of PHP:
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*');
foreach ($products as $product) {
if ($product->isSaleable())
Mage::log("Sellable product: {$product->getId()}");
else
Mage::log("Unsellable product: {$product->getId()}");
}
and the log file subsequently contains nothing but "Sellable product: ...". I've also used the same product loop to set the website ID of the product and then save it, which also makes no difference. I've tried outputting the attribute values of various invisible products (using $product->getData()
) both before and after saving through the product manager, but I cannot locate any differences whatsoever. I have not examined every MySQL table before and after saving, and frankly, I'd rather not have to do that.
I'm at wits' end. I don't know what else to try. I could re-import the product list for the umpteenth time, but I doubt it'll make a difference. I could try mass-updating the products again (using the product manager's "Actions" dropdown set to "Update Attributes"), but it's probably not going to help this time either. Does anyone have any ideas whatsoever?
My apologies if this is not the correct venue for this kind of question; feel free to point me in the right direction if that's the case.
UPDATE
Turns out that the products did not actually have the right website set, even though the admin panel clearly claimed so for all the products I looked at (none of which showed up in the frontend).
Solution: Manage Products > Select All, then select the action Update Attributes and add the products to the correct website(s). Don't forget to rebuild the indexes.