2016-05-11 4 views
0

Мне нужно импортировать 40.000 продуктов. Эти продукты вместе генерируют 600.000 значений атрибутов Существует CSV файл с информацией (единица учета, название, описание и Ean) и отдельный лист только с атрибутами (600K)Консультации с Magento large productsfile csv import

На каждой строке у меня есть: Sku - Атрибут - Значение

eg

123 Цвет Зеленый 123 Длина 120 123 Размер XL 456 Цвет Белый 456 Длина 260 и т.д ..

Я фильтруют все дубликаты из которого в результате 2200 уникальных атрибутов.

Что мне делать с этими атрибутами? Поместите их все в один атрибут? Будет ли это вредить работе интернет-магазина?

А как насчет таблицы атрибутов? Как мне преобразовать структуру представленных данных, чтобы он был полезен для импорта в пурпурный? Причина: magento нуждается во всех именах атрибутов в качестве заголовков столбцов?

Я попытался собрать значения атрибутов с помощью VLOOKUP, но столкнулся с проблемами памяти на моем MACbook Pro. Заполните один столбец формулой, которая не работает с этим количеством записей.

Возможно, есть решение программно.

Спасибо!

+0

может быть magmi будет работать для вас. – fresher

ответ

0

Я бы предложил создать продукт прагматично. Импортируйте продукт в таблицу mysql (таблицы) и создайте с помощью пурпурного кода напрямую. Вы можете создавать настраиваемые атрибуты и использовать свой идентификатор при создании продуктов.

+0

Hi Prijos, У вас есть примеры? – SiteRefresh

+0

да, я добавлю код здесь – prajosh

0

Вы должны подумать об использовании uRapidFlow.

Хотя я не являюсь большим поклонником того факта, что он использует прямой sql для импорта продуктов, он существует уже некоторое время и, как известно, очень надежный и очень быстрый.

0
//add new products       
        $product = Mage::getModel('catalog/product'); 
        $product->setSku($sku); 
        $product->setStatus(1);  
        $product->setName($name); 
        $product->setDescription($details); 
        $product->setShortDescription($description); 
        $product->setPrice(0); 
        $product->setTypeId('simple'); 
        $product->setAttributeSetId(4); // enter the catalog attribute set id here 

       $product->setCategoryIds($categoryIds); // id of categories 

        $product->setWeight(1.0); 
        $product->setTaxClassId($taxClassId); 
        $product->setVisibility($visibility); 
        $product->setStatus($productStatus); 
        $product->setColor('color',$color_id); // u need to get attribute code for dropdown items 
        $product->setData('material', $avid); 
        $product->setBrand($brand); 
        /*$product->setStockData(
        array(
        'manage_stock' => 1, 
        'is_in_stock' => 1, 
        'qty' => $qty 
       ) 
        );*/ 
        // assign product to the default website 
        $product->setWebsiteIds(array(1,2,3,4)); 
        try{ 
        $product->save(); 

        $i++; 

        ; 
        }catch (Exception $e) { 
        echo Mage::logException($e->getMessage());    
        } 
        $id = Mage::getModel('catalog/product')->getIdBySku(trim($sku)); //get product id after create 

       //add dropdown items for attribute u created already, u need to make this as function to get option id before add a product 
       $attribute_model = Mage::getModel('eav/entity_attribute'); 
       $attribute_options_model= Mage::getModel('eav/entity_attribute_source_table') ; 
       $attribute_code = $attribute_model->getIdByCode('catalog_product', $attribute_code); 
       $attribute = $attribute_model->load($attribute_code); 
       $attribute_table = $attribute_options_model->setAttribute($attribute); 
       $options = $attribute_options_model->getAllOptions(false); 
       foreach($options as $option) 
       { 
         if (strtolower($option['label']) == strtolower($label)) 
         { 
         $optionId=$option['value']; 
         break; 
         } 
       } 

// и нужно запустить через петлю, чтобы добавить продукты