Product pricing based on price zones for a store-pickup grocery chain website - prestashop

I am in the process of building a e-commerce website for a small local grocery chain to allow their customers to order online and pickup at store. I will be integrating with the in-store POS system to pull the category & product data and push back the order data.
As I am new to Prestashop I am wondering if the following setup is possible out-of-the-box:
The POS system uses price zones which can be shared by stores (e.g. price_zone_1 is used by the 3 stores in San Francisco for pricing, price_zone_2 is used by 2 stores in Los Angeles for pricing).
The POS system have a pricezone_productprice table
product_id pricezone_id price
1 1 14
1 2 12
Then there is store_stock table
product_id store_id stock
1 1 98
1 2 45
And the store table has a pricezone foreign key that ties everything together
store_id pricezone_id
1 2
2 1
I need to have a similar setup on the Prestashop side to exchange data and display correct pricing and stock information for different stores.
Is such a structure/feature available out-of-the-box? If not are you aware of any module that might help with this? And finally if nothing is available how feasible do you think this is to develop under prestashop?
I explored multistore feature but as far as I understand that would not do what I am looking for as it separates order history, etc. I want customers to be able to see their order history from different stores in one page.

This might deserve an entire Override for Product Class with a Module. But honestly, you should better do a multishop website based on the zone you want to deliver, then ask the client when he enters the website.
It will cost you 10 minutes and fine tuning instead of hours of dev and lot's of debug.
If you still want to use a Module, just overide Product class and following methods : getPriceStatic and getProductPrice
NB : Another idea would be to consider price by ... country and tell each as a separate one. But this can be dangerous :).

Related

Prestashop, synchronize the local stores with a global store

I have 3 local stores, each stores have one prestashop e-commerce.
65% of their products are the same and the rest changes regarding to the store.
I would like to find the way to create a fourth prestashop e-commerce which sell the products of all the 3 stores, manage the stock and notify the different stores when an order is created.
Each store has to manage their special products ( descriptions, pictures and prices). For the products which are the same between each stores, the price, description and pictures are exactly the same.
Is it possible?
Thanks!!
EDIT
By local stores, I mean real physical stores. These stores impemented in three differents places have a online store on the subdomaine : mydomaine.com/city1 , mydomaine.com/city2 , mydomaine.com/city3.
For instance the store 1 has the product 1, the store 2 the product 2, the store 3 the product 3.
And the online site 4 should have the products 1,2,3.
I would like to create a fourth online story which regroup the products of the three other online stores. The stock on the fourth online store for the same products, should be the sum of the product available one each local store.
For instance, the store based in the city 1, could add a new special product ( price, description, stock) in its online store ( mydomaine.com/city1). ( special product : product only sold in one location ) This product should be directly accessible on the fourth online store ( the local managers have no access to the fourth online store). The thorny point is here : if a customer order on the fourth online store, the local stores which have the products involved in the customer order should be notified to send the products. And If a product is sold on a local online store ( for instance, mydomaine.com/city2) the stock of the fourth online store should be updated.
The stock for each online store is updated everyday to match the store stocks. For instance, the store in the city 1 will update every day the stocks of their products available online regarding to their sales of the day in their brick and mortgage store.
Prestashop includes a MultiStore functionality.
You can create a single website with 4 different shops. You then can import all your products and link those products to your shops (You can link a product to one or more shops). You can manage prices and stocks independently for each shops as well.
Please let me know if you have more questions on the subject.
Here are some links:
Managing Multiple Shops
Advanced Stock Management

CSCART: Wholesale functionality, quantity steps

Long shot here but does anyone know if CSCART can provide a customer with a trade account to only purchase products in increments of 6 while keeping it ad 1 for non trade customers.
By default you can not achieve this on the same storefront.
So I see two possible solutions:
1) Use 2 different storefronts (for wholesales & retail customers) - in this case you can set separate setting values for each store. Moreover in this case you will be able to set different product descriptions/price rules etc.
2) Make a modification.

How does the backend of a e-commerce looks

I would like to know how does e-commerce sites maintain their databases?
Let say they are selling a product name X from a marchant M
Now the merchant increases or decreases the cost of the item. It is manually edited in the e-commerse backend ? Is this part automated?
If there is an id associated with the item, is id given by the merchant or the e-commerce site?
There can be 10 same product items provided by 10 different merchant. Now the specification of the product is same but the amount varies from each merchant. if let say every merchant change the cost of the item and tell us the cost. How can we in automated fashion edit the backend in such a situation
The shop owner with the website is adjusting their prices independently of the wholesaler. This can be done manually in an online product admin interface, or it can be done through some kind of data feed of all products like XML or CVS. The data feed can be coming directly from a retail point of sale system. If the wholesaler raises the prices - the shop owner still has stock on hand of the product they bought at the previous price. When the shop owner takes delivery of the new stock and enters that inventory into the system - at that point they would adjust the prices.
A product has a UPC code (or EAN if in europe) which is universal for that product. For example all products on Amazon have a UPC code which is how they organize different sellers for the same product
VERSUS a SKU or Product ID - which is unique to the shop owner. That is what the shop owner uses to track inventory and prices. The universal UPC plus unique SKU is how amazon determines the product that is sold.
In your last example - you are talking about functioning as a "marketplace" like Amazon.com Amazon lets merchants determine their own prices - but very important to know the price is ranked as price + shipping cost. Because some merchants will lower the product price to try and come out on top but then they inflate the shipping cost to make up for it.

Calculate available inventory in OpenERP

I am developing a custom module for OpenERP 7 that will track hardware installed in various venues. I have the total stock levels recorded in the Warehouse module, but I want to be able to calculate and display amount of each product that is available and the amount that is currently deployed. I'm having trouble figuring out how to do this. I have been looking at this rent module and they seem to do something with stock picking and workflows, but I'm new to OpenERP and not really sure how that works.
The other way I was thinking of was to loop through the deployments and simply calculate the amount of each item, and use functional fields to display it, but I'm not sure if that would even work, or how to do it without hard-coding all the various items.
Have a look at product.py in the stock module, specifically the get_product_available method. This allows you to pack various filter parameters into the context and then it calculates and returns stock as the net of inbound and outbound stock moves.
This method also gets used in the functional fields qty_available, virtual_available, incoming_qty and outgoing_qty. There is reasonably good explanations in the help comments in the module.
In OpenERP, something is in your stock when there's a stock move (object stock.move) with that product to your physical location as destination location, defined on Warehouse object for "Inventory Location" field. Let's say you have recorded 2 moves:
Move 1
Source Location: Supplier
Destination Location: Stock
Qty: 2
Move 2
Source Location: Stock
Destination Location: Deployed Products
Qty: 1
If you open your products list you'll see that you have 1qty of your product available. OpenERP sums all the moves for that product to and from your Stock location. So if you have no other specific needs, recording moves to some sort "Deployed Products" location should be enough.

Shopify / Multiple tracking numbers per fulfillment

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.