Disadvantage of customer sharing in PrestaShop 1.5 - prestashop

I am thinking of modifying the authorization feature of Prestashop, wherein multiple shops can share customers even when shops are not within the same group. For example, when a customer logs in the default shop, after checking out his cart he can go to the next shop without the need to relogin again. More convenient for the customers, I think.
My question is, will that pose any security threat or any other disadvantage to my shops and to my customers? As of now I can't think of any, but I want to know the point of view of PS experts first before I dive into the codes.
And btw, if I am to start editing my shop, is there any method that I can use so that I dont need to edit the core codes?

Use prestashop's override if you really need to change core
http://doc.prestashop.com/display/PS15/Overriding+default+behaviors

Related

How to add new field tab in prestashop product backoffice?

I want to add new field in prestashop product backoffice . This tab is same description tab.Please find attached screenshot what I need .
Thanks
Prestashop overrides their core (all their code files) every time you use the one-click-update in order to prevent developers to mess with their core.
Any modification on this page will be overridden on your next update unless you are willing to update the files manually with FTP and the database via PHPMyAdmin (or with MySQL workbench via remote connection) without overriding anything related to this interface.
I strongly advise you against this as you'll most certainly face incompatibility between your version and Prestashop core pretty quickly.
If you think your request is good for the whole community, you might try to pull a suggestion here: http://forge.prestashop.com/secure/Dashboard.jspa
Do not put to much hope on this as Prestashop team is quite busy.
If it's something specific to your shop, you'll need to hire a freelancer to as suggested by Raghubendra Singh in his comment. I'll add to his comment that it will need to be in a custom module. You might try to pull a proposal on this website: https://www.upwork.com/
If you do so, make sure that the developer you hire have a good experience both with PHP/MySQL and Prestashop itself (as it is a complex system). Even if you hire a developer from Filipino or India, you'll probably need to invest at least a thousand US dollars in order to have something sharp.
Also, please note that you'll need to hire the developer once more at least for every major update (by example 1.7.X => 1.8.X) to fix the incompatibility with Prestashop core.
the simplest way is to use an addon. For instance, this one.
It allows adding an unlimited number of tabs, some of them have a predefined structure (contact form or attachments). Others are changeable. So it's possible to add any content you need: additional pictures, video, text, etc.

What`s the best practice for Magento to update stock from code

I have to integrate my webshop with an external system. This system provides several functionalities, described in their API. This is what I want to do:
Import/sync products (this is available as CSV via request)
Update stock of products (also available as webrequest)
So I have to hook into the Magento stock check and I want some script which updates the products like everyday.
Where should I implement my changes? What is the best way to do this? I can imagine Magento already have some API stock functionalities, but can`t seem to find the right documentation.
Thanks in advance!
Firstly you could use the Magento web service via either SOAP and XML-RPC:
http://www.magentocommerce.com/api/soap/introduction.html#Introduction-SOAP
There's an API for updating stock levels:
http://www.magentocommerce.com/api/soap/catalogInventory/cataloginventory_stock_item.update.html
However, this is usually quite slow and can take some time to update large collections of products, in which case you are better going for a solution which uses the Magento object model directly, or something custom.
Depending upon your level of development expertise there's a few options available. One library to checkout is Magmi:
http://sourceforge.net/apps/mediawiki/magmi/index.php?title=Magmi_Wiki
this is useful for updating lots of product data / stock levels quite quickly.
If you do no require an automated solution, you could always use the standard Magento import/export profiles to import stock levels from a CSV file, a quick search for 'Magento Import Export Profiles' should give you a good starting place:
http://www.seenbest-web-design.com/techclub/importing-a-csv-of-products-to-magento/
http://www.woolleydesign.net/2011/02/updating-store-inventory-in-magento/
I am fully functionally using Magmi now. I have written a plugin to automatically create configurable products, so if anyone is ever interested let me know.
There is already a plugin to process configurable products, my plugin is dependent on that plugin.
Basically, you will only be able to create configurable products if you especially have added this to your CSV, with a column named 'type'. In the column type you can set simple or configurable. With my module that won`t be nessecary. By some logic I automatically recognize the simple products and create a new configurable containing those products.
A little explanation on why I need this:
The stock system of our client updates a list of product (CSV) every few hours, containing entries of products. They sell clothing, and every size, and every color is a new entry. So one product can have 10 entries, entry 1: t-shirt green, size 12; entry 2: t-shirt green, size 13, etc.
I explain this, just in case anybody would ever need something like this, my plugin will probably help you. It will although need a few modification for your situation, since this is very specific to how your list of products is composed.
Anyway, thanks for your help!

User friendly and restful (rails 3)

i am a rails programmer who is on to his 3rd project now (new of course).I am looking for an answer to a general question about Restful architecture. I am sure i am doing something that has a good established answer already.
In restful approach we expose resources but some times this approach feels a little Non user friendly. For example i can expose a product via a show method and then i have another resource called sales that i can expose via product/:id/sales show template to show all sales for a product. But i am taking the user through an extra click here. The ideal will be to show product and all its associated sales on one page itself. But that is a violation of the Restful rule.
I just wanted to ask that are these rules generally broken to make the site user friendly? Being a new comer i dont want to adopt ways that are non ideal so i thought i should ask this question.
Thanks in advance.
Adding in the sales for a particular product would not be breaking any constraints from the RESTful architecture. You have the product ID in the HTTP request so you can just also get the sales for that product. Your separation of concerns should not be affected and you don't need to store a state to get this information. Just extend the model that you return with the view.
It seems like you are more concerned with straying from the convention over configuration that Rails promotes. This extension means that your model will not correlate with only one table in your database, but that is fine. The conventions are meant to reduce the configuration work that you need to do, not restrict your functionality.

Could Prestashop be used to build a craigslist clone?

I'm not so much interested in actually doing this as knowing if Prestashop has the power to allow members to create their own products, classifieds, etc. I've read some articles on Prestashop and played around with it a bit and it looks like the shop owner has to do all the creating and the users consume.
To make client add there own products etc. using prestashop you need to promote all of them at least to managers and grant access to back-office.
But prestashop is just framework as all CMS are. If you have plenty amount of time it is possible to make everything using prestashop source code...
... question is: is it worth?
Especially with the addition of the Webservice in Prestashop 1.4 onwards there's no reason why you couldn't write your own simple "control panel" to give ordinary users some capabilities for creating and managing their own "products".
Obviously you would need to add your own permission scheme (including "ownership") for the products they created, as well as creating the actual product create/edit front end for them.
Definitely possible but non-trivial.
Paul

Setting carrier per product

I'm working on a store that has two types of products: perishable food and general merchandise. The food must always be shipped overnight via FedEx, and the other merchandise must always be shipped via USPS. If somebody orders products from both categories, they must be shipped separately.
Do you know of an existing module or configuration settings that would allow for this?
If not, it sounds like a custom module would be the other solution. In this case, what is the best approach? I'm thinking it would be splitting the order into a multi-address shipment, using the same address for both but with different shipping methods. Unfortunately I'm not sure how to do this programatically, so any tutorials/samples/resources would be greatly appreciated.
Probably the sanest way to handle this would be to create two orders per product type, each shipping with a different carrier to the same address. This also IMO makes more sense from a stores tracking perspective as you can handle each independently from each other.
To get you on the right track(since Magento is especially cryptic in this part of itself) you should read the Inchoo programmatically create order in Magento post and by the same author Programatically create customer and order in Magento with full blown one page checkout.
Basically as I see this going is:
Get the customer order
Itinerate through each product inside the order and split it up in two arrays for each product type
Create a separate order for each product type and use the different shipping methods for each.
You will probably have to extend a some controllers OR do it the non-standard way and use helper functions for this, the hard parts will be integrating the payment/shipping modules inside your order process. Going this way will have you creating the full checkout process as the one page checkout Magento provides won't really work and is too much pain to get to work because of the way it uses AJAX.
Also another alternative is to hook in to Magento's pre-create order events and create the orders there using already defined order data split it up in two orders, but this is something I never heard or saw implemented at the moment so you'd have to do it "blindfolded" so to speak.
An easier approach would be to use a custom field that defines your product's shipping method, this way you just add that and don't care about custom orders. You just react with that, however tracking will become mostly impossible IMO.
Over-ride the Free Shipping module.
You can setup a sales rule that applies to certain products and makes them 'Free Shipping', leaving the other products to your chosen main shipment provider.
You will need to see how this works, however, the point is that Magento does have something built in to split an order into two shipping categories, albeit only a sales rule on free shipping. But you have source code...