Magento 2: แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜ แƒ’แƒแƒ แƒ” แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ

Magento แƒแƒ แƒ˜แƒก แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒ แƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ, แƒ”.แƒ˜. แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒแƒ“ แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒงแƒ˜แƒ“แƒ•แƒแƒ–แƒ”, แƒ•แƒ˜แƒ“แƒ แƒ” แƒ’แƒแƒงแƒ˜แƒ“แƒ•แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒœแƒ›แƒฎแƒšแƒ”แƒ‘แƒ˜ แƒกแƒแƒกแƒแƒฌแƒงแƒแƒ‘แƒ, แƒšแƒแƒ’แƒ˜แƒกแƒขแƒ˜แƒ™แƒ˜แƒก แƒแƒœ แƒคแƒ˜แƒœแƒแƒœแƒกแƒฃแƒ แƒ˜ แƒแƒฆแƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒกแƒฎแƒ•แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, ERP แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜) แƒฃแƒคแƒ แƒ แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜แƒ แƒ—แƒแƒœแƒ›แƒฎแƒšแƒ”แƒ‘แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ›แƒ˜แƒขแƒแƒ›, Magentoโ€“แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒแƒจแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒ˜แƒก แƒแƒ› แƒกแƒฎแƒ•แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ—แƒแƒœ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, 1C) แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒแƒœแƒ.

แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ‘แƒแƒจแƒ˜, แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ“แƒ”แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒ›แƒ“แƒ”:

  • แƒ™แƒแƒขแƒแƒšแƒแƒ’แƒ˜ (แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ”แƒ‘แƒ˜, แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒ”แƒ‘แƒ˜);
  • แƒ˜แƒœแƒ•แƒ”แƒœแƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ (แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒœแƒแƒจแƒ—แƒ”แƒ‘แƒ˜ แƒกแƒแƒฌแƒงแƒแƒ‘แƒ”แƒ‘แƒจแƒ˜ แƒ“แƒ แƒคแƒแƒกแƒ”แƒ‘แƒ˜);
  • แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜;
  • แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ”แƒ‘แƒ˜;

Magento แƒ’แƒ—แƒแƒ•แƒแƒ–แƒแƒ‘แƒ— แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš แƒ™แƒšแƒแƒกแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒแƒœแƒ˜แƒžแƒฃแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ - แƒกแƒแƒชแƒแƒ•แƒ”แƒ‘แƒ˜. Magento-แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒกแƒแƒชแƒแƒ•แƒ”แƒ‘แƒจแƒ˜ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒ แƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ›, แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒœแƒ”แƒšแƒ˜แƒ. แƒแƒ› แƒžแƒฃแƒ‘แƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ• Magento 2-แƒจแƒ˜ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒแƒ“ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒ”แƒขแƒแƒžแƒ”แƒ‘แƒก "แƒ™แƒšแƒแƒกแƒ˜แƒ™แƒฃแƒ แƒ˜" แƒ’แƒ–แƒ˜แƒ— - แƒ แƒ”แƒžแƒ แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ”แƒ‘แƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ›แƒ”แƒแƒ แƒ“แƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒ แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ— - แƒ›แƒแƒ’แƒ”แƒœแƒขแƒแƒ“แƒแƒœ แƒ’แƒแƒ แƒ” ERP แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒแƒ›แƒ“แƒ”. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒ›แƒแƒ—แƒ—แƒแƒœ แƒฃแƒคแƒ แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ, แƒ›แƒแƒ’แƒ”แƒœแƒขแƒแƒก แƒ›แƒฎแƒแƒ แƒ”แƒก แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ "แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒฎแƒ แƒ˜แƒ“แƒแƒœ แƒขแƒงแƒ•แƒ˜แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ“แƒ›แƒแƒคแƒ แƒ˜แƒœแƒ“แƒ".

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ”แƒ‘แƒ˜

แƒแƒ› แƒ“แƒ แƒแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒแƒ“ แƒ›แƒแƒ’แƒ”แƒœแƒขแƒแƒจแƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ Factory:

function __construct (MagentoCmsModelBlockFactory $blockFactory) {
    $this->blockFactory = $blockFactory;
}

/** @var MagentoCmsModelBlock $block */
$block = $this->blockFactory->create();

แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— แƒกแƒแƒชแƒแƒ•แƒ˜:

function __construct (MagentoCmsApiBlockRepositoryInterface $blockRepo) {
    $this->blockRepo = $blockRepo;
}

$this->blockRepo->save($block);

"แƒฅแƒแƒ แƒฎแƒแƒœแƒ" แƒ“แƒ "แƒกแƒแƒชแƒแƒ•แƒ˜" แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ Magento 2 แƒ“แƒแƒ›แƒ”แƒœแƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ

แƒ›แƒ” แƒ•แƒฃแƒงแƒฃแƒ แƒ”แƒ‘ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ Magento 2.3 แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก. แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜ catalog_product_entity (แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜):

entity_id
attribute_set_id
type_id
sku
has_options
required_options
created_at
updated_at

แƒ›แƒ” แƒจแƒ”แƒ›แƒแƒ˜แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒ แƒ”แƒ แƒ—แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒ— (type_id='simple'), แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ (attribute_set_id=4) แƒ“แƒ แƒฃแƒ’แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒงแƒแƒ— แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜ has_options ะธ required_options. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜ entity_id, created_at ะธ updated_at แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒแƒฎแƒแƒšแƒ˜ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ“แƒแƒกแƒแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ“, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— sku. แฒ›แƒ” แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘ แƒแƒ›แƒแƒก:

/** @var MagentoCatalogApiDataProductInterfaceFactory $factProd */
/** @var MagentoCatalogApiProductRepositoryInterface $repoProd */
/** @var MagentoCatalogApiDataProductInterface $prod */
$prod = $factProd->create();
$prod->setAttributeSetId(4);
$prod->setTypeId('simple');
$prod->setSku($sku);
$repoProd->save($prod);

แƒ“แƒ แƒ›แƒ” แƒ•แƒ˜แƒฆแƒ”แƒ‘ แƒ’แƒแƒ›แƒแƒœแƒแƒ™แƒšแƒ˜แƒกแƒก:

The "Product Name" attribute value is empty. Set the attribute and try again.

แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก แƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก แƒ“แƒ แƒ•แƒ˜แƒฆแƒ”แƒ‘ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก, แƒ แƒแƒ› แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜ แƒแƒ™แƒšแƒ˜แƒ Price. แƒคแƒแƒกแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜ แƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒก:

$prod = $factProd->create();
$prod->setAttributeSetId(4);
$prod->setTypeId('simple');
$prod->setSku($sku);
$prod->setName($name);
$prod->setPrice($price);
$repoProd->save($prod);

แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก varchar แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜ (catalog_product_entity_varchar), แƒคแƒแƒกแƒ˜ - แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜ catalog_product_entity_decimal. แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒแƒ›แƒ“แƒ” แƒ›แƒ˜แƒ–แƒแƒœแƒจแƒ”แƒฌแƒแƒœแƒ˜แƒšแƒ˜แƒ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ—, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒฃแƒš แƒ•แƒ˜แƒขแƒ แƒ˜แƒœแƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

/** @var MagentoStoreModelStoreManagerInterface $manStore */
$manStore->setCurrentStore(0);

แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜

แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Magento-แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒกแƒแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒแƒ. EAV แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒแƒ“แƒ”แƒšแƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒ˜แƒฎ. แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ eav_entity_type) แƒแƒ› แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ. แƒฉแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒก แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒšแƒก:

$prodEntity->setData('description', $desc);
$prodEntity->setData('short_description', $desc_short);
// ะธะปะธ
$prodEntity->setDescription($desc);
$prodEntity->setShortDescription($desc_short);

แƒ“แƒ แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒกแƒแƒก แƒ แƒ”แƒžแƒ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—:

$repoProd->save($prod);

แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜.

แƒ˜แƒœแƒ•แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜

แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒกแƒ˜แƒขแƒงแƒ•แƒ”แƒ‘แƒ˜แƒ— - แƒกแƒแƒฌแƒงแƒแƒ‘แƒจแƒ˜ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ. Magento 2.3-แƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ”แƒ‘แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒฆแƒฌแƒ”แƒ แƒก แƒ˜แƒœแƒ•แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒคแƒแƒ แƒ›แƒแƒขแƒก. แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒ แƒแƒช แƒแƒ“แƒ แƒ” แƒ›แƒแƒฎแƒ“แƒ. แƒ—แƒฃแƒ›แƒชแƒ, แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒ แƒแƒ’แƒจแƒ˜ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜, แƒ•แƒ˜แƒ“แƒ แƒ” แƒกแƒฎแƒ•แƒ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ:

/** @var MagentoCatalogModelProduct $prodEntity */
/** @var MagentoCatalogApiProductRepositoryInterface $repoProd */
$inventory = [
    'is_in_stock' => true,
    'qty' => 1234
];
$prodEntity->setData('quantity_and_stock_status', $inventory);
$repoProd->save($prodEntity);

แƒ›แƒ”แƒ“แƒ˜แƒ

แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ›แƒ”แƒ“แƒ˜แƒ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒแƒจแƒ˜ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒ แƒชแƒ˜แƒ) แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ›แƒ”แƒ“แƒ˜แƒ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒกแƒ’แƒแƒœ แƒจแƒ˜แƒ“แƒ แƒแƒฆแƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜ (ERP) แƒ—แƒแƒœแƒแƒ›แƒจแƒ แƒแƒ›แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ›แƒ˜แƒ–แƒแƒœแƒจแƒ”แƒฌแƒแƒœแƒ˜แƒšแƒ˜แƒ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ แƒžแƒ˜แƒ แƒ˜แƒกแƒžแƒ˜แƒ , แƒ›แƒ”แƒแƒ แƒ”แƒจแƒ˜ แƒ™แƒ˜ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ. แƒ—แƒฃแƒ›แƒชแƒ, แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“แƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒก แƒ›แƒแƒ˜แƒœแƒช แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒฎแƒจแƒ˜แƒ แƒ˜แƒ. case แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒก แƒ“แƒ แƒแƒก.

แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒžแƒแƒœแƒ”แƒšแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ“แƒ แƒแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ (./pub/media/tmp/catalog/product) แƒ“แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒกแƒแƒก แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก แƒ›แƒ”แƒ“แƒ˜แƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ (./pub/media/catalog/product). แƒแƒกแƒ”แƒ•แƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ“แƒแƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒžแƒแƒœแƒ”แƒšแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—, แƒกแƒฃแƒ แƒแƒ—แƒก แƒขแƒ”แƒ’แƒ˜ แƒแƒฅแƒ•แƒก image, small_image, thumbnail, swatch_image.

/** @var MagentoCatalogApiProductRepositoryInterface $repoProd */
/** @var MagentoCatalogModelProductGalleryCreateHandler $hndlGalleryCreate */
/* $imagePath = '/path/to/file.png';  $imagePathRelative = '/f/i/file.png' */
$imagePathRelative = $this->imagePlaceToTmpMedia($imagePath);
/* reload product with gallery data */
$product = $repoProd->get($sku);
/* add image to product's gallery */
$gallery['images'][] = [
    'file' => $imagePathRelative,
    'media_type' => 'image'
    'label' => ''
];
$product->setData('media_gallery', $gallery);
/* set usage areas */
$product->setData('image', $imagePathRelative);
$product->setData('small_image', $imagePathRelative);
$product->setData('thumbnail', $imagePathRelative);
$product->setData('swatch_image', $imagePathRelative);
/* create product's gallery */
$hndlGalleryCreate->execute($product);

แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ›แƒ”แƒ“แƒ˜แƒ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒกแƒแƒชแƒแƒ•แƒ˜แƒ“แƒแƒœ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’. แƒ“แƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜ label แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ›แƒ”แƒ“แƒ˜แƒ แƒ’แƒแƒšแƒ”แƒ แƒ”แƒแƒจแƒ˜ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒกแƒแƒก (แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒœแƒแƒ™แƒšแƒ˜แƒกแƒก แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— Undefined index: label in .../module-catalog/Model/Product/Gallery/CreateHandler.php on line 516).

แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒ

แƒฎแƒจแƒ˜แƒ แƒแƒ“, แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒ˜แƒก แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒ˜แƒก แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ แƒ“แƒ backend แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒœ แƒ›แƒแƒ—แƒจแƒ˜ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒแƒ“แƒ”แƒก. แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒแƒ—แƒจแƒ˜ แƒจแƒ”แƒ›แƒแƒ•แƒแƒšแƒ˜ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒขแƒ แƒแƒขแƒ”แƒ’แƒ˜แƒ”แƒ‘แƒ˜ แƒ›แƒ แƒแƒ•แƒแƒš แƒคแƒแƒฅแƒขแƒแƒ แƒ–แƒ”แƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜. แƒแƒ› แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ แƒ›แƒ” แƒ•แƒ˜แƒชแƒแƒ• แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒก:

  • backend แƒ“แƒ store แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ—;
  • แƒ—แƒฃ แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒแƒจแƒ˜ แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒแƒจแƒ˜, แƒ›แƒแƒจแƒ˜แƒœ แƒ˜แƒก แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ root แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ (Default Category) แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒžแƒแƒ–แƒ˜แƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒ˜แƒก แƒ™แƒแƒขแƒแƒšแƒแƒ’แƒจแƒ˜ แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฎแƒ”แƒšแƒ˜แƒ—;
  • แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜ แƒ”แƒœแƒ˜แƒญแƒ”แƒ‘แƒ แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒแƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒแƒจแƒ˜ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก (แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜);

แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜ catalog_category_entity (แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒขแƒแƒšแƒแƒ’แƒ˜). แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ Magento-แƒจแƒ˜:

/** @var MagentoCatalogApiDataCategoryInterfaceFactory $factCat */
/** @var MagentoCatalogApiCategoryRepositoryInterface $repoCat */
$cat = $factCat->create();
$cat->setName($name);
$cat->setIsActive(true);
$repoCat->save($cat);

แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒ˜แƒก ID แƒ“แƒ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก SKU แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—:

/** @var MagentoCatalogModelCategoryProductLinkFactory $factCatProdLink */
/** @var MagentoCatalogApiCategoryLinkRepositoryInterface $repoCatLink */
$link = $factCatProdLink->create();
$link->setCategoryId($catMageId);
$link->setSku($prodSku);
$repoCatLink->save($link);

แƒกแƒแƒ”แƒ แƒ—แƒ แƒฏแƒแƒ›แƒจแƒ˜

แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ Magento 2-แƒจแƒ˜ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒแƒ“ แƒ“แƒแƒกแƒแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ“ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ. แƒ›แƒ” แƒ’แƒแƒ•แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ” แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ–แƒ”แƒ›แƒแƒ— แƒฉแƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒšแƒ˜ แƒ“แƒ”แƒ›แƒ แƒ›แƒแƒ“แƒฃแƒšแƒจแƒ˜ "flancer32/mage2_ext_demo_import". แƒ›แƒแƒ“แƒฃแƒšแƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒ˜ แƒ™แƒแƒœแƒกแƒแƒšแƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ fl32:import:prod, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ›แƒแƒแƒฅแƒ•แƒก JSON แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒš แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ”แƒ‘แƒก "./etc/data/products.json"

[
  {
    "sku": "...",
    "name": "...",
    "desc": "...",
    "desc_short": "...",
    "price": ...,
    "qty": ...,
    "categories": ["..."],
    "image_path": "..."
  }
]

แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒก แƒ™แƒแƒขแƒแƒšแƒแƒ’แƒจแƒ˜ ./etc/data/img.

แƒแƒ› แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒ— 10 แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒก แƒ“แƒ แƒ แƒแƒ แƒ˜แƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 10 แƒฌแƒแƒ›แƒ˜ แƒฉแƒ”แƒ›แƒก แƒšแƒ”แƒžแƒขแƒแƒžแƒ–แƒ”. แƒ—แƒฃ แƒแƒ› แƒ˜แƒ“แƒ”แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ› แƒ’แƒแƒœแƒ•แƒแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ—, แƒแƒ“แƒ•แƒ˜แƒšแƒ˜แƒ แƒ“แƒแƒกแƒ™แƒ•แƒœแƒแƒ›แƒ“แƒ” แƒ›แƒ˜แƒกแƒ•แƒšแƒ, แƒ แƒแƒ› แƒกแƒแƒแƒ—แƒจแƒ˜ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 3600 แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒขแƒแƒœแƒแƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜, แƒฎแƒแƒšแƒ 100 แƒแƒ—แƒแƒกแƒ˜ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒ˜แƒ›แƒžแƒแƒ แƒขแƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 30 แƒกแƒแƒแƒ—แƒ˜. แƒšแƒ”แƒžแƒขแƒแƒžแƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒ— แƒจแƒ”แƒชแƒ•แƒšแƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒฌแƒ˜แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒแƒกแƒฌแƒแƒ แƒแƒ— แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ. แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒฏแƒ”แƒ แƒ›แƒ”แƒช. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ แƒกแƒ˜แƒ“แƒ˜แƒ“แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ—. แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ, แƒ”แƒก แƒกแƒ˜แƒกแƒฌแƒ แƒแƒคแƒ” แƒ“แƒ แƒจแƒ”แƒœแƒ”แƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒฌแƒ˜แƒšแƒแƒ“ แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ’แƒแƒฉแƒ”แƒœแƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜ แƒ›แƒแƒ’แƒ”แƒœแƒขแƒ/แƒแƒกแƒ˜แƒœแƒ™-แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜.

แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒก แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ˜แƒก แƒ’แƒแƒ–แƒ แƒ“แƒ˜แƒก แƒ แƒแƒ“แƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ แƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒงแƒ•แƒ”แƒšแƒ โ€žแƒกแƒ˜แƒ™แƒ”แƒ—แƒ”โ€œ แƒ˜แƒ™แƒแƒ แƒ’แƒ”แƒ‘แƒ Magento-แƒก แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ— - แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ โ€žแƒ›แƒแƒฌแƒ˜แƒœแƒแƒ•แƒ”โ€œ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ—. แƒ—แƒฃแƒ›แƒชแƒ, แƒฆแƒ˜แƒ แƒก. แƒ—แƒฃ แƒ’แƒแƒ›แƒแƒ•แƒ, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ• แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ แƒ˜ แƒฌแƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒ˜แƒ—.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ