Wednesday, October 06, 2021
I spent most of September (2021) learning about online commerce and why Amazon.com is amazon.com.
WiredShops is now open and the cart is in production mode. Note, I am using PayPal exclusively to handle all transactions securely through their gateways.
I am happy I decided to add to my skill set in this area. Opencart was an easy application to install and configure for my needs and I am satisfied with the results. Some of the major tasks associated with this project, included:
- Understanding drop shipping.
- Automating the process using APIs.
- Creating a Microsoft Access database to track all of my orders.
- Selecting and obtaining inventory I could afford to maintain.
- Analysis of shipping times and costs.
- Ensuring compliance with the state of Maryland insofar as sales tax.
- Research of products, sourcing the products (ensuring I can backup sales activity with actual inventory), and adding the items to my shop.
- Issues with browsers and CORS. Spent a Sunday afternoon researching Font-Awesome problems which turned out to be because of browser CORS related issues and the fact my sites use Apache Tomcat.
- Legal disclaimers.
The illustration below shows the new sales and use tax number I applied for to ensure I am in compliance with Maryland laws and sales tax regulations.
My core business is software consulting and advertising. I pay taxes on income derived from consulting and advertising activities as reported to the state and IRS. Sales tax on items sold in state through commerce is different and must be reported and collected at the time of sale.
As noted above, I also created a new database to maintain orders. I needed to ensure my orders and the drop shipping orders were in sync. Below an illustration of the design view of the Orders table.
Finally, one of the items I wanted to have on hand, the earrings shown below.
Quite honestly, I used to wear a different type of earring to the office. Today, I wear a pair of inexpensive diamond-like studs. I do not want my mask to snare an expensive earring. I was pleasantly surprised by the weight and how these earrings looked. I can also afford to lose one.
I enjoy researching products and adding them to my shops. I wish I could afford to order everything and ensure it is exactly- what I hoped it would be, however WiredShops does accept returns.
I will probably get back to programming and other projects, but I have to say- I thought this whole experience, very interesting. I am happy I have something to do if other areas of my life and business are not taking up too much of my time.
I worked at Circuit City part time for about three of the four years while in college. A lot of the part timers were college students. I enjoyed my experience in this area-- and understand retail operations in the "brick & mortar" sense. I love learning new things.
Saturday, September 11, 2021
In August (2021), I began researching how new commerce initiatives are being adopted. I wanted to understand how independent retailers are using services like PayPal Here and PayPal Zettle. See this post.
Pop up shops are becoming very popular and owners are using their card readers to handle their (POS) transactions. Listed below, several Youtube videos I watched to get an idea of how these Popup Shops work.
I researched Artsy Ki's (last video) online shop which showed how she used her online presence to help drive sales.
No, I am not planning a pop up shop, however I did want to learn more about software support services or advertising I might offer retailers who are thinking of- or actually working in this area.
- Researched where and how to setup an online shop.
- OpenCart- self hosted option selected.
- OSCommerce self hosted option.
- Shopify shop- (hosted on their site) and similar sites researched. Cost factors an issue. Most who use these types of services, do not have the time to come up to speed in terms of the software skills required to maintain a self hosted shop.
- Because I chose a self hosted service (OpenCart), I had to use the drop shipper's API resource to link my shop's products to the service's products. So I also had to come up to speed on the use of the API. Automated linkage was provided for shops hosted on eBay, Shopify, WooCommerce, SquareSpace, etc.
- Registered a new domain, wired-shops.com. Cost $10.74 per year. wiredshops.com was available, however cost was well over $4000. (As of 9/11/21, visitors may access the site, however the PayPal hookup is set to the sandbox account). I was lying in bed early, Tuesday morning (Septemeber 7th, 2021), and decided on a site name wiredshops.com. Half an hour later, I had wired-shops.com registered. I used to provide web hosting services, the reason it was easy for me to register the domain so quickly. I then added the domain to qisoftware.com hosting as an addon domain for testing.
- Drop shipping services researched.
- Legal issues researched. Keep in mind, Qisoftware is a registered business entity in the state of Maryland.
- Currently, working on a Terms & Conditions statement for the shop.
- Sometime ago, I signed up to use the USPS API resource (see this QiSoftware demonstration page), so it was easy to insert the correct registration information in the OpenCart shipping module to handle shipping estimate calculations.
- Thinking about a couple of programs to write Excel and json data for import to the drop shipping service.
Below, a screen shot of the homepage of the new shop. It is still in setup mode. I liked the default template that was installed when I setup OpenCart.
Currently, I am adding more products to my shop and linking the products via the API service. I plan to make this a more automated task, however right now it is rather tedious. What is the reason drop shippers cannot automate the service for self hosted shop owners? Self hosted shops tend to have more custom mods and are inconsistent insofar as how to handle import and export data.
This has been a good learning experience for me and I feel I know a great deal more.
On Thursday, September 2, 2021, there was a major issue in my life which has been mostly handled, however the fact that I have been able to get this far with this project (during this time) surprises me, given I knew nothing about drop shipping. This is not for everyone. I want this post to show, I had a lot of pieces in place to be able to do this. This could be very expensive if the proper research is not in place.
Saturday, August 28, 2021
The following interface, is a Java Servlet powered by the CJ Product Search API using GraphQL. The jQuery widget integrated directly within the program- provides the display and navigation of the products.
The jQuery widget was adapted from a CJ supplied interface which uses affiliate specified product selections for showcase. An example is provided in the last post.
The interface demonstrated in this post- allows site visitors to specify the search criteria.
I am currently beta testing the tool. Once complete, the program will be installed in the main site area (qisoftware.com) as a CJ Product Search API demonstration for potential clients.
I am still deciding on user interface issues, e.g., how many rows to display. Leave a comment if you wish to respond or have a program bug report.
Disclosure: I sometimes use affiliate links in content. This will not cost you anything. There is a chance I will receive a fee if my affiliate links are used for purchases. Thanks for your support. Also see the site wide disclosure policy using the link at the bottom of each page, labeled "Disclosure Policy".
Wednesday, August 25, 2021
Years ago, when I first started developing applications using the Commission Junction (CJ) API, SOAP using WSDL were the technologies in use.
Today, the CJ Product Search API uses GraphQL.
Those familiar with SOAP/WSDL APIs, probably understand the complications involved with using Java Servlet technology to develop applications using the SOAP protocol and WSDL definition language.
This to say, yesterday when it took all day for me to figure out how to request data via a Java Servlet- using the newer CJ Product Search API and GraphQL, I was a little surprised.
As shown in the illustration above (CJ's GraphQL test page), it was not because I was unfamiliar with GraphQL. The Yelp API uses GraphQL, so I had the opportunity to research this technology in 2018.
The problem, I had to figure out how to send the correct data from the servlet to the service, and I could find very little in the way of documentation. Illustrated in the following graphic, some of the tools I use when testing new APIs I want to work with.
Around eight last night, I finally found the answer. Below the response from a successful servlet "GET" request as rendered within the Netbeans IDE output pane.
I plan to provide a demonstration of the CJ Product Search API using GraphQL on one of the QiSoftware Product pages, similar to the Instagram API demonstration.
What will the demonstration of the CJ Product Search API provide? The widget below, illustrates some of the designs of major designers- that will be available when the demonstration application is installed.
Saturday, August 21, 2021
Recent popular browser releases have set new style and site tracking defaults. Shown on the right, an example of the new default HTML radio button. Though the azure blue is striking, I felt it distracted from areas where I use radio buttons, so I decided against the new default style for WiredPages.
It turns out, changing the new default radio button style was not an easy task and I ended up using a CSS workaround I found online. Below, before and after illustrations of the fix I implemented for WiredPages to keep the overall style of the site consistent.
Note, I have not installed the CIA World Factbook interface used in the illustrations above, however the fix is demonstrated on the live WiredPages listed below:
The other issue I wanted to discuss as related to new browser releases, is a security feature that prevents modern browsers from accessing data and information from a referenced site- from that which is actually being visited.
In my case, the problem is mostly overridden by Apache Tomcat configuration settings, enabling the setup of cross domain permissions for the two domains I use i.e., qisoftware.com and hosting-q.com.
My main site of course is- qisoftware.com, however I use hosting-q.com to host many of the programs integrated within the pages of WiredPages (a sub-domain of qisoftware.com) and other areas of qisoftware.com.
If you find you have problems accessing some of the tools on WiredPages, and you are using Firefox or Safari on an iPhone, try the setting features illustrated in the following diagram for each browser type.
Chrome browsers should not present a problem because they use the Apache Tomcat overrides. It is not that Firefox and Safari handle the Apache Tomcat configuration incorrectly, it is more that the setting can be overridden locally.
That said, Chrome today, is the most popular browser and most users should have no problems accessing referenced external site resources from the original calling domain/site if the site administrator has setup the configuration correctly.
The following illustration provides browser market share worldwide data for July 2021 according to StatCounter Global Data.
W3Schools also tracks browser statics, however the data is based on visitors to its site, though still very useful in that it is a popular site.
Privacy and security issues have become very important in the browser developer community, and I have done a lot of research to handle some of the new security procedures that have been put in place. I am always interested in problems, so if you have one with WiredPages insofar as program access or other programs on qisoftware.com please leave a comment and let me know.
Friday, August 20, 2021
One of our favorite side dishes is spiced apples. It is a simple and easy recipe.
After coring and slicing the apples- put everything into a sauté pan. Everything is to taste, so start with less and then add more- if needed. Use the butter to achieve the desired thickness.
We tend to eat this year round, however autumn is just around the corner if you need an excuse.