在Magento 1.8 SOAP APIv2上,我正在寻找一种获取日期范围以从SOAP API检索信息的方法。我已经从stackoverflow本身查询了一个查询,即Combined complex filter for ranges。需要在我的节点项目中应用相同类型的复杂过滤器。 可以使用magento节点包装器,即https://github.com/MadisonReed/magentoapi
exports.find = function (req, res) {
async.waterfall([
function (done) {
magento.login(function(err, sessId) {
if (err) {
// deal with error
console.log('login error:' + err);
return;
}
done(err, done);
// http://localhost/api/rest/customers
});
},
function (filteredCustomer, done) {
var attributes = [];
var filteredCustomer = [];
magento.customer.list({filters: [ ]},function(err, customerCollection) {
_.forEach(customerCollection, function(customer, key) {
var attributes = _.pick(customer, [
'customer_id',
'created_at',
'updated_at',
'firstname',
'lastname',
'gender',
'credit_value',
'customer_referral_code',
]);
var customerDocument = {
'email': customer.email,
'number': customer.contact_no,
'created_at': Date.now(),
'initialSource': 'magento',
'attributes': attributes
};
filteredCustomer.push(customerDocument);
});
done(filteredCustomer);
});
},
function (filteredCustomer, done) {
console.log(filteredCustomer);
if(!err){
done(filteredCustomer);
}
}
],
function (err) {
if (err) {
console.log(err);
}
});
};
输出:
[
{
email: 'rht.rai2@gmail.com',
number: '1313543132',
created_at: 1478785224233,
initialSource: 'magento',
attributes:
{ customer_id: '1',
created_at: '2016-03-10 04:39:16',
updated_at: '2016-10-03 10:09:21',
firstname: 'rohit',
lastname: 'Rai',
gender: '1',
credit_value: '0.0000',
customer_referral_code: 'dS518'
}
},
{
email: 'rajveer@gmailj.com',
number: '9088694978',
created_at: 1478785224233,
initialSource: 'magento',
attributes:
{
customer_id: '2',
created_at: '2016-04-10 23:52:05',
updated_at: '2016-11-04 05:22:09',
firstname: 'rajveer',
gender: '1',
credit_value: '0.0000',
customer_referral_code: 'Cw624'
}
},
{
email: 'rohit@happilyunmarried.com',
number: '1321321231',
created_at: 1478785224233,
initialSource: 'magento',
attributes:
{
customer_id: '3',
created_at: '2016-07-11 05:00:55',
updated_at: '2016-11-07 10:03:54',
firstname: 'rohit',
gender: '1',
credit_value: '0.0000',
customer_referral_code: 'aj318'
}
}
]
答案 0 :(得分:2)
我找到了在magento中发送数据并在Node中获取所需结果的方法。它的工作顺利。希望它有所帮助。
'use strict';
/**
* Module dependencies.
*/
var path = require('path'),
mongoose = require('mongoose'),
errorHandler = require(path.resolve('./modules/core/server/controllers/errors.server.controller')),
_ = require('lodash'),
Customers = mongoose.model('Customers'),
async = require('async'),
moment = require('moment');
var MagentoAPI = require('magento');
var magento = new MagentoAPI({
host: 'localhost',
port: 80,
path: '/happilyustraa/api/xmlrpc/',
login: 'rhtrai',
pass: 'rohitisla'
});
exports.find = function (req, res) {
async.waterfall([
function (done) {
magento.login(function(err, sessId) {
if (err) {
// deal with error
console.log('login error:' + err);
return;
}
done(err, done);
// http://localhost/api/rest/customers
});
},
function (filteredCustomer, done) {
var attributes = [];
var filteredCustomer = [];
magento.customer.list({filters: {"CREATED_AT": {'from': "2016-03-10 04:39:16"}, "created_at":{ 'to': "2016-04-10 23:52:05"} } },function(err, customerCollection) {
_.forEach(customerCollection, function(customer, key) {
// var attributes = _.pick(customer, [
// 'customer_id',
// 'created_at',
// 'updated_at',
// 'firstname',
// 'lastname',
// 'gender',
// 'credit_value',
// 'customer_referral_code',
// ]);
// var customerDocument = {
// 'email': customer.email,
// 'number': customer.contact_no,
// 'created_at': Date.now(),
// 'initialSource': 'magento',
// 'attributes': attributes
// };
// filteredCustomer.push(customerDocument);
console.log(customer);
});
done(filteredCustomer);
});
},
function (filteredCustomer, done) {
// console.log(filteredCustomer);
if(!err){
done(filteredCustomer);
}
}
],
function (err) {
if (err) {
console.log(err);
}
});
};