Magento o se fofo e-pisinisi, i.e. e sili atu le fa'amoemoe i le fa'atau atu o oloa nai lo le teuina, fa'amaumauga po'o fa'amatalaga tau tupe fa'atasi ma fa'atauga. O isi talosaga (fa'ata'ita'iga, faiga ERP) e sili atu ona fetaui mo talosaga fa'atasi. O le mea lea, e masani lava i le faʻaaogaina o Magento le galuega o le tuʻufaʻatasia o se faleoloa ma isi faiga (mo se faʻataʻitaʻiga, 1C) tulaʻi mai.
I le lautele, e mafai ona faʻaititia le tuʻufaʻatasia i faʻamatalaga faʻamaumauga e ala i:
- fa'amaumauga (oloa, vaega);
- fa'amaumauga o fa'amaumauga (paleni o oloa i faleteuoloa ma tau);
- tagata fa'atau;
- poloaiga;
Magento ofo atu se isi vasega o mea faitino mo le faʻaogaina o faʻamatalaga i totonu o faʻamaumauga -
O tagata fa'atau ma fa'atonuga e masani lava ona fa'atusa i le isi itu - mai le Magento i fafo atu o le ERP system. O le mea lea, e sili atu ona faigofie ia i latou, i le itu Magento e tatau ona e filifilia faʻamatalaga talafeagai, ona "na felelei mai pulufana mai lo matou itu".
Fa'avae o le fa'amauina o fa'amaumauga i totonu o fa'amaumauga
I le taimi nei, o le fatuina o mea faitino faʻasaoina i totonu o le database programmatically i Magento ua maeʻa
function __construct (MagentoCmsModelBlockFactory $blockFactory) {
$this->blockFactory = $blockFactory;
}
/** @var MagentoCmsModelBlock $block */
$block = $this->blockFactory->create();
ma le tusitusi i le database e faia e ala i
function __construct (MagentoCmsApiBlockRepositoryInterface $blockRepo) {
$this->blockRepo = $blockRepo;
}
$this->blockRepo->save($block);
Ole "Factory" ma le "Repository" e mafai ona faʻaogaina mo faʻataʻitaʻiga tetele uma ile Magento 2 domain.
Fa'amatalaga Fa'avae Oloa
O loʻo ou vaʻavaʻai i se fausaga faʻamaumauga e fetaui ma Magento 2.3 version. O faʻamatalaga sili ona taua e uiga i le oloa o loʻo i le laulau catalog_product_entity
(resitala oloa):
entity_id
attribute_set_id
type_id
sku
has_options
required_options
created_at
updated_at
E fa'atapula'aina a'u ile tasi ituaiga o oloa (type_id='simple'
), se seti o uiga fa'aletonu (attribute_set_id=4
) ma le amanaia uiga has_options
и required_options
. Talu mai uiga entity_id
, created_at
и updated_at
e gaosia otometi, ona, o le mea moni, e faʻaopoopo se oloa fou, e tatau ona tatou seti sku
. Ou te faia lenei mea:
/** @var MagentoCatalogApiDataProductInterfaceFactory $factProd */
/** @var MagentoCatalogApiProductRepositoryInterface $repoProd */
/** @var MagentoCatalogApiDataProductInterface $prod */
$prod = $factProd->create();
$prod->setAttributeSetId(4);
$prod->setTypeId('simple');
$prod->setSku($sku);
$repoProd->save($prod);
ma ou te maua se tuusaunoaga:
The "Product Name" attribute value is empty. Set the attribute and try again.
Ou te faaopoopo le igoa o le oloa i le talosaga ma maua se savali o loʻo misi le uiga Price
. A maeʻa ona faʻaopoopo le tau, faʻaopoopo le oloa ile faʻamaumauga:
$prod = $factProd->create();
$prod->setAttributeSetId(4);
$prod->setTypeId('simple');
$prod->setSku($sku);
$prod->setName($name);
$prod->setPrice($price);
$repoProd->save($prod);
O le igoa o le oloa o lo'o teuina i le laulau o uiga o oloa varchar (catalog_product_entity_varchar
), tau - i le laulau catalog_product_entity_decimal
. Aʻo leʻi faʻaopoopoina se oloa, e fautuaina e faʻaalia manino o loʻo matou faʻaogaina le faleoloa faʻapitoa e faʻaulu mai ai faʻamatalaga:
/** @var MagentoStoreModelStoreManagerInterface $manStore */
$manStore->setCurrentStore(0);
Uiga Faaopoopo
O le faʻaogaina o uiga faʻaopoopo oloa e faʻaaoga ai Magento o se fiafiaga. EAV fa'ata'ita'iga mo fa'alapotopotoga autu (silasila i le laulau eav_entity_type
) o se tasi o vaega taua o lenei tulaga. Matou te faʻaopoopoina uiga talafeagai i le faʻataʻitaʻiga o oloa:
$prodEntity->setData('description', $desc);
$prodEntity->setData('short_description', $desc_short);
// или
$prodEntity->setDescription($desc);
$prodEntity->setShortDescription($desc_short);
ma pe a faʻasaoina le faʻataʻitaʻiga e ala i le repo mea:
$repoProd->save($prod);
o uiga fa'aopoopo o le a teuina fo'i i totonu o laulau fa'amaumauga talafeagai.
Fa'amaumauga o fa'amaumauga
I ni faaupuga faigofie - o le aofaʻi o oloa i totonu o faʻasoa. I le Magento 2.3, fausaga i totonu o faʻamaumauga o loʻo faʻamatalaina le faatulagaga mo le teuina o faʻamaumauga o faʻamaumauga
/** @var MagentoCatalogModelProduct $prodEntity */
/** @var MagentoCatalogApiProductRepositoryInterface $repoProd */
$inventory = [
'is_in_stock' => true,
'qty' => 1234
];
$prodEntity->setData('quantity_and_stock_status', $inventory);
$repoProd->save($prodEntity);
Faasalalauga
I le avea ai o se tulafono, o le lagolago a le aufaasālalau mo se oloa mo se tagata o tausia i totonu o se faleoloa (e-commerce) e ese mai le lagolago a le aufaasālalau mo le oloa lava lea e tasi mo se tagata faigaluega i totonu o se faiga faʻamaumauga i totonu (ERP). I le tulaga muamua, e fautuaina le faʻaalia o le oloa faʻasaga; i le lona lua, e lava le tuʻuina atu o se manatu lautele o le oloa. Ae ui i lea, o le fesiitaiga o le ata muamua o se oloa e masani lava. case
pe a fa'aulufaleina fa'amaumauga.
Pe a faʻaopoopoina se ata e ala i le admin panel, o le ata e muamua faʻasaoina i se lisi le tumau (./pub/media/tmp/catalog/product
) ma na'o le taimi e fa'asaoina ai le oloa e si'i atu i le fa'asalalauga fa'asalalau (./pub/media/catalog/product
). E le gata i lea, pe a faʻaopoopo e ala i le admin panel, o le ata e faʻailogaina 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);
Mo nisi mafuaʻaga, e naʻo le fesoʻotaʻiga o le aufaasālalau pe a uma ona faʻasaoina muamua le oloa ma toe aumai mai le fale teu oloa. Ma e tatau ona e faʻamaonia le uiga label
pe a faʻaopoopo se faʻamatalaga i le faʻasalalauga faʻasalalauga oloa (a leai matou te maua se tuusaunoaga Undefined index: label in .../module-catalog/Model/Product/Gallery/CreateHandler.php on line 516
).
Vaega
E masani lava, o le vaega fausaga o le faleoloa ma le faʻaoga pito i tua poʻo le tuʻuina atu o oloa i totonu e mafai ona matua ese. Fuafuaga mo le femalaga'iga o fa'amatalaga e uiga i vaega ma oloa i totonu e fa'alagolago i le tele o mea. I lenei faʻataʻitaʻiga ou te pipii i mea nei:
- vaega pito i tua ma faleoloa e faatusatusa i le igoa;
- afai e faaulufale mai se vaega e le oi totonu o le faleoloa, ona faia lea i lalo o le vaega aʻa (
Default Category
) ma lona fa'atulagaina atili i totonu o le fa'amaumauga o faleoloa o lo'o fa'atinoina ma le lima; - o se oloa e tu'uina atu i se vaega na'o le taimi na faia ai i totonu o le faleoloa (muamua fa'aulufale mai);
O fa'amatalaga autu e uiga i le vaega o lo'o i le laulau catalog_category_entity
(fa'amaumauga o vaega). Fausia se vaega i Magento:
/** @var MagentoCatalogApiDataCategoryInterfaceFactory $factCat */
/** @var MagentoCatalogApiCategoryRepositoryInterface $repoCat */
$cat = $factCat->create();
$cat->setName($name);
$cat->setIsActive(true);
$repoCat->save($cat);
Fa'afeso'ota'i se oloa i se vaega o lo'o fa'atinoina e fa'aaoga ai le ID vaega ma le SKU oloa:
/** @var MagentoCatalogModelCategoryProductLinkFactory $factCatProdLink */
/** @var MagentoCatalogApiCategoryLinkRepositoryInterface $repoCatLink */
$link = $factCatProdLink->create();
$link->setCategoryId($catMageId);
$link->setSku($prodSku);
$repoCatLink->save($link);
Aofaʻi
Tusitusi code e faʻaopoopo ai se oloa faʻapipiʻiina i le Magento 2 e faigofie tele. Ua ou tuʻufaʻatasia mea uma o loʻo taʻua i luga i totonu o se faʻataʻitaʻiga module "fl32:import:prod
, lea e fa'aulufale mai oloa o lo'o fa'amatalaina i le faila JSON "
[
{
"sku": "...",
"name": "...",
"desc": "...",
"desc_short": "...",
"price": ...,
"qty": ...,
"categories": ["..."],
"image_path": "..."
}
]
O ata mo le fa'aulufale mai o lo'o i totonu o le lisi ./etc/data/img
.
O le taimi e fa'aulufale mai ai oloa e 10 e fa'aaoga ai lenei metotia e tusa ma le 10 sekone i la'u komepiuta feavea'i. Afai tatou te atiina ae atili lenei manatu, e faigofie lava ona maua le faaiuga e tusa ma le 3600 oloa e mafai ona faaulufale mai i le itula, ma e mafai ona ave pe a ma le 100 itula e faaulufale mai ai oloa 30K. Suia se komepiuta feaveai ma se server e mafai ai ona e faʻalelei le tulaga. Atonu e oo lava i ni nai taimi. Ae le o se poloaiga o le tele. Masalo o lenei saoasaoa ma le tuai o se tasi lea o mafuaaga o le tulai mai o le poloketi
O se fofo mataʻutia e faʻateleina ai le saoasaoa o le faʻaulufale mai e mafai ona tuʻu saʻo i totonu o le database, ae i lenei tulaga o "mea lelei" uma e uiga i le faʻalauteleina o Magento ua leiloloa - e tatau ona e faia mea uma "agai i luma" oe lava. Ae ui i lea, e aoga. Afai e aoga, o le a ou mafaufau i le auala ma le tusitusi tuusao i le database i le isi tusiga.
puna: www.habr.com