magento export products with custom field - magento

I'm using dataflow - profiles to export all products.
But I need more columns from the default column mapper. I need the following columns
Entity ID
Category Name (default available is Category ID)
Additional images (default is main image only)
Furthermore, i want to prepend image URL and product URL with store URL (eg. current product URL exported is product-01.html, instead of that, I want it in http://www.example.com/product-01.html)
Appreciated with everyone helps

Search for any extensions if available. Not supported in default Magento.
Also, for images you can use three columns "image", "small_image" and "thumbnail"
Repeat these on to next record if images exceed three.

Related

Importing custom attributes using Magmi

I'm currently trying to use Magmi to update around 1000 products in Magento based on their SKU. Here is an example of my CSV file:
"store","mpn","sku","cat_brand"
"admin","TA50 WR","AA0096","Aria"
I have two custom attributes called mpn / cat_brand that are currently empty on all of the products.
My question is can you update custom attributes using Magmi?
Also, is there a way to filter the SKU; in Magento the SKU's seem to be being appended with a number, so they end up looking like this: AA0096:1002. Is there a way to use a regular expression on the SKU? or do you think Magmi will still match them up?
Yes, of course, magmi can update any attribute based on its code in the header (either user custom or standard magento)
for skus, you need to use the exact magento sku. so have a line per magento sku for updating values.
magento is not "appending" anything to sku by default, in fact i suppose you have "configurable" product with root skus (AA0096) & associates simple items (AA0096:xxxx) , each being a separate reference.
Magmi has no "multiple match" mode for one item line in the csv, it would be handy but also dangerous. so you'll have to have one line per final sku in magento to have magmi update each wanted sku.

How to put categories from manufacturer csv file into already existing categories with Magmi

I have a webshop with some categories in my root folder.
Root categorie
- Home
- Toys
- Accessoires
- Bricks
etc
From my manufacturer i can download every night a csv file with categoryname1/categoryname2/categoryname3/categoryname4 etc.
What i want to do is the following:
If categoryname1 equals "toys" then Magmi must make the categoryname under my already existing category "Toys". Also al the products from the csv file in the categoryname1 column must be imported and assigned to the right category in Magento.
I also want to exclude some categorys from the csv file of my manufacturer. These excluded categorys must not be imported in my shop.
Is this possible with magmi?
My csv file from the manufacturer is realy big, with lotst of products and categories.
Hope you guys can help me out. I have already worked with magmi, but i was'nt be able to fix this one.
This is doable using the ValueReplacer plugin which has interesting mapping capabilities.
You can use the ValueRemapper Helper of this plugin to use a mapping file between your input csv value & the values that are to be ingested by magmi. It can also create a composite value from several input columns (here you may use it to create a "categories" column that would aggregate the several categories from your input file)
For excluding values to import, the Import Limiter plugin can do it too by selecting rows to exclude based on any column criteria.
A Last option would be to use magmi programmatic APIs:
Datapump API would let you create a script that will wrap magmi calls letting you perform any operation on input data (but this would also mean you'll have to read the input file)
Creating a dedicated ItemProcessor plugin that would do data transformation suiting your needs in its "processItemBeforeId" method.

How to add image field in dynamic input group for magento admin configuration setting?

I have created a module which add dynamic input group to magento admin configuration.
I have added image field but it can't save in database. Means if I select image than only image store in database in core_config_data — the encrypted value of row (just image field value)
If I remove image field than the data saved properly in database along with other inputs.
So here I can't save image type data with other data of dynamic input.
I've found reason + solution, maybe this is helpful for someone. Magento is using the wrong backend model. For saving images the backend model must be system_config_backend_image. But as you've added the fields dynamically (and not inside the system.xml) the fields have no assigned backend model, so magento will use the default for text values etc..
The solution is, to use the clone_fields functionality. Please find my explanation how to use it on my blog post http://www.mellority-report.com/magento-dynamic-config-fields-with-custom-backend-models/

Where do you store UPC codes for products?

I am working on an install of AspDotNetStoreFront (version 9.3.1.0). Currently, the company stores their own SKU's from their business system in the provided SKU field. They often use Manufacturer Part Number to store their vendors part number.
Example:
The above example is a variant of a product where we would like to store UPC information.
I searched the AspDotNetStoreFront manuals and could not find a recommended strategy for storing UPC codes. Its easy enough to add a field to the database and bulk import the data, however, an admin needs to be able to maintain them from within the stores user interface.
Is there a way to add a UPC field without modifying core ASPDNSF code and still allow users to maintain it from within the UI? Or do I have to use the SKU or MPN fields?
Update
I do see that there are 5 fields for "ExtensionData" that I could possibly use, but I don't see those fields as editable for Variants in the UI the way ExtensionData is for the Products themselves.
I don't think we have had customers who didn't use sku for their UPC code. In the event that you need to modify the table by adding another column, you can modify the admin to show this.
You should be ab able to edit entityEditProducts.aspx and entityEditProducts.aspx.cs to edit this in the admin area. You will just need to modify the sql scripts and the view.
I'm not sure if it's important enough for you to upgrade over, but version 9.4 added fields for UPC. From the 9.4 release notes (http://partners.vortx.com/t-summer2013releasenotes.aspx):
"Added new GTIN field to the product variant information for unique product identification. This new field holds up to 14 characters and can be used for EAN, UPC, ISBN, etc. This new field is included in WSI, Excel & XML Imports, and supported by DotFeed."
The GTIN field works for both variant and size/color.
you can use one of the 5 extension field given by default in the product table to store UPC code. By default it has also UI in edit product under Extension Data tab.

Products are not displaying in Frontend after import in Magento

I have imported products using System - Import/Export - Import option.
I can see my products in Admin panel, but not in Frontend.
I tried Re-indexing, cache clear, cache refresh, physical cache remove.
also checked product stock status, availability etc. Everything is ok.
But they are not displaying in frontend. I marked onething, If I open product that I imported using csv, just saved without any change, it starts displaying. But I have 100s of products. So I can't use this solution.
So please help me where I am going wrong in csv. below is my csv screenshot.
You need to ensure that the products are attached to a website.
This can be done via a bulk update:
Access the product listm select all
Alter attribute
Products information -> websites
It can also be done in the csv by using a "_product_websites" field and setting it to the website name or 'base'.
I forgot which CSV columns are mandatory but I do remember that if some are missing the importer does not tell you that but instead you get the behaviour that you are describing.
The simplest way to find out what is mandatory is to:
Fix bugs in Magento ImportExport module
Create a new product in admin
Check that the new product is visible on front-end
Export the new product with Magento ImportExport exporter
Delete created product
Import the previously exported product csv
Clear cache and reindex data
Check that product is visible on front-end (it should be)
Compare your CSV with the exported one and try to figure out what is missing from it
Try to import your CSV with added/fixed columns and add data untill the product is imported so that it is visible on front-end
This requires allot of trial and error...
The missing columns in my case had always the same value so if this will be the case with your problem as well you can simply extend CSV importer and hard code those values in there instead of fixing your CSV manually.
Since your product gets saved correctly if you open it in admin and save it you can also:
Import a product
Export that product
Open that product in admin and save it
Export newly saved product
Compare exported CSV-s where they differ
Fixing Magento ImportExport bugs:
First bug is that if you import multiple products the quantity informatino from the first product is used for all the products. To fix this you have to add $row = array(); right before $row['product_id'] = $this->_newSku[$rowData[self::COL_SKU]]['entity_id']; in Mage_ImportExport_Model_Import_Entity_Product::_saveStockItem() function.
The second bug causes Magento ImportExport module to return a foreign key constraint error when importing multiple products. Error happens because magento splits products data into multiple segments and if one product is located in two segments importer will delete data that was imported for the product in first segment before importing the second segment thereby causing database corruption (see this link for detailed explanation - this is where I got the solution below).
Note that removing foreign key constraint will not fix the problem but will instead make it worse since the database will contain corrupt data.
To fix it you have to change the code in Mage_ImportExport_Model_Import_Entity_Abstract::_saveValidatedBunches() function:
After if ($startNewBunch || !$source->valid()) { add
if ($startNewBunch && count($bunchRows) > 1) {
$arrKeys = array_keys($bunchRows);
$arrNew = array();
while(($tRow = array_pop($bunchRows))) {
$tKey = array_pop($arrKeys);
$arrNew[$tKey] = $tRow;
if ($tRow['sku']) {
break;
}
}
$nextRowBackup = array_reverse($arrNew, TRUE) + $nextRowBackup;
}
Hope this helps.
I had the same problem recently and I spent some time tring to figure it out...
Looks like magento needs a status flag for every product otherwise magento will not show it in the dashboard.
Solution : add a "status" column to your CSV file and set all the statuses to "Enabled"
(yes it's not a boolean. Just use the string inside the quotes as it is :)
I was stuck with the same problem, i then visited my var/export/export_all_products file, downloaded it again and uploaded the same back through import, logged out of my account and logged-in back, all products were back. This worked as a backup for me and i could see all the products back at the back-end.
Import as you have. If they are enabled, but not showing...
then you can fix this by clicking "select all" products in the "manage products" table and then "change status" and then select "enabled." This process might take a minute.
Visit your store and you should see your frontend with products.
Some kind of bug with the status/enabled setting.
You must have next fields in CSV
sku
_attribute_set
_type
_category
description
image
name
price
short_description
status
tax_class_id
thumbnail
visibility
weight
qty
_product_websites
is_in_stock
Please note that field is_in_stock is mandatory even if qty more then 1
In magento 2 we need to reindex in index management to display the products in frontend.
We can reindex through cmd.like the given example we need to enter magento file directory after that cmd php -f bin/magento indexer:reindex to reindex .
When I first started importing products via csv although I set the product to enabled, I figured out that even though it shows in the magento back end as enabled, it actually isnt - think its to do with setting the field contents as "1" or "0" rather than "enabled" or "disabled/null".
To get around this, after a import I simply selected all the products in the back end and change status to enabled - it fixes issue.
But, I do think if I simply changed the data in the csv import it would save me this minor in-convenience.

Resources