Magento 2፡ ምርቶችን በቀጥታ ወደ ዳታቤዝ ማስገባት

В ቀዳሚ መጣጥፍ ምርቶችን ወደ Magento 2 የማስመጣት ሂደትን በተለመደው መንገድ ገለጽኩ - በሞዴሎች እና በማጠራቀሚያዎች። የተለመደው ዘዴ በጣም ዝቅተኛ በሆነ የውሂብ ሂደት ፍጥነት ይገለጻል. በእኔ ላፕቶፕ ላይ፣ በሰከንድ አንድ ምርት ነበር። በዚህ ቀጣይነት ውስጥ አንድ ምርት የማስመጣት አማራጭ መንገድን አስባለሁ - ወደ ዳታቤዝ በቀጥታ በመፃፍ ፣ መደበኛውን ማጌንቶ 2 ስልቶችን (ሞዴሎችን ፣ ፋብሪካዎችን ፣ ማከማቻዎችን) በማለፍ። ምርቶችን ለማስመጣት የእርምጃዎች ቅደም ተከተል ከ MySQL ጋር መስራት ከሚችል ከማንኛውም የፕሮግራም ቋንቋ ጋር ሊጣጣም ይችላል.

ማስተባበያማጌንቶ ዝግጁ የሆነ ተግባር አለው። የውሂብ ማስመጣት እና, ምናልባትም, በቂ ይሆናል. ነገር ግን፣ በማስመጣቱ ሂደት ላይ ተጨማሪ ቁጥጥር ከፈለጉ፣ ለነገሩ የCSV ፋይል በማዘጋጀት ላይ ብቻ ሳይሆን፣ በድመት ስር እንኳን ደህና መጡ።

Magento 2፡ ምርቶችን በቀጥታ ወደ ዳታቤዝ ማስገባት

ሁለቱንም መጣጥፎች በመጻፍ የተገኘው ኮድ በማጌንቶ ሞጁል ውስጥ ሊታይ ይችላል"flancer32 / mage2_ext_demo_import". የማሳያ ሞጁሉን ኮድ ለማቃለል የተከተልኳቸው አንዳንድ ገደቦች እዚህ አሉ።

  • ምርቶች ብቻ የተፈጠሩ እንጂ የተዘመኑ አይደሉም።
  • አንድ መጋዘን
  • የምድብ ስሞች ብቻ ነው የሚገቡት ያለ መዋቅራቸው
  • የውሂብ አወቃቀሮች ከስሪት 2.3 ጋር ይጣጣማሉ

JSON ለአንድ ምርት ማስመጣት፡-

{
  "sku": "MVA20D-UBV-3",
  "name": "Заглушка для пломбировки ВА47-29 IEK",
  "desc": "Обеспечение доступа к устройствам ...",
  "desc_short": "Заглушка для пломбировки ВА47-29 IEK предназначена для ...",
  "price": 5.00,
  "qty": 25,
  "categories": ["Категория 1", "Категория 2"],
  "image_path": "mva20d_ubv_3.png"
}

ዋና የማስመጣት ደረጃዎች አጠቃላይ እይታ

  • የምርቱ ምዝገባ ራሱ
  • የምርት እና የድር ጣቢያ አገናኝ
  • መሰረታዊ የምርት ባህሪያት (EAV)
  • የእቃ ዝርዝር መረጃ (በክምችት ላይ ያለ የምርት መጠን)
  • ሚዲያ (ሥዕሎች)
  • ከካታሎግ ምድቦች ጋር ግንኙነት

የምርት ምዝገባ

መሠረታዊ የምርት መረጃ ገብቷል። catalog_product_entity:

CREATE TABLE `catalog_product_entity` (
  `entity_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Entity Id',
  `attribute_set_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Attribute Set ID',
  `type_id` varchar(32) NOT NULL DEFAULT 'simple' COMMENT 'Type ID',
  `sku` varchar(64) DEFAULT NULL COMMENT 'SKU',
  `has_options` smallint(6) NOT NULL DEFAULT '0' COMMENT 'Has Options',
  `required_options` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Required Options',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Creation Time',
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Update Time',
  PRIMARY KEY (`entity_id`),
  KEY `CATALOG_PRODUCT_ENTITY_ATTRIBUTE_SET_ID` (`attribute_set_id`),
  KEY `CATALOG_PRODUCT_ENTITY_SKU` (`sku`)
)

በምርት መዝገብ ውስጥ ግቤት ለመፍጠር የሚፈለገው ዝቅተኛው መረጃ፡-

  • attribute_set_id
  • sku

ተጨማሪ፡

  • type_id - ካልተገለጸ, 'ቀላል' ጥቅም ላይ ይውላል

ወደ ዳታቤዝ በቀጥታ ለመጻፍ፣ እኔ የማጌንቶን DB አስማሚን እጠቀማለሁ፡

function create($sku, $typeId, $attrSetId)
{
    /** @var MagentoFrameworkAppResourceConnection $this->resource */
    /** @var MagentoFrameworkDBAdapterPdoMysql $conn */
    $conn = $this->resource->getConnection();
    $table = $this->resource->getTableName('catalog_product_entity');
    $bind = [
        'sku' => $sku,
        'type_id' => $typeId,
        'attribute_set_id' => $attrSetId
    ];
    $conn->insert($table, $bind);
    $result = $conn->lastInsertId($table);
    return $result;
}

ምርቱን ከተመዘገበ በኋላ catalog_product_entity በአስተዳዳሪው ፓነል ፣ በምርቱ ፍርግርግ ውስጥ ይታያል (ካታሎግ / ምርቶች).

Magento 2፡ ምርቶችን በቀጥታ ወደ ዳታቤዝ ማስገባት

ምርት እና ድር ጣቢያ ማገናኘት

የምርቱ ከጣቢያው ጋር ያለው ግንኙነት በየትኛው መደብሮች እና በየትኞቹ ማሳያዎች ውስጥ ምርቱ ከፊት ለፊት እንደሚገኝ ይወስናል.

function linkToWebsite($prodId, $websiteId)
{
    /** @var MagentoFrameworkAppResourceConnection $this->resource */
    /** @var MagentoFrameworkDBAdapterPdoMysql $conn */
    $conn = $this->resource->getConnection();
    $table = $this->resource->getTableName('catalog_product_website');
    $bind = [
        'product_id' => $prodId,
        'website_id' => $websiteId
    ];
    $conn->insert($table, $bind);
}

Magento 2፡ ምርቶችን በቀጥታ ወደ ዳታቤዝ ማስገባት

መሰረታዊ የምርት ባህሪያት

አዲስ የተመዘገበው ምርት እስካሁን ስም ወይም መግለጫ የለውም። ይህ ሁሉ የሚከናወነው በ EAV ባህሪዎች. ምርቱ ከፊት ለፊት በትክክል እንዲታይ የሚያስፈልጉት የመሠረታዊ የምርት ባህሪያት ዝርዝር ይኸውና፡

  • name
  • price
  • description
  • short_description
  • status
  • tax_class_id
  • url_key
  • visibility

በምርቱ ላይ የተለየ ባህሪ ተጨምሯል (የመለያውን እና የባህሪውን አይነት በኮዱ የማግኘት ዝርዝሮች ተጥለዋል)

public function create($prodId, $attrCode, $attrValue)
{
    $attrId = /* get attribute ID by attribute code */
    $attrType = /* get attribute type [datetime|decimal|int|text|varchar]) by attribute code */
    if ($attrId) {
        /** @var MagentoFrameworkAppResourceConnection $this->resource */
        /** @var MagentoFrameworkDBAdapterPdoMysql $conn */
        $conn = $this->resource->getConnection();
        $tblName = 'catalog_product_entity_' . $attrType;
        $table = $this->resource->getTableName($tblName);
        $bind = [
            'attribute_id' => $attrId,
            'entity_id' => $prodId,
            /* put all attributes to default store view with id=0 (admin) */
            'store_id' => 0,
            'value' => $attrValue
        ];
        $conn->insert($table, $bind);
    }
}

በባህሪው ኮድ፣ መታወቂያውን እና የውሂብ አይነትን እንወስናለን (datetime, decimal, int, text, varchar, ከዚያም ለአስተዳደራዊ የሱቅ ፊት ለፊት ያለውን መረጃ በተገቢው ጠረጴዛ ላይ ይፃፉ (store_id = 0).

ከላይ የተጠቀሱትን ባህሪዎች ወደ ምርቱ ካከልን በኋላ በአስተዳዳሪ ፓነል ውስጥ የሚከተለውን ምስል እናገኛለን

Magento 2፡ ምርቶችን በቀጥታ ወደ ዳታቤዝ ማስገባት

የእቃ ዝርዝር መረጃ

ከማጌንቶ ስሪት 2.3 ጀምሮ፣ የእቃ ዝርዝር መረጃን (የምርት ብዛት) የሚያከማቹ በትይዩ ሁለት የሰንጠረዦች ስብስቦች አሉ።

  • cataloginventory_*: የድሮ መዋቅር;
  • inventory_*አዲስ መዋቅር (ኤምኤስአይ - ባለብዙ ምንጭ ኢንቬንቶሪ);

በሁለቱም አወቃቀሮች ላይ የእቃ ዝርዝር መረጃ ማከል አለብህ, ምክንያቱም አዲሱ መዋቅር ከአሮጌው ሙሉ በሙሉ ነፃ አይደለም (በጣም ሊሆን ይችላል default በአዲሱ መዋቅር ውስጥ ያለው መጋዘን ጠረጴዛን ይጠቀማል cataloginventory_stock_status እንደ inventory_stock_1).

ካታሎግ ክምችት_

ማግኔቶ 2.3 ን ስንዘረጋ መጀመሪያ ላይ 2 ግቤቶች አሉን። store_websiteከሁለት ጣቢያዎች ጋር የሚዛመድ - አስተዳደራዊ እና ዋና ደንበኛ:

website_id|code |name        |sort_order|default_group_id|is_default|
----------|-----|------------|----------|----------------|----------|
         0|admin|Admin       |         0|               0|         0|
         1|base |Main Website|         0|               1|         1|

ጠረጴዛ cataloginventory_stock አንድ መግቢያ ብቻ አለን

stock_id|website_id|stock_name|
--------|----------|----------|
       1|         0|Default   |

ማለትም በአሮጌው መዋቅር ውስጥ አንድ "መጋዘን" ብቻ አለን (stock) እና ከአስተዳደር ድህረ ገጽ ጋር የተገናኘ ነው. በአስተዳዳሪው በኩል አዳዲሶችን ማከል sources/stocks በ MSI (አዲስ መዋቅር) ውስጥ አዲስ ግቤቶችን አያስከትልም cataloginventory_stock.

በአሮጌው መዋቅር ውስጥ ስለ ምርቶች ዝርዝር መረጃ በመጀመሪያ በሰንጠረዥ ውስጥ ተጽፏል-

  • cataloginventory_stock_item
  • cataloginventory_stock_status

ካታሎግ inventory_stock_item

function createOldItem($prodId, $qty)
{
    $isQtyDecimal = (((int)$qty) != $qty);
    $isInStock = ($qty > 0);
    /** @var MagentoFrameworkAppResourceConnection $this->resource */
    /** @var MagentoFrameworkDBAdapterPdoMysql $conn */
    $conn = $this->resource->getConnection();
    $table = $this->resource->getTableName('cataloginventory_stock_item');
    $bind = [
        'product_id' => $prodId,
        /* we use one only stock in 'cataloginventory' structure by default */
        'stock_id' => 1,
        'qty' => $qty,
        'is_qty_decimal' => $isQtyDecimal,
        'is_in_stock' => $isInStock,
        /* default stock is bound to admin website (see `cataloginventory_stock`) */
        'website_id' => 0
    ];
    $conn->insert($table, $bind);
}

ካታሎግ ኢንቬንቶሪ_ስቶክ_ሁኔታ

function createOldStatus($prodId, $qty)
{
    $isInStock = ($qty > 0);
    /** @var MagentoFrameworkAppResourceConnection $this->resource */
    /** @var MagentoFrameworkDBAdapterPdoMysql $conn */
    $conn = $this->resource->getConnection();
    $table = $this->resource->getTableName('cataloginventory_stock_status');
    $bind = [
        'product_id' => $prodId,
        /* we use one only stock in 'cataloginventory' structure by default */
        'stock_id' => 1, 
        'qty' => $qty,
        'stock_status' => MagentoCatalogInventoryApiDataStockStatusInterface::STATUS_IN_STOCK,
        /* default stock is bound to admin website (see `cataloginventory_stock`) */
        'website_id' => 0 
    ];
    $conn->insert($table, $bind);
}

ዝርዝር_

መጀመሪያ ላይ፣ የዕቃ መረጃን ለማከማቸት አዲሱ መዋቅር 1 ኢንች ይይዛል።ምንጩ"(inventory_source):

source_code|name          |enabled|description   |latitude|longitude|country_id|...|
-----------|--------------|-------|--------------|--------|---------|----------|...|
default    |Default Source|      1|Default Source|0.000000| 0.000000|US        |...|

እና አንድ"መጋዘን"(inventory_stock):

stock_id|name         |
--------|-------------|
       1|Default Stock|

«ምንጭ' ለምርቶቹ አካላዊ ማከማቻን ይወክላል (መግቢያው አካላዊ መጋጠሚያዎችን እና የፖስታ አድራሻዎችን ይዟል)። "መጋዘን" የበርካታ "ምንጮች" ምክንያታዊ ጥምረት ነው (inventory_source_stock_link)

link_id|stock_id|source_code|priority|
-------|--------|-----------|--------|
      1|       1|default    |       1|

ወደ የሽያጭ ቻናል አገናኝ ባለበት ደረጃ (inventory_stock_sales_channel)

type   |code|stock_id|
-------|----|--------|
website|base|       1|

በመረጃ አወቃቀሩ በመመዘን የተለያዩ አይነት የሽያጭ ሰርጦች ይታሰባሉ ነገር ግን በነባሪ ግንኙነቱ ብቻ ነው "አክሲዮን"-"ድህረገፅ» (የድር ጣቢያው ማገናኛ የድህረ ገጹን ኮድ ይከተላል - base).

አንድ "መጋዘን» ከብዙ ጋር ሊገናኝ ይችላልምንጮች"እና አንድ"ምንጩ"- ለብዙ"መጋዘኖች” (ከብዙ እስከ ብዙ ግንኙነት)። የማይካተቱት ነባሪ ናቸው።ምንጩ"እና"መጋዘን". ወደ ሌሎች አካላት እንደገና አይገናኙም (በኮድ ደረጃ ላይ ያለው ገደብ - ስህተቱ "ከነባሪ ምንጭ ወይም ነባሪ አክሲዮን ጋር የሚዛመድ አገናኝ ማስቀመጥ አልተቻለም") ስለ MSI መዋቅር በ Magento 2 ውስጥ በጽሁፉ ውስጥ የበለጠ ማንበብ ይችላሉCQRS እና Event Sourcingን በመጠቀም የመጋዘን አስተዳደር ስርዓት። ንድፍ".

ነባሪውን ውቅረት እጠቀማለሁ እና ሁሉንም የእቃ ዝርዝር መረጃ ወደ ምንጩ እጨምራለሁ default, ከኮዱ ጋር ከድረ-ገጹ ጋር በተዛመደ የሽያጭ ሰርጥ ውስጥ የሚሳተፍ base (ከመደብሩ ደንበኛ ክፍል ጋር ይዛመዳል - ይመልከቱ store_website):

function createNewItem($sku, $qty)
{
    /** @var MagentoFrameworkAppResourceConnection $this->resource */
    /** @var MagentoFrameworkDBAdapterPdoMysql $conn */
    $conn = $this->resource->getConnection();
    $table = $this->resource->getTableName('inventory_source_item');
    $bind = [
        'source_code' => 'default',
        'sku' => $sku,
        'quantity' => $qty,
        'status' => MagentoInventoryApiApiDataSourceItemInterface::STATUS_IN_STOCK
    ];
    $conn->insert($table, $bind);
}

በአስተዳዳሪው ፓኔል ውስጥ የምርት መረጃውን ወደ ምርቱ ካከሉ በኋላ የሚከተለው ምስል ተገኝቷል

Magento 2፡ ምርቶችን በቀጥታ ወደ ዳታቤዝ ማስገባት

ሚዲያ

በአስተዳዳሪው ፓኔል በኩል አንድን ምርት "በእጅ" ሲያክሉ አግባብነት ያለው መረጃ በሚከተሉት ሰንጠረዦች ውስጥ ይጻፋል፡

  • catalog_product_entity_media_gallery: የሚዲያ መዝገብ (ምስሎች እና የቪዲዮ ፋይሎች);
  • catalog_product_entity_media_gallery_valueሚዲያን ከምርቶች እና ትርኢቶች ጋር ማገናኘት (አካባቢ ማድረግ);
  • catalog_product_entity_media_gallery_value_to_entityሚዲያን ከምርቶች ጋር ብቻ ማሰር (ለምርት ነባሪ የሚዲያ ይዘት ሊሆን ይችላል)።
  • catalog_product_entity_varchar: ምስሉ ጥቅም ላይ የዋለባቸው ሚናዎች እዚህ ተቀምጠዋል;

እና ምስሎቹ እራሳቸው በማውጫው ውስጥ ተቀምጠዋል ./pub/media/catalog/product/x/y/የት x и y - የፋይሉ ስም የመጀመሪያ እና ሁለተኛ ፊደላት ከምስሉ ጋር። ለምሳሌ ፋይል image.png እንደ መዳን አለበት ./pub/media/catalog/product/i/m/image.pngከካታሎግ ውስጥ ምርቶችን ሲገልጹ መድረኩ እንደ ምስል ሊጠቀምበት ይችላል.

ይመዝገቡ ተስተናግዷል ./pub/media/catalog/product/ የሚዲያ ፋይል (ፋይሉን የማስቀመጥ ሂደት በዚህ ጽሑፍ ውስጥ አይታሰብም)

function createMediaGallery($imgPathPrefixed)
{
    $attrId = /* get attribute ID by attribute code 'media_gallery' */
    /** @var MagentoFrameworkAppResourceConnection $this->resource */
    /** @var MagentoFrameworkDBAdapterPdoMysql $conn */
    $conn = $this->resource->getConnection();
    $table = $this->resource->getTableName('catalog_product_entity_media_gallery');
    $bind = [
        'attribute_id' => $attrId,
        'value' => $imgPathPrefixed,
        /* 'image' or 'video' */
        'media_type' => 'image',
        'disabled' => false
    ];
    $conn->insert($table, $bind);
    $result = $conn->lastInsertId($table);
    return $result;
}

አዲስ የሚዲያ ፋይል ሲመዘገብ መለያ ተመድቧል።

የተመዘገበውን የሚዲያ ፋይል ለነባሪ ማሳያ ከተዛማጅ ምርት ጋር ያገናኙ፡

function createGalleryValue($mediaId, $prodId)
{
    /** @var MagentoFrameworkAppResourceConnection $this->resource */
    /** @var MagentoFrameworkDBAdapterPdoMysql $conn */
    $conn = $this->resource->getConnection();
    $table = $this->resource->getTableName('catalog_product_entity_media_gallery_value');
    $bind = [
        'value_id' => $mediaId,
        /* use admin store view by default */
        'store_id' => 0,
        'entity_id' => $prodId,
        'label' => null,
        /* we have one only image */
        'position' => 1,
        'disabled' => false
    ];
    $conn->insert($table, $bind);
}

የተመዘገበውን የሚዲያ ፋይል ከማንኛውም ማሳያ ጋር ሳንታሰር ከተዛማጅ ምርት ጋር እናያይዛለን። ይህ ውሂብ የት በትክክል ጥቅም ላይ እንደዋለ እና ለምን የቀደመውን ሰንጠረዥ ውሂብ ማግኘት እንደማይቻል ግልጽ አይደለም, ነገር ግን ይህ ሰንጠረዥ አለ እና ውሂቡ በምርቱ ላይ ምስል ሲጨመር ይፃፋል. ስለዚህ, እንደዚህ.

function createGalleryValueToEntity($mediaId, $prodId)
{
    /** @var MagentoFrameworkAppResourceConnection $this->resource */
    /** @var MagentoFrameworkDBAdapterPdoMysql $conn */
    $conn = $this->resource->getConnection();
    $table = $this->resource->getTableName('catalog_product_entity_media_gallery_value_to_entity');
    $bind = [
        'value_id' => $mediaId,
        'entity_id' => $prodId
    ];
    $conn->insert($table, $bind);
}

ካታሎግ_ምርት_አካል_ቫርቻር

የሚዲያ ፋይሉ ከተለያዩ ሚናዎች ጋር ጥቅም ላይ ሊውል ይችላል (በቅንፍ ውስጥ የተዛማጁ ባህሪ ኮድ አለ)።

  • መሰረት(image)
  • ትንሽ ምስል (small_image)
  • ድንክዬ (thumbnail)
  • የእይታ ምስል(swatch_image)

የሚዲያ ፋይል የማስያዣ ሚናዎች ልክ በ ውስጥ ነው። catalog_product_entity_varchar. የማስያዣ ኮድ በ " ውስጥ ካለው ኮድ ጋር ተመሳሳይ ነው.መሰረታዊ የምርት ባህሪያት".

በአስተዳዳሪው ፓነል ውስጥ በምርቱ ላይ ምስል ካከሉ በኋላ የሚከተለው ይመስላል።

Magento 2፡ ምርቶችን በቀጥታ ወደ ዳታቤዝ ማስገባት

መደብ

በምድብ ውሂብ የያዙ ዋና ሰንጠረዦች፡-

  • catalog_category_entityየምድብ መመዝገቢያ;
  • catalog_category_productበምርቶች እና ምድቦች መካከል ያሉ ግንኙነቶች;
  • catalog_category_entity_*: EAV የባህሪ እሴቶች;

መጀመሪያ ላይ፣ በባዶ Magento መተግበሪያ፣ የምድብ መዝገብ ቤት 2 ምድቦችን ይይዛል (የአምድ ስሞችን አሳጠርኩ፡- crt - created_at, upd - updated_at):

entity_id|attribute_set_id|parent_id|crt|upd|path|position|level|children_count|
---------|----------------|---------|---|---|----|--------|-----|--------------|
        1|               3|        0|...|...|1   |       0|    0|             1|
        2|               3|        1|...|...|1/2 |       1|    1|             0|

id=1 ያለው ምድብ የመላው Magento ማውጫ ስር ነው እና በአስተዳዳሪው ውስጥም ሆነ በፊት አይገኝም። ምድብ ከ id=2 (ነባሪ ምድብ) ለዋናው ጣቢያ ዋና መደብር ስርወ ምድብ ነው (ዋና የድር ጣቢያ መደብር) ማመልከቻው ሲሰራጭ የተፈጠረ (ይመልከቱ አስተዳዳሪ / መደብሮች / ሁሉም መደብሮች). በተጨማሪም ፣ ፊት ለፊት ያለው የሱቁ ስርወ ምድብ እንዲሁ ተደራሽ አይደለም ፣ ንዑስ ምድቦች ብቻ።

የዚህ ጽሑፍ ርዕስ አሁንም የምርት ውሂብን ስለሚያመጣ, ምድቦችን በሚፈጥሩበት ጊዜ በቀጥታ ወደ የውሂብ ጎታ ውስጥ መግባትን አልጠቀምም, ነገር ግን በማጌንቶ እራሱ (ሞዴሎች እና ማከማቻዎች) የቀረቡትን ክፍሎች እጠቀማለሁ. በቀጥታ ወደ ዳታቤዝ መግባት የሚጠቅመው ከውጭ የመጣውን ምርት ከምድብ ጋር ለማገናኘት ብቻ ነው (ምድቡ በስሙ ይዛመዳል፣ የምድብ መታወቂያው ሲዛመድ ነው የተገኘው)

function create($prodId, $catId)
{
    /** @var MagentoFrameworkAppResourceConnection $this->resource */
    /** @var MagentoFrameworkDBAdapterPdoMysql $conn */
    $conn = $this->resource->getConnection();
    $table = $this->resource->getTableName('catalog_category_product');
    $bind = [
        'category_id' => $catId,
        'product_id' => $prodId,
    ];
    $conn->insert($table, $bind);
}

በምድብ "ምድብ 1" እና "ምድብ 2" ውስጥ የምርት ትስስርን ካከሉ ​​በኋላ በአስተዳዳሪ ፓነል ውስጥ ያለው የምርት ዝርዝሮች ይህን ይመስላል:

Magento 2፡ ምርቶችን በቀጥታ ወደ ዳታቤዝ ማስገባት

ተጨማሪ እርምጃዎች

የውሂብ ማስመጣቱ ከተጠናቀቀ በኋላ የሚከተሉትን ተጨማሪ እርምጃዎች ማከናወን ያስፈልግዎታል:

  • የውሂብ መረጃ ጠቋሚ: ኮንሶል ውስጥ ይደውሉ ./bin/magento indexer:reindex;
  • ለምርቶች/ምድቦች ዩአርኤል ማደስ፡ ቅጥያውን መጠቀም ትችላለህ"elgentos/ያድሳል-ካታሎግ-urls«

ተጨማሪ እርምጃዎችን ካደረጉ በኋላ በአስተዳዳሪ ፓነል ውስጥ ያሉ ምርቶች

Magento 2፡ ምርቶችን በቀጥታ ወደ ዳታቤዝ ማስገባት

እና ከፊት:

Magento 2፡ ምርቶችን በቀጥታ ወደ ዳታቤዝ ማስገባት

ማጠቃለያ

በቀደመው መጣጥፍ ውስጥ እንደነበረው ተመሳሳይ የምርት ስብስብ (10 ቁርጥራጮች) ቢያንስ በከፍተኛ ፍጥነት (1 ሰከንድ ከ 10) ወደ ሀገር ውስጥ ይገባል ። ለበለጠ ትክክለኛ የፍጥነት ግምገማ ብዙ ቁጥር ያላቸው ምርቶች - ብዙ መቶዎች እና በተለይም በሺዎች የሚቆጠሩ ያስፈልግዎታል። ነገር ግን፣ እንደዚህ ባለ አነስተኛ የግብአት መጠን እንኳን፣ በማጌንቶ (ሞዴሎች እና ማከማቻዎች) የቀረበውን የመሳሪያ ኪት አጠቃቀም ጠቃሚ ነው ብሎ መደምደም ይቻላል (አፅንዖት እሰጣለሁ- በጣም!) የሚፈለገውን ተግባር እድገት ማፋጠን ፣ ግን በተመሳሳይ ጊዜ ጉልህ በሆነ ሁኔታ (አፅንዖት እሰጣለሁ - በጣም!) መረጃ ወደ ዳታቤዝ የሚገባውን ፍጥነት ይቀንሱ።

በውጤቱም, ውሃው ወደ እርጥብ ተለወጠ እና ይህ ምንም መገለጥ አይደለም. ሆኖም፣ አሁን የምጫወትበት ኮድ አለኝ እና ምናልባትም የበለጠ አስደሳች ድምዳሜዎችን ልሳል።

ምንጭ: hab.com