Shopify - New order using the Shopify API - how to know tax and shipping? - shopify

We have built an e-commerce web application (Node backend, Vue frontend). We process the payment using Stripe, but many brands have asked us if the order and inventory control can be done in Shopify. We are trying to figure out the best way integrate a payment module into Shopify so that the brand can manage the fulfilment and inventory through Shopify.
It seems we should use the Order API to create an order and mark it as paid. But how do we know that the product is in stock, and what are the cost for shipping and tax from Shopify when creating the order? I think we can use the Product API to get inventory levels, but where is the shipping and tax endpoints?
If I understand the Order API correctly, we need to tell Shopify what are the shipping costs and tax costs, when a new order is created. Is that right? How could we possibly know those figures? Seems like there should be an endpoint to calculate shipping costs and get a product's tax rates so that we can then pass those figures back into the Order API. Am I missing something?
I thought maybe we are supposed to create an order that has financial_status: pending first to get shipping and tax rates back (does it even give you those?), then update the order to either cancel_reason: customer or cancel_reason: inventory if those rates are too expensive and the order is declined? But surely we need to know what shipping methods are available to the customer in order to tell Shopify which one to use, right? Or does it by default choose the cheapest one when creating an order?
Notes:
We know the customers shipping address
We don't know where the product is warehoused (Shopify does I think)
We don't know the weights or dimensions of the product (Shopify does I think)

This answer is a little bit late, but i hope, i can help others that are struggling with the same issue.
First i would recommend to set up all Shipping Rates and Taxes in Shopify. There are plenty of manuals to achieve this:
https://help.shopify.com/manual/taxes#general-process-to-set-up-taxes
https://help.shopify.com/manual/shipping/rates-and-methods/calculated-rates
After this there are different possibilities to calculate your shipping and tax cost.
Your shipping cost can you get via the active_shipping API, which can be found here:
https://github.com/Shopify/active_shipping
Or the following Shopify Application: https://apps.shopify.com/boxify
However, you may need to know size and storage location for theese solutions.
The taxes can you get via the country in the Admin API, there is a specific key-value pair for this:
https://help.shopify.com/api/reference/country
I hope that's enough information to get closer to solving the issue, for at least someone.

Related

Shopify changing product price for variation by app

I am a shopify partner, I am trying to get around the the variant limits of shopify by coding an app and also because my client has a complicated formula for calculating the price. I don't have a problem with the part that adds the information for my variants to the order, however when I want to modify the price based on the user selection, it doesn't seem an easy task to do.
I came across couple of apps which does the same thing by adding a new product or variation which is not optimal for my use case, is there any app that does the job without adding extra information to the database, if so, how?
Qualified Yes
Unfortunately, Shopify doesn't give us a lot of options to edit prices of items dynamically. Here are the two options that I know of that will allow you to adjust the price of a product directly - however, both have limitations.
Using Shopify Script Editor
If you're working with a Shopify Plus merchant, you can use the Shopify Script Editor to dynamically adjust the prices of products, provided that the direction you adjust is down. You cannot increase the price of a product using the script editor - so for your use case, the list price would have to be the most expensive possible price that the item sells for, which you would then discount appropriately using the app.
Using draft orders
Using an app, you can use Shopify's Draft Order API to create an order with custom discounts and/or create completely custom items that are independent of the products set up in the product database.
The basic flow for this is that when the customer clicks 'checkout' you halt the normal navigation, send the cart contents to your app, create a draft order with the appropriate pricing, then supply the front-end code with the draft-order checkout/invoice URL so that you can send the customer there instead of the normal checkout. This has several limitations, however, including that prices of existing products can only be discounted, not increased, and the fact that Shopify will not allow a customer to use discount codes on a draft order invoice - once an order is set up this way, Shopify's assumption is that all prices are final.
Disclaimer: Sorry if someone sensible doesn't like a response with a link :) I'm not related to this app I'm just a user.
On a project with complex pricing, we use the app Wholesale Pricing Discount by Wholesale Helper we liked because is easy to import multiple pricing by-product and relate it by customer.
this app does not multiply the products, they use customer tags. maybe that can give you some guidance.
An important rule on Shopify is you can't increase the price by API on an order, you can just reduce i

How can I query a user's Shopify Order History?

I'm customizing a Shopify site for a client running a membership-based site.
The way they want the membership to work is that each member gets 3 items at a discounted rate every month, and then every subsequent product ordered is at the regular rate.
I've figured out how to limit the amount of discounted products ordered PER order, but what I can't figure out is how to use Shopify's API to query that customer's order history so I can see how many products a member has ordered each month and adjust the prices as needed (I'm using the Customer Pricing plugin to manage the pricing discounts currently).
I've been digging into the Liquid documentation, and I can see where there are tags for orders and tags for customers but not necessarily how to loop them together.
Is there anyone who is more familiar with the Shopify API than I am able to point me in the right direction?
If you are using the API, you have this:
**Get all orders from this customer in this shop**
GET /admin/orders.json?customer_id=207119551
So with that, you have your desired history.
You can loop through all of a customer's orders. See https://help.shopify.com/themes/liquid/objects/customer#customer-orders
and figure out which month the order was placed and what products were on it.

Ecommerce Loyalty Points/Rewards program

I'm looking to build a Loyalty Points/Reward system on the back of the Credit payment provider, however I would like it to be able to:
Allow visitor do redeem balance or not during the basket/checkout stage
Allow visitor to pay the outstanding order amount with any of the other payment providers.
I've considered a lot of possible approaches but am wondering whether someone else has achieved this successfully?
I'd assume I'd have to tap some method on the shopppingcartinfoprovider before processing the payment with the chosen payment provider (other than credit/full amount) but how best to apply the discount to the order?
Create an actual discount on the fly? Use a faux product with a variable unit price? Are there any tax considerations I must have? Is there any other recommended best method?
Thanks,
You can apply a discount to the order in the height of the credit amount associated with the customer account. You can store the credit balance in the OrderCustomData field and subtract it after the order has been paid. You can tap into the CalculateOrderDiscountInternal method in the CustomShoppingCartInfoProvider.cs or the EvaluateShoppingCart method (http://devnet.kentico.com/docs/9_0/api/html/M_CMS_Ecommerce_ShoppingCartInfoProvider_EvaluateShoppingCart.htm). More information on e-commerce customization best practices can be found here: http://devnet.kentico.com/articles/e-commerce-customization-best-practices You can also check the code samples in c:\Program Files (x86)\Kentico\9.0\CodeSamples\App_Code Samples\E-commerce samples\

Can we override inventory check in BigCommerce

I want customers to order the product even if it is out of stock, however I want to keep the Inventory tracking option ON as well. So for example if I have a product with 100 items in the stock, if someone orders it I need to see how much left in the inventory and on the other hand of product is out of stock, customer should still be able to order it. Is there a way we can achieve this while overriding any API?
We got it to work by using ajax and javascript. Basically we replaced the text that is generated by bigcommerce for inventory with a little script that checks inventory through our ERP. We then turned off inventory tracking for all products and backorders are now available. I wish I could post a few lines of code to help you, but the script is specific to our database. You can still use all the other features of the API (order import etc.), but you are not using the api for inventory tracking.
Hopefully this gets the wheels turning.

Where is the information located in Magento on a sales order for discount information on the API

I just want to start out this post by saying that I am not a programmer, nor do I play one on TV. I have found this site because I have been trying to manage our Magento instance, after pretty much left high and dry by the developers we had building this for us. I will try and explain it the best I can below:
When we apply a shopping cart coupon to the sales order, and the discount is applied to each item, a new line item total is configured by Magento. We then have a connector that takes the information from Magento's API and it is then connected to Open Bravo, which is our ERP accounting software. Open Bravo is grabbing the information as it normally does, however it doesn't see the discount information, so the order total is different in our accounting program then what Magento has. Open Bravo is teling me they need to know where the discounted amount on the sales order in Magento is on the API. It's obviously in a different spot then the standard sales order amount.
I might be able to describe a little better if you hit me with questions. Any help you could provide would be highly appreciated. Maybe we could barter for some office supplies, as that is what we sell.
Thanks!
If you are using Magento API to fetch order information from magento, then below link will be helpful to find actual value.
http://www.magentocommerce.com/api/soap/sales/salesOrder/sales_order.info.html
It seems that your ERP is storing "base_grand_total" value in stead of "grand_total".