ะ
เชเชตเชพเชฌเชฆเชพเชฐเซเชจเซ เชเชจเชเชพเชฐ: 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
- เชเซ เชเชชเชฃเซ เชคเซเชจเซ เชเชฒเซเชฒเซเช เชจ เชเชฐเซเช, เชคเซ 'เชธเชฟเชฎเซเชชเชฒ' เชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ
เชกเซเชเชพเชฌเซเช เชชเชฐ เชธเซเชงเซเช เชฒเชเชตเชพ เชฎเชพเชเซ, เชนเซเช Magento เชจเชพ 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
เชคเซ เชเชกเชฎเชฟเชจ เชชเซเชจเชฒเชฎเชพเช, เชชเซเชฐเซเชกเชเซเช เชเซเชฐเซเชกเชฎเชพเช เชฆเซเชเชพเชฏ เชเซ (เชเซเชเชฒเซเช/เชเชคเซเชชเชพเชฆเชจเซ).
เชเชคเซเชชเชพเชฆเชจ เช เชจเซ เชตเซเชฌเชธเชพเชเช เชตเชเซเชเซเชจเซ เชธเชเชฌเชเชง
เชธเชพเชเช เชธเชพเชฅเซ เชเชคเซเชชเชพเชฆเชจเชจเซเช เชเซเชกเชพเชฃ เชจเชเซเชเซ เชเชฐเซ เชเซ เชเซ เชเชเชณเชจเชพ เชญเชพเชเชฎเชพเช เชเชคเซเชชเชพเชฆเชจ เชเชฏเชพ เชธเซเชเซเชฐเซเชธ เช เชจเซ เชกเชฟเชธเซเชชเซเชฒเซเชฎเชพเช เชเชชเชฒเชฌเซเชง เชนเชถเซ.
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
).
เชเชคเซเชชเชพเชฆเชจเชฎเชพเช เชเชชเชฐเซเชเซเชค เชตเชฟเชถเซเชทเชคเชพเช เชเชฎเซเชฐเซเชฏเชพ เชชเชเซ, เชคเชฎเชจเซ เชเชกเชฎเชฟเชจ เชชเซเชจเชฒเชฎเชพเช เช เชเชฟเชคเซเชฐ เชฎเชณเชถเซ:
เชเชจเซเชตเซเชจเซเชเชฐเซ เชกเซเชเชพ
Magento เชฎเชพเช เชธเชเชธเซเชเชฐเชฃ 2.3 เชฅเซ เชถเชฐเซ เชเชฐเซเชจเซ, เชเซเชทเซเชเชเซเชจเชพ เชฌเซ เชธเชฎเชพเชเชคเชฐ เชธเซเช เชเซ เชเซ เชเชจเซเชตเซเชจเซเชเชฐเซ เชฎเชพเชนเชฟเชคเซ (เชเชคเซเชชเชพเชฆเชจ เชเชฅเซเชฅเซ) เชจเซ เชธเชเชเซเชฐเชน เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ:
cataloginventory_*
: เชเซเชจเซ เชฐเชเชจเชพ;inventory_*
: เชจเชตเซ เชฐเชเชจเชพ (MSI - เชฎเชฒเซเชเซ เชธเซเชฐเซเชธ เชเชจเซเชตเซเชจเซเชเชฐเซ);
เชคเชฎเชพเชฐเซ เชฌเชเชจเซ เชฎเชพเชณเชเชพเชฎเชพเช เชเชจเซเชตเซเชจเซเชเชฐเซ เชกเซเชเชพ เชเชฎเซเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชเชพเชฐเชฃ เชเซ เชจเชตเซเช เชฎเชพเชณเชเซเช เชนเชเซ เชเซเชจเชพเชฅเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชธเซเชตเชคเชเชคเซเชฐ เชจเชฅเซ (เชคเซ เชเซเชฌ เช เชธเชเชญเชต เชเซ เชเซ เชฎเชพเชเซ default
เชจเชตเซ เชฐเชเชจเชพเชฎเชพเช เชตเซเชฐเชนเชพเชเชธ เชเช เชเซเชฌเชฒ เชธเชพเชฎเซเชฒ เชเซ cataloginventory_stock_status
เชเชพเชฐเชฃ เชเซ inventory_stock_1
).
cataloginventory_
เชฎเซเชเซเชจเซเชเซ 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
).
เชเช"เชตเซเชฐเชนเชพเชเชธ"เชเชฃเชพ เชธเชพเชฅเซ เชฒเชฟเชเช เชเชฐเซ เชถเชเชพเชฏ เชเซ"เชธเซเชคเซเชฐเซเชคเซ"เช
เชจเซ เชเช"เชธเซเชฐเซเชค"- เชเชฃเชพ เชฎเชพเชเซ"เชตเชเชพเชฐเซ"(เชเชฃเชพ-เชฅเซ-เชเชฃเชพ เชธเชเชฌเชเชงเซ). เช
เชชเชตเชพเชฆเซ เชฎเซเชณเชญเซเชค เชเซ "เชธเซเชฐเซเชค"เช
เชจเซ"เชตเซเชฐเชนเชพเชเชธ" เชคเซเช เช
เชจเซเชฏ เชธเชเชธเซเชฅเชพเช เชธเชพเชฅเซ เชซเชฐเซเชฅเซ เชเซเชกเชพเชฏเซเชฒเชพ เชจเชฅเซ (เชเซเชก เชธเซเชคเชฐ เชชเชฐ เชฎเชฐเซเชฏเชพเชฆเชพ - เชญเซเชฒ โเชกเชฟเชซเซเชฒเซเช เชธเซเชฐเซเชค เช
เชฅเชตเชพ เชกเชฟเชซเซเชฒเซเช เชธเซเชเซเช เชธเชเชฌเชเชงเชฟเชค เชฒเชฟเชเช เชธเชพเชเชตเซ เชถเชเชพเชคเซ เชจเชฅเซ"). Magento 2 เชฎเชพเช MSI เชธเซเชเซเชฐเชเซเชเชฐ เชตเชฟเชถเซ เชตเชงเซ เชตเชฟเชเชคเซ เชฒเซเชเชฎเชพเช เชฎเชณเซ เชถเชเซ เชเซ โ
เชนเซเช เชกเชฟเชซเซเชฒเซเช เชฐเซเชชเชฐเซเชเชพเชเชเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถ เช
เชจเซ เชธเซเชฐเซเชคเชฎเชพเช เชคเชฎเชพเชฎ เชเชจเซเชตเซเชจเซเชเชฐเซ เชฎเชพเชนเชฟเชคเซ เชเชฎเซเชฐเซเชถ 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_image
)
เชฎเซเชกเชฟเชฏเชพ เชซเชพเชเชฒ เชธเชพเชฅเซ เชญเซเชฎเชฟเชเชพเชเชจเซ เชฒเชฟเชเช เชเชฐเชตเซ เชคเซ เชฌเชฐเชพเชฌเชฐ เชเซ เชเซ เชฅเชพเชฏ เชเซ catalog_product_entity_varchar
. เชฌเชเชงเชจเชเชฐเซเชคเชพ เชเซเชก "เชฎเชพเชเชจเชพ เชเซเชก เชเซเชตเซ เช เชเซเชฎเซเชณเชญเซเชค เชเชคเซเชชเชพเชฆเชจ เชฒเชเซเชทเชฃเซ".
เชเชกเชฎเชฟเชจ เชชเซเชจเชฒเชฎเชพเช เชเชคเซเชชเชพเชฆเชจเชฎเชพเช เชเชฌเซ เชเชฎเซเชฐเซเชฏเชพ เชชเชเซ เชคเซ เชเชจเชพ เชเซเชตเซเช เชฆเซเชเชพเชฏ เชเซ:
เชถเซเชฐเซเชฃเซ
เชเซเชเซเชเชฐเซ เชฆเซเชตเชพเชฐเชพ เชกเซเชเชพ เชงเชฐเชพเชตเชคเชพ เชฎเซเชเซเชฏ เชเซเชทเซเชเชเซ:
catalog_category_entity
: เชถเซเชฐเซเชฃเซเชเชจเซเช เชฐเชเซเชธเซเชเชฐ;catalog_category_product
: เชเชคเซเชชเชพเชฆเชจเซ เช เชจเซ เชถเซเชฐเซเชฃเซเช เชตเชเซเชเซ เชเซเชกเชพเชฃ;catalog_category_entity_*
: EAV เชตเชฟเชถเซเชทเชคเชพ เชฎเซเชฒเซเชฏเซ;
เชถเชฐเซเชเชคเชฎเชพเช, เชเชพเชฒเซ เชฎเซเชเซเชจเซเชเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชฎเชพเช, เชเซเชเซเชเชฐเซ เชฐเชเชฟเชธเซเชเซเชฐเซเชฎเชพเช 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 เชธเชพเชฅเซ เชถเซเชฐเซเชฃเซ (เชกเชฟเชซเซเชฒเซเช เชเซเชเซเชเชฐเซ) เช เชฎเซเชเซเชฏ เชธเชพเชเชเชจเชพ เชฎเซเชเซเชฏ เชธเซเชเซเชฐ เชฎเชพเชเซ เชฐเซเช เชเซเชเซเชเชฐเซ เชเซ (เชฎเซเชเซเชฏ เชตเซเชฌเชธเชพเชเช เชธเซเชเซเชฐเชเซเชฏเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชฎเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชคเซเชฏเชพเชฐเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ (เชเซเช. เชเชกเชฎเชฟเชจ / เชธเซเชเซเชฐเซเชธ / เชฌเชงเชพ เชธเซเชเซเชฐเซเชธ). เชคเชฆเซเชชเชฐเชพเชเชค, เชธเซเชเซเชฐเชจเซ เชฐเซเช เชเซเชเซเชเชฐเซ เชชเชฃ เชเชเชณเชจเชพ เชญเชพเชเชฎเชพเช เชเชชเชฒเชฌเซเชง เชจเชฅเซ, เชซเชเซเชค เชคเซเชจเซ เชเชชเชเซเชเซเชเชฐเซเช.
เช เชฒเซเชเชจเซ เชตเชฟเชทเชฏ เชนเชเซ เชชเชฃ เชเชคเซเชชเชพเชฆเชจเซ เชชเชฐเชจเชพ เชกเซเชเชพเชจเซ เชเชฏเชพเชค เชเชฐเชตเชพเชจเซ เชนเซเชตเชพเชฅเซ, เชนเซเช เชเซเชเซเชเชฐเซเช เชฌเชจเชพเชตเชคเซ เชตเชเชคเซ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชธเซเชงเซ เชชเซเชฐเชตเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถ เชจเชนเซเช, เชชเชฐเชเชคเซ 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
; - เชเชคเซเชชเชพเชฆเชจเซ/เชถเซเชฐเซเชฃเซเช เชฎเชพเชเซ URL เชจเซ เชซเชฐเซเชฅเซ เชฌเชจเชพเชตเชตเซเช: เชคเชฎเซ เชเชเซเชธเซเชเซเชเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ โ
elgentos/regenerate-catalog-urls ยซ
เชตเชงเชพเชฐเชพเชจเซ เชเซเชฐเชฟเชฏเชพเช เชเชฐเซเชฏเชพ เชชเชเซ เชเชกเชฎเชฟเชจ เชชเซเชจเชฒเชฎเชพเช เชชเซเชฐเซเชกเชเซเชเซเชธ:
เช เชจเซ เชเชเชณ:
เชธเชพเชฐเชพเชเชถ
เช เชเชพเชเชจเชพ เชฒเซเชเชจเซ เชเซเชฎ เชเชคเซเชชเชพเชฆเชจเซเชจเซ เชธเชฎเชพเชจ เชธเชฎเซเชน (10 เชเซเชเชกเชพเช) เชเชเชพเชฎเชพเช เชเชเชพ เชคเซเชตเซเชฐเชคเชพเชจเชพ เชเซเชฐเชฎเชฎเชพเช เชเชกเชชเชฅเซ (1 เชตเชฟเชฐเซเชฆเซเชง 10 เชธเซเชเชจเซเชก) เชเชฏเชพเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชเชกเชชเชจเซ เชตเชงเซ เชธเชเซเช เช เชเชฆเชพเช เชฒเชเชพเชตเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชฎเซเชเซ เชธเชเชเซเชฏเชพเชฎเชพเช เชเชคเซเชชเชพเชฆเชจเซเชจเซ เชเชฐเซเชฐ เชเซ - เชเซเชเชฒเชพเช เชธเซ, เช เชฅเชตเชพ เชตเชงเซ เชธเชพเชฐเชพ เชเชคเชพเช เชนเชเชพเชฐเซ. เชเซ เชเซ, เชเชจเชชเซเช เชกเซเชเชพเชจเชพ เชเชเชฒเชพ เชจเชพเชจเชพ เชเชฆ เชธเชพเชฅเซ เชชเชฃ, เช เชฎเซ เชจเชฟเชทเซเชเชฐเซเชท เชชเชฐ เชเชตเซ เชถเชเซเช เชเซเช เชเซ เชฎเซเชเซเชจเซเชเซ (เชฎเซเชกเซเชฒ เช เชจเซ เชฐเซเชชเซเชเซเชเชฐเซเช) เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฒ เชธเชพเชงเชจเซเชจเซ เชเชชเชฏเซเช เชจเซเชเชงเชชเชพเชคเซเชฐ เชเซ (เชนเซเช เชญเชพเชฐ เชฎเซเชเซเช เชเซเช - เชเซเชฌ!) เชเชฐเซเชฐเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพเชจเชพ เชตเชฟเชเชพเชธเชจเซ เชตเซเช เชเชชเซ, เชชเชฐเชเชคเซ เชคเซ เช เชธเชฎเชฏเซ เชจเซเชเชงเชชเชพเชคเซเชฐ เชฐเซเชคเซ (เชนเซเช เชญเชพเชฐ เชฎเซเชเซเช เชเซเช - เชเซเชฌ!) เชเซ เชเชกเชชเซ เชกเซเชเชพ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชชเซเชฐเชตเซเชถ เชเชฐเซ เชเซ เชคเซเชจเซ เชเชเชพเชกเซ เชเซ.
เชชเชฐเชฟเชฃเชพเชฎเซ, เชชเชพเชฃเซ เชญเซเชจเซเช เชฅเช เชเชฏเซเช เช เชจเซ เช เชเซเช เชธเชพเชเซเชทเชพเชคเซเชเชพเชฐ เชจเชฅเซ. เชเซ เชเซ, เชนเชตเซ เชฎเชพเชฐเซ เชชเชพเชธเซ เชฐเชฎเชตเชพ เชฎเชพเชเซ เชเซเชก เชเซ เช เชจเซ เชเชฆเชพเช เชเซเชเชฒเชพเช เชตเชงเซ เชฐเชธเชชเซเชฐเชฆ เชคเชพเชฐเชฃเซ เชชเชฐ เชเชตเซเชถ.
เชธเซเชฐเซเชธ: www.habr.com