Magento рдПрдХ рдИ-рдХреЙрдорд░реНрд╕ рдЙрдкрд╛рдп рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗ. рд╡реЗрдЕрд░рд╣рд╛рдКрд╕рд┐рдВрдЧ, рд▓реЙрдЬрд┐рд╕реНрдЯрд┐рдХ рдХрд┐рдВрд╡рд╛ рд╡рд┐рдХреНрд░реАрд╕реЛрдмрдд рдЖрд░реНрдерд┐рдХ рд▓реЗрдЦрд╛рдЬреЛрдЦрд╛ рдпрд╛рдкреЗрдХреНрд╖рд╛ рдЙрддреНрдкрд╛рджрдиреЗ рд╡рд┐рдХрдгреЗ рд╣реЗ рдЕрдзрд┐рдХ рдЙрджреНрджрд┐рд╖реНрдЯ рдЖрд╣реЗ. рдЗрддрд░ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, ERP рд╕рд┐рд╕реНрдЯреАрдо) рд╕реЛрдмрдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╕рд╛рдареА рдЕрдзрд┐рдХ рдпреЛрдЧреНрдп рдЖрд╣реЗрдд. рдореНрд╣рдгреВрди, рдмрд▒реНрдпрд╛рдЪрджрд╛ рдореЕрдЬреЗрдиреНрдЯреЛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рд░рд╛рд╡рд╛рдд рдпрд╛ рдЗрддрд░ рд╕рд┐рд╕реНрдЯрдорд╕рд╣ рд╕реНрдЯреЛрдЕрд░ рд╕рдорд╛рдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреЗ рдХрд╛рд░реНрдп рдЙрджреНрднрд╡рддреЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, 1C).
рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рд╡рд░, рдбреЗрдЯрд╛ рдкреНрд░рддрд┐рдХреГрддреАрдордзреНрдпреЗ рдПрдХрддреНрд░реАрдХрд░рдг рдХрдореА рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ:
- рдХреЕрдЯрд▓реЙрдЧ (рдЙрддреНрдкрд╛рджрдиреЗ, рд╢реНрд░реЗрдгреА);
- рдЗрдиреНрд╡реНрд╣реЗрдВрдЯрд░реА рдбреЗрдЯрд╛ (рд╡реЗрдЕрд░рд╣рд╛рдКрд╕ рдЖрдгрд┐ рдХрд┐рдВрдорддреАрдВрдордзреАрд▓ рдЙрддреНрдкрд╛рджрди рд╢рд┐рд▓реНрд▓рдХ);
- рдЧреНрд░рд╛рд╣рдХ;
- рдЖрджреЗрд╢;
Magento рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдбреЗрдЯрд╛ рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪрд╛ рдПрдХ рд╡реЗрдЧрд│рд╛ рд╡рд░реНрдЧ рдСрдлрд░ рдХрд░рддреЛ -
рдЧреНрд░рд╛рд╣рдХ рдЖрдгрд┐ рдСрд░реНрдбрд░ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рджреБрд╕рд▒реНрдпрд╛ рджрд┐рд╢реЗрдиреЗ - Magento рдкрд╛рд╕реВрди рдмрд╛рд╣реНрдп ERP рд╕рд┐рд╕реНрдЯреАрдордкрд░реНрдпрдВрдд рдкреНрд░рддрд┐рд░реВрдкрд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. рдореНрд╣рдгреВрди, рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рд╕реЛрдкреЗ рдЖрд╣реЗ, рдореЕрдЬреЗрдиреНрдЯреЛ рдмрд╛рдЬреВрд▓рд╛ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдлрдХреНрдд рдпреЛрдЧреНрдп рдбреЗрдЯрд╛ рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдирдВрддрд░ тАЬрдЖрдордЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рдЧреЛрд│реНрдпрд╛ рдирд┐рдШрд╛рд▓реНрдпрд╛".
рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдбреЗрдЯрд╛ рд░реЗрдХреЙрд░реНрдб рдХрд░рдгреНрдпрд╛рдЪреА рддрддреНрддреНрд╡реЗ
рдпрд╛ рдХреНрд╖рдгреА, 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);
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