coreshop / coreshop Goto Github PK
View Code? Open in Web Editor NEWCoreShop - Pimcore enhanced eCommerce
Home Page: http://www.coreshop.org
License: Other
CoreShop - Pimcore enhanced eCommerce
Home Page: http://www.coreshop.org
License: Other
the build
dir causes double content and a wrong index in most of IDE.
While installing, pimcore throws an error when mysql adapter is not preselected. We need to do fetch the adapter dynamically, like so:
$db = \Pimcore\Resource::get();
if($db->getResource() instanceof \Zend_Db_Adapter_Mysqli) {
return $mysqli->multi_query($sql);
} else if ($db->getResource() instanceof \Zend_Db_Adapter_Pdo_Mysql) {
return $db->getConnection()->exec($sql);
}
add the possibility to add a custom theme in default website structure.
e.g.
/website/views/coreshop/template/TEMPLATE_NAME
Somehow, a large amount of carts is being created. Please check how to fix that.
Show some information about useless Data (eg. Category or Product)
https://github.com/dpfaffenbauer/pimcore-coreshop/blob/master/lib/CoreShop/Plugin/Install.php#L408
While installing, the recurse_copy()
helper function is not available.
While creating a new carrier, pimcore will throw an error:
Fatal error: Call to a member function getRanges() on a non-object in /plugins/CoreShop/controllers/Admin/CarrierController.php on line 134
Add a Custom-Made-View to search and mange orders more easily.
when installing coreshop, pimcore will throw an install error:
change
DROP TABLE IF EXISTS `coreshop_countries`;
CREATE TABLE `coreshop_countries` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`isoCode` varchar(2) NULL,
`active` tinyint(1) DEFAULT 0,
`currencyId` int,
`zoneId`,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
to
DROP TABLE IF EXISTS `coreshop_countries`;
CREATE TABLE `coreshop_countries` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`isoCode` varchar(2) NULL,
`active` tinyint(1) DEFAULT 0,
`currencyId` int,
`zoneId` int,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Create a module that creates invoices and saves them as pdf
allow user to set a base country in settings.
getCountry();
getCountry();
when no country is initial defined ( if (!$country instanceof Country)
), so a website could override the user country, based on his own geo2ip service or country concept.Allow Admin to Create orders for existing Order/Cart or for Products.
Features:
while change the template name and saving the coreshop settings in backend, the coreshop-config.xml is not updating properly.
<template>
<name>default</name>
<name>sola</name>
</template>
Drag'n'Drop in Settings is not compatible with ExtJs6
while installing, check in *.sql install files if TABLES EXISTS or DROP them to reinstall it.
when set a country to active, after a reload the checkbox is not checked, however it's saved in the db.
Finish Module to create Carriers with different Price Calculations
Implement it as a Tab in CoreShopProduct like Price Rules
Settings:
the specific price per product is a great thing. maybe we can add some improvments:
let user add zones, which will check the containing countries
Add some basic stuff to keep track of in- and outgoing warehouse movements and change the available quantity of a product.
coreshop loads a pile of data when initial requesting in backend. we should reduce that.
The Problem is that all models in CoreShop are being cached. But the problem is: when the currency gets changed, the Currency in Country is still the old value because of the Countries cached item.
Create Documentation for Plugin
Create Orderstates.
Create a Demo Shop Example
in pimcore 4, geoip is deprecated. use geoip2 instead:
//@fixme: install GeoLite2-Country.mmdb in install process.
if(file_exists(CORESHOP_CONFIGURATION_PATH . "/GeoLite2-Country.mmdb")) {
$reader = new Reader(CORESHOP_CONFIGURATION_PATH . "/GeoLite2-Country.mmdb");
$country = null;
try {
$country = $reader->country(\Pimcore\Tool::getClientIp());
} catch(\Exception $ex) {
}
$country = Country::getByIsoCode($country);
}
Create Unit Tests
Implement a Catalog Mode where no cart is available.
Create some sort of behaviour for plugin updates and installing CoreShop Plugins.
we need to trigger the self-updater after a composer update.
similar problem exists with pimcore itself: pimcore/pimcore#366
missing fields in permission check:
coreshop_currency
coreshop_country
coreshop_zone
Allow use of Pimcore Sites to make multiple Shops, with different Data, within one Pimcore instance
https://github.com/dpfaffenbauer/pimcore-coreshop/blob/master/lib/CoreShop/Tool.php#L59
public static function convertToCurrency($value, Currency $toCurrency = null, Currency $fromCurrency = null)
must called as
public static function convertToCurrency($value, $toCurrency = null, $fromCurrency = null)
because $toCurrency
and $fromCurrency
can be null. otherwise php wants to initialize with an Currency
instance.
After activating a new Zone (e.g Europe), it's impossible to edit carrier anymore:
Uncaught TypeError: pimcore.globalmanager.get(...).getRange is not a function
Allow Customers to Create Messages.
Features:
- Allow Admin to respond to messages
- Conversation Overview.
- Connect Message to Order
Add Manufacturers
Email customers with Open Carts as a reminder
I think the best way todo this, is by making a Plugin
Allow Guests to make orders.
Features:
Allow Guest to create Account.
Allow Admin to create Account from Guest User
the shop.js
should be cleaned up and should only provides the core features with custom events triggering.
all default template stuff (like form validation etc) should be inside a template.js, so the user can decide to use it or not.
for an example:
initEvents : function() {
$('.btn-cart').on('click', this.addToCart );
},
addToCart : function( ev ) {
$.ajax({
url : '/de/cart/add',
data : {product : $(this).data('product-id')},
dataType: 'json',
success : function(result,status) {
if( status == 'success' )
if(result.success) {
this.updateCart(result.cart);
$( document ).trigger( 'coreShop.cart.added.success', [ result ] );
} else {
$( document ).trigger( 'coreShop.cart.added.error', [ result ] );
}
}
});
}
so user can use all events in a custom environment like so:
$( document ).on( 'coreShop.cart.added', function( event, result ) {
console.log( result ); // "result from response"
});
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.