Π tsab xov xwm dhau los Kuv tau piav qhia txog cov txheej txheem ntawm kev xa khoom tuaj rau hauv Magento 2 raws li ib txwm muaj - los ntawm cov qauv thiab cov chaw khaws khoom. Txoj kev ib txwm muaj cov ntaub ntawv ua haujlwm tsawg heev. Kuv lub laptop tau tsim txog ib yam khoom ib ob. Hauv qhov txuas ntxiv no, kuv xav txog lwm txoj hauv kev los import cov khoom lag luam - los ntawm kev nkag ncaj qha rau hauv cov ntaub ntawv, hla cov txheej txheem Magento 2 (cov qauv, cov chaw tsim khoom, cov chaw khaws khoom). Cov theem ntawm cov kauj ruam los import cov khoom tuaj yeem hloov mus rau txhua hom lus programming uas tuaj yeem ua haujlwm nrog MySQL.
Disclaimer: Magento tau npaj ua haujlwm rau cov ntaub ntawv import thiab, feem ntau yuav, nws yuav txaus rau koj. Txawm li cas los xij, yog tias koj xav tau kev tswj hwm ntau dua ntawm cov txheej txheem ntshuam, tsis txwv rau kev npaj cov ntaub ntawv CSV rau yam koj muaj, txais tos miv.
Cov cai uas tshwm sim los ntawm kev sau ob kab lus tuaj yeem pom hauv Magento module "flancer32/mage2_ext_demo_import". Nov yog qee qhov kev txwv kuv ua raws kom yooj yim rau demo module code:
Cov khoom tsim tawm tshiab tseem tsis tau muaj npe lossis piav qhia. Tag nrho cov no yog ua tiav los ntawm EAV attributes. Ntawm no yog ib daim ntawv teev cov yam ntxwv ntawm cov khoom lag luam uas xav tau rau cov khoom kom pom tseeb rau pem hauv ntej:
name
price
description
short_description
status
tax_class_id
url_key
visibility
Ib tus cwj pwm cais tau ntxiv rau cov khoom zoo li no (cov ntsiab lus ntawm kev tau txais tus cim thiab hom ntawm tus cwj pwm los ntawm nws cov cai raug tshem tawm):
public function create($prodId, $attrCode, $attrValue)
{
$attrId = /* get attribute ID by attribute code */
$attrType = /* get attribute type [datetime|decimal|int|text|varchar]) by attribute code */
if ($attrId) {
/** @var MagentoFrameworkAppResourceConnection $this->resource */
/** @var MagentoFrameworkDBAdapterPdoMysql $conn */
$conn = $this->resource->getConnection();
$tblName = 'catalog_product_entity_' . $attrType;
$table = $this->resource->getTableName($tblName);
$bind = [
'attribute_id' => $attrId,
'entity_id' => $prodId,
/* put all attributes to default store view with id=0 (admin) */
'store_id' => 0,
'value' => $attrValue
];
$conn->insert($table, $bind);
}
}
Siv tus cwj pwm code, peb txiav txim siab nws tus ID thiab cov ntaub ntawv hom (datetime, decimal, int, text, varchar), tom qab ntawd sau cov ntaub ntawv rau lub qhov rais tswj hwm rau hauv lub rooj tsim nyog (store_id = 0).
Tom qab ntxiv cov yam ntxwv saum toj no rau cov khoom, koj tau txais daim duab no hauv admin vaj huam sib luag:
Cov ntaub ntawv khaws tseg
Pib los ntawm version 2.3 hauv Magento, muaj ob qhov sib npaug ntawm cov rooj uas muab cov ntaub ntawv khaws cia (cov khoom kom muaj nuj nqis):
type |code|stock_id|
-------|----|--------|
website|base| 1|
Judging los ntawm cov ntaub ntawv qauv, ntau hom kev muag khoom raws li xav, tab sis los ntawm lub neej ntawd tsuas yog kev sib txuas "Tshuag"-"website"(qhov txuas mus rau lub vev xaib ua raws li lub vev xaib code - base).
Cov qeb nrog id=1 yog lub hauv paus ntawm tag nrho Magento catalog thiab tsis muaj nyob rau hauv lub vaj huam sib luag admin lossis nyob rau sab pem hauv ntej. Qeb nrog id=2 (Default Category) yog pawg hauv paus rau lub vev xaib lub khw tseem ceeb (Lub Vev Xaib Loj) tsim thaum daim ntawv thov raug xa mus (saib. Admin / Khw / Txhua Lub Khw). Ntxiv mus, lub hauv paus qeb ntawm lub khw nws tus kheej kuj tsis muaj nyob rau pem hauv ntej, tsuas yog nws subcategories.
Txij li thaum lub ntsiab lus ntawm tsab xov xwm no tseem yog importing cov ntaub ntawv ntawm cov khoom, kuv yuav tsis siv ncaj qha nkag mus rau hauv lub database thaum tsim pawg, tab sis yuav siv cov chav kawm muab los ntawm Magento nws tus kheej (qauv qauv thiab repositories). Kev nkag ncaj qha rau hauv cov ntaub ntawv tsuas yog siv los koom nrog cov khoom tuaj txawv teb chaws nrog ib pawg (cov qeb yog sib luag los ntawm nws lub npe, thiab qeb id raug muab rov qab thaum sib piv):
Cov khoom hauv pawg tswj hwm tom qab ua haujlwm ntxiv:
thiab pem hauv ntej:
Txoj kev xaus
Tib yam khoom (10 daim) raws li nyob rau hauv tsab xov xwm dhau los yog imported tsawg kawg yog ib qho kev txiav txim siab ceev (1 thib ob piv rau 10). Txhawm rau kwv yees qhov nrawm dua, koj xav tau ntau cov khoom lag luam - ntau pua, lossis zoo dua ntau txhiab. Txawm li cas los xij, txawm tias qhov me me ntawm cov ntaub ntawv tawm tswv yim, peb tuaj yeem txiav txim siab tias kev siv cov cuab yeej muab los ntawm Magento (cov qauv thiab cov chaw khaws cia) yog qhov tseem ceeb (Kuv hais txog - npaum li cas!) ua kom txoj kev loj hlob ntawm qhov xav tau kev ua haujlwm, tab sis tib lub sijhawm tseem ceeb (Kuv hais txog - npaum li cas!) txo qhov ceev ntawm cov ntaub ntawv nkag mus rau hauv cov ntaub ntawv.
Yog li ntawd, cov dej tau hloov mus rau ntub thiab qhov no tsis yog kev tshwm sim. Txawm li cas los xij, tam sim no kuv muaj cov cai ua si nrog thiab tej zaum tuaj rau qee qhov kev txiav txim siab ntxiv.