Magento 2自定义导入删除导入行为

时间:2018-02-16 23:11:16

标签: magento magento2

我有一个自定义导入脚本,工作正常。

我想从下拉菜单中删除其中一个行为。

由于我不想允许附加到自定义表,只能替换或删除。

Custom Import Behaviour

3 个答案:

答案 0 :(得分:0)

所以,找到了答案

  1. 创建一个新文件夹:
  2. YourVendorName \ YourModuleName \模型\源\输入\行为

    1. 在此文件夹
    2. 中创建一个名为Basic.php的新文件

      在功能_toArray()中我注释了附加选项

      public function toArray()
      {
          return [
              \Magento\ImportExport\Model\Import::BEHAVIOR_REPLACE => __('Replace'),
              \Magento\ImportExport\Model\Import::BEHAVIOR_DELETE => __('Delete')
          ];
      }
      
      1. 在import.xml中,更改从magento路径到新Basic.php文件的路径。

        <entity name="import_custom" label="Custom Import - Product Price Matrix" model="YourVendorName\YourModuleName\Model\Import\CustomImport" behaviorModel="YourVendorName\YourModuleName\Model\Source\Import\Behavior\Basic" />

      2. 此致 布伦丹

答案 1 :(得分:0)

输入您的自定义模块的以下代码自定义behaviorModel类文件。

例如:

VendorName \ YourModuleName \ Model \ Source \ Import \ Behavior \ Basic.php

@Entity
@Table(name = "vnfconfigdetails", schema = "testreports")
public class VnfConfigDetailsDB {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue
    private int id;

    @Column(name = "vnfid")
    private String vnfid;

    @Column(name = "vnfversion")
    private String vnfversion;

    @Column(name = "vnfname")
    private String vnfname;

    @Column(name = "configinfo")
    @Lob
    private String configinfo;

    @Column(name = "creationdate")
    private Date creationdate;

    @Column(name = "lastupdated")
    private Date lastupdated;

    @Column(name = "status")
    private String status;


    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getVnfid() {
        return vnfid;
    }

    public void setVnfid(String vnfid) {
        this.vnfid = vnfid;
    }

    public String getVnfversion() {
        return vnfversion;
    }

    public void setVnfversion(String vnfversion) {
        this.vnfversion = vnfversion;
    }

    public String getVnfname() {
        return vnfname;
    }

    public void setVnfname(String vnfname) {
        this.vnfname = vnfname;
    }

    public String getConfiginfo() {
        return configinfo;
    }

    public void setConfiginfo(String configinfo) {
        this.configinfo = configinfo;
    }

    public Date getCreationdate() {
        return creationdate;
    }

    public void setCreationdate(Date creationdate) {
        this.creationdate = creationdate;
    }


    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }



    public Date getLastupdated() {
        return lastupdated;
    }

    public void setLastupdated(Date lastupdated) {
        this.lastupdated = lastupdated;
    }

}

请注意,您可以输入除“ custom”以外的任何字符串;

答案 2 :(得分:0)

toArraygetCode 函数都需要在自定义行为文件中进行修改。这是完整的解决方案。

etc/import.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_ImportExport:etc/import.xsd">
    <entity name="promotion_price" label="Promotion Price" model="Unioncoop\CustomImport\Model\Import\PromotionPrice"
            behaviorModel="Vendor\CustomImport\Model\Source\Import\Behavior\Basic" />
</config>

Vendor/CustomImport/Model/Source/Import/Behavior/Basic.php

<?php

namespace Vendor\CustomImport\Model\Source\Import\Behavior;

use Magento\ImportExport\Model\Import;

class Basic extends \Magento\ImportExport\Model\Source\Import\Behavior\Basic
{
    public function toArray()
    {
        return [
            Import::BEHAVIOR_APPEND => __('Add/Update'),
            Import::BEHAVIOR_DELETE => __('Delete')
        ];
    }

    public function getCode()
    {
        return 'promotion_price'; // add your entity name
    }
}