Ko Magento he otinga e-tauhokohoko, i.e. he nui ake te whainga ki te hoko hua atu i te whare putunga, nga mahi whakahaere, te kaute putea ranei e haere tahi ana me nga hoko. Ko etahi atu tono (hei tauira, nga punaha ERP) he pai ake mo nga tono taapiri. Na reira, i te nuinga o nga wa i roto i te mahi ki te whakamahi i te Magento te mahi ki te whakauru i tetahi toa me enei atu punaha (hei tauira, 1C) ka ara ake.
I te nuinga, ka taea te whakaiti i te whakauru ki te tukurua raraunga ma te:
- rārangi (hua, kāwai);
- raraunga rārangi (whakaritenga hua i roto i nga whare putunga me nga utu);
- kiritaki;
- ota;
Ka tuku a Magento i tetahi karaehe motuhake o nga taonga mo te raweke i nga raraunga i roto i te papanga raraunga -
Ko nga kaihoko me nga ota ka tukuna ki tetahi atu huarahi - mai i Magento ki nga punaha ERP o waho. Na reira, he maamaa ake ki a raatau, i te taha o Magento me kowhiria e koe nga raraunga e tika ana, katahi ka "ka rere nga matā i to matou taha".
Nga maataapono o te tuhi raraunga ki roto i te putunga raraunga
I tenei wa, kua oti te hanga i nga mea kua tiakina i roto i te papaarangi raraunga i roto i te Magento
function __construct (MagentoCmsModelBlockFactory $blockFactory) {
$this->blockFactory = $blockFactory;
}
/** @var MagentoCmsModelBlock $block */
$block = $this->blockFactory->create();
me te tuhi ki te papa raraunga ka mahia ma te
function __construct (MagentoCmsApiBlockRepositoryInterface $blockRepo) {
$this->blockRepo = $blockRepo;
}
$this->blockRepo->save($block);
Ka taea te whakamahi i te huarahi "Factory" me te "Repository" mo nga tauira nui katoa i te rohe Magento 2.
Nga korero hua taketake
Kei te titiro ahau ki tetahi hanganga raraunga e rite ana ki te putanga Magento 2.3. Ko nga korero tino nui mo te hua kei te ripanga catalog_product_entity
(rehita hua):
entity_id
attribute_set_id
type_id
sku
has_options
required_options
created_at
updated_at
He iti noa ahau ki tetahi momo hua (type_id='simple'
), he huinga huanga taunoa (attribute_set_id=4
) me te wareware ki nga huanga has_options
и required_options
. Mai i nga huanga entity_id
, created_at
и updated_at
he mea hanga aunoa, na, hei taapiri i tetahi hua hou, me tautuhi noa sku
. Ka mahia e ahau tenei:
/** @var MagentoCatalogApiDataProductInterfaceFactory $factProd */
/** @var MagentoCatalogApiProductRepositoryInterface $repoProd */
/** @var MagentoCatalogApiDataProductInterface $prod */
$prod = $factProd->create();
$prod->setAttributeSetId(4);
$prod->setTypeId('simple');
$prod->setSku($sku);
$repoProd->save($prod);
a ka whiwhi au i tetahi tuunga:
The "Product Name" attribute value is empty. Set the attribute and try again.
Ka taapirihia e ahau te ingoa hua ki te tono ka whiwhi karere kei te ngaro te huanga Price
. I muri i te taapiri i te utu, ka taapirihia te hua ki te paataka raraunga:
$prod = $factProd->create();
$prod->setAttributeSetId(4);
$prod->setTypeId('simple');
$prod->setSku($sku);
$prod->setName($name);
$prod->setPrice($price);
$repoProd->save($prod);
Kei te rongoa te ingoa hua ki te ripanga huanga varchar hua (catalog_product_entity_varchar
), utu - kei te tepu catalog_product_entity_decimal
. I mua i te taapiri i tetahi hua, he mea tika kia tino tohu kei te whakamahi matou i te toa whakahaere hei kawemai i nga raraunga:
/** @var MagentoStoreModelStoreManagerInterface $manStore */
$manStore->setCurrentStore(0);
Huanga Tāpiri
Ko te tukatuka i etahi atu huanga hua ma te whakamahi i te Magento he mea koa. Tauira raraunga EAV mo nga hinonga matua (tirohia te ripanga eav_entity_type
) Ko tetahi o nga ahuatanga matua o tenei turanga. Ka taapiri noa matou i nga huanga e tika ana ki te tauira hua:
$prodEntity->setData('description', $desc);
$prodEntity->setData('short_description', $desc_short);
// или
$prodEntity->setDescription($desc);
$prodEntity->setShortDescription($desc_short);
a ka tiakina te tauira ma te ahanoa repo:
$repoProd->save($prod);
ka penapena ano etahi atu huanga ki roto i nga ripanga raraunga e pa ana.
Raraunga Rarangi
I nga kupu ngawari - te nui o nga hua kei roto i nga taonga. I roto i te Magento 2.3, ko nga hanganga kei roto i te papaa raraunga e whakaahua ana i te whakatakotoranga mo te penapena raraunga raarangi
/** @var MagentoCatalogModelProduct $prodEntity */
/** @var MagentoCatalogApiProductRepositoryInterface $repoProd */
$inventory = [
'is_in_stock' => true,
'qty' => 1234
];
$prodEntity->setData('quantity_and_stock_status', $inventory);
$repoProd->save($prodEntity);
Pāpāho
Hei tikanga, he rereke te tautoko pāpāho mo tetahi hua mo te kaihoko i roto i te toa (e-tauhokohoko) mai i te tautoko pāpāho mo te hua kotahi mo te kaimahi i roto i te punaha kaute o roto (ERP). I roto i te keehi tuatahi, he mea tika kia whakaatuhia te hua ki te kanohi ki te kanohi; i te tuarua, he nui ki te tuku whakaaro whanui mo te hua. Heoi, ko te whakawhiti i te ahua tuatahi o tetahi hua he mea noa. case
i te wa e kawemai ana i nga raraunga.
I te wa e taapirihia ana he whakaahua ma te papa whakahaere, ka tiakina tuatahitia te atahanga ki roto i te raarangi rangitahi (./pub/media/tmp/catalog/product
) a ka nukuhia te hua ki te whaiaronga pāpāho (./pub/media/catalog/product
). Ano, ka taapirihia ma te roopu whakahaere, ka tohua te ahua 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 etahi take, ka honohia te hunga panui i muri i te tiaki tuatahi i te hua me te whakahoki ano mai i te putunga. A me tohu e koe te huanga label
i te taapiri i tetahi urunga ki te taiwhanga pāpāho hua (mehemea ka riro he otahi Undefined index: label in .../module-catalog/Model/Product/Gallery/CreateHandler.php on line 516
).
Ngā Kāwai
I te nuinga o nga wa, ko te hanganga waahanga o te toa me te tono tuara me te tuunga o nga hua ki roto ka tino rerekee. Ko nga rautaki mo te heke raraunga mo nga waahanga me nga hua kei roto e whakawhirinaki ana ki nga mea maha. I tenei tauira ka piri ahau ki nga mea e whai ake nei:
- ka whakatauritehia nga waahanga o muri me nga toa ma te ingoa;
- Mena ka kawea mai he waahanga kaore i roto i te toa, ka hangaia i raro i te waahanga pakiaka (
Default Category
) me tana tuunga atu i roto i te putumōhio toa ka mau ki te ringa; - ka tautapahia he hua ki tetahi waahanga ka hangaia i roto i te toa (kawe tuatahi);
Ko nga korero taketake mo te waahanga kei te ripanga catalog_category_entity
(putumōhio o ngā kāwai). Te hanga i tetahi waahanga ki Magento:
/** @var MagentoCatalogApiDataCategoryInterfaceFactory $factCat */
/** @var MagentoCatalogApiCategoryRepositoryInterface $repoCat */
$cat = $factCat->create();
$cat->setName($name);
$cat->setIsActive(true);
$repoCat->save($cat);
Ko te hono i tetahi hua ki tetahi waahanga ka mahia ma te whakamahi i te ID kāwai me te SKU hua:
/** @var MagentoCatalogModelCategoryProductLinkFactory $factCatProdLink */
/** @var MagentoCatalogApiCategoryLinkRepositoryInterface $repoCatLink */
$link = $factCatProdLink->create();
$link->setCategoryId($catMageId);
$link->setSku($prodSku);
$repoCatLink->save($link);
Te tapeke
Ko te tuhi waehere hei taapiri i tetahi hua ki te Magento 2 he tino ngawari. Kua whakakotahihia e ahau nga mea katoa kua whakahuahia i runga ake nei ki roto i te waahanga demo "fl32:import:prod
, e kawemai ana i nga hua e whakaahuatia ana i te konae JSON "
[
{
"sku": "...",
"name": "...",
"desc": "...",
"desc_short": "...",
"price": ...,
"qty": ...,
"categories": ["..."],
"image_path": "..."
}
]
Ko nga pikitia hei kawemai kei roto i te raarangi ./etc/data/img
.
Ko te wa ki te kawemai i nga hua 10 ma te whakamahi i tenei tikanga ko te 10 hēkona i runga i taku pona. Mena ka whakawhanake ake tatou i tenei whakaaro, ka ngawari te whakatau ka taea te kawe mai i nga hua 3600 ia haora, a ka roa pea te 100 haora ki te kawe mai i nga hua 30K. Ko te whakakapi i te pona ki te tūmau ka taea e koe te maeneene i te ahuatanga. He maha pea nga wa. Engari kaore i runga i nga whakahau o te nui. Ko tenei tere me te puhoi pea tetahi o nga take i puta mai ai te kaupapa
Ko te otinga tino kaha ki te whakapiki ake i te tere o te kawemai ka taea te uru ki roto i te paataka raraunga, engari i tenei keehi ka ngaro katoa nga "mea pai" mo te toronga o Magento - me mahi e koe nga mea katoa "maamaa" koe. Heoi, he mea utu. Mena ka puta, ka whakaarohia e ahau te huarahi me te tuhi tika ki te papaarangi i roto i te tuhinga e whai ake nei.
Source: will.com