我在
中添加了以下代码/app/code/core/Mage/Sales/Model/Order/Api.php
文件。
public function info($orderIncrementId)
{
------
-------
$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
// get order total value
$orderValue = number_format ($order->getGrandTotal(), 2, '.' , $thousands_sep = '');
// get order item collection
$orderItems = $order->getItemsCollection();
$skuQtyArray = array();
foreach ($orderItems as $item)
{
$product_id = $item->product_id;
$product_sku = $item->sku;
$product_name = $item->getName();
$product_qty = $item->getQtyOrdered();
$_product = Mage::getModel('catalog/product')->load($product_id);
$cats = $_product->getCategoryIds();
$category_id = $cats[0]; // just grab the first id
$category = Mage::getModel('catalog/category')->load($category_id);
$category_name = $category->getName();
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $product_sku);
$productType=$product->getTypeID();
if($productType=='simple')
{
$skuQtVal = $product_sku."=".$product_qty;
$skuQtyArray[] = $skuQtVal;
}
}
$result['simple_product_skus'] = $skuQtyArray;
Mage::log($skuQtyArray,null,"logTest.txt",true);
return $result;
}
但是当我在应用程序根目录中运行以下代码时
<?php
$client = new SoapClient('localhost/magento/index.php/api/v2_soap/index?wsdl=1');
$session = $client->login('testuser', 'testuser');
$result = $client ->salesOrderInfo($session, '100000026');
print_r($result);
?>
我没有得到我所做的更改。
请提出一些解决方案。
编辑:
我的目录结构覆盖核心代码如下。
我的Overridden Api.php,我这样使用。
class Sigma_Sales_Model_Order_Api extends Mage_Sales_Model_Order_Api
知道了: 我需要像这样重写
class Sigma_Sales_Model_Order_Api_V2 extends Mage_Sales_Model_Order_Api_V2
因为: - Mage_Sales_Model_Order_Api_V2扩展了Mage_Sales_Model_Order_Api
答案 0 :(得分:4)
Muk,您必须转到app \ code \ core \ Mage \ Sales \ etc并修改wsdl.xml和wsi.xml,并根据您的要求添加sku元素或任何您想要的元素。
<element name="sku" type="xsd:string" minOccurs="0" /> //in wsdl.xml
<xsd:element name="sku" type="xsd:string" minOccurs="0" /> //wsi.xml
如果您不想修改核心文件,则必须覆盖它。
答案 1 :(得分:1)
第一次更正
/app/code/core/Mage/Sales/Model/Order/Api.php
<强>从强>:
$orderValue = number_format ($order->getGrandTotal(), 2, '.' , $thousands_sep = '');
尝试删除number_format
之后的空格以强>:
$orderValue = number_format($order->getGrandTotal(), 2, '.' , $thousands_sep = '');
第二检查订单增量ID,是否存在?
第三次检查var / log / logTest.txt,值$ skuQtyArray是什么?
如果你只是添加那个功能,它现在必须正确。
我的建议是不要覆盖核心,因为Magento经常升级版本,如果你想升级它,你会感到困惑。