ะ
เบเปเปเบชเบฑเบเปเบเบ: 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
เบกเบฑเบเบเบฒเบเบปเบเบขเบนเปเปเบเบเบฐเบเบฒเบ admin, เปเบเบเบฒเบเบฐเบฅเบฒเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบ (เบฅเบฒเบเบเบฒเบ/เบเบฐเบฅเบดเบเบเบฐเบเบฑเบ).
เบเบงเบฒเบกเบชเปเบฒเบเบฑเบเบฅเบฐเบซเบงเปเบฒเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเปเบฅเบฐเปเบงเบฑเบเปเบเบเป
เบชเบฐเบกเบฒเบเบปเบกเบเบญเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบเบฑเบเบชเบฐเบเบฒเบเบเบตเปเบเปเบฒเบเบปเบเบงเปเบฒเบฎเปเบฒเบเปเบเปเบฅเบฐเบชเบฐเปเบเบเบชเบดเบเบเปเบฒเบเบฐเบกเบตเบขเบนเปเบเบฒเบเบซเบเปเบฒ.
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);
}
}
เบเบฒเบเบเปเบฒเปเบเปเบฅเบฐเบซเบฑเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบ id เปเบฅเบฐเบเบฐเปเบเบเบเปเปเบกเบนเบเบเบญเบเบกเบฑเบ (datetime
, decimal
, int
, text
, varchar
), เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฝเบเบเปเปเบกเบนเบเบชเปเบฒเบฅเบฑเบเบเปเบญเบเบขเปเบฝเบกเบเบฒเบเบเปเบฅเบดเบซเบฒเบเปเบเบปเปเบฒเปเบเปเบเบเบฒเบเบฐเบฅเบฒเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก (store_id = 0
).
เบซเบผเบฑเบเบเบฒเบเปเบเบตเปเบกเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเปเบฒเบเปเบเบดเบเปเบชเปเบเบฐเบฅเบดเบเบเบฐเบเบฑเบ, เบเปเบฒเบเปเบเปเบฎเบฑเบเบฎเบนเบเบเบตเปเบขเบนเปเปเบเบเบฐเบเบฒเบ admin:
เบเปเปเบกเบนเบเบชเบดเบเบเปเบฒเบเบปเบเบเบฑเบ
เปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบชเบฐเบเบฑเบ 2.3 เปเบ Magento, เบกเบตเบชเบญเบเบเบธเบเบเบฐเบซเบเบฒเบเบเบญเบเบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบชเบฐเบซเบเบญเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบเบชเบดเบเบเปเบฒเบเบปเบเบเบฑเบ (เบเบฐเบฅเบดเบกเบฒเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบ):
cataloginventory_*
: เปเบเบเบชเปเบฒเบเปเบเบปเปเบฒ;inventory_*
: เปเบเบเบชเปเบฒเบเปเบซเบกเป (MSI - Multi Source Inventory);
เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเปเบกเบเปเปเบกเบนเบเบชเบดเบเบเปเบฒเบเบปเบเบเบฑเบเปเบซเปเบเบฑเบเปเบเบเบชเปเบฒเบเบเบฑเบเบชเบญเบ, เปเบเบฒเบฐเบงเปเบฒ เปเบเบโเบเบฐโเบเบญเบโเบเบฒเบโเปเบซเบกเปโเปเบกเปเบโเบเบฑเบโเบเปเปโเบเบฑเบโเปเบเบฑเบโเปเบญโเบเบฐโเบฅเบฒเบโเบขเปเบฒเบโเบชเบปเบกโเบเบนเบโเบเบญเบโเปเบเบปเปเบฒ (เบกเบฑเบโเปเบเบฑเบโเปเบเบงโเปเบเปเบกโเบเบตเปโเบซเบผเบฒเบโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโ default
เบเบฑเบเบชเบดเบเบเปเบฒเปเบเปเบเบเบชเปเบฒเบเปเบซเบกเป, เบเบฒเบเบฐเบฅเบฒเบเบกเบตเบชเปเบงเบเบฎเปเบงเบก cataloginventory_stock_status
เปเบเบฑเบ 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
) เปเบฅเบฐเบกเบฑเบเบเบทเบเปเบเบทเปเบญเบกเปเบเบเบเบฑเบเปเบงเบฑเบเปเบเบเปเบเปเบฅเบดเบซเบฒเบ. เบเบฒเบเปเบเบตเปเบกเบญเบฑเบเปเปเปเบเปเบฒเบเบเบฐเบเบฒเบ admin 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
).
เบซเบเบถเปเบ "เบชเบฒเบ"เบชเบฒเบกเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบซเบผเบฒเบ"เปเบซเบผเปเบเบเปเปเบกเบนเบ"เปเบฅเบฐเบซเบเบถเปเบ"เปเบซเบผเปเบเบเปเปเบกเบนเบ"- เบซเบผเบฒเบ"เบชเบฒเบ" (เบเบงเบฒเบกโเบชเปเบฒโเบเบฑเบโเบซเบผเบฒเบโเบเปเปโเบซเบผเบฒเบโ)โ. เบเปเปเบเบปเบเปเบงเบฑเปเบเปเบกเปเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ'เปเบซเบผเปเบเบเปเปเบกเบนเบ"เปเบฅเบฐ"เบชเบฒเบ". เบเบงเบเปเบเบปเบฒเบเปเปเปเบเปเปเบเบทเปเบญเบกเบเปเปเบเบทเบเปเบซเบกเปเบเบฑเบเบซเบเปเบงเบเบเบฒเบเบญเบทเปเบเป (เบเปเปเบเปเบฒเบเบฑเบเปเบเบฅเบฐเบเบฑเบเบฅเบฐเบซเบฑเบ - เบเปเปเบเบดเบเบเบฒเบ "เบเปเปเบชเบฒเบกเบฒเบเบเบฑเบเบเบถเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเปเบซเบผเปเบ Default เบซเบผเบท Default Stock"). เบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบเปเบเบเบชเปเบฒเบ 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);
}
เบซเบผเบฑเบเบเบฒเบเปเบเบตเปเบกเบเปเปเบกเบนเบเบชเบดเบเบเปเบฒเบเบปเบเบเบฑเบเปเบชเปเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเปเบเบเบฐเบเบฒเบ admin, เบเปเบฒเบเปเบเปเบฎเบฑเบเบฎเบนเบเบเบตเป:
เบชเบทเปเบกเบงเบเบเบปเบ
เปเบกเบทเปเบญ "เบเบนเปเบกเบท" เปเบเบตเปเบกเบฎเบนเบเบเบฒเบเปเบซเปเบเบฑเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบเปเบฒเบเบเบฐเบเบฒเบ admin, เบเปเปเบกเบนเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบทเบเบเบฝเบเบฅเบปเบเปเบเบเบฒเบเบฐเบฅเบฒเบเบเปเปเปเบเบเบตเป:
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
. เบฅเบฐเบซเบฑเบเบเบนเบเบกเบฑเบเปเบกเปเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบเบฅเบฐเบซเบฑเบเปเบ "เบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบทเปเบเบเบฒเบเบเบญเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบ"
เบซเบผเบฑเบเบเบฒเบเปเบเบตเปเบกเบฎเบนเบเบเบฒเบเปเบชเปเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเปเบเบเบฐเบเบฒเบ admin เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒ:
เบซเบกเบงเบเบซเบกเบนเป
เบเบฒโเบเบฐโเบฅเบฒเบโเบเบปเปเบโเบเปโเบเบฐโเบเบญเบโเบเปเบงเบโเบเปเปโเบกเบนเบโเปเบเบโเบเบฐโเปเบเบโ:
catalog_category_entity
: เบเบฐเบเบฝเบเบเบญเบเบเบฐเปเบเบ;catalog_category_product
: เบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบฅเบฐเบซเบงเปเบฒเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเปเบฅเบฐเบเบฐเปเบเบ;catalog_category_entity_*
: EAV attribute values;
เปเบเปเบเบทเปเบญเบเบเบปเปเบ, เปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ 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 เบเบฑเบเปเบปเบ เปเบฅเบฐเบเปเปเบกเบตเบขเบนเปเปเบเบเบฐเบเบฒเบ admin เบซเบผเบทเปเบเปเปเบฒ. เปเบงเบเปเบนเปเบเบตเปเบกเบต id=2 (เปเบงเบเปเบนเปเปเบฅเบตเปเบกเบเบปเปเบ) เปเบกเปเบเบเบฐเปเบเบเบฎเบฒเบเบชเปเบฒเบฅเบฑเบเบฎเปเบฒเบเบเบปเปเบเบเปเบเบญเบเปเบงเบฑเบเปเบเบเปเบเบปเปเบเบเป (เบฎเปเบฒเบเบเปเบฒเปเบงเบฑเบเปเบเบเปเบเบปเปเบเบเป) เบชเปเบฒเบเบเบถเปเบเปเบกเบทเปเบญเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบทเบเบเบณเปเบเป (เปเบเบดเปเบ. Admin / เบฎเปเบฒเบเบเปเบฒ / เบฎเปเบฒเบเบเปเบฒเบเบฑเบเบซเบกเบปเบ). เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบเบฐเปเบเบเบฎเบฒเบเบเบญเบเบฎเปเบฒเบเปเบญเบเบเปเปเบเปเปเบกเบตเบขเบนเปเบเบฒเบเบซเบเปเบฒ, เบเบฝเบเปเบเปเบเบฐเปเบเบเบเปเบญเบเบเบญเบเบกเบฑเบ.
เปเบเบทเปเบญเบเบเบฒเบเบซเบปเบงเบเปเปเบเบญเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบเบฑเบเบเปเบฒเปเบเบปเปเบฒเบเปเปเบกเบนเบเปเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบ, เบเปเบญเบเบเบฐเบเปเปเปเบเปเบเบฒเบเปเบเบปเปเบฒเปเบเบเบเบปเบเปเบเบเบฒเบเบเปเปเบกเบนเบเปเบเปเบงเบฅเบฒเบเบตเปเบชเปเบฒเบเบเบฐเปเบเบ, เปเบเปเบเบฐเปเบเปเบเบฑเปเบเบฎเบฝเบเบเบตเปเบชเบฐเบซเบเบญเบเปเบเบ Magento เปเบญเบ (เปเบเบเบเปเบฒเบฅเบญเบเปเบฅเบฐเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ). เบเบฒเบเปเบเบปเปเบฒเปเบเปเบเบเบฒเบเบเปเปเบกเบนเบเปเบเบเบเบปเบเปเบกเปเบเปเบเปเปเบเบทเปเบญเปเบเบทเปเบญเบกเปเบเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบเบตเปเบเปเบฒเปเบเบปเปเบฒเบเบฑเบเบซเบกเบงเบเบซเบกเบนเป (เบซเบกเบงเบเบซเบกเบนเปเบเบทเบเบเบฑเบเบเบนเปเบเบฑเบเบเบทเปเบเบญเบเบกเบฑเบ, เปเบฅเบฐ id เบซเบกเบงเบเบซเบกเบนเปเบเบฐเบเบทเบเบเบถเบเบเปเปเบกเบนเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฑเบเบเบนเป):
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โ, เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเปเบเปเบเบเบเปเบฅเบดเบซเบฒเบเปเบเบดเปเบเบเบทเบเบฑเปเบเบเบตเป:
เบเบฒเบเบเบฐ เบเบณ เปเบเบตเปเบกเปเบเบตเบก
เปเบกเบทเปเบญเบเบฒเบเบเปเบฒเปเบเบปเปเบฒเบเปเปเบกเบนเบเบชเปเบฒเปเบฅเบฑเบ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบฎเบฑเบเบชเปเบฒเปเบฅเบฑเบเบเบฑเปเบเบเบญเบเปเบเบตเปเบกเปเบเบตเบกเบเปเปเปเบเบเบตเป:
- เบเบฑเบเบชเบฐเบเบตเบเปเปเบกเบนเบ: เปเบเบซเบฒเปเบ console
./bin/magento indexer:reindex
; - เบเบฒเบเบชเปเบฒเบ URLs เบชเปเบฒเบฅเบฑเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบ / เบเบฐเปเบเบ: เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบเบฐเบซเบเบฒเบ "
elgentos/regenerate-catalog-urls ยซ
เบเบฐเบฅเบดเบเบเบฐเบเบฑเบเปเบเบเบฐเบเบฒเบ admin เบซเบผเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบตเปเบกเปเบเบตเบก:
เปเบฅเบฐโเบขเบนเปโเบเบฒเบโเบซเบเปเบฒโ:
Summary
เบเบธเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบเบฝเบงเบเบฑเบ (10 เบเบดเปเบ) เบเบทเบเบฑเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบเปเบฒเบเบกเบฒเบเบทเบเบเปเบฒเปเบเบปเปเบฒเบขเปเบฒเบเบซเบเปเบญเบเบเปเบฒเบชเบฑเปเบเบเบญเบเบเบฐเบซเบเบฒเบเปเบง (1 เบงเบดเบเบฒเบเบตเบเบฝเบเบเบฑเบ 10). เปเบเบทเปเบญเบเบฐเปเบกเบตเบเบเบงเบฒเบกเปเบงเปเบเปเบขเปเบฒเบเบเบทเบเบเปเบญเบ, เบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบซเบผเบฒเบ - เบซเบผเบฒเบเบฎเปเบญเบ, เบซเบผเบทเบเบตเบเบงเปเบฒเบซเบผเบฒเบเบเบฑเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบกเบตเบเบฐเบซเบเบฒเบเบเปเบญเบเบเบญเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเบเบฑเปเบเบเปเบฒเบง, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบชเบฐเบซเบผเบธเบเปเบเปเบงเปเบฒเบเบฒเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบกเบทเบเบตเปเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบ Magento (เปเบเบเบเปเบฒเบฅเบญเบเปเบฅเบฐเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ) เปเบกเปเบเบชเปเบฒเบเบฑเบ (เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบฑเปเบเบซเบเบฑเบ - เบซเบผเบฒเบ!) เปเบฅเบฑเปเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบฒเบเบเปเบฒเบเบฒเบเบเบตเปเบเปเบญเบเบเบฒเบ, เปเบเปเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ (เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบฑเปเบเบซเบเบฑเบ - เบซเบผเบฒเบ!) เบซเบผเบธเบเบเปเบญเบเบเบงเบฒเบกเปเบงเบเบตเปเบเปเปเบกเบนเบเปเบเบปเปเบฒเปเบเปเบเบเบฒเบเบเปเปเบกเบนเบ.
เบเบฑเปเบเบเบฑเปเบ, เบเปเปเบฒเปเบเปเบเบฒเบเปเบเบฑเบเบเบงเบฒเบกเบเบธเปเบกเบเบทเปเบเปเบฅเบฐเบเบตเปเบเปเปเปเบกเปเบเบเบฒเบเปเบเบตเบเปเบเบตเบ. เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบเบญเบเบเบตเปเบเปเบญเบเบกเบตเบฅเบฐเบซเบฑเบเบเบตเปเบเบฐเบซเบฅเบดเปเบเบเบฑเบเปเบฅเบฐเบเบฒเบเบเบตเบญเบฒเบเบกเบตเบเบปเบเบชเบฐเบซเบผเบธเบเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเบซเบผเบฒเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com