I am using xml in VBA. The code below adds an item to a shopping cart on a remote website (posts a form). Then the code displays the result in Internet Explorer.
You can see in the response there is a "get estimates" button. I need to automatically click that, enter location info, and get the response of shipping and tax charges (for the item currently in the cart) on my excel 2010 worksheet.
I want all the automated clicking and entering data to happen with the site (the site's server?) directly like when I added the item to the shopping cart, not through the browser if possible. It takes a long time for the page to load and I think if I go through a browser I could do that without xml anyway. But I'm really stuck so if I have to load a browser that's okay too.
You can see in the response there is a "get estimates" button. I need to automatically click that, enter location info, and get the response of shipping and tax charges (for the item currently in the cart) on my excel 2010 worksheet.
I want all the automated clicking and entering data to happen with the site (the site's server?) directly like when I added the item to the shopping cart, not through the browser if possible. It takes a long time for the page to load and I think if I go through a browser I could do that without xml anyway. But I'm really stuck so if I have to load a browser that's okay too.
Code:
Option Explicit
Sub testing()
Dim objIE As Object
Dim xmlhttp As Object
Dim response As String
Set objIE = CreateObject("InternetExplorer.Application")
objIE.navigate "about:blank"
objIE.Visible = True
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
'~~> Indicates that page that will receive the request and the type of request being submitted
xmlhttp.Open "POST", "http://www.craft-e-corner.com/addtocart.aspx?returnurl=showproduct.aspx%3fProductID%3d2688%26SEName%3dnew-testament-cricut-cartridge", False
'~~> Indicate that the body of the request contains form data
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
'~~> Send the data as name/value pairs
xmlhttp.Send "Quantity=1&VariantID=2705&ProductID=2688"
response = xmlhttp.responseText
objIE.Document.Write response
Set xmlhttp = Nothing
End Sub