ストアをバージョン1.7.2から2.0.2に移動します。
商品が200個に満たないため、CSVファイルを使用してエクスポート/インポートしますが、商品の画像をインポートする方法を教えてください。
ストアをバージョン1.7.2から2.0.2に移動します。
商品が200個に満たないため、CSVファイルを使用してエクスポート/インポートしますが、商品の画像をインポートする方法を教えてください。
回答:
Magento 2は、製品画像に同じフォルダー構造を使用します。あなたのCSVは、商品画像の属性が含まれていると仮定すると、あなたは、単にコピーすることができます/media/catalog/
に/pub/media/catalog/
方法1:ローカルサーバーから画像をインポートする
Magentoサーバーで、画像ファイルを
pub/media/import
フォルダーにアップロードします。これは、製品イメージをインポートするためのデフォルトのフォルダーです。[magento installation folder]/pub/media/import
インポートプロセス中にフォルダーへのパスが指定されている限り、Magentoサーバー上の別のフォルダーを使用できます。
CSVデータに、画像の種類(に従って正しい行に、SKUによって、正しい列にインポートする各画像ファイルの名前を入力して
base_image
、small_image
、thumbnail_image
、またはadditional_images
)。デフォルトのインポートフォルダー(
/pub/media/import
)内の画像の場合、CSVデータのファイル名の前にパスを含めないでください。CSVファイルには、sku列と関連する画像列のみを含める必要があります。
指示に従ってデータをインポートします。
インポートするファイルを選択した後、画像ファイルディレクトリの後に相対パスを入力します。
/pub/media/import
1つのSKUに複数の画像をインポートする場合は、SKUの下に空白行を挿入し、適切な列に追加の画像ファイル名を入力します。追加の行は、親SKUに属すると理解されます。
方法2:外部サーバーから画像をインポートする
- インポートする画像を外部サーバーの指定フォルダーにアップロードします。
CSVデータに、画像の種類(によって正しい列内の各画像ファイルの完全なURLを入力して
base_image
、small_image
、thumbnail_image
、またはadditional_images
)。http://example.com/images/image.jpg
指示に従ってデータをインポートします。
— http://docs.magento.com/m2/ce/user_guide/system/data-import-product-images.html
http://example.com/images/image.jpg
保存されます。たとえば、画像名は次のように保存されます。httpexamplecomimagesimage.jpg
これは正しくありませんか?
次のコードは、メインイメージと追加イメージを設定しますmagento 2
if ($mainImage) {
$image_directory = $mediaPath . DS . 'data' . DS . $mainImage;
if (file_exists($image_directory)) {
$product->setMediaGallery(array('images' => array(), 'values' => array()))//media gallery initialization
->addImageToMediaGallery($image_directory, array('image', 'thumbnail', 'small_image'), false, false);//assigning image, thumb and small image to media gallery
}
else {
$image_directory = $mediaPath . 'data' . DS . 'comingsoon.jpg';
$product->setMediaGallery(array('images' => array(), 'values' => array()))//media gallery initialization
->addImageToMediaGallery($image_directory, array('image', 'thumbnail', 'small_image'), false, false);
}
}
// additional images
if ($importProduct[29] != '') {
$addImages = explode(",", trim($importProduct[29]));
foreach ($addImages as $additional_image) {
$image_directory = $mediaPath .DS.'data'.DS. trim($additional_image);
if (file_exists($image_directory)) {
$product->addImageToMediaGallery($image_directory, null, false, false);
}
else {
$image_directory = $mediaPath . 'data' . DS . 'comingsoon.jpg';
$product->addImageToMediaGallery($image_directory, null, false, false);
}
}
echo 'Additional images for product ' . $product->getName() . ' ' . $product->getId() . ' imported successfully' . PHP_EOL;
}
詳細な説明と絶対的なメディアパスについては、ここをクリックしてください。 http://www.pearlbells.co.uk/code-snippets/import-product-images-magento-2-programmatically/