0

我在使用 magmi datapump api 导入自定义选项时遇到了一些问题。我可以通过在 magmi 的示例中给出的数组中传递数据来轻松上传产品。

但是,当我安装自定义选项模块并启用它时,我收到以下错误。

...
$dp->beginImportSession("default","create");

// Here we define a single "simple" item, with name, sku,price,attribute_set,store,description
$item = array(
    'name'          => 'test a',
    'sku'           => 'testsku3',
    'price'         => '110.00',
    'attribute_set' => 'Default',
    'store'         => 'admin',
    'description'   => 'ingested with Datapump API',
    'meta_title'    => 'test meta',
    'qty'           => '1',
    'categories'    => '2',
    'weight'        => '1',
    'tax_class_id'  => '4',
    'Please enter your text:field:1:3' => ':fixed:0.5:Ref Text:35'
);

...

返回错误:

Notice: Undefined index: xxx:field:1 in /var/www/vhosts/websitename.co.uk/magmi/plugins/extra/itemprocessors/customoptions/pablo_customoptions.php on line 33

现在此错误代码解析为...

...
public function getOptId($field)
{
    return $this->_optids[$field];
}
...

有谁知道如何解决这个问题?

谢谢!:)

4

2 回答 2

1

所以我遇到了同样的问题,这是一个巨大的头痛。上述解决方案很有效,因为产品创建时没有错误,但未添加自定义选项。

但是,我设法创建了一个解决方案!

我试图使用以下标签向我的产品添加自定义选项:

date_time:field:1:1

这引发了与您遇到的完全相同的错误。但是,它的格式应该是这样的。

为了解决它,我不得不编辑文件:/magmi/plugins/extra/itemprocessors/customoptions/pablo_customoptions.php

我将 getOptId() 函数(第 30 行)更改为:

public function getOptId($field)
{
    if(isset($this->_optids[$field])){
        return $this->_optids[$field];
    } else {
        return false;
    }
}

并对 createOption() 函数进行了更改(现在在第 74 行)。我if(!isset($optionId))改为if(!$optionId)

宾果游戏,它现在应该可以按预期工作了!

于 2013-10-11T12:57:34.500 回答
1

线

'请输入您的文本:字段:1:3' => ':固定:0.5:参考文本:35'

会产生这个错误。

通过编辑 php 文件来修复它

...
public function getOptId($field)
{
    if isset($this->_optids[$field]) return $this->_optids[$field];
    return '';
}
...

或更好的“请输入您的文本”,就像脚本中所说的那样;)用您的自定义属性替换这一行

'Please enter your text:field:1:3' => ':fixed:0.5:Ref Text:35'
EDIT TO:
'custom_attribute'             => 'value',

西蒙

于 2012-09-14T09:24:15.240 回答