I'm interested in writing a Zen Cart payment module for a certain payment-gateway for people to download and install in their ecommerce website. My experience with Zen Cart is minimal so I don't know where to start. I checked the FAQ section on Zen Cart's website and I only found completed modules, no code examples of how to write one from scratch, or how to deploy it. Could someone possibly give me some example code or teach me the basics involved?
Your best bet is to download other payment modules (there is a list here) and see how they work. Developing payment modules is such a specialized task that I doubt anyone has written documentation for it. I am sure you can find a module with well-documented source code.
Your approach really depends on the API/interface the gateway provides. If you look at the built-in Linkpoint module, it just uses cURL to communicate with Linkpoint. If you look at Beanstream INTERAC (in free software add ons), it uses cURL but it also expects a couple of callback URLs to be provided. There are other models too - your best bet is to get an understanding of what the gateway wants, and then look for an existing module that also uses this communication model.
Related
I have a purchased product called Multiscraper (MS), which is basically built on CI 2.1.3, and is a webpage scraper for various shopping carts.
So, why do I want to use vqmod (of something else that can bring about similar results)?
Because I have modifications and additions I want to make to improve the functionality of MS.
Why do I not make these changes in the same file?
Because the developers of the product post updates to their product which may offer improvements. If I start modifying the original files directly, it will become very difficult to manage these updates when they arrive.
I am hoping for a way to modify these files with only the functions I want to improve upon.
If it can be done with VQMOD, then it will be much easier to debug and fix things after an update.
So I tried installing VQMOD and the effects only affect the \system\core and nothing else.
How to manage it? Anybody?
NOTE: I am aware that CI has functionality to extend classes. I posted another question on that subject here: How to extend classes in purchased product (Multiscraper) built on Codeigniter 2.1.3
No there's no version of this for codeigniter but you have an integration guide here
https://github.com/vqmod/vqmod/wiki/Integration-with-Other-Platforms
I have been working on Magento for the last few months. I want to develop modules in Magento but my question is how can I start to develop for it?
1) What are some of the basic needs to create a module?
2) What type of xml files settings need to develop module and why?
If someone could also provide a diagram of the overall architecture of a Magento module, that would be great.
You can find here a nice tutorial: http://www.smashingmagazine.com/2012/03/01/basics-creating-magento-module/.
This one is nice also: http://code.tutsplus.com/tutorials/magento-custom-module-development--cms-20643.
There are a lot of resources like this online. If only there was a tool to search for them...
If you are a beginner, you can use a module creator.
You will use it even if you are an advanced magnento developer because you don't want to do the same thing over and over again.
I can recommend you this one: https://github.com/tzyganu/UMC1.9. It's pretty advanced and does a lot of stuff, not just a simple module.
Or this one. http://www.silksoftware.com/magento-module-creator/. This has the advantage of being on online and you don't have to install anything to use it.
I will start a little project with a shopping cart. I will need to make several modifications in the shopping cart.
So my question is "Which is the best PHP open source Shopping Cart" to work with and easy to modify.
Give me some clues.
Best Regards,
Prestashop
Having worked with virtually all major open source e-commerce platforms, this is by far my favorite. It's not as powerful as Magento, but it's very easy to learn how it works, create/modify modules and design templates. There's also a very active community and it's developed by a company that releases it as OpenSource, so it's being constantly improved. The new flagship version 1.4 is almost out (it's at RC5 right now).
Other alternatives are:
Magento: It's built using the Zend Framework and it's heavily MVC. If you're familiar with the Zend Framework, this might be a good solution for you. It's a lot more difficult and has a much steeper learning curve than PrestaShop.
TomatoCart: This is a fork of osCommerce 3.0 beta. The creators have tried hard to improve the platform, but osCommerce has a lot of rotten design and it's a mess to extend. I've tried creating a couple of modules and had many problems. There isn't much documentation to help you and the community is not very active.
VirtueMart: If you are familiar with Joomla, this might be an option. If you're not, you should stay away because you might have a few problems setting everything up correctly and integrate this component with your template.
osCommerce: Just stay away from this...
Magento is an easy leader at the moment. It's got lot's of up-to-date features and an easy to modify architecture. The downside that I've seen mentioned in other forums is that it's more suitable for technically minded people so might not be good for a beginner.
Zen Cart
I've built a few (3 or 4ish) sites using zen cart. It's free, and it does waaaaaay more than anything I've ever needed it to do.
I've also used Squirrel cart. It's not free ($170), but it is easy to implement and has great support.
I have used both Magento and OpenCart and I can say that Magento wins hands down in terms of :
available extensions and modules
search engine optimization
wide store management possibilities including products’ comparison
wish lists and smart customer accounts.
Effective multiple store management is Magento considerable advantage.
Concerning Open Cart, it has some benefits in terms of easy installation, as it's quite lightweight in comparison to Magento.
If you are planning little business without rapid development in the near future, OpenCart will be quite enough for you.
Magento is really demanding in terms of hosting, investment, efforts, so it better suits large size stores.
Like said above OpenCart is lightweight and simple to use.. recommended more for small stores and beginners..
Magento is way ahead and has larger extensions than opencart. magento is more technical to use.
For while now I have been using ezpublish as a framework, and CMS when my web projects are based on PHP, and I must say, I have grown accustomed to it because of its flexibility for most scenarios.
However, I've had to build e-commerce sites now and then, and ezpublish includes a webshop that caters for the e-commerce needs of your installation, and of-course with all the tools you need to extend, should you need to.
Is it worthwhile and optimal to use the inbuilt webshop for an e-commerce solution, or should I rather go with an all out e-commerce solution like Magento, which has made a significant impact in that sector?
Some have made the choice of using both solutions, connected with each other ( www.ezgento.org ). Can be achieved mostly due to the very open architecture of eZ Publish. I do not have enough insight on the Magento side, so i can not tell whether it is easily "pluggable" too.
I know for fact that some ez Publish Community members are building large-scale e-shops with eZ Publish, either as a pure Content Management tool, serving content and only content to dedicated ecommerce tools, either as an integrated solution, then relying on the built-in webshop module.
I am sure you would get a fruitful discussion if asking your question directly in eZ Publish's community : http://share.ez.no/forums
Hope it helps,
Cheers,
Magento is great. It's chock full of features that you would normally pay a lot of money for in a shopping cart (or spend an eternity implementing yourself). Mostly anything you don't have in the base installation you can get from the community.
But it's extremely complicated. Expect to step a lot of time setting up your store, as the default install is not ready to go. Expect to spend time adding a template, which will take much longer than you expect. Expect to stretch your PHP skills in ways that you cannot anticipate.
Generally, Magento is not the "fast" option, nor the "easy" one, just the good one. If none of that dissuades you, it's a great option :)
Hope that helps. Thanks,
Joe
eZ Publish has Payment Gateways
It allows you to define precisely segment you category/products/prices/taxes/currencies in a flexible way
it is secure
eZ's technology is based on Open Standards and XML, which means that eZ Publish integrates natively with most of the payment gateways, as well as with many leading CRM and ERP solutions like Salesforce.com, SugarCRM, Microsoft Navision or SAP.
It integrates with Online Marketing Suites in order to segment customers and provide advanced content-centric analytics
eZ Find, built on top of Lucene/solR, gives backthe relevancy of search results, and providing new ways of navigating content (facets, etc.)
It has a good cache system
See official pres about eZ Publish + eCommerce for more infos
My company is building a platform on top of a heavily extended Drupal core. I have multiple customers who will be using separate instances of this system and will want to customize both the theme and the functionality.
I'm trying to design a system to allow them to add themes and modules, some of which might interact with some of my modules, without giving them access to the actual code. (This isn't open source)
The way that Facebook and Ning do this is to have the developer host their own custom code, and have a callback to it. This won't really work for me, as these sites need the ability to be fully customized, so callbacks for specific integration points don't really work.
One option is to set up a sandbox environment where the custom developers only have access to a couple specific directories to build their themes and custom modules. We could then integrate with git to commit these when they're ready and deploy them with the rest of our code into production. The problem with this setup is that developers have to develop remotely and have to use our source control system.
A more typical setup is to allow the developers to download something to build their custom code against. They can develop locally and use whatever source control practices they already have. As we don't want specific point integrations, I don't think this can be a library that runs against a separate server. The alternative is to download our full core Drupal system and develop locally against that, uploading the custom code when it's ready, but then they would have access to all our code and IP.
Thus the predicament, as I don't think there is any way to effectively obfuscate PHP.
Anyone have any brilliant ideas here?
It sounds like your system is a derivative work of Drupal and thus covered by the GPL. If you distribute the code to your clients they have all of the rights provided by the GPL, Including modifying and redistributing it.
Be aware that distributing obfuscated GPLed code is not allowed. To quote the GPLv2 "The source code for a work means the preferred form of the work for making modifications to it."
Obfuscated code does not comply with this clause of the GPL.
That said, if you really want to provide your clients a way to customize your system you could provide your clients access to the existing Drupal module and theme system but only on your sandbox.
Of course since the modules and themes are PHP and you "don't want specific point integrations" it seems they would have the sort of freedom that would allow them to write a module that reads all of the source code for the rest of your system and then tar it up and send it to themselves.
I think you've painted yourself into a corner by depending on GPL. Keeping your IP private while allowing your clients to extend/customize the system in general ways doesn't really work.
I hope you're aware that Drupal is GPL licensed, be sure to read their licensing FAQ before you start obfuscating.
Why not just create an FTP user for them which can only access /sites/theirsite? What am I missing?