0

magmidatapumpapiでカスタムオプションをインポートする際に問題が発生しました。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

この線

'テキストを入力してください:フィールド:1:3' =>':fixed:0.5:Ref Text: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 に答える
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 に答える