1

私は現在、クライアントのデータベースに多数の製品をインポートする責任があります。これを行うためにCSVファイルを使用してきましたが、これまでのところ、製品自体の出荷特性(幅、高さ、奥行きなど)を正しく判断できませんでした([カタログ]>[製品]>[編集]([製品XPTO]>運送)。

CSVファイル内で、私は使用しようとしていました:

(...);"Height:9 cm:1, Width:13,7 cm:2";(....) 

次に、この値を[機能(名前:値:位置)]列にマップします。その結果、商品の高さと幅は商品のデータシートに表示されますが、これまでのところ、これらの値を[配送]タブにコピーすることはできませんでした。

これはどのように行うことができますか? これがサンプルのCSVダミーファイルです

もう1つ、機能のName:Value:Positionリスト内の「Position」は何をしますか?私は機能名:機能値:増分のようなものを使用していましたが、私が見る限り、これはそれが行われることになっている方法ではありません。

前もって感謝します!

編集:可能であれば、「値(値:位置)*」フィールドが何を指しているのかを正確に知りたいです。

4

1 に答える 1

2

製品の出荷特性はps_product、Prestashopデータベースのテーブルの次のフィールドに保存されます。

  • 幅decimal(20,6)
  • 高さ10進数(20,6)
  • 深さ10進数(20,6)

残念ながら、CSVインポートスクリプト(controllers/admin/AdminImportController.php)はこれらのフィールドを書き込みません(詳細についてはソースコードを参照してください)。したがって、幅、高さ、奥行きの機能値を[配送]タブの対応するフィールドにコピーする場合、次のMySQLクエリを実行する必要があります(続行する前にデータベースのバックアップを実行してください)。

update ps_product p, 
       ps_feature_lang fl, 
       ps_feature_product fp, 
       ps_feature_value_lang fvl 
   set p.width=fvl.value 
 where p.id_product=fp.id_product 
   and fl.id_feature=fp.id_feature 
   and fl.name='Width' 
   and fvl.id_feature_value=fp.id_feature_value;

update ps_product p, 
       ps_feature_lang fl, 
       ps_feature_product fp, 
       ps_feature_value_lang fvl 
   set p.height=fvl.value 
 where p.id_product=fp.id_product 
   and fl.id_feature=fp.id_feature 
   and fl.name='Height' 
   and fvl.id_feature_value=fp.id_feature_value;

update ps_product p, 
       ps_feature_lang fl, 
       ps_feature_product fp, 
       ps_feature_value_lang fvl 
   set p.depth=fvl.value 
 where p.id_product=fp.id_product 
   and fl.id_feature=fp.id_feature 
   and fl.name='Depth' 
   and fvl.id_feature_value=fp.id_feature_value;

注意:ps_feature_value_lang.valueフィールドは`decimal(20,6)であるのvarchar(255)に対しps_product.width/height/depth、クエリは値のみを更新し、メジャー単位は更新しません。
つまり、「ローカリゼーション」設定で、CSVファイルで使用しているのと同じ「寸法単位」を設定する必要があります(たとえば、ダミーファイルでは「cm」を使用しています)。
最後に、「位置」の意味についてです。これは、[機能]タブでさまざまな機能を特定の順序で表示するために使用される単なる序数です。
試していなくても、CSVファイルから新製品の機能を追加できるはずなので、「位置」フィールドで、これらの新機能を追加する必要のある位置を指定することもできます。

于 2012-11-09T22:11:54.903 に答える