当前位置: 技术文章>> Magento 2:如何使用自定义产品类型导入产品

文章标题:Magento 2:如何使用自定义产品类型导入产品
  • 文章分类: Magento
  • 18009 阅读
系统学习magento二次开发,推荐小册:《Magento中文全栈二次开发 》

本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。


介绍:

基本上,Magento 2在考虑功能时非常灵活。它具有内置功能,默认情况下可以直接从管理员导入和导出产品以及更多内容。但在这种情况下,当我们在Magento 2中实施进出口产品时,需要遵循强制性规则。您可以导入/导出产品,例如简单产品、虚拟产品等。但是,如果您想导入具有自定义产品类型的产品怎么办?不用担心,下面给出的代码将帮助您导入具有自定义产品类型的产品。

让我们编写代码

步骤1: 首先,我们需要在以下路径创建import.xml文件,

app\code\Vendor\Extension\etc 并添加以下代码

<?xml version="1.0"?>

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_ImportExport:etc/import.xsd">

<entityType entity="catalog_product" name="custom_product_type_name" model="Vendor\Extension\Model\Import\Type\Producttype" />

</config>

第2步: 之后,我们需要在以下路径内创建一个产品类型.php文件。

app\code\Vendor\Extension\Model\Import\Type 并添加以下代码

<?php
namespace Vendor\Extension\Model\Import\Type; 
class Producttype extends \Magento\CatalogImportExport\Model\Import\Product\Type\AbstractType
{
    const BEFORE_OPTION_VALUE_DELIMITER = ';'; 
    const PAIR_VALUE_SEPARATOR = '='; 
    const VALUE_DYNAMIC = 'dynamic'; 
    const VALUE_FIXED = 'fixed'; 
    const NOT_FIXED_DYNAMIC_ATTRIBUTE = 'price_view'; 
    const SELECTION_PRICE_TYPE_FIXED = 0; 
    const SELECTION_PRICE_TYPE_PERCENT = 1; 
    protected $connection; 
    protected $_resource; 
    protected $_cachedOptions = []; 
    protected $_cachedSkus = []; 
    protected $_cachedSkuToProducts = []; 
    protected $_cachedOptionSelectQuery = []; 
public function isRowValid(array $rowData, $rowNum, $isNewProduct = true)
{
    return parent::isRowValid($rowData, $rowNum, $isNewProduct); 
}
}

步骤3: 最后刷新缓存并使用product_type列内的CSV文件中的自定义产品类型开始导入过程。

通过实施上述代码步骤,您将在Magento 2商店中成功导入自定义产品。

结语:

我希望上述解决方案可以帮助您解决在Magento 2商店中导入自定义产品的问题。


推荐文章