Tôi đang chuyển cửa hàng của mình từ phiên bản 1.7.2 sang 2.0.2.
Vì tôi có ít hơn 200 sản phẩm, tôi sẽ xuất / nhập chúng bằng tệp CSV, tuy nhiên tôi muốn biết cách nhập hình ảnh sản phẩm.
Tôi đang chuyển cửa hàng của mình từ phiên bản 1.7.2 sang 2.0.2.
Vì tôi có ít hơn 200 sản phẩm, tôi sẽ xuất / nhập chúng bằng tệp CSV, tuy nhiên tôi muốn biết cách nhập hình ảnh sản phẩm.
Câu trả lời:
Magento 2 sử dụng cấu trúc thư mục tương tự cho hình ảnh sản phẩm. Giả sử CSV của bạn chứa thuộc tính hình ảnh sản phẩm, bạn chỉ cần sao chép /media/catalog/
vào/pub/media/catalog/
Phương pháp 1: Nhập hình ảnh từ máy chủ cục bộ
Trên máy chủ Magento, tải các tệp hình ảnh lên
pub/media/import
thư mục. Đây là thư mục mặc định để nhập hình ảnh sản phẩm.[magento installation folder]/pub/media/import
Bạn có thể sử dụng một thư mục khác trên máy chủ Magento, miễn là đường dẫn đến thư mục được chỉ định trong quá trình nhập.
Trong dữ liệu CSV, nhập tên của mỗi tập tin hình ảnh để được nhập khẩu vào hàng đúng, bởi sku, và trong cột đúng theo loại hình ảnh (
base_image
,small_image
,thumbnail_image
, hoặcadditional_images
).Đối với hình ảnh trong thư mục nhập mặc định (
/pub/media/import
), không bao gồm đường dẫn trước tên tệp trong dữ liệu CSV.Tệp CSV phải chỉ bao gồm cột sku và các cột hình ảnh liên quan.
Thực hiện theo các hướng dẫn để nhập dữ liệu.
Sau khi chọn tệp để nhập, hãy nhập đường dẫn tương đối sau Thư mục tệp hình ảnh:
/pub/media/import
Nếu nhập nhiều hình ảnh cho một sku, hãy chèn một hàng trống bên dưới sku và nhập tên tệp hình ảnh bổ sung vào các cột thích hợp. Các hàng bổ sung được hiểu là thuộc về sku cha.
Phương pháp 2: Nhập hình ảnh từ máy chủ bên ngoài
- Tải lên hình ảnh để được nhập vào thư mục được chỉ định trên máy chủ bên ngoài.
Trong dữ liệu CSV, nhập URL đầy đủ cho mỗi tập tin hình ảnh trong cột đúng theo loại hình ảnh (
base_image
,small_image
,thumbnail_image
, hoặcadditional_images
).http://example.com/images/image.jpg
Thực hiện theo các hướng dẫn để nhập dữ liệu.
- http://docs.magento.com/m2/ce/user_guide/system/data-import-product-images.html
http://example.com/images/image.jpg
sẽ lưu tên hình ảnh dưới dạng: httpexamplecomimagesimage.jpg
điều này không thể đúng?
Đoạn mã sau thiết lập hình ảnh chính và bổ sung 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;
}
Xin bấm vào đây để giải thích chi tiết và đường dẫn phương tiện tuyệt đối. http://www.pearlbells.co.uk/code-snippets/import-product-images-magento-2-programmatically/