fostercommerce / shipstation-connect Goto Github PK
View Code? Open in Web Editor NEWA plugin for Craft Commerce 2 that integrates with ShipStation.
Home Page: https://plugins.craftcms.com/shipstationconnect
License: Other
A plugin for Craft Commerce 2 that integrates with ShipStation.
Home Page: https://plugins.craftcms.com/shipstationconnect
License: Other
Since upgrading to Commerce 4, phone numbers are no longer automatically mapped for addresses since they were removed from the Address model. Would be nice to add a feature to set phone numbers again, either through a plugin setting allowing admins to set the field handle for phone numbers or through an OrderFieldEvent
.
Hey, should we be concerned that ShipStation user and pass fields in the CP are invisible? (Using .env variables for these, yet still, these fields should show, yes?)
Also, this link appears to be broken.
.../actions/shipstationconnect/orders/process
Yields the error: "No action set. Set the ?action= parameter as export
or shipnotify
."
Meanwhile, orders are stacking up. What gives?
ShipStation Connect 1.3.6
Commerce Pro 3.42
Craft Pro 3.7.8
Just installed Craft 3.3 and was starting to test it when I ran into a naming collision issue with Stringy. Craft 3.3 switches from danielstjules/Stringy
to voku/Stringy
. This wouldn't be an issue except that Craft 3.3 now uses the snakeize()
method (unique to voku) for the |snake
twig filter. Because composer defaults to the old danielstjules/Stringy
when generating autoload files, I now get a call to undefined method error when using the snake filter. Can you switch from the danielstjules version to the voku version to avoid this collision?
I've just upgraded a site and have had the client report that that "401 unauthorized when trying to use the URL for shipstation connect"
I haven't dug in yet, but wanted to start with an issue to see if this has been tested/confirmed on 3.5/3.2.
Was able to connect SS to the website. Grabbing orders though is still a problem.
Getting a 500 error "trying to get property of non-object" in Shipstation. Tracked it back to the getOrders() method (I added some lines to log the exceptions so the line numbers will be off by a couple)....
From the trace:
2018-09-14 15:36:50 [34.200.1.155][-][-][warning][fostercommerce\shipstationconnect\controllers\OrdersController::actionProcess] yii\base\ErrorException Object
(
[message:protected] => Trying to get property of non-object
[string:Exception:private] =>
[code:protected] => 8
[file:protected] => /home/client/site/plugins/shipstation/src/services/Xml.php
[line:protected] => 72
[trace:Exception:private] => Array
(
[0] => Array
(
[file] => /home/client/site/vendor/craftcms/cms/src/web/ErrorHandler.php
[line] => 76
[function] => handleError
[class] => yii\base\ErrorHandler
[type] => ->
[args] => Array
(
[0] => 8
[1] => Trying to get property of non-object
[2] => /home/client/site/plugins/shipstation/src/services/Xml.php
[3] => 72
)
)
[1] => Array
(
[file] => /home/client/site/plugins/shipstation/src/services/Xml.php
[line] => 72
[function] => handleError
[class] => craft\web\ErrorHandler
[type] => ->
[args] => Array
(
[0] => 8
[1] => Trying to get property of non-object
[2] => /home/client/site/plugins/shipstation/src/services/Xml.php
[3] => 72
[4] => Array
(
[xml] => SimpleXMLElement Object
(
[@attributes] => Array
(
[pages] => 1
)
[Order] => SimpleXMLElement Object
(
[OrderID] => SimpleXMLElement Object
(
)
[OrderNumber] => SimpleXMLElement Object
(
)
[OrderStatus] => SimpleXMLElement Object
(
)
[OrderTotal] => 16.29
[TaxAmount] => 0.3
[ShippingAmount] => 9.99
[OrderDate] => 9/14/2018 14:09
[LastModified] => 9/14/2018 15:09
[ShippingMethod] => SimpleXMLElement Object
(
)
)
)
[order] => craft\commerce\elements\Order Object
(
[id] => 935
[number] => 1bfa8a238ea68a766ef78af4d0b09df9
[couponCode] =>
[isCompleted] => 1
[dateOrdered] => DateTime Object
(
[date] => 2018-09-14 14:23:50.000000
[timezone_type] => 3
[timezone] => America/Chicago
)
[datePaid] => DateTime Object
(
[date] => 2018-09-14 14:23:50.000000
[timezone_type] => 3
[timezone] => America/Chicago
)
[currency] => USD
[gatewayId] =>
[lastIp] => 72.133.50.49
[orderLanguage] => en-US
[message] =>
[returnUrl] => customer/order?number=1bfa8a238ea68a766ef78af4d0b09df9
[cancelUrl] => /shop/checkout/payment
[orderStatusId] => 2
[billingAddressId] => 13
[shippingAddressId] => 14
[makePrimaryShippingAddress] =>
[makePrimaryBillingAddress] =>
[shippingSameAsBilling] =>
[billingSameAsShipping] =>
[shippingMethodHandle] => usps
[customerId] => 1
[_shippingAddress:craft\commerce\elements\Order:private] => craft\commerce\models\Address Object
(
....
Will this plugin actually pass available shipping provider options/costs from ShipStation to the customer during checkout, or do I have to maintain those options manually in Craft Commerce? Wasn't seeing this anywhere in the features or documentation.
We have noticed that when we mark an order as shipped in Shipstation and it syncs back to Commerce, if any products in the order are no longer "available for purchase", Commerce removes these products from the order, shows "products unavailable" order notices, and marks the order as "overpaid". The order in Shipstation however still has the correct order contents.
I am not 100% it is the plugin, but it aligns with the action described above - the order is fine before that. The above can only happen if the order is recalculated rather than just updated. Could the plugin be doing this?
We will keep digging and update with more information as we have it.
Hey there. How much trouble would it be to exclude promotions from the line items in the XML that Shipstation consumes?
Or like, if it doesn't have an SKU don't include it in the payload?
These are appearing on labels and causing some confusion.
Thanks.
I am getting the error on ShipStation:
An error occurred attempting to update orders: Error in XML. Reason: The 'Country' element is invalid - The value '' is invalid according to its datatype 'StringExactly2' - The actual length is less than the MinLength value.
I checked the shipping address on Craft Commerce orders and we have the country default to United States with the ISO set to US. I tried a few different options but nothing seems to work. Let me know if there is another custom setting that I need to do in order for this to work.
ShipStation Connect - 1.3.5
Craft Commerce - 3.2.3
Craft - 3.5.7
I've followed the setup instructions that you have provided and also can confirm that the Custom Store connection is successful, but I cannot see any of my test orders being carried across into my ShipStation account.
I've checked the logs but cannot see any errors in there.
Orders have the Shipping Info matrix block included in them with the correct fields and I've matched up the order statuses and orders, so not sure what else I could be missing??!
Any help on this would be greatly appreciated.
Currently, orders do not import if the setting 'Billing address same as shipping address' is disabled and the order does not have a billing address.
The problem is in /services/xml.php
in the shouldInclude()
method (line 19) when building the orders xml object.
I assumed that disabling this setting would simply leave the billing info empty, but instead it excludes the order from the orders xml. Off the top of my head, I don't know if 'billing address' is required by ShipStation or not. If not, then this should be fixed. If billing address is required, then the plugin is behaving properly, but I would recommend adding a warning in the setting description that 'Orders that do not have billing address will not be imported'.
Thanks.
Any news on an update for Craft 4?
Craft isn't receiving the status of Shipped back from ShipStation when an order uses GLS as the carrier. It gets the status update from other carriers.
Is this something with ShipStation not passing that info? If so, any suggestions on this?
Shipstation Connect v 1.3.6
An error occurred attempting to update orders: The remote server returned an error: (500) Internal Server Error.
The test connection goes through as if it's connected and working.
Craft Pro | 3.4.20
Craft Commerce | 3.1.4
ShipStation | 1.3.2
Please could you advise as to when ShipStation (third party plug in) will be available and compatible for use on Craft 5 Commerce / Ecommerce platform?
Client tried pulling an order today.
This appeared in SS:
An error occurred attempting to update orders: Invalid XML. Error: 'Data at the root level is invalid. Line 1, position 1.' We received: '{"error":"ErrorException"}'
I'm not sure what I am missing and how to debug from here, sorry for being a dumb dumb.
Please consider improving the documentation for custom fields. It took me quite awhile to figure out how to implement this. Below are some example improvements that I think would be very helpful.
To add custom fields to the data sent to ShipStation, you will need to add some event methods to your own custom business logic plugin (example below).
The custom fields are:
CustomField1: FIELD_CUSTOM_FIELD_1
CustomField2: FIELD_CUSTOM_FIELD_2
CustomField3: FIELD_CUSTOM_FIELD_3
InternalNotes: FIELD_INTERNAL_NOTES
CustomerNotes: FIELD_INTERNAL_NOTES
Gift: FIELD_GIFT
GiftMessage: FIELD_GIFT_MESSAGE
Additionally, you can override the default data sent to ShipStation, such as the order number, shipping method, etc.
Order Number: FIELD_ORDER_NUMBER
Shipping Method: FIELD_SHIPPING_METHOD
You might also consider adding a better example, which includes all of the custom fields (and any others that are commonly overwritten).
Your custom event listeners should be placed in your plugins
init()
function.
Event::on(
Xml::class,
Xml::ORDER_FIELD_EVENT,
function (OrderFieldEvent $e) {
$fieldName = $e->field;
$order = $e->order;
// set shipstation xml custom field data
if ($fieldName === OrderFieldEvent::FIELD_ORDER_NUMBER) {
// ex. set shipstation order number to order id, instead of default short ref number
$e->value = $order->id;
} elseif ($fieldName === OrderFieldEvent::FIELD_SHIPPING_METHOD) {
// do nothing, already set by properly by shipstation-connect
} elseif ($fieldName === OrderFieldEvent::FIELD_CUSTOM_FIELD_1) {
// ex. store ref number
$e->value = "Order Ref: " . $order->getShortNumber();
$e->cdata = true;
} elseif ($fieldName === OrderFieldEvent::FIELD_CUSTOM_FIELD_2) {
if ($order->getShippingMethod()->handle == "useYourOwnAccount") {
$e->value = "Cust Shipping Method: " . $order->getFieldValue('customerShippingMethod');
$e->cdata = true;
} else {
$e->value = "";
$e->cdata = true;
}
} elseif ($fieldName === OrderFieldEvent::FIELD_CUSTOM_FIELD_3) {
if ($order->getShippingMethod()->handle == "useYourOwnAccount") {
$e->value = "Cust Shipping Account: " . $order->getFieldValue('customerShippingAccount');
$e->cdata = true;
} else {
$e->value = "";
$e->cdata = true;
}
} elseif ($fieldName === OrderFieldEvent::FIELD_INTERNAL_NOTES) {
$e->value = "";
$e->cdata = true;
} elseif ($fieldName === OrderFieldEvent::FIELD_CUSTOMER_NOTES) {
$e->value = $order->getFieldValue('customerComments');
$e->cdata = true;
} elseif ($fieldName === OrderFieldEvent::FIELD_GIFT) {
$e->value = 0;
$e->cdata = false;
} elseif ($fieldName === OrderFieldEvent::FIELD_GIFT_MESSAGE) {
$e->value = "";
$e->cdata = true;
} else {
// do nothing
}
}
);
Information about class references would also be helpful.
In addition, depending on what you are modifying, you may need to add some of the 'shipstationconnect' class references to your primary plugin class.
use fostercommerce\shipstationconnect\controllers\OrdersController;
use fostercommerce\shipstationconnect\services\Xml;
use fostercommerce\shipstationconnect\events\OrderFieldEvent;
use fostercommerce\shipstationconnect\events\FindOrderEvent;
Just a suggestion. Thanks.
Under the documentation it says -
ShipStation Connect will create a new Matrix field called "Shipping Info" under the "ShipStation Connect" Group. It will also automatically add a new tab to the Orders layout in Craft Commerce called "ShipStation Connect" which will include the Shipping Info field.
However, post-install I can't seem to see any fields that have been added to Craft.
Feature Requests: It would be amazing to have the ability to send subscriptions to shipstation to help with the fulfilment of subscription-based orders.
One of our clients came from BigCommerce and is used to being able to use it within that Control Panel. I believe a Craft integration could be as simple as puling up ShipStation in an iFrame inside Craft. It would be super handy and convenient.
Or at least give SS a menu item and link it from within the sidebar inside Craft.
Hello.
Sometimes, orders do not get imported into ShipStation, although they are in the XML way at the end of 376 pages.
Sometimes they do, though. And I'm trying to determine why.
Would this 376 page length have an effect on the ShipStation import connection?
Why are 'shipped' orders in this XML?
Would it not make more sense to present orders from last to first?
Hello,
I'm following the instructions from here #39 to deal with addresses with no country that ShipStation is rejecting. I created a store called standard, which only contains orders with legit addresses. I'd like to view the output and I'm fetching orders via curl.
From this #36 (comment) I should be getting all orders, but I'm only getting 25 orders. Is there some parameter I'm missing to get all?
Thank you,
aeu
curl \
--silent \
--request GET 'https://my.domain.com/actions/shipstationconnect/orders/process?store=standard&action=export' \
--header 'Authorization: Basic 9s7df987sdf98adfklasklfjkalsdf='
./production_shipstation_curl.sh | tidy -xml -iq | grep OrderID | wc
line 2 column 29459 - Warning: replacing invalid character code 133
line 2 column 29870 - Warning: replacing invalid character code 133
25 25 725
Just received the following from Shipstation:
I understand you are running into an import error message:
An error occurred attempting to update orders: Error in XML. Reason: The 'UnitPrice' element is invalid - The value '-1,178.65' is invalid according to its datatype 'http://www.w3.org/2001/XMLSchema:float' - The string '-1,178.65' is not a valid Single value.
We are receiving this error because the unit price for one of your products is invalid. I pulled the order feed for your custom store and found the product causing this issue:
1 -1,178.6511/29/2021 04:47 :
An error occurred attempting to update orders: Error in XML. Reason: The 'Country' element is invalid - The value '' is invalid according to its datatype 'StringExactly2' - The actual length is less than the MinLength value.
We have orders in our system which don't have addresses but they are being sent to ShipStation which is rejecting them. The problem is that from that point onward, ShipStation stops processing and no subsequent orders are being sent.
We need a way to mark orders to not be sent to ShipStation (ref: #38)
I have an issue where my commerce store was disconnected from shipstation for a few days. Is there a way to push the orders that came through during that time to shipstation?
We have a particular client that would like to be able to modify the title and quantity fields that are being sent to ShipStation, as we have custom business logic that modify those values. If that is possible, that would be amazing!
Thank you!
Hi y'all. After updating to version 1.3.2 of the plugin we're now seeing errors in the XML feed when syncing orders in ShipStation.
The issue seems to be related to the fact that we're passing orders to ShipStation that don't have any address info associated with them (our client pivoted to a curbside pickup model when COVID hit).
Obviously these curbside pickup orders don't need to be passed to ShipStation to begin with, but as far as I can tell there isn't a way to configure the plugin to send some orders to ShipStation, but not others. If that's possible and I'm missing something, let me know.
Here's the specific error we're seeing (that sounds similar to what's happening in #18):
An error occurred attempting to update orders: Error in XML. Reason: The 'Country' element is invalid - The value '' is invalid according to its datatype 'StringExactly2' - The actual length is less than the MinLength value.
I was able to temporarily get things back up and running by editing line 443 of the services/Xml.php
file to be:
return $address->countryId ? $address->getCountry()->iso : 'US';
Obviously not a long term fix, but perhaps there's a way to pass along a default in the ternary operator that doesn't cause the feed to break.
If there's any other info I can pass along that'd be helpful let me know. And thanks in advance!
System Info
We're using this plugin on a site where we have (on production):
The client has gone to add their Shipstation username & password in the plugin settings and found that it errored when they clicked save. From the logs, it looks like the error is caused by the Shipstation plugin trying to (unsuccessfully) write to the project config file (project.yaml). Would it be possible to instead save these plugin settings in the DB?
Hi,
I'm trying to connect a marketplace in ShipStation, but when I try to test connection I get this error:
Store Configuration
{"Message":"Unable to connect to the marketplace! Error: Invalid XML. Error: 'Data at the root level is invalid. Line 1, position 1.' We received: '������Q(K-*��ϳU2�3P����/J\n)$���*(��qf�9*'"}
I selected 'Custom Store' and I'm using the custom XML page url as shown in the Settings screen: https://mysite.com/actions/shipstationconnect/orders/process
The username and password are correct (when using known-wrong credentials I get a relevant error.)
Would appreciate any help you can give!
Hello!
Craft 4.5 site with newest craft commerce.
Using Postie for shipping rates, which is working well (orders are able to get real time shipping rates, and the orders show up with the correct shipping in craft. see below.)
None of that shipping info is coming into the order in shipstation, though- the service, package type, or anything else. When i ping the Shipstation Connect XML URL through postman, the ShippingMethod block is blank. Searching the XML output for the purchased shipping method (i.e. CTRL-F, "fedex") returns no results.
<ShippingMethod>
<![CDATA[]]>
</ShippingMethod>
Is this behavior expected?
I'm always getting 404 errors when connecting or updating from ShipStation. When I check the server logs it's accessing the correct URLs. It's not liking the authentication for some reason.
Is there any particulars that need configuring on the server to work?
I'm wondering if it would make sense to use the shipping method name instead of its handle when sent to ShipStation. The Craft 2 ShipStation plugin had a hook that allowed plugins to override the text sent to ShipStation, but since hooks have mostly been done away with in Craft 3, I don't think this is possible. As far as I can tell, the shipping method is only used by ShipStation to display what method was requested when preparing a shipment. In that case, would it make sense to use a more human readable format and send $shippingMethod->name
instead?
Hi,
I'm getting this error when try to refresh the feed from shipstation:
Error processing action export
DOMDocument::createCDATASection() expects parameter 1 to be string, array given in /vendor/fostercommerce/shipstationconnect/src/services/Xml.php:500
is it possible to check if its an array and if it then json_encode it perhaps?
protected function addChildWithCDATA(&$xml, $name, $value)
{
$new_child = $xml->addChild($name);
if ($new_child !== null) {
$node = dom_import_simplexml($new_child);
$node->appendChild($node->ownerDocument->createCDATASection(json_encode($value));
}
return $new_child;
}
Craft Pro 3.1.30
Commerce: 2.1.7
I am currently struggling to get shipstation to talk back to craft, to add info into the matrix field, and change the order status.
My web.log shows the following error:
2020-11-02 05:40:14 [-][1][-][error][fostercommerce\shipstationconnect\controllers\OrdersController::logException] Error processing action shipnotify
2020-11-02 05:40:14 [-][1][-][error][yii\base\ErrorException:1] yii\base\ErrorException: Failed to find Commerce OrderStatus 'Shipped' in /home/forge/xxx.com/vendor/yiisoft/yii2/base/ErrorException.php:43
Stack trace:
#0 /home/forge/xxx.com/vendor/fostercommerce/shipstationconnect/src/controllers/OrdersController.php(64): fostercommerce\shipstationconnect\controllers\OrdersController->postShipment()
#1 [internal function]: fostercommerce\shipstationconnect\controllers\OrdersController->actionProcess(NULL, 'shipnotify')
#2 /home/forge/xxx.com/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#3 /home/forge/xxx.com/vendor/yiisoft/yii2/base/Controller.php(180): yii\base\InlineAction->runWithParams(Array)
#4 /home/forge/xxx.com/vendor/craftcms/cms/src/web/Controller.php(190): yii\base\Controller->runAction('process', Array)
#5 /home/forge/xxx.com/vendor/yiisoft/yii2/base/Module.php(528): craft\web\Controller->runAction('process', Array)
#6 /home/forge/xxx.com/vendor/craftcms/cms/src/web/Application.php(274): yii\base\Module->runAction('shipstationconn...', Array)
#7 /home/forge/xxx.com/vendor/craftcms/cms/src/web/Application.php(577): craft\web\Application->runAction('shipstationconn...', Array)
#8 /home/forge/xxx.com/vendor/craftcms/cms/src/web/Application.php(253): craft\web\Application->_processActionRequest(Object(craft\web\Request))
#9 /home/forge/xxx.com/vendor/yiisoft/yii2/base/Application.php(386): craft\web\Application->handleRequest(Object(craft\web\Request))
#10 /home/forge/xxx.com/web/index.php(22): yii\base\Application->run()
#11 {main}
I don't have a Commerce OrderStatus 'shipped', but have the following setup which matches in Craft and Shipstation:
Finally I have added the matrix field to the Order Fields here https://xxx.com/admin/commerce/settings/ordersettings
is this correct? It isn't 100% clear if you need to do this or not.
Thanks
We had an issue with an order containing a value for the Company field that was too long.
This issue is with the export orders endpoint : actions/shipstationconnect/orders/process?action=export
According to the Shipstation documentation, this field has a maximum of 100 characters.
I think it would be interesting for the plugin to manage the value of the fields to respect the documentation.
Otherwise, we have no choice but to manage field value on our side.
As Laravel Forge runs Nginx I wonder if it's not passing the auth, so tried adding this to location in nginx conf but to no effect:
proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization;
Are there plans to update this plugin for commerce 3? I tried install it on a development site I'm working on and get the following error:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for fostercommerce/shipstationconnect ^1.2 -> satisfiable by fostercommerce/shipstationconnect[1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.2.7].
- Can only install one of: craftcms/commerce[v2.x-dev, 3.0.5].
- Can only install one of: craftcms/commerce[v2.x-dev, 3.0.5].
- Can only install one of: craftcms/commerce[v2.x-dev, 3.0.5].
- Conclusion: install craftcms/commerce v2.x-dev
- Installation request for craftcms/commerce (locked at 3.0.5, required as ^3.0.0) -> satisfiable by craftcms/commerce[3.0.5].
We setup ShipStation with our Craft Commerce site. It was working great for several days. Then it started returning 500 errors. I confirmed there were not blocking issues from our server and re-entered the ShipStation custom store username and password in Craft. When I use "Test Connection" in ShipStation it is successful. But if I try to Connect to the store it says "Failed to Update". Here is what the logs say:
2020-05-04 08:37:35 [-][-][-][error][fostercommerce\shipstationconnect\controllers\OrdersController::logException] Error processing action export
2020-05-04 08:37:35 [-][-][-][error][yii\base\ErrorException:8] yii\base\ErrorException: Trying to get property 'firstName' of non-object in /home/wallpaper/craft3/vendor/fostercommerce/shipstationconnect/src/services/Xml.php:392
Stack trace:
#0 /home/wallpaper/craft3/vendor/craftcms/cms/src/web/ErrorHandler.php(74): yii\base\ErrorHandler->handleError(8, 'Trying to get p...', '/home/wallpaper...', 392)
#1 /home/wallpaper/craft3/vendor/fostercommerce/shipstationconnect/src/services/Xml.php(392): craft\web\ErrorHandler->handleError(8, 'Trying to get p...', '/home/wallpaper...', 392, Array)
#2 /home/wallpaper/craft3/vendor/fostercommerce/shipstationconnect/src/services/Xml.php(126): fostercommerce\shipstationconnect\services\Xml->shipTo(Object(SimpleXMLElement), Object(craft\commerce\elements\Order), Object(craft\commerce\models\Customer))
#3 /home/wallpaper/craft3/vendor/fostercommerce/shipstationconnect/src/services/Xml.php(39): fostercommerce\shipstationconnect\services\Xml->order(Object(SimpleXMLElement), Object(craft\commerce\elements\Order))
PHP Fatal error: require(): Failed opening required '/home/user/craft3/vendor/composer/../league/csv/src/functions_include.php' (include_path='.:/opt/cpanel/ea-php73/root/usr/share/pear') in /home/user/craft3/vendor/composer/autoload_real.php on line 66
Unsure if this is related to #11, but the client had reported a 500 error when trying to import the orders from Craft. On testing this endpoint -
https://website.com/actions/shipstationconnect/orders/process?action=export
I get the following response:
{"error":"DOMDocument::createCDATASection() expects parameter 1 to be string, array given"}
I then wondered if I needed to manually set the store name in the url, but then testing
https://website.com/actions/shipstationconnect/orders/process?store=default&action=export
gets the following response:
{"error":"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'field_' in 'where clause'\nThe SQL being executed was: SELECT COUNT(*)\nFROM (SELECT `elements`.`id` AS `elementsId`, `elements_sites`.`id` AS `elementsSitesId`, `content`.`id` AS `contentId`\nFROM `elements` `elements`\nINNER JOIN `commerce_orders` `commerce_orders` ON `commerce_orders`.`id` = `elements`.`id`\nINNER JOIN `elements_sites` `elements_sites` ON `elements_sites`.`elementId` = `elements`.`id`\nINNER JOIN `content` `content` ON (`content`.`elementId` = `elements`.`id`) AND (`content`.`siteId` = `elements_sites`.`siteId`)\nWHERE (`commerce_orders`.`isCompleted`=TRUE) AND (`field_`='default') AND (`elements_sites`.`siteId`='1') AND (`elements`.`archived`=FALSE) AND (`elements`.`dateDeleted` IS NULL) AND (`elements_sites`.`enabled`=TRUE) AND (`elements`.`draftId` IS NULL) AND (`elements`.`revisionId` IS NULL)) `subquery`\nINNER JOIN `commerce_orders` `commerce_orders` ON `commerce_orders`.`id` = `subquery`.`elementsId`\nINNER JOIN `elements` `elements` ON `elements`.`id` = `subquery`.`elementsId`\nINNER JOIN `elements_sites` `elements_sites` ON `elements_sites`.`id` = `subquery`.`elementsSitesId`\nINNER JOIN `content` `content` ON `content`.`id` = subquery`.`contentId`"}
Hey there, we have a situation with order numbers.
82fceda3cf3b9a66d2e2d61fea858c19
82fcedad331f3468434f819d9786457d
ShipStation Connect (I think) sees these as the same number and won't process the second one. How can we get ShipStation to process these seemingly duplicate numbers.
Weird, huh?
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.