2012-01-04 26 views
6

He añadido un atributo personalizado con el código "my_price" con "Tipo de entrada de catálogo para el propietario de la tienda" en "Precio" y asignado al "Predeterminado" (solo) conjunto de atributos.Magento API v2 y C# - establecer atributos personalizados al agregar producto

Ahora, quiero establecer su valor, cada vez que agrego/actualizo el producto con API v2 (C#). Aquí está el código que no funciona (el valor no se está configurando):

// Connect & Auth: 
Mage_Api_Model_Server_V2_HandlerPortTypeClient handler = new Mage_Api_Model_Server_V2_HandlerPortTypeClient(); 
session_id = handler.login(username, api_key); 

// Getting attributes set: 
catalogProductAttributeSetEntity[] attributeSets; 
attributeSets = handler.catalogProductAttributeSetList(session_id); 
attributeSet = attributeSets[0]; 
string attributeset_id = attributeSet.set_id.ToString(); 

// Adding product: 
catalogProductCreateEntity mageProduct = new catalogProductCreateEntity(); 
// (...) setting product's name, sku, etc. 
associativeEntity AdditionalAttributes = new associativeEntity(); 
AdditionalAttributes.key = "my_price"; 
AdditionalAttributes.value = "12,33"; 
associativeEntity[] AssociativeEntity = new associativeEntity[1]; 
AssociativeEntity[0] = AdditionalAttributes; 
mageProduct.additional_attributes = AssociativeEntity; 
handler.catalogProductCreate(session_id, "simple", attributeset_id, sku, mageProduct, "default"); 

¿Qué estoy haciendo mal?

+0

¿qué tal myPrice en lugar de my_price? ¿Lo has intentado? –

+0

Tengo el mismo problema, ¿lo resolvió? Mi catálogoProductCrateEntity nunca pasa datos, –

Respuesta

5

Magento 1.6.1.0 tiene un error que da como resultado el error atributos adicionales.

He actualizado mi Magento a 1.6.2.0 y el problema desapareció y los atributos adicionales funcionan perfectamente.

rápido ejemplo de como funciona:

associativeEntity[] AdditionalAttributes = new associativeEntity[1]; 
associativeEntity AdditionalAttribute = new associativeEntity(); 
AdditionalAttribute.key = "myprice"; 
AdditionalAttribute.value = getOriginalPrice(prices).ToString(); 
AdditionalAttributes[0] = AdditionalAttribute; 
catalogProductAdditionalAttributesEntity AdditionalAttributesEntity = new catalogProductAdditionalAttributesEntity(); 
AdditionalAttributesEntity.single_data = AdditionalAttributes; 

mageProduct.additional_attributes = AdditionalAttributesEntity; 

espero que ayude a alguien.

2

Prueba esto y hazme saber el resultado.

AdditionalAttributes.key = "myPrice"; 
+0

Todavía nada ... ¿Tengo que actualizar la referencia del servicio? Realmente no me gustaría hacer eso, porque hay algún tipo de error y Visual Studio no genera código requerido correctamente. – Cleankod

+0

@Spyro Le daría un enlace que es viejo, pero estoy seguro de que puede ayudar a obtener y establecer los atributos del producto. [.net C# API a Magento a través de XML-RPC] (http://www.molotovbliss.com/net-c-api-to-magento-via-xml-rpc) –

+0

este es otro enlace [.NET C# Object Library para la API XML-RPC de Magento] (http://code.google.com/p/csharlibformagexmlrpcapi/) –

0
handler.catalogProductCreate(session_id, "simple", attributeset_id, sku, mageProduct, "default"); 

Dar storeview válida en lugar de predeterminado, por ejemplo intente esto:

handler.catalogProductCreate(session_id, "simple", attributeset_id, sku, mageProduct, "1"); 
Cuestiones relacionadas