Scheduling Price Changes in Shopify Plus where my ERP can't - shopify

I have a retail website built in Shopify Plus that is fed by an ERP. A couple times a month at least, I have sale events where some (not all) items get varying levels of discounts (I'll call this my store-wide sale), but my ERP doesn't have the ability to schedule temporary price changes.
I also have unrelated discounts that happen at the item level outside the store-wide sale cycle, so the solution needs to be able these to the store-wide sale price for that item and choose the lower of the two.
I can manually change all my prices with immediate effect in the ERP to start the sale and then manually do it again to put them back to the way it was, but that's time consuming, and normally needs to happen outside business hours. If I change the price in Shopify, the ERP just over-writes them.
Is this possible? Is there a solution short of implementing a PIM that will allow me to schedule my price changes in this way?
I was thinking of potentially keeping my store-wide discounts in a metafield and/or a tag on each item and using a script to do the math, pick the best price, and change the price at the line level in cart and maybe Javascript to over-write price displayed on the PDP and PLP to show that same price.

I realised a lot of merchants needed this, so I built an app for this. I'm sure it will do exactly as you need.
https://apps.shopify.com/simple-simons-price-scheduler
If you need additional features, just submit a request via the contact form. I'm pretty quick to implement features if I feel they're beneficial.

Related

Shopify - Validate cart items at checkout?

A product in my store (e.g. a fine art print) has a base price of £20 and it has multiple customizable options (size / framing) that are added as additional items to the cart (e.g. Small [£0] / Medium [+£10] / Large [+£20] or Unframed [£0] / Framed [+£10] )
I have to do it this way because some products have more than 3 variant options (Shopify only supports 3)
These additional items that represent the customization options for the base product are added when the customer adds the base product to cart, but the additional products representing options are hidden to the customer in the cart.
At checkout however all is revealed, the base product appears with 2 additional items along with their additional prices. Not ideal but OK!
However, it occurred to me that there's nothing stopping a tech-savvy nerd from grabbing the variant ID of the additional items and sending a POST request to /cart/update.js that removes them from the order during checkout.
The customer just reloads the checkout page and they've just halved the price they have to pay!
I need to prevent this from happening.
I don't suppose there's a way to validate all the items in the cart when the customer requests the checkout page?
If that's not possible, how do other Shopify stores get around this issue?
If you are on the Shopify Plus plan there are two things you can do:
During checkout validation - use Script Editor to check the cart contents and if it's invalid, set the base product quantity and additional products to 0. This will prevent customers from checking out.
Post checkout validation - use Shopify Flow to cancel the order after it's placed and if it's invalid
But that's a lot of development, especially when you are not familiar with it, it will be hard to go through and make it work as expected (covering all edge cases). It's possible to create a such script but analysis of all possible scenarios and writing a code for it will take some time. If I were you I would consider an app that creates bundles as a single item. Adding such a bundle to the cart takes a few seconds to process as the app is making some admin API calls in the background but it solves your problem. I cannot promote any paid solution on StackOverflow but you will easily find something - there are plenty of solutions in the app store.
The decision comes down to your estimation + possible change requests and fixes vs. the cost of the app on a yearly basis

Shopify changing product price for variation by app

I am a shopify partner, I am trying to get around the the variant limits of shopify by coding an app and also because my client has a complicated formula for calculating the price. I don't have a problem with the part that adds the information for my variants to the order, however when I want to modify the price based on the user selection, it doesn't seem an easy task to do.
I came across couple of apps which does the same thing by adding a new product or variation which is not optimal for my use case, is there any app that does the job without adding extra information to the database, if so, how?
Qualified Yes
Unfortunately, Shopify doesn't give us a lot of options to edit prices of items dynamically. Here are the two options that I know of that will allow you to adjust the price of a product directly - however, both have limitations.
Using Shopify Script Editor
If you're working with a Shopify Plus merchant, you can use the Shopify Script Editor to dynamically adjust the prices of products, provided that the direction you adjust is down. You cannot increase the price of a product using the script editor - so for your use case, the list price would have to be the most expensive possible price that the item sells for, which you would then discount appropriately using the app.
Using draft orders
Using an app, you can use Shopify's Draft Order API to create an order with custom discounts and/or create completely custom items that are independent of the products set up in the product database.
The basic flow for this is that when the customer clicks 'checkout' you halt the normal navigation, send the cart contents to your app, create a draft order with the appropriate pricing, then supply the front-end code with the draft-order checkout/invoice URL so that you can send the customer there instead of the normal checkout. This has several limitations, however, including that prices of existing products can only be discounted, not increased, and the fact that Shopify will not allow a customer to use discount codes on a draft order invoice - once an order is set up this way, Shopify's assumption is that all prices are final.
Disclaimer: Sorry if someone sensible doesn't like a response with a link :) I'm not related to this app I'm just a user.
On a project with complex pricing, we use the app Wholesale Pricing Discount by Wholesale Helper we liked because is easy to import multiple pricing by-product and relate it by customer.
this app does not multiply the products, they use customer tags. maybe that can give you some guidance.
An important rule on Shopify is you can't increase the price by API on an order, you can just reduce i

Shopify update the inventory for the custom bundle

I am trying to create a bundle for the Shopify site. I do not want to use the Shopify app to create the bundle. Product A has 30 variants. A customer has to buy 6 quantity of variants at a time. It could be any 6 variants. How can I update the inventory for all the variants when the checkout is done?
You don't update inventory, Shopify updates inventory. Your job instead is to ensure the correct number of variants go into the checkout. If you have trouble with that, you can always help yourself out with some clever product manipulations. Another solution is to listen to the checkout and examine the products sold. You can then alter inventory levels to suit your needs.
Almost all the bundle Apps do the same thing. You can try them out and see if that squares your circle. I made one of the original bundlers whereby I had it so in a bundle, made of N products, the merchant could tag each variant for a specific quantity, and then the customer would be buying those specific quantities when buying the product. I would use Ajax calls to check quantity live, and when the product was purchased I would then deduct the right inventory quantities because the product itself had infinite quantity.
That was very sophisticated and worked most of the time, but completely messed up when customers would SIT on the cart. Inventory levels would change, and valid carts at the time would become stale, and inventory would be messed up, resulting in overselling stock. Me bad. Shopify bad. Bundling bad. With Shopify Plus, all that kind of went out the window, and bundles are much easier. Without Plus, you gamble!

Can we override inventory check in BigCommerce

I want customers to order the product even if it is out of stock, however I want to keep the Inventory tracking option ON as well. So for example if I have a product with 100 items in the stock, if someone orders it I need to see how much left in the inventory and on the other hand of product is out of stock, customer should still be able to order it. Is there a way we can achieve this while overriding any API?
We got it to work by using ajax and javascript. Basically we replaced the text that is generated by bigcommerce for inventory with a little script that checks inventory through our ERP. We then turned off inventory tracking for all products and backorders are now available. I wish I could post a few lines of code to help you, but the script is specific to our database. You can still use all the other features of the API (order import etc.), but you are not using the api for inventory tracking.
Hopefully this gets the wheels turning.

"Dynamic" Pricing System

Soon I'll be working on a project that amounts to what is essentially an e-commerce app for configured products. This question is about ways to implement pricing schemes that can change from day to day, so we want to get the pricing logic out of code and into a database, but not in a way that causes the database to do all the work.
The basic idea is this, there are 5 attributes. You pick an option from each of those attributes. Then you start adding products to your cart. All the product you add will have those 5 attributes tacked onto them (the attributes will affect the pricing). Once you've added a product, you can apply modifications to it (the attributes will also be applied to the modifications).
So, what we've got at this point is a product (which has a fixed base price) with some information about it (that will modify the price), and zero or more modifications (which has a fixed price) and some information about them (which will modify the price). Modifications can also incur additional charges. For instance, if company A uses this software and they price their items using: BASE_PRICE + $50 * NUM_WHIRLIGIGS and the item has a modification that adds a WHIRLIGIG, that will have to be reflected in the price.
Do you know of any examples of different pricing systems that I might find useful when determining how to set this up? Do you have better ideas?
My current best thought is below, you can skip it if you're not curious about the particulars of the method and just want to get right to the answering!
For any given item (or collection of items) the company could use a special interface to set up pricing formulas which would then be interpreted and evaluated at run-time.
So for PRODUCT_A, the company might put in something like BASE_PRICE + WHIRLIGIG_UPCHARGE * NUM_WHIRLIGIGS. And the software, when it comes time to price it, would look at how many WHIRLIGIGS the item has, as well as how many WHIRLIGIGS are added by any modifications.
Does anyone have experience implementing this kind of interpreter? How did it turn out? Was it difficult/troublesome?
Thanks in advance for all the awesome input I'll sure I'll get. :P
Typically, this is usually handled with product bundles which have components. So a product with 5 additional subcomponents would not be base + 5 * addon, but SUM(base, addon, addon, addon, addon, addon).
So your product table may either be self-referential or there is some kind of link table which says which sub-products are allowed to be attached to which products.
In my experience, pricing is usually stored on a product/customer or contract basis, so that's another table.
Then the actual orders themselves contain product bundles. If the order is a quote, then the pricing is frozen (up to the expiration of the quote).
When an quote or order is turned into an invoice, at that time the pricing is either locked in from the main pricing or the quote, depending upon the pricing timing paradigm.