Package: newgistics
Newgistics Python ClientPython Client for Newgistics Fulfillments API v2.8.2 and Newgistics Web API v2.2.
Please refer to the API docs before using this package.InstallationSupports Python 3+
To install, simply use pip$ sudo pip install newgistics
✨🍰✨UsageNewgistics Fulfillments System API>>>fromnewgisticsimportNewgisticsFulfillment>>>ngf_client=NewgisticsFulfillment(api_key='<NG-Fulfillments-API-Key>',staging=False)>>>ngf_client.inbound_returns.create(payload=request_payload)<Response[200]>Newgistics REST Web API>>>fromnewgisticsimportNewgisticsWeb>>>ngw_client=NewgisticsWeb(api_key='<NG-Web-API-Key>',staging=False)>>>ngw_client.labels.create(payload=label_payload)<Response[200]>You can pass theapi_keyexplicitly. Alternatively, you may declare these environment variablesNG_FL_API_KEYand/orNG_WEB_API_KEY.For wrapper usage code snippets please check examples.pyFeaturesNote: Below package usages return a requests module's Response object. Append .json() to get a python dictionary responseNewgistics FulfillmentsShipmentsCreate Shipment>>>request_payload={'Orders':{'Order':{'AllowDuplicate':False,'CustomerInfo':{'Address1':'32142 Waverton Lane','Address2':None,'City':'Huntersville','Company':None,'Country':'US','Email':'yestestmail@gmail.com','FirstName':'John','IsResidential':'true','LastName':'Barron','Phone':None,'State':'NC','Zip':'28078'},'HoldForAllInventory':False,'Items':{'Item':[{'Qty':10,'SKU':'HLU'}]},'OrderDate':'04-12-2019','RequiresSignature':False,'id':'4321'}}}>>>ngf_client.shipments.create(payload=request_payload)Submit orders to WMS systemFetch Shipment(s)>>>ngf_client.shipments.fetch(params={'id':'4231'})Retrieves a list of shipments based on one or more parametersInbound ReturnsCreate Inbound Return>>>request_payload={'Returns':{'Return':{'id':'8732832','Comments':'COMMENTS','Items':{'Item':[{'Qty':10,'Reason':'Some_Reason','SKU':'HLU'}]},'RMA':'1234'}}}>>>ngf_client.inbound_returns.create(payload=request_payload)Submits incoming returns by RMA ID to the WMS systemFetch Inbound Return(s)>>>ngf_client.inbound_returns.fetch(params={'startCreatedTimestamp':'','endCreatedTimestamp':''})Retrieves a list of incoming returns by RMA ID to the WMS systemReturnsFetch Return(s)>>>ngf_client.returns.fetch(params={'Id':'1234'})Retrieves a list of returns received by Newgistics Fulfillment for a given date/time range or a specific return by order IDNewgistics Web APIShipmentsCreate Shipment Label>>>payload={"clientServiceFlag":"Standard","consumer":{"Address":{"Address1":"2700 Via Fortuna Drive","Address2":"","Address3":"","City":"Austin","CountryCode":"US","State":"TX","Zip":"78746"},"DaytimePhoneNumber":"5122256000","EveningPhoneNumber":"","FaxNumber":"","FirstName":"testname","Honorific":"","LastName":"tester","MiddleInitial":"","PrimaryEmailAddress":"croosken@newgistics.com"},"deliveryMethod":"SelfService","dispositionRuleSetId":99,"labelCount":1,"merchantID":"NGST","returnId":"123456789A"}>>>ngw_client.labels.create(payload=payload)Creates a SmartLabel return labelDefault ValuesNewgistics Web API endpoint:Prod:https://api.newgistics.comStaging:https://apiint.newgistics.comNewgistics Fulfillments API:Prod:https://api.newgisticsfulfillment.comStaging:https://apistaging.newgisticsfulfillment.comAbout NewgisticsNewgistics provides services and technology to support the e-commerce operations of retailers around the world. Its offerings include software and services to build and maintain e-commerce websites, perform order fulfillment, and manage parcel delivery and returns.
This package reduces the shortcomings/difficulties whule integrating Newgistics's APIs. It's still not what I'd appreciate, but it should just work! Looking for your active contribution to the project (See roadmap below)SupportFor any wrapper related query/issue, please raise a GitHub issue.AboutWhyIntegrating with 3PL APIs like Newgistics(owned by PitneyBowes) can be pain at times. For instance, some APIs are XML only, whereas some can accept JSON as payload but return a XML responseRoadMap/Shortcomings1. Write Tests with a token from Newgistics(Observation: staging and production tokens are same on NG)
2. Cover more APIs from both Web & Fulfillment
3. Return better objects, eg: every function returns a python requests's Response object
4. Overall code and design improvementsSameer KumarFind me onTwitter