我想你打了一個問題,你可以採取的可選參數。 catalogProductInfo()
可以採取五個參數,其中第一個是sessionId
;所有其他的參數傳遞給方法Mage_Catalog_Model_Product_Api_V2::info()
,這需要它們如下:
public function info($productId, $store = null, $attributes = null, $identifierType = null)
正如你所看到的,只是$productId
是強制性的,其他參數都是可選的。但是,如果您想通過該方法的參數,則必須傳遞所有其他參數。因此,對於您的情況,您省略了$store
或$attributes
參數之一,並且該方法將您的sku
作爲$attributes
參數。這會產生你的錯誤。
所以你要麼通過缺少的參數,要麼你可以忽略$identifierType
參數。 Magento可以從$productId
的輸入中猜出您通過哪種標識符類型(產品ID或sku)。 info()
方法調用_getProduct()
方法,該方法又調用Mage::helper('catalog/product')->getProduct($productId, $this->_getStoreId($store), $identifierType)
。在這種方法的Magento需要猜測你$productId
論點:
if ($identifierType === null) {
if (is_string($productId) && !preg_match("/^[+-]?[1-9][0-9]*$|^0$/", $productId)) {
$expectedIdType = 'sku';
}
}
謝謝,這對我來說是個訣竅。 – danba
8小時搜索黑暗的網站,最後這個答案出現了。我想要抱你 –