Π
ααΆααα·αααα½ααα»αααααΌαα Magento ααΆααα»αααΆααααααααααα½α
ααΆααααα
αααααΆαα
ααΌααααααΎαα
ααααΈααΆααααααα’αααααααΆααααΈαα’αΆα
ααΎαααΆααα
αααα»ααααΌαα»α 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`)
)
ααααααΆαα’αααααααΆαααααααΌαααΆαααΎααααΈαααααΎαααΆαα»αα αααα»ααααααΈαααααααα·αααααΊα
attribute_set_id
sku
ααααααα
type_id
β ααααα·αααΎααΎααα·ααααααΆααααΆαα ααα 'ααΆαααα' ααΉαααααΌαααΆαααααΎ
ααΎααααΈααααααααααααΆαααα ααΌαααααΆααα·αααααα αααα»αααααΎα’αΆααΆααααα DB αααα Magento αααα½αααΆααααΆααα
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
ααΆα’αΆα
ααΎαααΎααα
αααα»αααααΆααααααααααα αα
αααα»ααααα‘αΆααα·ααα (ααΆααΆα‘α»α/ααα·ααα).
ααααΆαααααααααΆαααα·ααα αα·αααα ααααα
ααΆαααααΆαααααΆααααα·αααααΆαα½αααα ααααααααααααΆαα αααα»αα αΆαααΆαα½α αα·ααααα αΆαααα·αααααΉαααΆααα αααααααΆααα»αα
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);
}
αα»αααααααααα·αααααΆααΌαααααΆα
ααα·αααβαααβααΎαβα
α»αβαααααβααααΈβαα·αβααΆααβααΆαβαααααβα¬βααΆαβαααααΆβαα
βα‘αΎαβααα ααΆααα’αααααααααΌαααΆαααααΎααΆαααα
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
).
αααααΆααααΈαααααααα»αααααααααΆαααΎαα ααα·ααα α’αααααα½αααΆαααΌαααΆαααααα αααα»αααααΆαααααααααααα
αα·ααααααααΆαααΎααααα
α αΆααααααΎαααΈαααα 2.3 αα αααα»α Magento ααΆααααα»αααΆααΆααααΆαααΆα‘ααααΈαααααααααααΌαααΆααααα»αααααααΆαααΆαααΎααααα (ααα·ααΆαααα·ααα):
cataloginventory_*
αα ααΆααααααααα αΆαα;inventory_*
α αα ααΆααααααααααααΈ (MSI - Multi Source Inventory);
α’αααααααΌααααααααα·ααααααααΆαααΎααααααα
αα
ααΆααααααααααΆααααΈα ααΈααααα αα
ααΆααααααααααααΈαα·αααΆααα―αααΆαααααΆαααααα»αααΈαααααα
αΆαααα (ααΆααααααΆαααααααΆαα default
ααααΆαααα
αααα»ααα
ααΆααααααααααααΈααΆααΆααα½αααααΌαααΆαα
αΌααα½α cataloginventory_stock_status
as inventory_stock_1
).
ααΆααΆα‘α»α _
αα
αααααΆαααααααΆα Magneto 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
cataloginventory_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);
}
cataloginventory_stock_status
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 α’αΆα
ααααΆααα
αααα»αα’ααααα "
αααα»αααΉαααααΎααΆααααααααααΆαααΎα α αΎαααααααααααααΆαααΆαααΎαααααααΆααα’αααα
ααααα 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);
}
αααααΆααααΈαααααααα·ααααααααΆαααΎααααααα ααα·ααααα αααα»αααααΆααααααααααα α’αααααα½αααΆαααΌαααΆααααα
ααααααααααααααααααΆα
αα αααααααααααΌαααΆα "ααααα" αα ααΆααααα·αααααΆααααααααΆααααααααααα ααααααΆαααΆαααααααααααΌαααΆαααααααααα»αααΆααΆαααΆααααααα
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
ααΎααααΈα±αααααα·ααΆα’αΆα
ααααΎααΆααΆααΌαααΆααα
ααααα·αααααΆααα·αααααΈααΆααΆα‘α»αα
catalog_product_entity_media_gallery
α
α»ααααααααΆααααααΆααα
αααα»α ./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;
}
αα αααα α»αααααα α―αααΆαααααααααΈααααΌαααΆααααααα’ααααααααΆαα
catalog_product_entity_media_gallery_value
ααΎαααααΆααα―αααΆααααααααααΆαα α»ααααααααΆαα½αααα·ααααααααααΌαααααΆαααααΆαααα»αα αΆαααααΆαααΎαα
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);
}
catalog_product_entity_media_gallery_value_to_entity
ααΎαααααΆααα―αααΆααααααααααΆαα α»ααααααααΆαα½αααα·ααααααααααΌαααααΆααααα·αα αααααΆαααα ααΉααα»αα αΆαααΆαα½αα‘αΎαα ααΆαα·αα αααΆααααααΆααΎαα·αααααααααααααΌαααααΎαα α―ααΆ α αΎαα ααα»α’αααΈααΆαααΆααΆαα·αα’αΆα α αΌαααααΎαα·ααααααααΈααΆααΆααα»αααΆα ααα»ααααααΆααΆααααααΆα α αΎααα·ααααααααααΌαααΆαααααααα ααΆαα ααααααααΌαααΆαααααΌαααΆααααα αΌααα αααα»αααα·αααα αααα αΎαααΆααΆα
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);
}
catalog_product_entity_varchar
α―αααΆαβααααβα’αΆα βααααΌαβααΆαβααααΎβααΆαα½αβαα½ααΆααΈβαααααβααααΆ (ααΌαβαα»αααααααβαααβααααΌαβααααΆβααααΌαβααΆαβαααα αΆαβαααα»αβααααααα α)α
- ααΌαααααΆα(
image
) - ααΌαααΆαααΌα
(
small_image
) - ααΌαααΆαααΌα
(
thumbnail
) - ααΌαααΆα Swatch (
swatch_image
)
ααΆαααααΆαααα½ααΆααΈαα
α―αααΆαααααααΊαα·αααΆα’αααΈαααααΎαα‘αΎααα
αααα»α catalog_product_entity_varchar
. αααααΌαα
αααΊααααααααΉααααααΌααα
αααα»α "αα»αααααααααα·αααααΆααΌαααααΆα"α
αααααΆααααΈααααααααΌαααΆααα ααα·ααααααα»αααααΆααααααααααα ααΆααΎααα ααΌα αααα
αααααα
ααΆααΆαααααΆααααααααΆααα·ααααααααΆαααααααα
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 ααΆααααΌα α αΎααα·αααΆααα αααα»αααααΆααααααααααα α¬αα ααααααα»ααααααα αααααααααααΆαααααααααΆαα = 2 (ααααααααααΆαααΎα) ααΊααΆαααααα root αααααΆααα αΆαα ααααααααααα ααααα (α αΆαααα αααααααααΆαα) ααααΌαααΆααααααΎαα‘αΎααα αααααααααααα·ααΈααααΌαααΆαααΆαααααααΆα (ααΌαααΎαα α’αααααααααααα / α αΆα / α αΆαααΆααα’ααα) ααΎαααΈααααα ααα αααααα root ααα αΆααααα½αααΆαααα·αααΆααα αααααααΆααα»αααα ααΆαααααααααααααααααΆααα»αααααα
αααααΆααααααΆαααααα’αααααααααα ααααΆαα αΌααα·ααααααααΎααα·ααα αααα»αααΉααα·αααααΎααΆααααα αΌααααααααΆαααα αααα»αααΌαααααΆααα·αααααααα ααααααααΎααααααααα ααα»ααααααΉαααααΎααααΆααααααααααααα Magento αααα½αααΆ (αααΌααα αα·αααααΆαα)α ααΆααααα αΌααααααααΆαααα αααα»αααΌαααααΆααα·ααααααααααΌαααΆαααααΎααΎααααΈααααΆααααα·ααααααααΆαααΆαα αΌαααΆαα½ααααααααα½α (ααααααααααΌαααΆαααααΌααααααααααααααααααΆ α αΎαααααααααΆααααααααααααΌαααΆαααΆαααααα‘α»ααααααααΌαααα)α
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" ααααααΆααααα’α·αα’αααΈααα·ααααα αααα»αααααΆαααααααααααααΎααα ααΌα αααα
αααααααΆααααααα
αα ααααααααΆαααΆαα αΌααα·ααααααααααΌαααΆααααα αα α’αααααααΌααααααααα αΆαααααααααΆααααααα
- ααΆαααααΎαα·αα·αααααα·ααααααα α α
α
αΌααα»αααΌαα
./bin/magento indexer:reindex
; - αααααΎα URLs α‘αΎααα·ααααααΆααααα·ααα/ααααααα α’αααα’αΆα
ααααΎααααααααααα β
elgentos/regenerate-catalog-urls Β«
ααα·ααααα αααα»αααααΆααααααααααααααααΆααααΈα’αα»αααααααααααΆαααααααα
α αΎααα ααΆααα»αα
αααααα
αααα»αααααα·αααααΌα ααααΆ (10 ααααα) ααΌα αα αααα»αα’ααααααα»αααααΌαααΆαααΆαα αΌααααΆαα αα ααΆααααααΆααααααα·α αααααΏαααΆααα»α (1 αα·ααΆααΈαααααΉα 10) α ααΎααααΈαααΆαααααααΆαααααΏαααΆααααααααΉαααααΌα α’αααααααΌαααΆαααα·ααααα½αα ααα½ααα - ααΆαααα α¬αααααΎαααΆαααΆααααΆααα ααααααΆαααΆααααα αααααΈααΆααΆαααα αααΌα αααα·αααααααααα αΌαααααα ααΎαα’αΆα ααααα·ααααΆαααΆααΆαααααΎααααΆααα§αααααααααααααααα Magento (αααΌααα αα·αααααΆαα) ααΊααΆαααΆααααααΆαα (αααα»αααααααααααα - α αααΎα!) αααααΎαααααΏαααααΆαα’αα·αααααααα»αααΆααααααααΌαααΆαααα»αααααααα»αααααααα½ααααΆαααααΆαα (αααα»αααααααααααα - α αααΎα!) ααΆαααααααααααΏαααααα·ααααααα αΌααα αααα»αααΌαααααΆααα·ααααααα
ααΆαααααα ααΉαααααααΆααΎα α αΎαααααα·ααααααΆαα·ααααααα αααααΆαααΆαααΆααααα α₯α‘αΌαααααααα»αααΆααααααΌααααααΆαααααααΆαα½α α αΎααααα ααααΆααΆαααΆαααααα·ααααΆααα½αα±ααα αΆααα’αΆαααααααααααααααα
ααααα: www.habr.com