0

CSV で項目をインポートしようとしています - 「カスタマイズ可能」列に「(0 = いいえ、1 = はい)」と表示されます。

これについて他のいくつかのスレッドを読みましたが、次のようにフォーマットする必要があるようです:

"Field 1"|1, "Field 2"|1

しかし、カスタマイズ可能な列でその構文を使用して製品をアップロードしようとすると、インポートに失敗します。

1 または 0 に変更すると、アップロードは成功します。ただし、各製品に移動し、カスタマイズをクリックしてから、カスタマイズテキストをクリックして保存する必要があります (これは、最初に CSV で回避しようとしていることです)。

カスタマイズ可能なフィールドが適切に保存されるように、アップロード CSV をフォーマットする適切な方法は何ですか?

私は1.6.1.4を使用しています。

4

1 に答える 1

0

残念ながら、デフォルトの CSV インポートのオプションのようには見えません (残念です)。

データベースを調整する小さなスクリプトを書くことで解決できました。

スクリプトは次のようになります。

// Create connection
$conn = new mysqli($servername, $username, $password, $database);

/* check connection */
if ($conn->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}
echo "Connected successfully<br /><br />";

$conn->query("update ps_category_lang set name=SUBSTRING_INDEX(name, '(', 1)  WHERE  name REGEXP '([[:digit:]]+)';"); 

$conn->query("truncate table ps_customization_field;");
$conn->query("INSERT INTO ps_customization_field (id_product,type,required) SELECT id_product,0,0 FROM ps_product WHERE id_shop_default = 1 AND customizable = 1;");
$conn->query("INSERT INTO ps_customization_field (id_product,type,required) SELECT id_product,1,1 FROM ps_product WHERE id_shop_default = 1 AND customizable = 1;"); 

echo "Added uploadable files & customized field to each item!<br /><br />";

$conn->query("truncate table ps_customization_field_lang;");
$conn->query("INSERT INTO ps_customization_field_lang (id_customization_field, id_lang,id_shop,name) select id_customization_field,1,1,'Upload 1' from ps_customization_field WHERE type = 0;");
$conn->query("INSERT INTO ps_customization_field_lang (id_customization_field, id_lang,id_shop,name) select id_customization_field,1,1,'Field 1' from ps_customization_field WHERE type = 1;");

echo "Added appropriate labeling for each field, for each product!<br /><br />";

echo "<h2>Yay, We're done!</h2>";


$conn->close();

明らかに、これは誰の要件にも合うように更新/変更できます。

于 2016-06-27T18:34:15.633 に答える