рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ Magento 2 рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ - рдореЙрдбрд▓ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ рдХреЛ рдмрд╣реБрдд рдХрдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЧрддрд┐ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдореЗрд░реЗ рд▓реИрдкрдЯреЙрдк рдкрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓рдЧрднрдЧ рдПрдХ рдЙрддреНрдкрд╛рдж рдирд┐рдХрд▓рд╛ред рдЗрд╕ рдирд┐рд░рдВрддрд░рддрд╛ рдореЗрдВ, рдореИрдВ рдПрдХ рдЙрддреНрдкрд╛рдж рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХрд╛ рдорд╛рдирддрд╛ рд╣реВрдВ - рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реАрдзреЗ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХрд░рдХреЗ, рдореИрдЧреЗрдВрдЯреЛ 2 (рдореЙрдбрд▓, рдХрд╛рд░рдЦрд╛рдиреЛрдВ, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА) рдХреЗ рдорд╛рдирдХ рддрдВрддреНрд░ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддрд╛ рд╣реВрдВред рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдХрд╛ рдХреНрд░рдо рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЕрд╕реНрд╡реАрдХрд░рдг : рдореИрдЧреЗрдВрдЯреЛ рдореЗрдВ рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ рдФрд░, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдЖрдкрдХреЛ рдЖрдпрд╛рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдЕрдзрд┐рдХ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреНрдпрд╛ рд╣реИ - рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рдЧрдд рд╣реИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдПрд╕рд╡реА рдлрд╝рд╛рдЗрд▓ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред

рджреЛрдиреЛрдВ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреЛрдб рдХреЛ flancer32 / mage2_ext_demo_import Magento рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдбреЗрдореЛ рдореЙрдбреНрдпреВрд▓ рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдз рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ:
- рдЙрддреНрдкрд╛рдж рдХреЗрд╡рд▓ рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред
- рдПрдХ рдЧреЛрджрд╛рдо
- рдХреЗрд╡рд▓ рд╢реНрд░реЗрдгреА рдХреЗ рдирд╛рдо рдЖрдпрд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрдирдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд┐рдирд╛
- рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ 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`) )
рдЙрддреНрдкрд╛рдж рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рдЬрд╛рдирдХрд╛рд░реА:
рдЕрдзрд┐рдХ:
type_id
- рдпрджрд┐ type_id
рдирд╣реАрдВ type_id
, рддреЛ 'рд╕рд░рд▓' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реАрдзреЗ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЦреБрдж Magento рдХреЗ DB рдПрдбрд╛рдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
function create($sku, $typeId, $attrSetId) { $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
рдореЗрдВ рдХрд┐рд╕реА рдЙрддреНрдкрд╛рдж рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж catalog_product_entity
рдпрд╣ рдЙрддреНрдкрд╛рдж рдЧреНрд░рд┐рдб ( рдХреИрдЯрд▓реЙрдЧ / рдЙрддреНрдкрд╛рдж ) рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рд▓рд┐рдВрдХ рдЙрддреНрдкрд╛рдж рдФрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ
рд╕рд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдЙрддреНрдкрд╛рдж рдХрд╛ рд╕рдВрдмрдВрдз рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рд╕реНрдЯреЛрд░ рдореЗрдВ рдФрд░ рдХрд┐рди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрддреНрдкрд╛рдж рд╕рд╛рдордиреЗ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред
function linkToWebsite($prodId, $websiteId) { $conn = $this->resource->getConnection(); $table = $this->resource->getTableName('catalog_product_website'); $bind = [ 'product_id' => $prodId, 'website_id' => $websiteId ]; $conn->insert($table, $bind); }

рдореВрд▓ рдЙрддреНрдкрд╛рдж рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ
рдПрдХ рддрд╛рдЬрд╝рд╛ рдкрдВрдЬреАрдХреГрдд рдЙрддреНрдкрд╛рдж рдХрд╛ рдЕрднреА рддрдХ рдХреЛрдИ рдирд╛рдо рдпрд╛ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рдм рдИрдПрд╡реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдореВрд▓ рдЙрддреНрдкрд╛рдж рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ, рдЬреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ рдХрд┐ рдЙрддреНрдкрд╛рдж рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рд╛рдордиреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
name
price
description
short_description
status
tax_class_id
url_key
visibility
рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдЙрд╕рдХреЗ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):
public function create($prodId, $attrCode, $attrValue) { $attrId = $attrType = if ($attrId) { $conn = $this->resource->getConnection(); $tblName = 'catalog_product_entity_' . $attrType; $table = $this->resource->getTableName($tblName); $bind = [ 'attribute_id' => $attrId, 'entity_id' => $prodId, 'store_id' => 0, 'value' => $attrValue ]; $conn->insert($table, $bind); } }
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЗрд╕рдХреА рдЖрдИрдбреА рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ ( datetime
, decimal
, int
, text
, varchar
) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ, рдлрд┐рд░ рд╕рдВрдмрдВрдзрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╣рдо рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рд╕реНрдЯреЛрд░рдлреНрд░рдВрдЯ ( store_id = 0
) рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЙрддреНрдкрд╛рдж рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдпрд╣ рдЪрд┐рддреНрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:

рдЗрдиреНрд╡реЗрдВрдЯрд░реА рдбреЗрдЯрд╛
2.3 рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╢реБрд░реВ, Magento рдореЗрдВ рдПрдХ рд╕рд╛рде рд╕реВрдЪреА рд╕реВрдЪрдирд╛ (рдЙрддреНрдкрд╛рдж рдХреА рдорд╛рддреНрд░рд╛) рдХрд╛ рднрдВрдбрд╛рд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рджреЛ рд╕реЗрдЯ рд╣реИрдВ:
cataloginventory_*
: рдкреБрд░рд╛рдиреА рд╕рдВрд░рдЪрдирд╛;inventory_*
: рдирдИ рд╕рдВрд░рдЪрдирд╛ (рдПрдордПрд╕рдЖрдИ - рдорд▓реНрдЯреА рд╕реЛрд░реНрд╕ рдЗрдиреНрд╡реЗрдВрдЯрд░реА);
рдЖрдкрдХреЛ рджреЛрдиреЛрдВ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдирдИ рд╕рдВрд░рдЪрдирд╛ рдЕрднреА рддрдХ рдкреБрд░рд╛рдиреА рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИ (рдпрд╣ cataloginventory_stock_status
рдЯреЗрдмрд▓ рдХрд╛ cataloginventory_stock_status
рдирдИ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ default
рдЧреЛрджрд╛рдо рдХреЗ рд▓рд┐рдП inventory_stock_1
1 рдХреЗ default
рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
cataloginventory_
рдореИрдЧреНрдиреЗрдЯреЛ 2.3 рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╢реБрд░реВ рдореЗрдВ store_website
рдореЗрдВ 2 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ store_website
, рдЬреЛ рджреЛ рд╕рд╛рдЗрдЯреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВ - рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдФрд░ рдореБрдЦреНрдп 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
) рд╣реИ рдФрд░ рдпрд╣ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ stocks
(рдирдИ рд╕рдВрд░рдЪрдирд╛) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдордПрд╕рдЖрдИ рдореЗрдВ рдирдП sources
/ stocks
рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ cataloginventory_stock
рдореЗрдВ рдирдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред
рдкреБрд░рд╛рдиреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЙрддреНрдкрд╛рджреЛрдВ рдкрд░ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдбреЗрдЯрд╛ рд╢реБрд░реВ рдореЗрдВ рдЯреЗрдмрд▓ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ:
cataloginventory_stock_item
cataloginventory_stock_status
cataloginventory_stock_item
function createOldItem($prodId, $qty) { $isQtyDecimal = (((int)$qty) != $qty); $isInStock = ($qty > 0); $conn = $this->resource->getConnection(); $table = $this->resource->getTableName('cataloginventory_stock_item'); $bind = [ 'product_id' => $prodId, 'stock_id' => 1, 'qty' => $qty, 'is_qty_decimal' => $isQtyDecimal, 'is_in_stock' => $isInStock, 'website_id' => 0 ]; $conn->insert($table, $bind); }
cataloginventory_stock_status
function createOldStatus($prodId, $qty) { $isInStock = ($qty > 0); $conn = $this->resource->getConnection(); $table = $this->resource->getTableName('cataloginventory_stock_status'); $bind = [ 'product_id' => $prodId, 'stock_id' => 1, 'qty' => $qty, 'stock_status' => \Magento\CatalogInventory\Api\Data\StockStatusInterface::STATUS_IN_STOCK, 'website_id' => 0 ]; $conn->insert($table, $bind); }
inventory_
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдИ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ 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
рджреНрд╡рд╛рд░рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
рдПрдХ " рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ " рдХреЛ рдХрдИ " рд╕реНрд░реЛрддреЛрдВ " рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ " рд╕реНрд░реЛрдд " рдХреЛ рдХрдИ " рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ " (рдХрдИ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдз) рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдкрд╡рд╛рдж рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИрдВ " рд╕реНрд░реЛрдд " рдФрд░ " рдЧреЛрджрд╛рдо "ред рд╡реЗ рдЕрдиреНрдп рд╕рдВрд╕реНрдерд╛рдУрдВ рд╕реЗ рдирд╣реАрдВ рдмрдВрдзрддреЗ рд╣реИрдВ (рдХреЛрдб рд╕реНрддрд░ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз - рддреНрд░реБрдЯрд┐ " рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрд░реЛрдд рдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдЯреЙрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ рдХреЛ рдирд╣реАрдВ рдмрдЪрд╛ рд╕рдХрддреА " рдХреНрд░реИрд╢)ред рдЖрдк " рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдореИрдиреЗрдЬрдореЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рд╕реАрдХреНрдпреВрдЖрд░рдПрд╕ рдФрд░ рдЗрд╡реЗрдВрдЯ рд╕реЛрд░реНрд╕рд┐рдВрдЧ рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП " рд▓реЗрдЦ рдореЗрдВ рдореИрдЧреЗрдВрдЯреЛ 2 рдореЗрдВ рдПрдордПрд╕рдЖрдИ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ рдФрд░ рд╕рднреА рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ default
рд╕реНрд░реЛрдд рдореЗрдВ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ base
рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рдмрд┐рдХреНрд░реА рдЪреИрдирд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕реНрдЯреЛрд░ рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ - рджреЗрдЦреЗрдВ store_website
):
function createNewItem($sku, $qty) { $conn = $this->resource->getConnection(); $table = $this->resource->getTableName('inventory_source_item'); $bind = [ 'source_code' => 'default', 'sku' => $sku, 'quantity' => $qty, 'status' => \Magento\InventoryApi\Api\Data\SourceItemInterface::STATUS_IN_STOCK ]; $conn->insert($table, $bind); }
рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рдЙрддреНрдкрд╛рдж рдореЗрдВ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдпрд╣ рдЪрд┐рддреНрд░ рдорд┐рд▓рддрд╛ рд╣реИ:

рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрддреНрдкрд╛рдж рдореЗрдВ "рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ" рдЪрд┐рддреНрд░ рдЬреЛрдбрд╝рдиреЗ рдкрд░, рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдореНрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рджрд░реНрдЬ рдХреА рдЬрд╛рддреА рд╣реИ:
catalog_product_entity_media_gallery
: рдореАрдбрд┐рдпрд╛ рд░рдЬрд┐рд╕реНрдЯреНрд░реА (рдЪрд┐рддреНрд░ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдлрд╛рдЗрд▓реЗрдВ);catalog_product_entity_media_gallery_value
: рдореАрдбрд┐рдпрд╛ рдХреЛ рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рд╕реНрдЯреЛрд░рдлреНрд░рдВрдЯ (рд╕реНрдерд╛рдиреАрдпрдХрд░рдг) рд╕реЗ рдЬреЛрдбрд╝рдирд╛;catalog_product_entity_media_gallery_value_to_entity
: рдХреЗрд╡рд▓ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдореАрдбрд┐рдпрд╛ рдХреЛ catalog_product_entity_media_gallery_value_to_entity
рдХрд░рдирд╛ (рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡рддрдГ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореАрдбрд┐рдпрд╛ рд╕рд╛рдордЧреНрд░реА);catalog_product_entity_varchar
: рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рднреВрдорд┐рдХрд╛рдПрдВ рдпрд╣рд╛рдВ рд╕рд╣реЗрдЬреА рдЬрд╛рддреА рд╣реИрдВ;
рдФрд░ рдЫрд╡рд┐рдпрд╛рдВ рд╕реНрд╡рдпрдВ ./pub/media/catalog/product/x/y/
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рд╣реЗрдЬреА рдЬрд╛рддреА рд╣реИрдВ, рдЬрд╣рд╛рдВ x
рдФрд░ y
рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рдкрд╣рд▓реЗ рдФрд░ рджреВрд╕рд░реЗ рдЕрдХреНрд╖рд░ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ./pub/media/catalog/product/i/m/image.png
рдлрд╝рд╛рдЗрд▓ рдХреЛ ./pub/media/catalog/product/i/m/image.png
рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдХреИрдЯрд▓реЙрдЧ рд╕реЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЗрд╕реЗ рдПрдХ рдЫрд╡рд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗред
рд╣рдо ./pub/media/catalog/product/
(рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд░рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдореЗрдВ рд╕реНрдерд┐рдд рдореАрдбрд┐рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ:
function createMediaGallery($imgPathPrefixed) { $attrId = $conn = $this->resource->getConnection(); $table = $this->resource->getTableName('catalog_product_entity_media_gallery'); $bind = [ 'attribute_id' => $attrId, 'value' => $imgPathPrefixed, 'media_type' => 'image', 'disabled' => false ]; $conn->insert($table, $bind); $result = $conn->lastInsertId($table); return $result; }
рдкрдВрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдирдИ рдореАрдбрд┐рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рдореАрдбрд┐рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╣реИрдВ:
function createGalleryValue($mediaId, $prodId) { $conn = $this->resource->getConnection(); $table = $this->resource->getTableName('catalog_product_entity_media_gallery_value'); $bind = [ 'value_id' => $mediaId, 'store_id' => 0, 'entity_id' => $prodId, 'label' => null, 'position' => 1, 'disabled' => false ]; $conn->insert($table, $bind); }
рд╣рдо рдкрдВрдЬреАрдХреГрдд рдореАрдбрд┐рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрд┐рд╕реА рднреА рд╕реНрдЯреЛрд░рдлреНрд░рдВрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдбреЗрдЯрд╛ рдХрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд┐рдЫрд▓реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЕрд╕рдВрднрд╡ рдХреНрдпреЛрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдЙрддреНрдкрд╛рдж рдореЗрдВ рдЪрд┐рддреНрд░ рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдЗрд╕реЗ рдбреЗрдЯрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ред
function createGalleryValueToEntity($mediaId, $prodId) { $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); }
catalog_product_entity_varchar
рдПрдХ рдореАрдбрд┐рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдХреЛрдб рдХреЛрд╖реНрдардХ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ):
- рдЖрдзрд╛рд░ (
image
) - рдЫреЛрдЯреА рдЫрд╡рд┐ (
small_image
) - рдердВрдмрдиреЗрд▓ (
thumbnail
) swatch_image
рдЗрдореЗрдЬ ( swatch_image
)
рдореАрдбрд┐рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ catalog_product_entity_varchar
рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛрдб " рдореВрд▓ рдЙрддреНрдкрд╛рдж рдЧреБрдг " рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдХреЛрдб рдХреЗ рд╕рдорд╛рди рд╣реИред
рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рдЙрддреНрдкрд╛рдж рдореЗрдВ рдЫрд╡рд┐ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рддрд╛ рд╣реИ:

рд╢реНрд░реЗрдгреА
рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╢реНрд░реЗрдгреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ:
catalog_category_entity
: рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХрд╛ рд░рдЬрд┐рд╕реНрдЯрд░;catalog_category_product
: рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХрд╛ рд╕рд╣рдпреЛрдЧ;catalog_category_entity_*
: catalog_category_entity_*
рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдп;
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЦрд╛рд▓реА рдореИрдЧреЗрдВрдЯреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рд╢реНрд░реЗрдгреА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ 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 рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЬрдбрд╝ рд╣реИ рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдпрд╛ рд╕рд╛рдордиреЗ рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдЖрдИрдбреА = 2 рдХреЗ рд╕рд╛рде рд╢реНрд░реЗрдгреА ( рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╢реНрд░реЗрдгреА ) рдореБрдЦреНрдп рд╡реЗрдмрд╕рд╛рдЗрдЯ ( рдореБрдЦреНрдп рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реНрдЯреЛрд░ ) рдХреЗ рдореБрдЦреНрдп рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рд╢реНрд░реЗрдгреА рд╣реИ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ( рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ / рд╕реНрдЯреЛрд░ / рд╕рднреА рд╕реНрдЯреЛрд░ рджреЗрдЦреЗрдВ )ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╛рдордиреЗ рдХреА рджреБрдХрд╛рди рдХреА рдмрд╣реБрдд рдореВрд▓ рд╢реНрд░реЗрдгреА рднреА рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕рдХреА рдЙрдкрд╢реНрд░реЗрдгрд┐рдпрд╛рдБред
рдЪреВрдВрдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рд╡рд┐рд╖рдп рдЕрднреА рднреА рдЙрддреНрдкрд╛рдж рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ рдмрдирд╛рддреЗ рд╕рдордп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рддреНрдпрдХреНрд╖ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЦреБрдж рдореИрдЧреЗрдВрдЯреЛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдХрдХреНрд╖рд╛рдУрдВ (рдореЙрдбрд▓ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЖрдпрд╛рддрд┐рдд рдЙрддреНрдкрд╛рдж рдХреЛ рд╢реНрд░реЗрдгреА рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╢реНрд░реЗрдгреА рдХреЛ рдЙрд╕рдХреЗ рдирд╛рдо рд╕реЗ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдорд┐рд▓рд╛рди рдХрд░рддреЗ рд╕рдордп рд╢реНрд░реЗрдгреА рдЖрдИрдбреА рдХреЛ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ):
function create($prodId, $catId) { $conn = $this->resource->getConnection(); $table = $this->resource->getTableName('catalog_category_product'); $bind = [ 'category_id' => $catId, 'product_id' => $prodId, ]; $conn->insert($table, $bind); }
"рд╢реНрд░реЗрдгреА 1" рдФрд░ "рд╢реНрд░реЗрдгреА 2" рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрддреНрдкрд╛рдж рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рдЙрддреНрдкрд╛рдж рд╡рд┐рд╡рд░рдг рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдп
рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
- рдбреЗрдЯрд╛ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ: рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рдХреЙрд▓
./bin/magento indexer:reindex
; - рдЙрддреНрдкрд╛рджреЛрдВ / рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП URL рдкреБрдирд░реНрдЬрдирди: рдЖрдк " elgentos / рдкреБрдирд░реНрдЬрдирди-рдХреИрдЯрд▓реЙрдЧ-рдпреВрдЖрд░рдПрд▓ " рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░рдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рдЙрддреНрдкрд╛рдж:

рдФрд░ рд╕рд╛рдордиреЗ:

рд╕рд╛рд░рд╛рдВрд╢
рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рдПрдХ рд╣реА рд╕реЗрдЯ (10 рдЯреБрдХрдбрд╝реЗ) рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдкрд░рд┐рдорд╛рдг рдХреЗ рдПрдХ рдЖрджреЗрд╢ рддреЗрдЬреА рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (1 рд╕реЗрдХрдВрдб рдмрдирд╛рдо 10)ред рдЧрддрд┐ рдХреЗ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдХрдИ рд╕реМ, рдФрд░ рдЕрдзрд┐рдорд╛рдирддрдГ рд╣рдЬрд╛рд░реЛрдВред рдлрд┐рд░ рднреА, рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рдЗрддрдиреА рдХрдо рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде, рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдЧреЗрдВрдЯреЛ (рдореЙрдбрд▓ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА) рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ (рдЬреЛрд░ - рдорд╣рддреНрд╡рдкреВрд░реНрдг !) рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рддреЗрдЬ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ (рдЬреЛрд░ -!) рдХрдо рдХрд░реЗрдВред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдЧрддрд┐ред
рдирддреАрдЬрддрди, рдкрд╛рдиреА рдЧреАрд▓рд╛ рд╣реЛ рдЧрдпрд╛ рдФрд░ рдпрд╣ рд░рд╣рд╕реНрдпреЛрджреНрдШрд╛рдЯрди рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ рдФрд░ рд╕рдВрднрд╡рддрдГ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реВрдВред