product specs and be able to compare between products on the specs - shopify

I run table tennis products website.
I need to add product specification and way for users be able to compare between products on their specs.
Example the following product page : product example
Every blade like above will have its speed and control quality number.
So need to put this on above product page like :
Speed : 89
Quality: 70
And users can compare specs with other products side by side.
I understand I can just input the above spec on product description, but then it does not have compare system,
users will have to manualy open two screens, and thats difficult for mobile users.
Is there any in-build solution in shopify or any app that can do this ?

You can do it but it is not a straight forward way.
Create all additional fields using metafields property of the products. More information - https://help.shopify.com/themes/liquid/objects/metafield
Create a comparison "page" where you can provide 2/3/4 drop lists for products to be used for comparison
Create a template for products that displays the comparison data in JSON notation. More information - https://help.shopify.com/themes/customization/store/create-alternate-templates
As soon as a product is selected in "2", do an AJAX call to the product template in "3". You'll get the required data. Now you can arrange it in any format as you need.

Related

Adding new product with category tree - specific price problems

I installed an add-on for bulk action (called ba_importer v 1.1.24), I upload an Excel file with my data and create a group of products.
I can set the categories' tree or manually add ID of main categories and associated. I tried with no luck to use the tree features (like Home/Products/etc) and so I use all the ID of main category and all the associated. The result is a product with the correct categories set, but with no specific price from the customer group linked to a category.
I tried to edit a single product, remove all categories and set it one by one (set one, save, set one, save etc.) and then the specific price from the group linked to a category appears to the product.
Is there a better solution? I'm thinking about make a personal PHP page that reads an Excel file and sets all the information about the product, but I'm scared to face the same problem with the specific price. 
There is no such thing as "category-related specific price",
if you have specific prices tied to customer groups , these are created as a result of the add/update product action with ps_specific_price DB entries having id_group with your restricted ID.
It is likely that the bulk module acts directly with DB queries to speed up things and bypasses this operation, I've seen this behaviour with those kind of modules in the past.
Since you are talking of a paid add-on, I would definitely seek help from the developer.

Is there an API call to list all available product id's (ID's alone) in Shopify?

I use POSTMAN GUI for retrieving a list of items from Shopify API.
I would like to know if there exists a way to get available product id's alone, preferably as a list of values over a single api GET call. The one I know of is
/admin/api/2022-04/products.json
It returns a list of all product information, and looping over them/traversing the json is not very efficient. I hope there must be an easy way to fetch all ID's alone in one go. Should there be not?
You can add /admin/api/2022-04/products.json?fields=id to the end of your request to limit the output only for a single field or multiply.
Please note that if you have more than 250 products you will need to make more than one request, since the request is limited to 250 products.
You can make one call to the Admin API for all your product IDs using the Bulk Query. That will result in you receiving a URL where you download a file in JSONL format with every single product ID in your store, without the paging or limits of other approaches.

What kind of dynamic content is available in Eloqua?

In Eloqua, can you send out an email to a contact list but version the "hero" image headline for each segment using dynamic content blocks?
And then can you do the reverse, have the main image remain the same, and dynamically populate products below that they've purchased in the past?
For scenario 1, yes that is possible out of the box.
Scenario 2 however is a bit more complicated and would generally require a 3rd party tool to provide this type of dynamic code generation based upon a lookup table (in this case a line item inventory or purchases). Because a contact could have zero or more products (commonly as individual records in a CDO), you would generally need to aggregate or count the number of related records, and then generate your HTML table and formatting around those record values, and be contextually aware if it is the first or last record (to begin and close the table). Dynamic content does not have mathematical functions and would not be able to count those related records - this is something usually provided by a B2C system like SFMC using ampscript or dynamically generated through custom code and sent through a transactional SMTP service. You could have multiple dynamic content on top of each other, but your biggest limitation becomes the field merge, with only lets you select a record based upon earliest/last creation date, or last modified. This is not suitable if you have more than 2 records. A third party service that provides a cloud content module for your email is your best bet.

Dynamic Variant Price while adding variant into the Shopify cart

I have Shopify Store, where customer can design/customise their product before buying it. and based on the design / customisation price of the selected variant may get varied. but I think Shopify does not facilitate to change variant price dynamically while adding into cart.
Is any solution there I might be missing ? Any help will be appreciated.
There are a few solutions none of which are great.
Quantity based
Make the product price $1 and based on the options increase the quantity in order to meet the required price. With a little code you can change the cart to look like it's a single product, but the checkout will not be OK.
Variant based
If the product will have only a few price changes you can create different variants and change the variants based on the selected options. For example 10 different variants for 10 different prices.
App based
You can use an App such as https://apps.shopify.com/product-options to create options that can modify the product price. ( this will add dummy products to the checkout as well )
For Plus, you can use shopify script to edit the line items directly.
If you're not Plus users, you have to do it on server-side, i.e. your backend
submit an ajax request on your custom product page
backend receives the request. Use admin API to create a new product variant on the fly
set the variant price, weight, quantity, or other properties based on your business rules
return response to client
client receives a successful response. use cart ajax to add the new variant to cart
let client continue checkout
Upon order is made, use webhook to update inventory or other information required. But there is a problem regarding variant limit. For each product, you can only add 100 variants.
So you need to create new products when the variant is used up for the product. Alternatively, you can delete the existing variants. But the variants in customer carts will be cleared.
I am doing something similar to what you're doing so I think our approach will be more or less the same. Basically, there are only 2 solutions, either create a new product or new discount dynamically. Both approaches create many dummy/garbage data

Retrieve ISBN from eBay listing via Shopping API

I'm trying to use the eBay shopping API to try and retrieve the ISBNs from listings for books. I already have the eBay IDs for the listings which I'm interested in. Likely that most will have the ISBNs included in the Item Specifics for the listing (some won't, these can be disregarded).
One would therefore assume that retrieving the Item Specifics from the API would give the ISBN as a value, but it appears that the output gives pretty much everything apart from the ISBN. For example, the following API request gives lots of interesting detail about the listing, apart from the ISBN itself:
http://open.api.ebay.com/shopping?callname=GetSingleItem&responseencoding=XML&appid=MYAPPID&siteid=1&version=897&ItemID=EBAYID&IncludeSelector=ItemSpecifics
I haven't had much joy searching the API docs for a solution to getting this particular element from the listing - does anybody have a solution for this? Or if it simply isn't possible to get the ISBN via the API cleanly, is there an alternative method? (This is for very small scale personal use.)
ISBN, UPC, EAN and suchlike come under the productID field.
This field is returned by using the Details value of IncludeSelector. So the url you would want is:
http://open.api.ebay.com/shopping?callname=GetSingleItem&responseencoding=XML&appid=MYAPPID&siteid=1&version=897&ItemID=EBAYID&IncludeSelector=Details
http://developer.ebay.com/devzone/shopping/docs/CallRef/GetSingleItem.html#Response.Item.ProductID
EDIT:
To get the ISBN form a catalogue product you need to use the productID value to make a request to the Product API.
You need to call getProductDetails with the input:
<productDetailsRequest>
<productIdentifier>
<ePID>91515717</ePID>
</productIdentifier>
<datasetPropertyName>ISBN</datasetPropertyName>
</productDetailsRequest>
You can use ISBN10 or ISBN13 as the value of datasetPropertyName depending on which one you want.
http://svcs.ebay.com/services/marketplacecatalog/ProductService/v1?OPERATION-NAME=getProductDetails&SECURITY-APPNAME=APPID&SERVICE-VERSION=1.3.0&productDetailsRequest.productIdentifier.ePID=REFERENCE&productDetailsRequest.datasetPropertyName=ISBN
http://developer.ebay.com/DevZone/product/CallRef/getProductDetails.html