marketvision / shipstation4net Goto Github PK
View Code? Open in Web Editor NEWA .NET Standard Library using System.Net.HttpClient and NewtonSoft.Json which provides access to the ShipStation API.
License: Apache License 2.0
A .NET Standard Library using System.Net.HttpClient and NewtonSoft.Json which provides access to the ShipStation API.
License: Apache License 2.0
Getting the following error when calling Orders.GetAllPagesAsync
Newtonsoft.Json.JsonReaderException: 'Could not convert to integer: 1202147746409. Path 'orders[10].items[0].orderItemId', line 1, position 26119.'
OverflowException: Value was either too large or too small for an Int32.
Looks like getting the data from a resource url via a shipped order notification isn't working.
Method: GetResourcesResponsesAsync
Error:
System.Exception: Object of type 'System.Collections.Generic.List1[ShipStation4Net.Domain.Entities.Shipment]' cannot be converted to type 'System.Collections.Generic.IList
1[ShipStation4Net.Domain.Entities.Order]
Hey contributors, I will not be maintaining this library any more since I am ending my employment with my company on July 20. Would MarketVision like to take over the reins on this project? Thanks. @mynkow @vlad-kurdesov. You guys were a great support in the development of ShipStation4Net.
store refresh states that if no store id or date is specified then it will update all stores. however store id and date are not nullable therefore you always need to pass in a store id.
If you pass in a 0 and a new DateTime() you get an internal Server error. Therefor you always need to iterate through each store and call a refresh on each store to get this to work.
Very strange issue. On any call to get data, I get no expectations and it just fails out to calling method.
Hello,
How should I execute the tests? There are some files missing in the solution. Could you please provide short explanation?
Hi,
I was recently working on a project that required us to update multiple orders. Due to throttling limits, we were going over our allotted quota frequently. After speaking to the ShipStation technical team, we were advised to use the bulk update/create endpoint to create/update orders. This seems to be the preferred way of update/creating orders in bulk.
Here is the doc link to this API
Since I was unable to find the implementation of this API in this project, I wrote my own implementation of it.
I forked the repo and committed my changes here .
If you are satisfied with this addition I can create a pull request.
Kudos to your team for writing this great library. It was very intuitive to use and modify. ๐ฅ ๐ ๐ฅณ
Regards
ShipStation API returns
{
"approved": true,
"message": "Label voided successfully"
}
But VoidLabelAsync method is using SuccessResponse as response
{
"success": true,
"message": "The requested order has been deleted."
}
Due to "approved" vs "success" property difference, this method will always result false even though given label is Voided.
Error Message: "One or more errors occurred. (Error converting value "parcelguard" to type 'System.Nullable`1[ShipStation4Net.Domain.Enumerations.InsuranceOptionProviders]'. Path 'orders[88].insuranceOptions.provider', line 1, position 268260.)"
Example to reproduce error:
public List GetShipStationOrders()
{
var ret = new List();
var filter = new OrdersFilter
{
CreateDateStart = DateTime.Now.AddDays(-90),
CreateDateEnd = DateTime.Now
};
var pages = _shipStationClient.Orders.GetAllPages(filter);
foreach (var page in pages)
{
ret.AddRange(page);
}
return ret;
}
Hi,
In the product entities the length, width, height and weightOz is of type int. I know in the api documentation it says it's type of number https://www.shipstation.com/docs/api/models/product/ and doesn't really specify if it's int or double. However I can confirm that from the UI you can enter decimal values and when you do a GET product via the API it returns the decimals as well.
Are we able to change the variable types from int to double for those fields?
Thanks
Hey,
I noticed that you could improve the library. Please take a look here and tell me what do you think?
Unable to mock client interfaces due to their internal nature, hindering unit testing. Recommend making interfaces public for mockability and improved testability.
Current implementation of Orders.GetAllPagesAsync method doesn't really give you a way to work around any exception in process - if you received 10 pages and then you hit api limit, you will loose all data because ClientBase.ExecuteRequest will throw ApiLimitReachedException.
I think having these options might be helpful:
When I was trying to research problem, I found that GetPageAsync has critical bug. Page = 1 always.
please look at line 75 of https://github.com/nla-brandonjames/ShipStation4Net/blob/master/ShipStation4Net/Clients/Orders.cs
Also, I have some other questions that I would like to ask:
It seems that I am not able to use this project in a .NET 4.5.1 project. Do you plan on releasing an update that will be supported in .NET 4.5+?
Hey,
wanted to ask your opinion about couple things:
If you are good with these changes, I will apply them & send pull request. I will start looking at it today/tomorrow.
And last, but not least, question.. After these changes are done, could you please compile and publish new nuget package? I'm trying to help my team with one improvement project, and part of the change we're trying to make is to remove internal sdk we built in past to communicate with ShipStation, and replace it with package that available on nuget. We tried to use one of nuget packages in past, but that package was missing pagination and good error handling, so we went with our own 'bicycle' which we're trying to deprecate. We have clients on production which use ShipStation heavily in multiple countries, so I will possibly look at other model objects and add any if missing.
Fulfillments does not implement IGetsResourceUrlResponses
Webhooks can return https://ssapi.shipstation.com/fulfillment as the url parameter. Shipment and Orders both already support IGetsResourceUrlResponses seems only Fulfillments is missing
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.