Я много искал и думаю, что это возможно, но мне кажется, что я просто не знаю, как правильно его отформатировать.
У меня есть класс, представляющий продукт, который является классом отношенийот нашей CRM до Magento.
Внутри конструктора я должен сделать что-то вроде этого ...
public Product(IBaseProduct netforumProduct, MagentoClient client)
{
Product existingMagentoProduct = client.GetProductBySku(netforumProduct.Code);
if (existingMagentoProduct != null)
{
this.id = existingMagentoProduct.id;
this.name = existingMagentoProduct.name;
... many of them ...
this.visibility = existingMagentoProduct.visibility;
this.extension_attributes.configurable_product_links = existingMagentoProduct.extension_attributes.configurable_product_links;
}
else
{
// its a new product, new up the objects
this.id = -1;
this.product_links = new List<ProductLink>();
this.options = new List<Option>();
this.custom_attributes = new List<CustomAttribute>();
this.media_gallery_entries = new List<MediaGalleryEntry>();
this.extension_attributes = new ExtensionAttributes();
this.status = 0; // Keep all new products disabled so they can be added to the site and released on a specific day (this is a feature, not an issue / problem).
this.attribute_set_id = netforumProduct.AttributeSetId;
this.visibility = 0;
}
}
Кажется глупым, чтобы инициализировать все свойства подобным образом. Я мог бы использовать картограф, но это похоже на бинты. Я должен посмотреть, существует ли продукт сначала в magento, и заполнить его ID и значения, в противном случае, когда я сохраняю продукт, он создает дополнительный. Не удалось получить правильный синтаксис.
Возможно, уже слишком поздно, и мне нужно некоторое время подумать о чем-то другом.