Metadata-Version: 1.0
Name: fosdick
Version: 2.0.0
Summary: The Fosdick API Client for Python
Home-page: https://github.com/sayonetech/fosdick-api-python-client
Author: rajeshkris
Author-email: rajeshkrish@sayonetech.com
License: MIT
Description: Fosdick python client
        =====================
        
        .. image:: https://img.shields.io/pypi/v/fosdick.svg
            :target: https://pypi.python.org/pypi/fosdick/2.0.0
        .. image:: https://img.shields.io/pypi/l/fosdick.svg
            :target: https://pypi.python.org/pypi/fosdick/2.0.0
        
        The Fosdick API Client for Python is a client library for accessing Fosdick APIs.
        
        ********
        Features
        ********
        * Get a list of inventory levels for products
        * Get a list of returned orders/items
        * Get a list of shipped orders
        * Get a list of shipped line item
        * Get a list of receipts
        * Post order
        
        ************
        Installation
        ************
        Install with pip:
        
        .. code:: python
        
            pip install fosdick
        
        *************
        Example Usage
        *************
        
        .. code:: python
        
           from fosdick.api import FosDickAPI
            
           api = FosDickAPI(<YOUR_FOSDICK_API_USERNAME>, <YOUR__FOSDICK_API_PASSWORD>)
           
            
        * Get shipments
        
        Parameters
        
        ==================  ================ ===================   =====================================================
        Parameter Name        Required        Type(max length)                       Description
        ==================  ================ ===================   =====================================================
        page                  No              numeric                    Page number of items to display.
        per_page              No              numeric                    The number of items to return per page (default:
                                                                         all returns returned)
        updated_at_min        No              datetime                   Only retrieve shipments updated since
        updated_at_max        No              datetime                   Only retrieve shipments updated before
        shipped_on_min        No              datetime                   Only retrieve shipments shipped since
        shipped_on_max        No              datetime                   Only retrieve shipments shipped before
        fosdick_order_num     No              varchar(17)                Search by Fosdick order number
        external_order_num    No              varchar(50)                Search by External order number
        ==================  ================ ===================   =====================================================
        
        .. code:: python
           
           shipments = api.get_shipments()
           
           # sample example response
            [
              {
                "fosdick_order_num": "00101201506460001",
                "external_order_num": "0011001",
                "ship_date": "2015-02-06",
                "trackings": [
                  {
                    "tracking_num": "9274899998944522337",
                    "carrier_code": "92",
                    "carrier_name": "FEDEX SMART POST"
                  },
                  {
                    "tracking_num": "9274899998944599999",
                    "carrier_code": "92",
                    "carrier_name": "FEDEX SMART POST"
                  }
                ]
              },
              {
                "fosdick_order_num": "00101201506460002",
                "external_order_num": "0011002",
                "ship_date": "2015-02-06",
                "trackings": [
                  {
                    "tracking_num": "1Z44526832337",
                    "carrier_code": "3E",
                    "carrier_name": "UPS GROUND"
                  }
                ]
              }
            ]
        	
        
        * Get inventory
        
        Parameters
        
        ================  ================ ===================   ===================================================
        Parameter Name        Required      Type(max length)      Description
        ================  ================ ===================   ===================================================
          page                  No             numeric            Page number of products to display. 0 based index.
          per_page              No             numeric            The number of products to return per page
                                                                  (default: all products returned)
          updated_at_min        No             datetime           Only retrieve inventory updated since
          updated_at_max        No             datetime           Only retrieve inventory updated before
        ================  ================ ===================   ===================================================
        
        .. code:: python
        
           inventory = api.get_inventory()
           
           # example response for inventory
           [
        	   {
        		"sku" : "EXAMPSKU",
        		"available" : true,
        		"ct_quantity" : 200,
        		"nv_quantity" : 0,
        		"other_quantity" : 15,
        		"committed" : 10,
        		"available_quantity": 205,
        		"updated_at":"2014-03-12T13:17:30-04:00"
        	   },
        	   {
        		"sku" : "EXAMPSKU2",
        		"available" : false,
        		"ct_quantity" : 20,
        		"nv_quantity" : 0,
        		"other_quantity" : 0,
        		"committed" : 20,
        		"available_quantity": 0,
        		"updated_at":"2014-03-12T13:17:30-04:00"
        
        	   }
            ]
        
        * Get returned orders/items
        
        Parameters
        
        =================  ================ ===================   ===================================================
        Parameter Name        Required      Type(max length)      Description
        =================  ================ ===================   ===================================================
          page                  No             numeric            Page number of items to display.
          per_page              No             numeric            The number of items to return per page (default:
                                                                  all returns returned)
          updated_at_min        No             datetime           Only retrieve returns updated since
          updated_at_max        No             datetime           Only retrieve returns updated before
          returned_at_min       No             datetime           Only retrieve returns since
          returned_at_max       No             datetime           Only retrieve returns before
        =================  ================ ===================   ===================================================
        
        .. code:: python
        
           returned_items = api.get_all_returns()
           
           # example response for returned_items
           [
        	{
        		"fosdick_order_num" : "00101201456768765",
        		"external_order_num" : "9912A",
        		"sku" : "EXAMPSKU",
        		"line_item" : 1,
        		"external_line_item" : "9912A-1",
        		"return_date" : "2014-03-12T9:00:30-04:00",
        		"quantity_returned" : 1,
        		"quality" : 0,
        		"reason_code" : 2,
        		"reason_description" : "Defective",
        		"action_requested" : "Refund",
        		"updated_at" : "2014-03-12T13:17:30-04:00"
        	},
        	{
        		"fosdick_order_num" : "00101201456769988",
        		"external_order_num" : "10012R",
        		"sku" : "EXAMPSKU",
        		"line_item" : 1,
        		"external_line_item" : "10012R-3",
        		"return_date" : "2014-03-12T9:00:30-04:00",
        		"quantity_returned" : 2,
        		"quality" : 1,
        		"reason_code" : 5,
        		"reason_description" : "Never Ordered",
        		"action_requested" : "Refund",
        		"updated_at" : "2014-03-12T13:17:30-04:00"
        	}
           ]
        
        * Get shipped line item
        
        Parameters
        
        ==================  ================ ===================   ===================================================
        Parameter Name        Required        Type(max length)                       Description
        ==================  ================ ===================   ===================================================
        page                  No              numeric                    Page number of items to display.
        per_page              No              numeric                    The number of items to return per page (default:
                                                                         all returns returned)
        updated_at_min        No              datetime                   Only retrieve shipments updated since
        updated_at_max        No              datetime                   Only retrieve shipments updated before
        shipped_on_min        No              datetime                   Only retrieve shipments shipped since
        shipped_on_max        No              datetime                   Only retrieve shipments shipped before
        fosdick_order_num     No              varchar(17)                Search by Fosdick order number
        external_order_num    No              varchar(50)                Search by External order number
        ==================  ================ ===================   ===================================================
        
        .. code:: python
        
           shipped_detail = api.get_shipment_details()
           
           # sample response
           [
            {
                    "fosdick_order_num": "00101201506460001",
                    "fosdick_line_num": "1",
                    "sku": "PROD001",
                    "quantity": 1,
                    "external_order_num": "10011001",
                    "external_line_num": null,
                    "external_sku": "PROD001",
                    "ship_date": "2015-02-06",
                    "trackings": [
                      {
                        "tracking_num": "9274899998944522337",
                        "carrier_code": "92",
                        "carrier_name": "FEDEX SMART POST"
                      },
                      {
                        "tracking_num": "9274899998944599999",
                        "carrier_code": "92",
                        "carrier_name": "FEDEX SMART POST"
                      }
                    ]
                   },
                   {
                    "fosdick_order_num": "00101201506460001",
                    "fosdick_line_num": "2",
                    "sku": "PROD002",
                    "quantity": 1,
                    "external_order_num": "10011001",
                    "external_line_num": null,
                    "external_sku": "PROD002",
                    "ship_date": "2015-02-06",
                    "trackings": [
                      {
                        "tracking_num": "1Z44526832337",
                        "carrier_code": "3E",
                        "carrier_name": "UPS GROUND"
                      }
                    ]
            }
           ]
           
        * Get receipts
        
        Parameters
        
        ==================  ================ ===================   ===================================================
        page                    No              numeric                    Page number of items to display.
        per_page                No              numeric                    The number of items to return per page (default:
                                                                           all returns returned)
        transaction_at_min      No              datetime                   Only retrieve receipts with transaction time
                                                                           since
        transaction_at_max      No              datetime                   Only retrieve receipts with transaction time
                                                                           before
        updated_at_min          No              datetime                   Only retrieve receipts updated since
        updated_at_max          No              datetime                   Only retrieve receipts updated before
        sku                     No              varchar(50)                Search by SKU
        warehouse               No              char(2)                    Search by warehouse (CT or NV)
        ==================  ================ ===================   ===================================================
        
        .. code:: python
        
           receipts = api.get_receipts()
           
           # sample response
           [
                {
                    "date_time": "2015-10-14T10:46:21-04:00",
                    "warehouse": "NV",
                    "receiver_num": 101263,
                    "container_num": "CONTAINER-t",
                    "po_num": "2101",
                    "carrier_name": "UPS GROUND",
                    "sku": "778888",
                    "description_product": null,
                    "qty": 4800,
                    "num_of_floor_loaded": 60,
                    "num_of_skids": 3,
                    "num_of_cartons": 60,
                    "updated_at": "2015-10-14T10:48:00.75-04:00"
                    },
                    {
                    "date_time": "2015-10-13T13:24:16-04:00",
                    "warehouse": "NV",
                    "receiver_num": 101262,
                    "container_num": null,
                    "po_num": "2101",
                    "carrier_name": null,
                    "sku": "#B0X8",
                    "description_product": null,
                    "qty": 1200,
                    "num_of_floor_loaded": 0,
                    "num_of_skids": 2,
                    "num_of_cartons": 0,
                    "updated_at": "2015-10-13T13:28:07.63-04:00"
                }
            ]
        
        * Post order
        
        .. code:: python
        
            from fosdick.api import PlaceOrder
        
            # sample order
            order_item = {
               "UnitycartOrderPost":{
                  "ClientName":"TEST",
                  "ClientCode":"ad54LIADFJ2754",
                  "Test":"y",
                  "Order":[
                     {
                        "Subtotal":"0.00",
                        "Total":"0.00",
                        "ExternalID":"LMTB-100466",
                        "AdCode":"DTC",
                        "ShipFirstname":"tes1",
                        "ShipLastname":"test2",
                        "ShipAddress1":"test_address",
                        "ShipCity":"agat",
                        "ShipState":"ID",
                        "ShipPhone":"",
                        "ShipZip":"96915",
                        "Email":"test@gmail.com",
                        "UseAsBilling":"y",
                        "PaymentType":"5",
                        "Items":{
                           "Item":[
                              {
                                 "NumOfPayments":"1",
                                 "Inv":"811934020015",
                                 "Qty":1,
                                 "PricePer":"0.00"
                              }
                           ]
                        }
                     }
                  ]
               }
            }
        
            # y to denote test order.
            test_flag = 'y'
        
            order = PlaceOrder(order_item, <CLIENT_CODE>, <CLIENT_NAME>, test_flag)
        
            # to place the order
            item = order.create_order()
        
            # sample response
            {
                "UnitycartOrderResponse":{
                  "@xml:lang":"en-US",
                  "OrderResponse":{
                     "@ExternalID":"ABCD-100467",
                     "SuccessCode":"True",
                     "OrderNumber":"603326202469"
                    }
                    }
            }
        
        
        *******
        Support
        *******
        
        Python 2.6 and 2.7, 3.3, 3.4 & 3.5 are supported.
        
        ************
        Contributors
        ************
        
        - `Rajesh Krishnan P L <https://in.linkedin.com/in/rajesh-krishnan-p-l-60382a125>`_
        
        *******
        License
        *******
        MIT
        
Platform: UNKNOWN
