问题将csv文件导入magento

时间:2016-01-20 00:43:43

标签: magento csv import

所以,我试图在管理页面中向Imports添加一些产品,但是,浮动结束于" 0"被excel截断。例如,如果我的价格为4.10美元,它将被截断为4.1美元,网页上的价格将显示为如此。 我考虑过在宏中创建一个vba自动化,但是有很多不同的文件,需要花费太多精力。所以,我知道我不能做任何好事。 现在,magento-wise,我可以使用$ _coreHelper(货币($ price);将其转换为正确的格式,但是那些人知道我在哪里可以找到这些代码?还有其他想法吗? 在此先感谢!!

2 个答案:

答案 0 :(得分:0)

这是您的选择。我有一个import.php脚本,用于导入或更新大量产品及其属性。它将允许您更新或创建基于SKU的产品。你必须检查常数,看它们是否与你的Magento相匹配。

<?php
include_once("app/Mage.php");
Mage::app();
umask(0);
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));

$counter = 0;

function GetProduct($sku)
{
    global $counter;
    echo $sku;
    $p = Mage::getModel('catalog/product');
    $productId = $p -> getIdBySku($sku);       
    if($productId)
    {
        echo "!";
        $p -> load( $productId );
    }
    else
    {
        $p->setTypeId('simple');
        $p->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH); 
        $p->setStatus(1);
        $p->setTaxClassId(7);
        $p->setWebsiteIDs(array(1)); 
        $p->setStoreIDs(array(1)); 
        $p->setAttributeSetId(4);
        $p->setSku($sku);
    }
    echo "...";
    $counter++;
    echo " ".$counter;
    return $p;
}

function SaveProduct($p)
{
    try
    {
        if (is_array($errors = $p->validate()))
        {
            $strErrors = array();
            foreach($errors as $code=>$error)
            {
                $strErrors[] = ($error === true)? Mage::helper('catalog')->__('Attribute "%s" is invalid.', $code) : $error;
                echo $strErrors[0];
            }
            $this->_fault('data_invalid', implode("\n", $strErrors));
        }
        $p->save();
        echo "\n";
    }
    catch (Mage_Core_Exception $e)
    {
        $this->_fault('data_invalid', $e->getMessage());
    }
}


$product = GetProduct('SKU01'); $product->setData('upc', '013051388461'); SaveProduct($product); unset($product);
$product = GetProduct('SKU02'); $product->setData('special_price', null); $product->setData('special_from_date', null); SaveProduct($product); unset($product);
$product = GetProduct('SKU03'); $product->setData('cardboard_height_cm', 28.5); $product->setData('cardboard_width_cm', 37); SaveProduct($product); unset($product);


?>

我经常让Excel创建像$product = GetProduct('SKU03'); $product->setData('cardboard_height_cm', 28.5); $product->setData('cardboard_width_cm', 37); SaveProduct($product); unset($product);这样的行,然后复制并粘贴到脚本中。我可以在跑步之前进行编辑。

这比导入CSV要快得多,它会调用所有正确的观察者。

只需从SSH shell运行即可。

答案 1 :(得分:0)

我建议你使用Open Office Calc。

在输入价格列中的值之前,右键单击列顶部&gt;点击格式单元格&gt;选择数字标签&gt;选择附加图像中显示的文本,然后单击“确定”。

Screenshot 现在,当您输入类似12.30的值时,它将与列中的值一样。 在导入之前,还要将文件另存为UTF-8 csv格式。

您可以通过在记事本++中打开来验证创建的文件。