Giter Club home page Giter Club logo

newgistics's Introduction

alt text Newgistics Python Client

PyPI version

image image image image

Python Client for Newgistics Fulfillments API v2.8.2 and Newgistics Web API v2.2. Please refer to the API docs before using this package.

Installation

Supports Python 3+ To install, simply use pip

$ sudo pip install newgistics
โœจ๐Ÿฐโœจ

Usage

Newgistics Fulfillments System API
>>> from newgistics import NewgisticsFulfillment

>>> 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
>>> from newgistics import NewgisticsWeb

>>> ngw_client = NewgisticsWeb(api_key='<NG-Web-API-Key>', staging=False)
>>> ngw_client.labels.create(payload=label_payload)
    <Response [200]>

You can pass the api_key explicitly. Alternatively, you may declare these environment variables NG_FL_API_KEY and/or NG_WEB_API_KEY.

For wrapper usage code snippets please check examples.py

Features

Note: Below package usages return a requests module's Response object. Append .json() to get a python dictionary response

  • Newgistics Fulfillments
    • Shipments
      • Create Shipment
        >>> request_payload = {'Orders': 
                {'Order': {'AllowDuplicate': False,
                           'CustomerInfo': {'Address1': '32142 Waverton Lane',
                            'Address2': None,
                            'City': 'Huntersville',
                            'Company': None,
                            'Country': 'US',
                            'Email': '[email protected]',
                            '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 system
      • Fetch Shipment(s)
        >>> ngf_client.shipments.fetch(params={'id': '4231'})
        Retrieves a list of shipments based on one or more parameters
    • Inbound Returns
      • Create 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 system
      • Fetch Inbound Return(s)
        >>> ngf_client.inbound_returns.fetch(params={'startCreatedTimestamp': '', 'endCreatedTimestamp': ''})
        Retrieves a list of incoming returns by RMA ID to the WMS system
    • Returns
      • Fetch 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 ID
  • Newgistics Web API
    • Shipments
      • Create 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": "[email protected]"
        },
        "deliveryMethod": "SelfService",
        "dispositionRuleSetId": 99,
        "labelCount": 1,
        "merchantID": "NGST",
        "returnId": "123456789A"
        }
        >>> ngw_client.labels.create(payload=payload)
        Creates a SmartLabel return label

Default Values

About Newgistics

Newgistics 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)

Support

For any wrapper related query/issue, please raise a GitHub issue.

About

Why

Integrating 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 response

RoadMap/Shortcomings

1. 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 improvements 

Sameer Kumar

Find me on Twitter

newgistics's People

Contributors

sameerkumar18 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

dod92

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.