Magento ααΊααΆαααααααααΆα e-commerce, i.e. ααΊααΆαααααααααααααα·αααα αααΎαααΆαααΆααααα»ααα»α ααααα»ααΆα α¬αααααααα α·ααααααααα»αααα’αααΆαα½αααΆααααα αααααα·ααΈαααααααα (α§ααΆα ααα αααααααα ERP) ααΊαααααα·ααααΆααααααΆαααααααα·ααΈαααααααΆααααααΆαα½αα ααΌα ααααααΆααΉαααΆαααα αααα»αααΆαα’αα»ααααααααΆαααααΎααααΆαα Magento ααΆααα·α αα ααααΆααα½ααααα αΌαα αΆαααΆαα½αααΉαααααααααααααααααααΆααααα (α§ααΆα ααα 1C) ααΎαα‘αΎαα
ααΆααΌαα ααΆααα½ααααα αΌαα’αΆα ααααΌαααΆαααΆααααααααα ααΆααΆαα αααααα·αααααααααα
- ααΆααΆα‘α»α (ααα·ααα, αααααα);
- αα·ααααααααΆαααΎααααα (αααα»αααααα·ααααα αααα»αααααΆαααα·αααααα);
- α’αα·αα·αα;
- ααΆααααααΆαα·α;
Magento αααααααΌαααΌαααααΆααααΆα
ααααα‘ααααααααα»αααααΆαααααα
ααα·αααααααα
αααα»αααΌαααααΆααα·αααααα -
α’αα·αα·αα αα·αααΆααααααΆαα·αααΆααααααΆααααΌαααΆαα ααααααΆααα·ααα αααααααα - ααΈ Magento αα αααααααα ERP ααΆααααα α ααΌα ααααααΆααΆααααααΆααααααΆαα½ααα½ααα αα ααααα Magento α’αααααααΆααααααααΌαααΆαααααΎαααΎααα·ααααααααααααααα α αΎααααααΆαααα "ααααΆααααΆαααααΎαααΆαα ααα ααααΈααΆαααΎα"α
αααααΆαααααααΆααααααααΆαα·αααααααα αααα»αααΌαααααΆααα·αααααα
αα
αααααα ααΆααααααΎαααααα»αααααΆααααααΆαα»ααααα»αααΌαααααΆααα·ααααααααΆααααααα·ααΈαα
αααα»α Magento ααααΌαααΆαααααΎαα½α
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);
αα·ααΈααΆααααα "Factory" αα·α "Repository" α’αΆα ααααΌαααΆαααααΎαααααΆαααααΌαααααααΆαααααΆααα’αααα αααα»αααα 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);
α αΎααα ααααααααΆαα»αααααΌααΆααααααααα» repoα
$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);
ααααααααααααααααααΆα
ααΆααααα½ααα½α ααΆαααΆααααααααααααααααααααααΆααααααΆααααα·ααααααααΆααα’αα·αα·αααα
αααα»αα αΆα (e-commerce) αα»αααΈααΆαααΆααααααααααααααααααααααΆααααααΆααααα·αααααΌα
ααααΆαααααΆαααα»ααααα·ααα
αααα»αααααααααααααααααααααααα»α (ERP)α αααα»αααααΈααΈ 1 ααΆααααΌαααΆαααααΆαα±αααααα αΆαααα·αααααααα»α; ααααααΆαααΆααααα ααΆαααααααααΆαα αα
ααΆααααΌαααΆαα
ααααααααα·αααααΊααΆααΏαααααααΆααΆααα 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
).
αααααα
ααΆααΉαααΆαα αα ααΆααααααααααααααααααα αΆα αα·ααααααα·ααΈαααααααΆαααααα α¬ααΆαααΆααααα·ααααα αααα»ααα½αααΆα’αΆα αα»αααααΆααααΆααα αα»αααααΆααααααααααΆααααΆαααααααα·ααααααα’αααΈαααααα αα·αααα·ααααα αααα»ααα½αααΆα’αΆαααααααΎαααααΆααΆα αααΎαα αααα»αα§ααΆα αααααα αααα»ααααααΆααααααΆααααΌαα ααα»α ααΆααααααα
- αααααααΆαααααα αα·αααααααα αΆαααααΌαααΆαααααααααααΆααααααα
- ααααα·αααΎαααααααα½αααααΌαααΆαααΆαα
αΌαααααα·αααΆααα
αααα»αα αΆαααα ααΆααααΌαααΆααααααΎααα
ααααααααααα 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);
ααΆαααααΆααααα·ααααα αααααααα½αααααΌαααΆαα’αα»αααααααααααΎααααααααΆαααααααα αα·αααα·ααα 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 ααααααΎααααΈααΆαα
αΌαααα·ααα 30K α ααΆααααα½ααα»αααααΌααααα½αααααΆαα½ααααΆαααΈαααα’αα»ααααΆαα±ααα’αααααααΎα±ααααααΆαααΆαααΆαααΆααααΌαααααα·α
α αααα ααααΆα
αααΎαααα ααα»αααααα·ααααααΆαααααΆαααααααααα αααα ααβααΆβααααΏαβαα·αβααΊαβαααβααΊβααΆβα ααα»ααβαα½αβαααααΆααβααΆαβααα
βα
ααβααΌαβαααααα
αααααααααΆααααΆααΈααΆααααΎααααΈαααααΎαααααΏαααααΆαααΆαα αΌαα’αΆα ααΆααΆαα αΌααα αααα»αααΌαααααΆααα·αααααααααααααΆαα ααα»αααααααα»αααααΈααα "αααα·α" ααΆααα’ααααΆααααααΉαααΆααααααΈα Magento ααααΌαααΆαααΆααααα - α’αααααΉαααααΌαααααΎα’αααΈααααααααΆα "ααααα·αααααα" ααααααα½αα―αα ααααααΆαααΆαααααααΆααΆααααααα ααααα·αααΎααΆααααΎαααΆααααα»αααΉααα·α αΆαααΆαα·ααΈααΆαααααααΆαα½αααΉαααΆαααααααααααααΆαααα ααΆααααΌαααααΆααα·αααααααα αααα»αα’ααααααααααΆααα
ααααα: www.habr.com