Magento āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ-āĻāĻŽāĻžāĻ°ā§āĻ¸ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨, āĻ¯ā§āĻŽāĻ¨ āĻā§āĻĻāĻžāĻŽāĻāĻžāĻ¤āĻāĻ°āĻŖ, āĻ˛āĻāĻŋāĻ¸ā§āĻāĻŋāĻāĻ¸ āĻŦāĻž āĻāĻ°ā§āĻĨāĻŋāĻ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻāĻŋāĻ āĻŦāĻŋāĻā§āĻ°āĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻŦāĻŋāĻā§āĻ°āĻŋāĻ° āĻā§āĻ¯āĻŧā§ āĻĒāĻŖā§āĻ¯ āĻŦāĻŋāĻā§āĻ°āĻŋāĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻŦā§āĻļāĻŋāĨ¤ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻ°āĻĒāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§āĻ˛āĻŋ) āĻ¸āĻšāĻāĻžāĻŽā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°āĻ āĻāĻĒāĻ¯ā§āĻā§āĻ¤āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻŽā§āĻ¯āĻžāĻā§āĻ¨ā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§ āĻāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻā§ āĻāĻā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻžāĻāĻāĻŋ āĻĻā§āĻāĻž āĻĻā§āĻ¯āĻŧ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, 1C)āĨ¤
āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§, āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋāĻ¤ā§ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
- āĻā§āĻ¯āĻžāĻāĻžāĻ˛āĻ (āĻĒāĻŖā§āĻ¯, āĻŦāĻŋāĻāĻžāĻ);
- āĻāĻ¨āĻā§āĻ¨ā§āĻāĻ°āĻŋ āĻĄā§āĻāĻž (āĻā§āĻĻāĻžāĻŽ āĻāĻŦāĻ āĻĻāĻžāĻŽā§ āĻĒāĻŖā§āĻ¯ā§āĻ° āĻāĻžāĻ°āĻ¸āĻžāĻŽā§āĻ¯);
- āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ;
- āĻāĻĻā§āĻļ;
Magento āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻĄā§āĻāĻž āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻļā§āĻ°ā§āĻŖā§ āĻ
āĻĢāĻžāĻ° āĻāĻ°ā§ -
āĻā§āĻ°āĻžāĻšāĻ āĻāĻŦāĻ āĻ āĻ°ā§āĻĄāĻžāĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ āĻ¨ā§āĻ¯ āĻĻāĻŋāĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ - 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
).
āĻŦāĻŋāĻāĻžāĻ
āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ, āĻ¸ā§āĻā§āĻ°ā§āĻ° āĻŦāĻŋāĻāĻžāĻ āĻāĻžāĻ āĻžāĻŽā§ āĻāĻŦāĻ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻŦāĻž āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻŖā§āĻ¯ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻĒā§āĻĨāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻŋāĻāĻžāĻ āĻāĻŦāĻ āĻĒāĻŖā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻĄā§āĻāĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻžāĻ° āĻā§āĻļāĻ˛āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ āĻāĻžāĻ°āĻŖā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤ āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻāĻŽāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻāĻā§ āĻĨāĻžāĻāĻŋ:
- āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ° āĻŦāĻŋāĻāĻžāĻāĻā§āĻ˛āĻŋ āĻ¨āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ;
- āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻžāĻ āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻ¸ā§āĻā§āĻ°ā§ āĻ¨ā§āĻ, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻŽā§āĻ˛ āĻŦāĻŋāĻāĻžāĻā§āĻ° āĻ
āĻ§ā§āĻ¨ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (
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āĻāĻŋ āĻĒāĻŖā§āĻ¯ āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ 100K āĻĒāĻŖā§āĻ¯ āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 30 āĻāĻ¨ā§āĻāĻž āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ˛ā§āĻ¯āĻžāĻĒāĻāĻĒ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻāĻŋāĻā§āĻāĻž āĻŽāĻ¸ā§āĻŖ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻŽāĻ¨āĻāĻŋ āĻāĻ¯āĻŧā§āĻāĻŦāĻžāĻ°āĻ āĻšāĻ¯āĻŧāĻ¤ā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻŽāĻžāĻ¤ā§āĻ°āĻžāĻ° āĻāĻĻā§āĻļ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻž. āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻ āĻāĻ¤āĻŋ āĻāĻŦāĻ āĻ§ā§āĻ°āĻāĻ¤āĻŋ āĻāĻŋāĻā§āĻāĻž āĻšāĻ˛ā§āĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻāĻ¤ā§āĻĨāĻžāĻ¨ā§āĻ° āĻ
āĻ¨ā§āĻ¯āĻ¤āĻŽ āĻāĻžāĻ°āĻŖāĨ¤
āĻāĻŽāĻĻāĻžāĻ¨āĻŋāĻ° āĻāĻ¤āĻŋ āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻāĻŽā§āĻ˛ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĒā§āĻ°āĻŦā§āĻļ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻŦā§ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŽā§āĻ¯āĻžāĻā§āĻ¨ā§āĻā§āĻ° āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖāĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ "āĻā§āĻĄāĻŋ" āĻšāĻžāĻ°āĻŋāĻ¯āĻŧā§ āĻā§āĻā§ - āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻŦāĻāĻŋāĻā§ "āĻāĻ¨ā§āĻ¨āĻ¤" āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻāĻž āĻŽā§āĻ˛ā§āĻ¯. āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšāĻ¯āĻŧ, āĻāĻŽāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ˛ā§āĻāĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŦāĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com