title: Requests gives 400 error when trying to Post Requests on Shopify
body: <p>Im trying to create a requests python script that will add to cart and eventually checkout. I did a Post Requests to
  (<a href="https://yeezysupply.com/cart/add.js" rel="nofollow noreferrer">https://yeezysupply.com/cart/add.js</a>) which is the add to cart endpoint I found in the networks chrome developer tools page. It has a json payload with 3 dictionaries. Id which is the variant ID from the product, properties which I don't know what it is so I left it blank, and quantity. I entered the data as a param when I did the Post requests. I received a 400 Response Error. When I printed the requests Text, nothing was added to my cart and i received this. </p>
  
  <pre><code>{
     "status":"bad_request",
     "message":"expected String to be a Hash: properties",
     "description":"expected String to be a Hash: properties"
  }
  </code></pre>
  
  <p>Im pretty new to requests so I'm not sure what the error means.
  I was able to confirm nothing was added to my cart because I did a get requests to the shopify cart endpoint (<a href="https://yeezysupply.com/cart.json" rel="nofollow noreferrer">https://yeezysupply.com/cart.json</a>). When I print the get requests I get this. </p>
  
  <pre><code>{
     "token":"cb67e6c53c63b930b4aca1eb3b5a7510",
     "note":null,
     "attributes":{
  
     },
     "original_total_price":0,
     "total_price":0,
     "total_discount":0,
     "total_weight":0.0,
     "item_count":0,
     "items":[
  
     ],
     "requires_shipping":false,
     "currency":"USD",
     "items_subtotal_price":0,
     "cart_level_discount_applications":[
  
     ]
  }
  </code></pre>
  
  <p>This confirmed nothing was added to my cart. Does anyone know what I'm doing wrong? The product I used for my testing is (<a href="https://yeezysupply.com/products/flannel-lined-canvas-jacket-medium-blue?c=%2Fcollections%2Fwomen" rel="nofollow noreferrer">https://yeezysupply.com/products/flannel-lined-canvas-jacket-medium-blue?c=%2Fcollections%2Fwomen</a>)</p>
  
  <p>I've tried creating a global requests session to see if I needed cookies. This didn't work either. </p>
  
  <pre><code>import requests
  from bs4 import BeautifulSoup as soup
  session = requests.Session()
  
  atc_endpoint = 'https://yeezysupply.com/cart/add.js'
  atc_info = {
      "id": "1457089478675",
      "properties": "{}",
      "quantity": "1"
  }
  def add_to_cart():
      pass
  
  atc_post = session.post(atc_endpoint, data=atc_info)
  atc_get = session.get('https://yeezysupply.com/cart.json')
  print(atc_post.text)
  </code></pre>
  
  <p>I tried using headers, I used headers = {"Content-Type": "application/json"}
  I received the following error:</p>
  
  <pre><code>{
     "error":"822: unexpected token at 'id=1457089478675\u0026properties=%7B%7D\u0026quantity=1'"
  }
  </code></pre>
  
  <p>Im not sure what token the api is asking for. 
  I expect to have the item in my cart and shown in the get requests text.</p>