I'm working on a store right now with 3 level of categories. We've set the 1st level category (mother category) on the left sidebar to display categories as a simple list, once a customer will click on the first level the 2nd level and 3rd level will display but the speed of the site is now very slow as we used API to implement these changes. Is there any way we can make the site load faster?
I'd like to sort my product using the SKU when it display on the product pages. Any advise on how I can arrange the products or sort the products based on the SKU?
Thanks,
Related
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.
I want one of my collection to show the top 20 best selling items in my store in order and I want it to update dynamically.
No idea where to start.
Create a collection in store admin. Add all your products inside and choose "sort by best selling" option.
Loop through this collection in code to display it by setting limit:20 parameter in your forloop opening.
Use scripting code to query all your orders using the Shopify API
For each order count the products sold
Sort the result from most to least
Take top 20 products and add them to a custom collection called Best Sellers
Sit back and profit!
I'm building a filter page, with facets etc, which works as it should.
Now the our customer has a request to, basically "Be able to decide which sorting the items comes out in".
Each product is decorated with a Product Display Order, and is in a Product Line.
We got these example Product Display Orders:
1. Featured Item
2. Core Item
3. Spare Part
4. Utility
And these Product Lines:
1. Hammers
2. Saw
3. Wood
and the sorting is like this:
Sorting should firstly be based on Product Display Orders, secondly by product lines, thirdly Alphabetically.
So all products which is a Featured Item is listed first, and all these Featured Items is then sorted by their product line, and if some product are in the same Featured Item and Product Line, then its alphabetically.
The challenge is: I can't just get the sorting of Product Display order items and product lines as a number on the product, i only got a name/id.
We've thought of Boosting based on if the product are in the different categories, but it seems a bit messy.
OR
See if it possible to have some logic in the Sorting.
Sort by productDisplayOrder:
1. featured, 2. core Item ...
Then by ProductLines:
1. Hammers, 2. Saw ...
Then by Name DESC.
Which way is the best way to have this sorting, is it possible to give this logic to elastic, if it is a match and then sort it. Or are we needed to twist the boosts of product?
Hopefully this makes sense for you.
Thanks in advance! :)
Option 1). Quickest/Best performing solution would be to create new/separate integer fields for productDisplayOrder and ProductLine and then use those in your sort criteria as described (after reindexing and validating the the data is indexed as expected).
Option 2) If you want more nuance than described (eg higher scoring matches can 'break through' the ordering ceiling described) then you can explore using a Function Score Query to implement a custom scoring strategy that takes productDisplayOrder and ProductLine into consideration in generating an overall match score.
Option 3). If you can't change the mapping and reindexing your data, you can use Script-Based Sorting to generate sorting values from the currently indexed productDisplayOrder/ProductLine text using a script (eg Groovy). Keep in mind that query performance will be worse than the first two options.
The Best Buy Search allows to search products specifying a criterion on details.name and details.value fields.
http://api.remix.bestbuy.com/v1/products(details.name="Processor Speed" & details.value="2.4Ghz")?apiKey=YOURKEY
However details is a collection. The query above actually returns all products has a detail entry named "processor" and a detail entry whose value is "2.4Ghz" but not necessarily in the same details entry. Is there a way to create a query that will return only products for which those value and name are for the same details entry ?
Unfortunately there is no way to do this unless the particular detail you are interested in has been exposed as a top level attribute (processor speed has not). To accomplish this you will need to run your query as you have described, and then comb through the results and remove the irrelevant products in your own code.
Using the Shopify API, I am able to successfully pull down orders from a shop, and also post fulfillments to that shop. However, when I update that fulfillment with a tracking number(s), I can't figure out how to add more than 1 tracking number per line-item. I can update a single tracking number at the order level, or just one at each individual line-item level. This can cause an issue when the line item needs to be broken up into different shipments.
For example, say a store sells just one type of hat, with sku 1234. An order comes in for 10 hats.
The order has one line item, with qty 10.
Since I only have boxes that can fit 4 hats each,
I need to send this order in 3 different boxes:
Box 1 - 4 hats, sku 1234, tracking number 700
Box 2 - 4 hats, sku 1234, tracking number 800
Box 3 - 2 hats, sku 1234, tracking number 900
In this scenario I am currently doing a PUT to update the tracking with the 3 tracking numbers comma separated into the single tracking-number element,
<fulfillment>
<tracking-number>700,800,900</tracking-number>
<id type="integer">255858046</id>
</fulfillment>
But it would be preferable to be able to distinguish them as 3 different tracking numbers:
<fulfillment>
<tracking-number>700</tracking-number>
<tracking-number>800</tracking-number>
<tracking-number>900</tracking-number>
<id type="integer">255858046</id>
</fulfillment>
Using the Shopify API, is there a way to get all 3 of these tracking numbers separately tacked onto the fulfillment at either the order level, or line-item level?
This is a known issue and actually messes with some 3rd party integrations we have. There is a patch being worked on ATM that should make it possible to do for both that integration as well as your situation.
All that to say, currently it is not possible. I'd suggest doing 3 separate fulfillments as a work around, but that only works if these items aren't all the same product variant.