Wholesale Markup

It seems bizarre to me that cs-cart won't import a wholesale price and be able to automatically markup from the cost based upon the user group.

If it can reduce the retail price based on user group, shouldn't it be fairly simple to include a new "wholesale price" field and be able to modify the promotions module to mark UP instead of down and to do it from the wholesale price instead of the retail price?

If anyone knows of a module that will do this, or if you have any leverage with cs-cart on this subject, it would make life so much easier and our pricing so much more powerful.

PLUS it would set cs-cart ahead of other commerce carts on the pricing subject.

Pricing example:

I have product X that Retails for $125.00

I sell it everyday to the public for $100.00

My cost is $50.00

By changing the promotions rules to base on cost instead of retail/price I could simply markup my items for wholesale by a fixed percentage.

Currently I have different markups for different categories (hundreds of categories).

Markup on a clothing item might be as much as 200% but ammunition might only be 15%

So if I'm giving my wholesale clients a 30% price break....I'm losing money on the ammunition.

By changing the pricing structure to base from cost and mark UP for wholesale clients but to act as cs-cart always has for regular customers....that would be phenomenal!

I'm definitely in need of this addon functionality if anyone knows how to program it.

Please feel free to contact us here for a quote.

But you can do everything you want by simply using a different 'basis'. I.e. retail price and then use promotions to discount. I.e.

Price: $100.00

List price: $125.00 (will show a 20% discount)

Usergroup prices:

- wholesale - 25%

- frequent buyers - 15%

- repeat customers - 10%

You can use our EZ Manage Discounts addon or we can do a custom import from a CSV for pretty cheap. On the custom work, then it could use your 'cost' as the basis and calculate the various prices. But from what you describe, I see no need to use promotions at all. You just need a prices import utility that can tailor the calculations to your need. Feel free to click the 'get a quote' in my signature and provide your requirements. We'll be happy to get back to you with a fixed-price bid.

Everything has to have a 'basis' and cs-cart decided that retail price would be it and that promotions would 'discount' as well as other prices for usergroups rather than 'increment'.

But you can do everything you want by simply using a different 'basis'. I.e. retail price and then use promotions to discount. I.e.

Price: $100.00

List price: $125.00 (will show a 20% discount)

Usergroup prices:

- wholesale - 25%

- frequent buyers - 15%

- repeat customers - 10%

You can use our EZ Manage Discounts addon or we can do a custom import from a CSV for pretty cheap. On the custom work, then it could use your 'cost' as the basis and calculate the various prices. But from what you describe, I see no need to use promotions at all. You just need a prices import utility that can tailor the calculations to your need. Feel free to click the 'get a quote' in my signature and provide your requirements. We'll be happy to get back to you with a fixed-price bid.

Everything has to have a 'basis' and cs-cart decided that retail price would be it and that promotions would 'discount' as well as other prices for usergroups rather than 'increment'.

No not really. And definitely not easily.

My ammunition (and hundreds of other categories) has a much lower markup than clothing. Clothing is about 200% markup while ammunition is about 15%.

So let's take a item which has $10 cost and mark it up 15 % and 200% and we get ammunition with a selling price of $11.50 but a $10 clothing item would sell for $30

Now using your suggestion of doing it the way cs-cart is already setup and discounting my wholesale clients 25% the ammunition would be selling BELOW COST at $8.63

The clothing item would be selling to wholesale clients for $22.50

YES I could setup a different discount amount for each individual category for both the retail customers and the wholesale customers.

But I have THOUSANDS of categories and nearly a hundred thousand items.

So that's not a reasonable, logical, feasible or rational solution.

@tbirnseth,

I want to be able to import my cost, then setup a flat markUP amount for my wholesale clients.....while still being able to use promotions to discount to retail customers.

If the promotions bonus would allow a positive number greater than 100% that would remedy part of the issue.

If I were to enter my cost in the "Price" field, enter the Retail price in the "List field" and then be able to use the "product discount" bonus set at "to percentage of original price" and mark UP say 115.00% for example.....that would fix the final price issue at least.

Discounts simply do not work for wholesale. It needs a separate price or a markup. Not a discount.Else we would be selling below buying price as soon as we lower retail price or if buying price increases. Often margins are slim. i.e. we buy for 100 and sell for 110. While retail is 180.

I'd like to see a number of Custom product fields that you can use how you want.

I'd like to add my own product fields to the database to store additional product data like cost prices in different currencies.

My 25% for wholesale was an example amount, not to correlate to your specific requirements. In that case, you'd use a wholesale discount amount that is less than the cost markup for ammunition products.

The discounted price is applied per product within the usergroup pricing.

Again, using a csv as a custom import using either a fixed price as a basis or a price based on a calculation from cost would be the way to go.

So in your case I would propose a custom csv import with fields of:

Product code, Cost, Wholesale, SomeOtherGroup, SomeOtherGroup2....

Product code would be looked up to see what category it is in. You would have a setup on your site to have a markup by category (or default if none found). The product would have a 'price' determined by highest markup of cost defined by the categories it might be in.

The Wholesale, SomeOtherGroup, SomeOtherGroup2 columns would be usergroup names. You could have 0-N usergroups defined/applied to each Product code.

The cscart_product_prices and cscart_ult_product_prices tables would be adjusted appropriately so that standard 'Price' is the retail price based on cost + markup and the Wholesale and other group discounts would be a percentage (or absolute) discount from retail price.

You would have a one-time import/setup of the Category markups and a default markup to be used when none are found.

Beyond that, it's all about calculating the 'price' and then applying the discounts to the pricing tables.

We have created an addon for this functionality.

Once cost is established, you can also manage cost based pricing based on category. I.e. you can apply the pricing for usergroups for all products within a category.

You can set cost via the Admin UI or from import of CSV.

You can also set retail price from CSV or any number of usergroups by name.

Please see this post for details and further references: http://forum.cs-cart.com/topic/44741-addon-ez-cost-based-pricing-and-profit-reporting/

Any feedback is welcome.

@tbirnseth

I am already able to import a file for Quanityt Discounts and base my pricing as markup from my cost for wholesale groups, and a separate price for retail groups.

But that is cumbersome, inefficient, time consuming and cs-cart keeps freezing during import of just a couple of thousand Quantity Discount products being imported (I have about 100,000 total items)

So I have to import about FIFTY separate Quantity Discount csv files in order to get my 100,000 product prices imported into cscart.

FIFTY!

A simple promotions customization to allow markUP from cost for wholesale groups, and a mark DOWN from retail for retail customers, would be the perfect solution.

A partial solution would be to customize the promotions module to look at the selling price of the product, filter it through the group the customer is in and then adjust that price accordingly. Then I could simply use the "Price" field to import my actual cost and mark UP or DOWN according to the group.

Simple, easy, fast and no freezing up during imports

But that is cumbersome, inefficient, time consuming and cs-cart keeps freezing during import of just a couple of thousand Quantity Discount products being imported (I have about 100,000 total items)

That's a server issue not a CSC issue.

You must be calculating price within your CSV and then applying the discounts. Because cs-cart standard ONLY does "discounts on price" and has no concept of cost. That approach is what I originally recommended for you.

Note that what I'd sent you did specifically what I thought you requested. I.e. it took cost and calculated price (percent or absolute increment) and then had columns for each group name (and optionally Store) where a separate calculation of the discounted price for that group was applied FROM COST. I also provided you the ability to manipulate products by category (for those products that have a cost set) so you could say things like:

Set price for all items in category X to 15.3% increase from cost and wholesale group to 10% from cost.

The import would ignore columns that it didn't recognize so you could use the same CSV for import of all your other product data and then use the same file for the cost import. Note that when doing the Category manipulation it won't accept a CSV with header that contains both Category and Product code in it. CSC will ignore what it doesn't know about and the import I wrote for the addon will also ignore columns it doesn't know about. I would recommend that you use a single method for importing anything that has to do with Price.

Since this addon is limited in scope (versus the standard EXIM process) it will probably NOT be bound by the same memory limitations and the general import.

I would agree with tool that if you are dying after a certain number of import rows that you are running out of memory.