Magento áááş e-commerce ááźáąáážááşá¸ááťááşá áááŻáááŻáááşáážáŹá áááŻáážáąáŹááşááŻáśá ááąáŹááşááśáˇáááŻáˇááąáŹááşááąá¸ áááŻáˇáááŻááş áá˝áąááźáąá¸á áŹáááşá¸áááŻááşáá˝ááşááŤáážáááąáŹ ááąáŹááşá¸ááťááźááşá¸áááş ááŻááşáá ášá ááşá¸ááťáŹá¸ááᯠááąáŹááşá¸ááťáááş áááŻáááŻáááşáá˝ááşááŤáááşá áĄááźáŹá¸ááąáŹ áĄáááŽááąá¸áážááşá¸ááťáŹá¸ (áĽáááŹá ERP á áá áşááťáŹá¸) áááş ááŤáááşáááˇáş áĄááşááşááŽááąá¸áážááşá¸ááťáŹá¸áĄáá˝ááş áááŻáááˇáşááąáŹáşááŤáááşá áááŻáˇááźáąáŹááˇáşá Magento áááŻáĄááŻáśá¸ááźáŻááźááşá¸ááĄááąáˇáĄááťááˇáşáá˝ááşá¤áĄááźáŹá¸á áá áşááťáŹá¸áážááˇáşá áááŻá¸áááŻááşáá áşááŻáááŻááąáŤááşá¸á ááşá¸ááźááşá¸ááŹáááş (áĽááᏠ1C) ááźá áşááąáŤáşááŹáááşá
áĄááťáŹá¸áĄáŹá¸ááźááˇáşá ááąáŤááşá¸á ááşá¸áážáŻááᯠááąááŹááŻáśáá°áá˝áŹá¸ááźááşá¸áááŻáˇ ááťážáąáŹáˇááťáááŻááşáááş-
- áááşáááąáŹááş (ááŻááşááŻááşááťáŹá¸á áĄááťááŻá¸áĄá áŹá¸ááťáŹá¸);
- á áŹáááşá¸áĄááťááşáĄáááş (áááŻáážáąáŹááşááŻáśááťáŹá¸áážááˇáş ááąá¸áážáŻááşá¸ááťáŹá¸áá˝ááş ááŻááşáá ášá ááşá¸áááşááťááşááťáŹá¸);
- ááąáŹááşáááşááťáŹá¸;
- áĄááááˇáş;
Magento áááş ááąááŹááąáˇá áşáĄáá˝ááşá¸ ááąááŹááᯠáĄááŻáśá¸ááťáááşáĄáá˝ááş ááŽá¸ááźáŹá¸áĄááŹááášááŻááťáŹá¸ááᯠááśáˇáááŻá¸ááąá¸áááş- . Magento á ááŽá¸ááźáŹá¸áá°á¸ááźáŹá¸ááťááşááťáŹá¸ááźáąáŹááˇáşá ááááşá¸áááşá¸áážáŻááťáŹá¸áážáá áşáááˇáş ááąááŹááąáˇá áşáááŻáˇ ááąááŹáááˇáşááźááşá¸áááş ááŻááşááŻááşáááş áá˝ááşáá°ááąáŹáşáááşá¸ áááşá¸áááş áážáąá¸áá˝áąá¸áááşáᯠáááŻááźááŤá ááŻáˇá á¤ááŻááşááąáážáŻáá˝ááşá Repo áĄáááşá¸ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻá "ááášááááş" áááşá¸áááşá¸ááźááˇáş ááŻááşááŻááşáá áşááŻááᯠMagento 2 áááŻáˇ ááááŻááááşáááˇáşáá˝ááşá¸ááźááşá¸á áĄááááĄáááˇáşááťáŹá¸ááᯠá ááşá¸á áŹá¸ááŤáááşá
ááąáŹááşáááşááťáŹá¸áážááˇáş áĄáážáŹá áŹááťáŹá¸ááᯠMagento ááž ááźááşá ERP á áá áşááťáŹá¸áááŻáˇ áĄááźáŹá¸áŚá¸áááşááťááşááźááˇáş ááŻáśáá°áá˝áŹá¸ááąáˇáážááááşá áááŻáˇááźáąáŹááˇáşá Magento áááşááž áááˇáşááťáąáŹáşááąáŹááąááŹááᯠáááşáá˝áąá¸ááťááşáááş áááŻáĄááşááźáŽá¸ áááşá¸áááŻáˇáážááˇáş áááŻáááŻáááŻá¸áážááşá¸áááşá áááŻáˇááąáŹááş "ááťááşááśáá˝áąá ááŤáááŻáˇáááşááźááşá¸áááą ááťáśáá˝ááşáá˝áŹá¸áááşá"á
ááąááŹááąáˇá áşáá áşááŻáááŻáˇ áážááşáááşá¸áááşááźááşá¸áááŻááşáᏠáĄááźáąááśáá°ááťáŹá¸
ááąáŹááąáŹáááşáá˝ááş 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);"Factory" áážááˇáş "Repository" ááťááşá¸áááşáážáŻááᯠ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);áážááˇáş repo áĄááŹááášááŻáážááááˇáş ááąáŹáşáááşááᯠááááşá¸áááşá¸ááąáŹáĄááŤá
$repoProd->save($prod);áááşááąáŹááşá¸ attribute ááťáŹá¸ááᯠáááşáááŻááşáᏠdatabase tables ááťáŹá¸áá˝ááşáááşá¸ ááááşá¸áááşá¸ááŤáááşá
á áŹáááşá¸áĄááťááşáĄáááş
áááŻá¸áážááşá¸ááąáŹáĄááŻáśá¸áĄáážáŻááşá¸ááťáŹá¸áá˝ááş - á ááąáŹáˇáážááşááŹáážáááŻááşááŻááşáááŹáá 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);ááŽááŽááŹ
á
ááşá¸áááşá¸áĄáá á
áááŻá¸áááŻááş (e-commerce) áážá ááąáŹááşáááşáá
áşáŚá¸áĄáá˝ááş ááŻááşááŻááşáá
áşááŻáĄáá˝ááş ááŽááŽááŹááśáˇáááŻá¸áážáŻáááş ááŹááá˝ááşá¸á
áŹáááşá¸áááŻááşá
áá
áş (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);áĄááźáąáŹááşá¸áá
áşááŻááŻááźáąáŹááˇáşá ááŻááşááŻááşááᯠáŚá¸á
á˝áŹááááşá¸áááşá¸ááźáŽá¸ ááźááşáááşááááşá¸áááşá¸ááźáŽá¸ááąáŹááşáážáᏠááŽááŽááŹááᯠááťáááşáááşááŹá¸áááşá áááťáááť attribute áááŻáááşáážááşáááşáááŻáĄááşáááşá label ááŻááşááŻááşááŽááŽááŹááźáááşá¸áááŻáˇ áááˇáşáá˝ááşá¸áááˇáşáĄá፠(áááŻááşááŤá ááťá˝ááşáŻááşáááŻáˇáááş ááźá˝ááşá¸ááťááşáá
áşááŻááźá
áşáááşá Undefined index: label in .../module-catalog/Model/Product/Gallery/CreateHandler.php on line 516).
áĄááťááŻá¸áĄá áŹá¸
áááźáŹáááááŻááááŻá á áááŻá¸áááŻááşá áĄááťááŻá¸áĄá áŹá¸áá˝á˛áˇá ááşá¸ááŻáśáážááˇáş ááąáŹááşááśáĄáááŽááąá¸áážááşá¸ áááŻáˇáááŻááş áááşá¸áááŻáˇáá˝ááş ááŻááşááŻááşááťáŹá¸á ááąááŹááťááŹá¸áážáŻáááş ááááááŹáᏠáá˝á˛ááźáŹá¸áááŻááşáááşá áááşá¸áááŻáˇáĄáá˝ááşá¸ áĄááťááŻá¸áĄá áŹá¸ááťáŹá¸áážááˇáş ááŻááşááŻááşááťáŹá¸áááŻááşáᏠáĄááťááşáĄáááşááťáŹá¸ááᯠáá˝ážáąáˇááźáąáŹááşá¸ááźááşá¸áĄáá˝ááş áááŹááťá°ááŹááťáŹá¸áááş áĄááťááşááťáŹá¸á á˝áŹááąáŤáşáá˝ááş áá°áááşááŤáááşá á¤áĽáááŹáá˝ááş ááťá˝ááşáŻááşáááş áĄáąáŹááşááŤáĄááťááşááᯠáááŻááşááŹááŤáááşá
- backend áážááˇáş store áĄááťááŻá¸áĄá áŹá¸ááťáŹá¸ááᯠáĄáááşááźááˇáş áážááŻááşá¸áážááşááŹá¸ááŤáááşá
- á
áááŻá¸áá˝ááşáááŻááşááąáŹáĄááťááŻá¸áĄá
áŹá¸áá
áşááŻáááŻáááşáá˝ááşá¸ááŤáá áááşá¸ááᯠroot áĄááťááŻá¸áĄá
áŹá¸áĄáąáŹááşáá˝ááşáááşááŽá¸ááŹá¸áááş (
Default Category) áážááˇáş á áááŻá¸áááŻááş áááşáááąáŹááşáá˝ááş áááşá¸á ááąáŹááşáááşááąááŹááťááŹá¸ááźááşá¸ááᯠáááŻááşáááŻááşáááŻááşááť áá°áááŤáááşá - ááŻááşááŻááşáá áşááŻááᯠá áááŻá¸áááŻááşáá˝ááş áááşááŽá¸ááŹá¸áážáᏠáĄááťááŻá¸áĄá áŹá¸áá áşááŻáááŻáˇ áááşáážááşááąá¸áááş (ááááááşáá˝ááşá¸ááźááşá¸)á
áĄááťááŻá¸áĄá
áŹá¸áážááˇáşáááşáááşááąáŹ áĄááźáąááśáĄááťááşáĄáááşáááş áááŹá¸áá˝ááşáážááááşá catalog_category_entity (áĄááťááŻá¸áĄá
áŹá¸ááťáŹá¸á áááşáááąáŹááş)á Magento áá˝ááş áĄááťááŻá¸áĄá
áŹá¸áá
áşááŻááᯠáááşááŽá¸ááąáááş-
/** @var MagentoCatalogApiDataCategoryInterfaceFactory $factCat */
/** @var MagentoCatalogApiCategoryRepositoryInterface $repoCat */
$cat = $factCat->create();
$cat->setName($name);
$cat->setIsActive(true);
$repoCat->save($cat);ááŻááşááŻááşáá áşááŻáĄáŹá¸ áĄááťááŻá¸áĄá áŹá¸áá áşááŻáááŻáˇ ááťáááşáááşááźááşá¸áááş áĄááťááŻá¸áĄá áŹá¸ ID áážááˇáş ááŻááşááŻááş SKU ááᯠáĄááŻáśá¸ááźáŻá ááŻááşááąáŹááşáááş-
/** @var MagentoCatalogModelCategoryProductLinkFactory $factCatProdLink */
/** @var MagentoCatalogApiCategoryLinkRepositoryInterface $repoCatLink */
$link = $factCatProdLink->create();
$link->setCategoryId($catMageId);
$link->setSku($prodSku);
$repoCatLink->save($link);á áŻá áŻááąáŤááşá¸
ááŻááşááŻááşáá
áşááŻáĄáŹá¸ Magento 2 áá˝ááş ááááŻááááşááťááť áááˇáşáááş ááŻááşááąá¸ááźááşá¸áááş áĄáá˝ááşáá˝ááşáá°áááşá áĄáááşááąáŹáşááźá፠áĄááŹáĄáŹá¸ááŻáśá¸ááᯠáááŻááşááź module áá
áşááŻáĄááźá
áş ááąáŤááşá¸á
ááşáááŻááşááŤááźáŽ"â . module áá˝ááş console command áá
áşááŻááŹáážááááşá fl32:import:prodJSON áááŻááşáá˝ááş ááąáŹáşááźááŹá¸áááˇáş ááŻááşááŻááşááťáŹá¸ááᯠáááşáá˝ááşá¸áááˇáş "":
[
{
"sku": "...",
"name": "...",
"desc": "...",
"desc_short": "...",
"price": ...,
"qty": ...,
"categories": ["..."],
"image_path": "..."
}
]áááşáá˝ááşá¸áááşáĄáá˝ááş ááŻáśááťáŹá¸áááş áááşáááąáŹááşáá˝ááş áážááááşá ./etc/data/img.
á¤áááşá¸áááşá¸ááᯠáĄááŻáśá¸ááźáŻá ááŻááşááŻááş 10 ááŻáááşáá˝ááşá¸áááşáĄááťáááşáááş ááťá˝ááşáŻááşááááşááşááąáŹáˇááąáŤáşáá˝ááş 10 á áášáááˇáşáááˇáşááźá áşáááşá á¤áĄááźáśáĄá ááşááᯠááťá˝ááşáŻááşáááŻáˇ áááşááśááŽáá˝ááşááŤáá áá áşááŹááŽááťážááş ááŻááşáá ášá ááşá¸ áááá áááˇáş áááşáá˝ááşá¸áááŻááşááźáŽá¸ ááŻááşáá ášá ááşá¸ 3600K áááşáá˝ááşá¸áááş ááŹáᎠ100 áááˇáş ááźáŹáááŻááşáááşáᯠááąáŹááşááťááşááťáááş áá˝ááşáá°ááŤáááşá áááşááşááąáŹáˇáá áşááŻáśá¸ááᯠááŹááŹáá áşááŻááźááˇáş áĄá áŹá¸áááŻá¸ááźááşá¸áááş áĄááźáąáĄááąááᯠáĄáááşá¸áááş ááťáąáŹáá˝áąáˇá áąáááşá áĄááźáááşááąáŤááşá¸ááťáŹá¸á á˝áŹááąáŹááş ááźá áşáááŻááşáááşá ááŤááąáááˇáş áĄáááŻááşá¸áĄááŹáá áşááŻáĄááááąáŹáˇ áááŻááşááŤáá°á¸á á¤áĄááźááşáážáŻááşá¸áážááˇáş áážáąá¸áá˝áąá¸áážáŻáááş áááąáŹááťááşááąáŤáşááąáŤááşááŹááááˇáş áĄááźáąáŹááşá¸áááşá¸ááťáŹá¸áá˛ááž áĄáááŻááşá¸áĄááŹáá áşááŻáĄáá ááźá áşáááŻááşáááşá .
áááşáá˝ááşá¸áážáŻáĄáážáááşááźážááˇáşáááş áĄá á˝ááşá¸ááąáŹááşááźáąáážááşá¸ááťááşáááş ááąááŹááąáˇá áşáá˛áááŻáˇ áááŻááşáááŻááşáááşááąáŹááşáááŻááşááąáŹáşáááşá¸ á¤áĄááźáąáĄááąáá˝ááş Magento ááááŻá¸ááťá˛áˇáááŻááşáážáŻáážááˇáşáááşáááşááąáŹ "ááąáŹááşá¸ááąáŹ" ááťáŹá¸áĄáŹá¸ááŻáśá¸ ááŻáśá¸áážáŻáśá¸áá˝áŹá¸áááş - áááşáááŻááşáááŻááş "áĄáááˇáşááźááˇáşááąáŹ" áĄááŹáĄáŹá¸ááŻáśá¸ááᯠááŻááşááąáŹááşááááşááźá áşáááşá ááŤááąáááˇáş áĄá˛ááŤááᯠáááŻááşáááşááŤáááşá áĄáááşááźáąááŤá ááąáŹááşááąáŹááşá¸ááŤá¸áá˝ááş database áááŻáˇ áááŻááşáááŻááşá áŹááąá¸ááźááşá¸ááźááˇáş ááťááşá¸áááşááŻáśááᯠááŻáśá¸áááşááŤáááşá
source: www.habr.com
