2016-11-10 3 views
2

Auf Magento 1.8 SOAP APIv2 suche ich nach einer Möglichkeit, einen Datumsbereich zum Abrufen von Informationen aus der SOAP-API zu erhalten. Ich habe eine Abfrage von stackoverflow selbst konsultiert, d. H. Combined complex filter for ranges. Müssen die gleichen komplexen Filtertypen in meinem Knotenprojekt anwenden. Curently magento Knoten Wrapper heißt https://github.com/MadisonReed/magentoapiKombinierter komplexer Filter für Bereiche in Nodejs

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); 
    } 
    }); 
}; 

Ausgabe mit:

[ 
{ 
    email: '[email protected]', 
    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: '[email protected]', 
    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: '[email protected]', 
    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' 
    } 
} 
] 

Antwort

2

dachte ich, den Weg aus Daten in magento zu senden und das gewünschte Ergebnis in Knoten zu erhalten. Es funktioniert reibungslos. Ich hoffe es hilft.

'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); 
    } 
    }); 
};