2013-02-08 25 views
4

我試圖覆蓋catalogProductInfo。我所要做的就是向返回的肥皂結果添加另一個屬性。問題是我的新屬性沒有顯示。這是我迄今爲止所嘗試解決的問題。Magento V2 API覆蓋產品信息模型V2(屬性未顯示)

  1. 我試圖進入php.ini文件並關閉soap.wsdl_cache_enabled=1soap.wsdl_cache = 1
  2. 我試圖進入/ tmp目錄/文件夾,刪除WSDL緩存文件
  3. 我禁用的Magento cacheing,我試圖重新索引

我試圖重寫Magento的產品信息API模型V2是以下...

http://www.magentocommerce.com/api/soap/catalog/catalogProduct/catalog_product.info.html

我正在使用v2,它是以下示例。我想要做的就是添加另一個屬性的返回結果

$prodInfo = $fclient->catalogProductInfo($fsession, $prod->product_id, null,$attributes); 

這就是我所做的嘗試重寫返回什麼......我第一次創建我的模塊。下面是我的配置文件 /app/code/local/Namespace/ImportExport/etc/config.xml

<config> 
    <modules> 
     <Namespace_ImportExport> 
      <version>0.0.1</version> 
     </Namespace_ImportExport> 
    </modules> 
    <global> 
     <models> 
      <catalog> 
       <rewrite> 
        <product_api_v2>Namespace_ImportExport_Model_Product_Api_V2</product_api_v2> 
       </rewrite> 
      </catalog> 
     </models> 
    </global> 
</config> 

在下面的代碼,我嘗試在基本的產品數據添加associated。我這樣做只是爲了看看它是否顯示。問題是當我撥打肥皂時。它不會顯示在返回的結果中。我的模塊已經成功覆蓋了Mage_Catalog_Model_Product_Api_V2,因爲我可以在模塊中打破它。

/app/code/local/Namespace/ImportExport/Model/Product/Api/V2.php

Namespace_ImportExport_Model_Product_Api_V2
<?php 
class Namespace_ImportExport_Model_Product_Api_V2 
    extends Mage_Catalog_Model_Product_Api_V2 
{ 

    /** 
    * Retrieve product info 
    * 
    * @param int|string $productId 
    * @param string|int $store 
    * @param stdClass $attributes 
    * @return array 
    */ 
    public function info($productId, $store = null, $attributes = null, $identifierType = null) 
    { 
     $product = $this->_getProduct($productId, $store, $identifierType); 

     if (!$product->getId()) { 
      $this->_fault('not_exists'); 
     } 

     $result = array(// Basic product data 
      'associated' =>"test", 
      'product_id' => $product->getId(), 
      'sku'  => $product->getSku(), 
      'set'  => $product->getAttributeSetId(), 
      'type'  => $product->getTypeId(), 
      'categories' => $product->getCategoryIds(), 
      'websites' => $product->getWebsiteIds(), 
     ); 
     if($product->getTypeId() == "configurable") { 
      Mage::log($product); 
//   $child_products = $product->getTypeInstance(true)->getAssociatedProducts($product); 
//   if(!empty($child_products)) { 
//    $result['associated_products'] = ""; 
//    foreach ($child_products as $p) { 
//     $result['associated_products'] .= $p->getData('sku').","; 
//    } 
//   } 
     } 

     $allAttributes = array(); 
     if (isset($attributes->attributes)) { 
      $allAttributes += array_merge($allAttributes, $attributes->attributes); 
     } 

     $_additionalAttributeCodes = array(); 
     if (isset($attributes->additional_attributes)) { 
      foreach ($attributes->additional_attributes as $k => $_attributeCode) { 
       $allAttributes[] = $_attributeCode; 
       $_additionalAttributeCodes[] = $_attributeCode; 
      } 
     } 

     $_additionalAttribute = 0; 
     foreach ($product->getTypeInstance(true)->getEditableAttributes($product) as $attribute) { 
      if ($this->_isAllowedAttribute($attribute, $allAttributes)) { 
       if (in_array($attribute->getAttributeCode(), $_additionalAttributeCodes)) { 
        $result['additional_attributes'][$_additionalAttribute]['key'] = $attribute->getAttributeCode(); 
        $result['additional_attributes'][$_additionalAttribute]['value'] = $product->getData($attribute->getAttributeCode()); 
        $_additionalAttribute++; 
       } else { 
        $result[$attribute->getAttributeCode()] = $product->getData($attribute->getAttributeCode()); 
       } 
      } 
     } 

     return $result; 
    } 

} 

我已經甚至試圖模塊目錄WSDL中加入associatedcatalogProductReturnEntity。 xml文件 /app/code/core/Mage/Catalog/etc/wsdl.xml

<complexType name="catalogProductReturnEntity"> 
    <all> 
     <element name="associated" type="xsd:string" minOccurs="0" /> 
     <element name="product_id" type="xsd:string" minOccurs="0" /> 
     <element name="sku" type="xsd:string" minOccurs="0" /> 
     <element name="set" type="xsd:string" minOccurs="0" /> 
     <element name="type" type="xsd:string" minOccurs="0" /> 
     <element name="categories" type="typens:ArrayOfString" minOccurs="0" /> 
     <element name="websites" type="typens:ArrayOfString" minOccurs="0" /> 
     <element name="created_at" type="xsd:string" minOccurs="0" /> 
     <element name="updated_at" type="xsd:string" minOccurs="0" /> 
     <element name="type_id" type="xsd:string" 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:ArrayOfString" 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> 

不過我得到nothi NG。我關閉了肥皂緩存。我關閉了所有的magento緩存。我究竟做錯了什麼 ??

[更新] 儘管如此,沒有任何變化。屬性associated是我正在尋找的。我在星期五發表了這篇文章。下面的星期一我試了一下,相關的屬性顯示沒有在哪裏。現在有一個新問題。我試圖添加一個新的屬性,但得到相同的問題。有什麼建議麼 ??

回答

2

想通了。 Php Soap有一個服務器和客戶端類。所以你必須確保你清除肥皂請求者的緩存和響應。換句話說,使用soap調用的服務器,找到緩存並清除它,並且也接收緩存調用的服務器也清除。必須清除BOTH以獲取完整更新。不只是肥皂服務器。

+2

此緩存位置在哪裏? – Muk 2013-10-31 09:58:58

+0

大部分位於服務器根目錄的tmp /文件夾中。 – 2015-10-13 12:11:07

相關問題