通过Magento 1.9自定义心愿单SOAP API添加时,产品仅在管理员中显示

时间:2018-08-29 12:33:48

标签: php soap magento-1.9

要求:我是magento的新手,试图在Magento 1.9中创建自定义SOAP API来管理愿望清单。我需要将其连接到用ionic V1开发的android应用程序。
起初,我尝试使用此扩展名magento-api,但找不到在android中维护会话信息的方法。因此,我开始开发自己的API。
我能够获取愿望清单信息(wishlist_id,物品等)并添加到其中。  

问题:但是,在通过肥皂呼叫将产品添加到愿望清单中之后,该产品仅显示在客户的管理区域中,而不显示在网站的前端(用户已登录)。前端心愿单页面上仅显示从前端(浏览器)添加的产品。

在将前端(/app/code/core/Mage/Wishlist/controllers/IndexController.php)的功能与我的Api.php(如下所示)进行比较之后,似乎我的$buyRequest变量缺少一些“ form-key”,但我对magento的理解不多了解这一点。

我在/app/code/core/Mage/Wishlist/ModelApi.php处添加了Api.php。

我将产品添加到愿望清单的代码如下:

public function create($customer_id, $product_id, $store = null){
    $return_result = array(
        'code' => 0,
        'msg' => null,
        'model' => null,
        'customer_id' => $customer_id,
        'product_id' => $product_id
    );
    $buyRequest = new Varien_Object(array());
    $params = array('product' => $product_id,
            'qty' => 1,
            'store_id' => $store,
            );
    $buyRequest->setData($params);

    $wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer($customer_id, true);
    $product = Mage::getModel('catalog/product')->load($product_id);
    $result = $wishlist->addNewItem($product, $buyRequest);

    Mage::helper('wishlist')->calculate();
    if($result){
        $return_result['msg'] = 'Product '.$product_id.' Added ';
        $return_result['model'] = $result;
    }  
    return json_encode($return_result);
}

我使用以下链接来实现添加功能,并使用了/app/code/core/Mage/Wishlist/controllers/IndexController.php文件中的一些代码:add catalog product in wishlist programmatically in magento

任何帮助将不胜感激。

0 个答案:

没有答案