Magento 1.7: Импортиране на продукти с атрибути за множествен избор

Създадох работеща CSV структура, която да се използва с естественото импортиране на Magento (Система/Импортиране/Експортиране/Импортиране).

Ето пример за моята структура с прости продукти и конфигурируеми продукти, базирани на първите.

"sku","_store","_attribute_set","_product_websites","_type","name","price","special_price","news_from_date","news_to_date","tax_class_id","short_description","description","meta_description","meta_keyword","meta_title","_root_category","_category","has_options","color","talla","coleccion","composition","prestaciones_tecnicas","tejido_tecnico","_links_upsell_sku","image","small_image","thumbnail","status","visibility","weight","qty","is_in_stock","_media_attribute_id","_media_image","_media_lable","_media_position","_media_is_disabled","_super_products_sku","_super_attribute_code","_super_attribute_option"
"1601127-A-NEGRO/ROJO FUEGO-S",,"CustomAttrs","base","simple","CHALECO NAREM - A-NEGRO/ROJO FUEGO - S","81.95","",,,"0","Blabla blabla","Blabla blabla",,,,"Default Category","MUJER/PRENDA/CHALECO","0","A-NEGRO/ROJO FUEGO","S",,,,,,,,,"1","1","0","1","1",,,,,,,,
"1601127-A-NEGRO/ROJO FUEGO-M",,"CustomAttrs","base","simple","CHALECO NAREM - A-NEGRO/ROJO FUEGO - M","81.95","",,,"0","Blabla blabla","Blabla blabla",,,,"Default Category","MUJER/PRENDA/CHALECO","0","A-NEGRO/ROJO FUEGO","M",,,,,,,,,"1","1","0","2","1",,,,,,,,
"1642238-A-NEGRO/ROJO FUEGO-S",,"CustomAttrs","base","simple","CHAQUETA SERKA - A-NEGRO/ROJO FUEGO - S","97.35","",,,"0","Blabla blabla","Blabla blabla",,,,"Default Category","MUJER/PRENDA/CHAQUETA","0","A-NEGRO/ROJO FUEGO","S",,,,,,,,,"1","1","0","2","1",,,,,,,,
"1642238-A-NEGRO/ROJO FUEGO-M",,"CustomAttrs","base","simple","CHAQUETA SERKA - A-NEGRO/ROJO FUEGO - M","97.35","",,,"0","Blabla blabla","Blabla blabla",,,,"Default Category","MUJER/PRENDA/CHAQUETA","0","A-NEGRO/ROJO FUEGO","M",,,,,,,,,"1","1","0","1","1",,,,,,,,
"1601127",,"CustomAttrs","base","configurable","CHALECO NAREM","81.95","","2013-04-29 00:00:00","2013-05-29 00:00:00","0","Blabla blabla","Blabla blabla","Blabla blabla","CHALECO,CORTAVIENTOS,REPELENCIA AL AGUA","CHALECO NAREM","Default Category","MUJER/PRENDA/CHALECO","1",,,"CITY CYCLING","",,,,"","","","1","4",,,,"88","","","1","0",,,
,,,,,,,,,,,,,,,,"Default Category","MUJER",,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,"Default Category","MUJER/PRENDA",,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,"ACTIVE SOFTSHELL",,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,"transpirable",,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,"stretch",,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,"costuras flatlock",,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,"tratamiento anti uv",,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,"Repelente al agua",,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"1601127-A-NEGRO/ROJO FUEGO-S","talla","S"
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"1601127-A-NEGRO/ROJO FUEGO-S","color","A-NEGRO/ROJO FUEGO"
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"1601127-A-NEGRO/ROJO FUEGO-M","talla","M"
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"1601127-A-NEGRO/ROJO FUEGO-M","color","A-NEGRO/ROJO FUEGO"
"1642238",,"CustomAttrs","base","configurable","CHAQUETA SERKA","97.35","","2013-04-29 00:00:00","2013-05-29 00:00:00","0","Blabla blabla","Blabla blabla","Blabla blabla","CHAQUETA,CORTAVIENTOS,REPELENCIA AL AGUA","CHAQUETA SERKA","Default Category","MUJER/PRENDA/CHAQUETA","1",,,"CITY CYCLING","",,,,"","","","1","4",,,,"88","","","1","0",,,
,,,,,,,,,,,,,,,,"Default Category","MUJER",,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,"Default Category","MUJER/PRENDA",,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,"ACTIVE SOFTSHELL",,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,"transpirable",,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,"stretch",,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,"costuras flatlock",,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,"tratamiento anti uv",,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,"Repelente al agua",,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"1642238-A-NEGRO/ROJO FUEGO-S","talla","S"
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"1642238-A-NEGRO/ROJO FUEGO-S","color","A-NEGRO/ROJO FUEGO"
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"1642238-A-NEGRO/ROJO FUEGO-M","talla","M"
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"1642238-A-NEGRO/ROJO FUEGO-M","color","A-NEGRO/ROJO FUEGO"

Импортирането работи добре, без грешка. Но се случва нещо странно: създадох някои персонализирани атрибути. Някои от тях са атрибути само с една избираема стойност, но имам два атрибута, които имат стойности за множествен избор и тези два са проблемните (prestaciones_tecnicas & tejido_tecnico).

След импортирането преиндексирам, почиствам кеша и всичко...и когато отида до подробности за продукт в интерфейса, виждам всичко наред, освен двата атрибута за множествен избор, чиято информация не се показва. Правя Zend_Debug::dump() от тези атрибути и те са празни. Но изненадващо, когато редактирам продукта в администратора на Magento, тези атрибути се показват правилно и със съответните избрани стойности (стойностите, които бях посочил в CSV).

По-странното е, че ако просто редактирам един от тези продукти и го запазя (без да променям нищо), тогава тези атрибути магически се появяват ОК в интерфейса!!! И аз не променям нищо! Просто редактирайте и запазете!

Някаква идея? Имам много продукти...и редактирането/запазването един по един не е възможно решение за мен...

Много благодарен!


person pabloblazquez    schedule 29.04.2013    source източник


Отговори (2)


Чудите се защо все още никой не споменава MAGMI като решение за този проблем и чудесна алтернатива за родните профили на потока от данни на Magento. Това е много мощен инструмент за всякакъв вид импортиране на Magento. Можете да проверите всички негови функции в wiki.magmi.org

Конфигурируемите продукти могат да бъдат създадени много лесно само от един ред csv файл, ето пример:

 type           configurable_attributes   super_attribute_pricing
 configurable   size,color                size::L:12;XL:15,color::red:10;green:15


И атрибутите за множествен избор могат да бъдат импортирани добре, което е тествано от много хора. Например:

 sku       name      description       price     Size:multiple:1
 T-Shirt1  T-Shirt   A T-Shirt         5.00      Small|Medium|Large
 T-Shirt2  T-Shirt2  Another T-Shirt   6.00      XS|S|M|L|XL

В този пример ще бъдат създадени 2 продукта с персонализирани опции. Персонализираната опция е „Размер“ от тип множествен избор и е необходима за избор („1“ в края). Всеки продукт има своите размери, малък/среден/голям за 1-ви продукт и XS/S/M/L/XL за втория.

Това е само бърз намек за 2 основни характеристики - впечатляващо, нали?

Така че силно препоръчвам да разгледате MAGMI като инструмент за импортиране на magento.

И ако смятате, че платените разширения има едно хубаво разширение тук, то е ui wrap about MAGMI, който също поддържа експортиране на продуктови данни във формат magmi, а не само импортиране, както прави обикновеният magmi. Той работи с електронни таблици на Google вместо CSV и експортира данни направо в колоните csv със заглавки според синтаксиса на magmi.

person Andrew Belyaev    schedule 27.09.2014

Проблемът е, че стандартното импортиране на Magento се нуждае от всички опции на атрибута за множествен избор в отделни редове. Можете да видите това, когато експортирате правилно зададен продукт.

За съжаление това значително намалява съвместимостта с друг софтуер.

Но за щастие наистина има плъгин за това: http://www.magentocommerce.com/magento-connect/import-products-categories-multiple-images-and-custom-options.html

Надявам се това да помогне. Късмет!

АКТУАЛИЗАЦИЯ:

Има малък бъг в разширението, може би само в комбинация със сайтове с множество магазини. Все още можете да импортирате category_ids (което не е споменато в readme), но се срива при импортиране на имена на категории. Грешката изглежда е някъде във функцията _addCategories() в този файл:

\app\code\community\CapacityWebSolutions\ImportProduct\Model\Convert\Adapter\Product.php Може би нещо не е наред с идентификатора на магазина. Ето защо може да се появи само в сайтове с няколко магазина.

За съжаление не можах да настроя правилно тази функция, така че трябваше да направя заобиколно решение.

Вече няма да СЪЗДАВА категории, но надеждно да импортира във вече зададени категории. Замених тези редове 95-105 от споменатия по-горе файл:

    if (isset($importData['category_ids'])) {
        $product->setCategoryIds($importData['category_ids']);
    }
     /*    if category name is in csv file        */
    if (isset($importData['categories'])) {

        $categoryIds = $this->_addCategories($importData['categories'], $store);
        if ($categoryIds) {
            $product->setCategoryIds($categoryIds);
        }
    }

С това (филтърът за заместване е специфичен за държавата, разбира се и може би attribute_id в заявката за mysql трябва да е динамичен...):

      // NM5 translate category names in category IDs ///////////////////
    if (isset($importData['categories'])) {

        $nm5_cat_names = preg_split('/,/',$importData['categories']);

        $nm5_read = Mage::getSingleton('core/resource')->getConnection('core_read');
        $nm5_cat_table = Mage::getConfig()->getTablePrefix().'catalog_category_entity_varchar';
        $originals = array('\'', '"', '\\', ';', '<', '>', '(', ')', '[', ']', '{', '}', '|', '$', '=', '%', 'Ä', 'Ö', 'Ü', 'ä', 'ö', 'ü', 'ß', ' - ', '  ', ' ', '_', '.', '?', '!', '³', ',', '„', '“', '+', '-–-', '–-' );
        $replacements =    array('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Ae', 'Oe', 'Ue', 'ae', 'oe', 'ue', 'ss', '-', '-', '-', '-', '', '', '', '3', '-', '', '', '-plus', '-', '-' );
        $nm5_i = 0;

        while($nm5_cat_names[$nm5_i] != '' ){
            $filtered_text = strtolower(str_replace($originals, $replacements, $nm5_cat_names[$nm5_i]));

            $nm5_results = $nm5_read->fetchAll("SELECT entity_id FROM $nm5_cat_table WHERE value LIKE '$filtered_text' and attribute_id = 51 group by entity_id");

            if($nm5_i > 0){ $categoryIds .= ','; }
            $categoryIds .= $nm5_results[0]['entity_id'];

            $nm5_i++;
        }

        // $categoryIds = $this->_addCategories($importData['categories'], $store);
        if ($categoryIds) {
            $categoryIds;
            $product->setCategoryIds($categoryIds);
        }

    }elseif(isset($importData['category_ids'])){

        $product->setCategoryIds($importData['category_ids']);

    }
    // NM5 translate category names in category IDs ///////////////////
person Waschbär    schedule 30.08.2013