7

Magento API V2 を使用しています。

salesOrderCreditmemoInfoを呼び出すと、クレジット メモの詳細と注文に関連付けられた製品のリストを含む応答が返されます。

しかし、商品アイテムのリストにはproduct_type属性がありません。

応答を手動で編集して、この属性を追加したいと考えています。

編集してみました: app\code\core\Mage\Sales\Model\Order\Creditmemo\Api.php

そして置き換え:

public function info($creditmemoIncrementId)
{
    ...
    $result['items'] = array();
    foreach ($creditmemo->getAllItems() as $item) {
        $result['items'][] = $this->_getAttributes($item, 'creditmemo_item');
    }

次の場合 - (基本的に、配列に追加の属性を追加します):

 public function info($creditmemoIncrementId)
    {
      ...
    $result['items'] = array();
    foreach ($creditmemo->getAllItems() as $item) {
            $product_type = '1'; //test value to check if works
            $attribs = $this->_getAttributes($item, 'creditmemo_item');
            $attribs['product_type'] = $product_type;

            $result['items'][] = $attribs;
        }

mage::log($result) を実行すると、余分な属性が配列に正しく追加されているようです。(この関数が呼び出される関数であることも示します) しかし、実際の API 応答には影響しません。

私は完全に間違った場所を探していますか、それとも他に更新する必要があるものがありますか?

4

1 に答える 1

6

SOAP V2 を使用していたため、 を更新し wsdl.xml て出力を取得する必要があります。

あなたの場合、それはproduct_typeであり、 server のキャッシュを更新します/tmpwsdl.xmlを実行して、更新済みの新しいものをロードします。System -> Cache Managementに移動して、すべてのキャッシュをクリアすることを忘れないでください。

于 2012-08-05T18:39:09.070 に答える