Shopify Questions
Questions relating to Shopify within the Checkout API flow.
How do Shopify Commissions Work?
The commission rate is handled outside of Shopify and is not a part of the pricing within the Shopify order data. Shopify order pricing reflects the total amount paid by the shopper. Since the commission rate is not reflected in the pricing of the Shopify order data the customer will have no visibility into it. See here for more information on commissions.
Why is a merchant seeing draft orders in their Shopify account?
Violet uses the Shopify Draft Orders API to perform the cart/checkout process. When a Violet order is fully submitted, we “complete” the Draft Order in Shopify which causes it to transition to a standard Order. Anything that remains as a Draft Order is essentially an abandoned cart, one that the shopper did not complete. The merchant should not fulfill these as they were not paid for by the shopper.
Currently, Violet does not perform any sort of automated cleanup of incomplete Draft Orders. This is because we prefer to not impose any opinions on how or when they should be cleaned up and try to leave that choice up to our users.
You can use the Delete Cart endpoint to clean up any incomplete carts. This action will result in the deletion of the associated incomplete Draft Order in Shopify.
How are orders deleted in Shopify?
We don't currently interact with order deletion. Shopify does not provide a webhook for this event as it is not considered to be something that has an effect on the lifecycle of an order. If there was a use case for external order deletion in Shopify it would be something we could consider implementing.
Why are Shopify Merchants returning currently not accepting new orders for all digital items with a shipping address/method?
The error message `[Merchant Name] is currently not accepting new orders. This is likely temporary. Please wait a few moments then try again.` is a generic error message that we return when an unexpected error occurs trying to submit an order to an e-commerce platform.
However there is a known issue with Shopify where this can happen when you have only DIGITAL
type items in your cart and you add a shipping address and shipping method set.
If you are seeing this error consistently for the same cart and check if the cart meets the above criteria, if it does, the below explanation should help you.
This issue is typically related to a merchant's third party fulfillment plugin and a bug in Shopify that has been discussed by others in this shopify community page. The end result of this bug is that for this merchant, carts that only have digital items in them cannot have shipping information on that cart in order for that cart to succeed.
To avoid this issue in general we recommend the following:
When all skus in a bag have product_type
= DIGITAL
, you will need to avoid calling /v1/checkout/cart/:cartId/shipping (POST)
and avoid sending a shipping_address
for the customer (note the same_address
field should be false if you are using it so we don’t copy the billing_address
over).
Additionally, since you won’t have a shipping_address
you shouldn’t call /v1/checkout/cart/:cartId/shipping/available
as the call will not work without an address.
Since we price carts automatically when calling setShipping, and you won’t be doing that for this cart, you may need to pass ?price_cart=true
to one of your other calls (and only one to save on rate limits) to make sure the cart is priced before checkout.
Once you have made these changes, you’ll be able to test by creating a cart with a single digital item and you should be able to see it work.
How can we prevent abandoned cart emails?
When a cart is created in Violet, an equivalent cart is often created at the same time in the external commerce platform. If the Violet cart is left in an incomplete state for a period of time, it's possible that the external commerce platform will consider the equivalent cart abandoned and begin sending abandoned cart emails to the email address on the cart. There is currently no reliable method for Violet to instruct the external commerce platforms to not send these abandoned cart emails.
A workaround solution to prevent your shoppers from seeing any abandoned cart emails is to use an alternative or fake email address while building the cart in Violet. Then when you submit the order for completion, you can provide a new email address which will override any previously applied email address.
We recommend using "Plus Addressing" with any catch-all email address. Some external commerce platforms, including Shopify, create reference accounts in the background for each unique email address. If you use the same catch-all email address without plus addressing the commerce platform may associate orders to this one email address, even after the customer email address on the order is updated to a true customers email address. This will not impact the shopper, but it may impact the merchants reporting system within the commerce platform.
When calling the submit cart endpoint you can use a request body like the following example to override the email address on submission.
{
"order_customer": {
"email": "[email protected]"
}
}
Last updated
Was this helpful?