Magento แแ แแก แแแแฅแขแ แแแฃแแ แแแแแ แชแแแก แแแแแฌแงแแแขแ, แ.แ. แฃแคแ แ แแแขแแ แแแแแ แแฃแแแ แแ แแแฃแฅแชแแแก แแแงแแแแแแ, แแแแ แ แแแงแแแแแแแก แแแแแฎแแแแ แกแแกแแฌแงแแแ, แแแแแกแขแแแแก แแ แคแแแแแกแฃแ แ แแฆแ แแชแฎแแแกแแแแก. แกแฎแแ แแแแแแแชแแแแ (แแแแแแแแแ, ERP แกแแกแขแแแแแ) แฃแคแ แ แจแแกแแคแแ แแกแแ แแแแแฎแแแแ แแแแแแแชแแแแแกแแแแก. แแแแขแแ, Magentoโแก แแแแแงแแแแแแก แแ แแฅแขแแแแจแ แกแแแแแแ แฎแจแแ แแ แฉแแแแแ แแแฆแแแแแก แแ แกแฎแแ แกแแกแขแแแแแแแ (แแแแแแแแแ, 1C) แแแขแแแ แแ แแแแก แแแแชแแแ.
แแแแแแแแแแจแ, แแแขแแแ แแชแแ แจแแแซแแแแ แจแแแชแแ แแแก แแแแแชแแแแ แ แแแแแแแชแแแแแ:
- แแแขแแแแแ (แแ แแแฃแฅแขแแแ, แแแขแแแแ แแแแ);
- แแแแแแขแแ แแแแชแแแก แแแแแชแแแแแ (แแ แแแฃแฅแขแแก แแแจแแแแ แกแแฌแงแแแแแจแ แแ แคแแกแแแ);
- แแแแแแขแแแ;
- แจแแแแแแแแ;
Magento แแแแแแแแแ แแแแแฅแขแแแแก แชแแแแแฃแ แแแแกแก แแแแแชแแแแ แแแแแแฃแแแ แแแแกแแแแก แแแแแชแแแแ แแแแแจแ -
แแแแฎแแแ แแแแแแ แแ แจแแแแแแแแ แฉแแแฃแแแแ แแ แแแแ แแแแ แกแฎแแ แแแแแ แแฃแแแแแ - แแแแแแขแแแแ แแแ แ ERP แกแแกแขแแแแแแแแ. แแแแขแแ, แแแแแแ แฃแคแ แ แแแ แขแแแแ, แแแแแแขแแก แแฎแแ แแก แแฅแแแ แฃแแ แแแแ แฃแแแ แแแ แฉแแแ แจแแกแแแแแแกแ แแแแแชแแแแแ แแ แจแแแแแ "แฉแแแแ แแฎแ แแแแ แขแงแแแแแ แแแแแแคแ แแแแ".
แแแแแชแแแแ แแแแแจแ แฉแแฌแแ แแก แแ แแแชแแแแแ
แแ แแ แแแกแแแแก, แแแแแชแแแแ แแแแแจแ แจแแแแฎแฃแแ แแแแแฅแขแแแแก แจแแฅแแแ แแ แแแ แแแฃแแแ แแแแแแขแแจแ แฎแแแแ
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-แจแ แแ แแแฃแฅแขแแก แแ แแแ แแแฃแแแ แแแกแแแแขแแแแแ แกแแแแแแ แแแ แขแแแแ. แแ แแแแแแ แแแแแ แงแแแแแคแแ แ แแแแแ แฉแแแแแแแแแ แแแแ แแแแฃแแจแ "fl32:import:prod
, แ แแแแแแช แจแแแแแฅแแก JSON แคแแแแจแ แแฆแฌแแ แแ แแ แแแฃแฅแขแแแก "
[
{
"sku": "...",
"name": "...",
"desc": "...",
"desc_short": "...",
"price": ...,
"qty": ...,
"categories": ["..."],
"image_path": "..."
}
]
แแแแแ แขแแก แกแฃแ แแแแแ แแ แแก แแแขแแแแแจแ ./etc/data/img
.
แแ แแแแแแแ 10 แแ แแแฃแฅแขแแก แแแแแ แขแแก แแ แ แแ แแก แแแแฎแแแแแแ 10 แฌแแแ แฉแแแก แแแแขแแแแ. แแฃ แแ แแแแแก แจแแแแแแ แแแแแแแแแแ แแแ, แแแแแแแ แแแกแแแแแแแ แแแกแแแ, แ แแ แกแแแแจแ แแแแฎแแแแแแ 3600 แแ แแแฃแฅแขแแก แจแแแแขแแแแ แจแแกแแซแแแแแแ, แฎแแแ 100 แแแแกแ แแ แแแฃแฅแชแแแก แแแแแ แขแก แจแแแซแแแแ แแแกแญแแ แแแก แแแแฎแแแแแแ 30 แกแแแแ. แแแแขแแแแก แกแแ แแแ แแ แจแแชแแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแ แแแแฃแแฌแแแแ แแแแแแกแฌแแ แแ แกแแขแฃแแชแแ. แจแแกแแซแแแ แ แแแแแแฏแแ แแแช. แแแแ แแ แแ แ แกแแแแแแก แแ แซแแแแแแ. แจแแกแแซแแแ, แแก แกแแกแฌแ แแคแ แแ แจแแแแแแแ แแแ แแแแฃแแฌแแแแ แแ แแก แแ แแแฅแขแแก แแแฉแแแแก แแ แ-แแ แแ แแแแแแ
แแแแแ แขแแก แกแแฉแฅแแ แแก แแแแ แแแก แ แแแแแแแฃแ แ แแแแแกแแแแแ แจแแแซแแแแ แแงแแก แแแแแชแแแแ แแแแแจแ แแแ แแแแแ แ แจแแกแแแ, แแแแ แแ แแ แจแแแแฎแแแแแจแ แงแแแแ โแกแแแแแโ แแแแ แแแแ Magento-แก แแแคแแ แแแแแแกแแแ แแแแแแจแแ แแแแ - แแฅแแแ แแแแแฌแแแ แงแแแแแคแแ แ โแแแฌแแแแแโ แแแแแแแแ. แแฃแแชแ, แฆแแ แก. แแฃ แแแแแแ, แจแแแแแ แกแขแแขแแแจแ แแแแแแฎแแแแ แแแแแแแแก แแแแแชแแแแ แแแแแจแ แแแ แแแแแ แ แฌแแ แแแแแแ.
แฌแงแแ แ: www.habr.com