2010-12-08 22 views
2

Donc, j'ai un produit qui a des options personnalisées. Dans ce cas, sa couleur. Maintenant, je vais importer toutes les listes de produits des magasins à partir d'un grand fichier xml, c'est donc ce que j'ai choisi d'utiliser des options personnalisées, et non des attributs. Maintenant, je fais la plupart de ceux du webservice magento api.Magento WSDL et produits

J'ai donc ce qui suit.

$products = $api->soap()->call($api->session(), 'catalog_product.list'); 
foreach($products as $product) 
{ 
    print_r($product); 
    echo "<br />"; 

} 

Maintenant, je peux voir quel produit a des options personnalisées du champ 'has_options'. Mais comment puis-je voir les options personnalisées? Le champ 'options_container' a une valeur de "container2", que dois-je faire avec ça?

En outre, lors de la création de produits en utilisant la magento api webservice .....

$api->soap()->call($api->session(), 'catalog_product.create', product_array_values); 

Comment générer des options personnalisées pour les produits?

Répondre

2

Ce n'est pas possible, parce que nous ne WSDL pas la description product_option

<complexType name="catalogProductCreateEntity"> 
     <all> 
      <element name="categories" type="typens:ArrayOfString" minOccurs="0" /> 
      <element name="websites" type="typens:ArrayOfString" minOccurs="0" /> 
      <element name="name" type="xsd:string" minOccurs="0" /> 
      <element name="description" type="xsd:string" minOccurs="0" /> 
      <element name="short_description" type="xsd:string" minOccurs="0" /> 
      <element name="weight" type="xsd:string" minOccurs="0" /> 
      <element name="status" type="xsd:string" minOccurs="0" /> 
      <element name="url_key" type="xsd:string" minOccurs="0" /> 
      <element name="url_path" type="xsd:string" minOccurs="0" /> 
      <element name="visibility" type="xsd:string" minOccurs="0" /> 
      <element name="category_ids" type="typens:ArrayOfString" minOccurs="0" /> 
      <element name="website_ids" type="typens:ArrayOfString" minOccurs="0" /> 
      <element name="has_options" type="xsd:string" minOccurs="0" /> 
      <element name="gift_message_available" type="xsd:string" minOccurs="0" /> 
      <element name="price" type="xsd:string" minOccurs="0" /> 
      <element name="special_price" type="xsd:string" minOccurs="0" /> 
      <element name="special_from_date" type="xsd:string" minOccurs="0" /> 
      <element name="special_to_date" type="xsd:string" minOccurs="0" /> 
      <element name="tax_class_id" type="xsd:string" minOccurs="0" /> 
      <element name="tier_price" type="typens:catalogProductTierPriceEntityArray" minOccurs="0" /> 
      <element name="meta_title" type="xsd:string" minOccurs="0" /> 
      <element name="meta_keyword" type="xsd:string" minOccurs="0" /> 
      <element name="meta_description" type="xsd:string" minOccurs="0" /> 
      <element name="custom_design" type="xsd:string" minOccurs="0" /> 
      <element name="custom_layout_update" type="xsd:string" minOccurs="0" /> 
      <element name="options_container" type="xsd:string" minOccurs="0" /> 
      <element name="additional_attributes" type="typens:associativeArray" minOccurs="0" /> 
     </all> 
    </complexType> 

additional_attributes peut avoir la chaîne uniquement, pour créer un objet client vous devez avoir un objet de l'option.

Si vous avez besoin pour créer l'option client vous devez étendre Mage_Catalog_Model_Product_Api_V2 :: créer la fonction

0

Vous pouvez lister toutes les options personnalisées de produits, en utilisant catalog_product_custom_option.list, qui retourne un tableau.

if(true == (boolean) $productInfo['has_options']) 
{ 
    $options = $this->call('catalog_product_custom_option.list', $this->productId); 
} 

Je ne sais pas depuis quelle version Magento cette fonctionnalité est disponible, car il est pas documenté nulle part.

L'API est définie dans: app/code/core/Mage/Catalogue/etc/api.xml

S'il vous plaît voir my answer on "Creating Custom Options on a Product using the Magento API" pour quelques détails sur teh fonctions API définies.