Categorygithub.com/corestoreio/csfw
modulepackage
0.0.0-20230101183712-202847b4b89b
Repository: https://github.com/corestoreio/csfw.git
Documentation: pkg.go.dev

# README

CoreStore: A standard library for e-commerce | WIP (Work in Progress)

based on an optimized Magento 2 database structure.

Build Status wercker status Appveyor Build status GoDoc Join the chat at https://gitter.im/corestoreio/pkg goreportcard

Magento is a trademark of MAGENTO, INC..

Min. Go Version: 1.11

Usage

To properly use the CoreStore packages, some environment variables must be set before running go generate. (TODO)

Required settings

CS_DSN the environment variable for the MySQL connection.

$ export CS_DSN='username:pa55w0rd@tcp(localhost:3306)/databaseName?parseTime=true&loc=UTC&collation=utf8mb4_unicode_ci'
$ go get github.com/corestoreio/pkg
$ export CS_DSN='see previous'
$ cd $GOPATH/src/github.com/corestoreio/pkg
$ xgo run xcodegen/tableToStruct/*.go

Testing

Setup database for Magento 2 and fill them with the provided testdata.

Create a DSN env var CS_DSN and point it to Magento 2 database. Run the tests.

TODO

If you find an entry in the source like TODO(CS) that means you can ask CS to get more information about how to implement and what to fix if the context of the todo description isn't understandable.

  • Create Magento 2 modules to setup test database and test Magento system.

Details

  • single repo. CoreStore is a single repo. That means things can be changed and rearranged globally atomically with ease and confidence.

  • no backwards compatibility. CoreStore makes no backwards compatibility promises. If you want to use CoreStore, vendor it. And next time you update your vendor tree, update to the latest API if things in CoreStore changed. The plan is to eventually provide tools to make this easier.

  • forward progress because we have no backwards compatibility, it's always okay to change things to make things better. That also means the bar for contributions is lower. We don't have to get the API 100% correct in the first commit.

  • no Go version policy CoreStore packages are usually built and tested with the latest Go stable version. However, CoreStore has no overarching version policy; each package can declare its own set of supported Go versions.

  • code review contributions must be code-reviewed.

  • CLA compliant contributors must agree to the CLA.

  • docs, tests, portability all code should be documented in the normal Go style, have tests, and be portable to different operating systems and architectures. We'll try to get builders in place to help run the tests on different OS/arches. For now we have Travis at least.

Contributing

Please have a look at the contribution guidelines That document is an idea.

Acknowledgements

Some packages have been fully refactored but the initial idea has been extracted from the geniuses listed below:

NamePackageLicense
Steve Franciautil/convMIT Copyright (c) 2014
Martin Angers and Contributors.ctxthrottledThe MIT License (MIT) 2014
Dave Cheney util/errorsThe MIT License (MIT) 2015
Jad Dittmarfinance aka. moneyCopyright (c) 2011
Google Incyoutube/vitess\sqlparserCopyright 2012 BSD Style
Olivier Poitreyctxmw.WithAccessLog & CORSCopyright (c) 2014-2015 MIT License
Dave GrijalvacsjwtCopyright (c) 2012 MIT License
Uber Technologies, Inc.logCopyright (c) 2016 MIT License
2013 The Go AuthorssingleflightCopyright (c) 2013 BSD Style
Carl Jackson ([email protected]) (Goji)net/responseproxyCopyright (c) 2014, 2015, 2016
Greg Roseberry, 2014; Patrick O'Brien, 2016util/nullBSD Copyright (c) 2014, 2015, 2016
The Go-MySQL-Driver Authorsstorage/null/time_mysql.goMozilla Public License, v. 2.0, Copyright 2012
siddontangstorage/binlogsyncMIT Copyright (c) 2014
siddontangstorage/myreplicatorMIT Copyright (c) 2014
Tace De Wolfutil/byteconvMIT Copyright (c) 2015
Copyright 2013 The Camlistore Authorsutil/byteconvApache 2.0
Copyright 2013 Google Inc.storage/lruApache 2.0
Alex Saskevichutil/validationMIT Copyright (c) 2014
Mat Ryer and Tyler Bunnellutil/assert or github.com/stretchr/testifyCopyright (c) 2012 - 2013
Google Youtubestorage/lruApache License, Version 2.0
Iman Tumorangutil/pseudoCopyright (c) 2017 Iman Tumorang
Dmitry Afanasyevutil/pseudoCopyright (c) 2014 Dmitry Afanasyev
Michal Witkowskinet/csgrpc/authCopyright (c) 2016 Michal Witkowski, Apache 2
go-pg/pg Authorssql/urlvaluesCopyright (c) 2013 MIT

Licensing

CoreStore is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Copyright

Cyrill Schumacher - PGP Key

# Packages

Package authorization enables management of access control list roles and rules.
Package bundle handles the creation of catalog product bundles.
Package catalog implements category tree and product features.
Package cataloginventory handles product inventory and indexing.
No description provided by the author
Package config, abbrev.
Package customer handles a customer entity with its addresses.
Package directory provides features for currencies, currency rates, conversion of prices to a specified currency format, countries and regions.
Package eav contains the logic for the Entity-Attribute-Value pattern (WIP).
Package mail provides functions and services for sending html or text emails via encrypted or unencrypted connections.
Package generic contains all generic functions.
Package i18n supports string translations with variable substitution, CLDR pluralization, currency, formats, language, regions and timezones.
Package locale provides locale specific services like formatting ortranslating.
Package net provides additional network helper functions and in subpackages middleware.
Package payment defines a payment processing library which can connect to payment gateways.
Package sql contains subpackages for working with MySQL and its derivates.
Package storage provides everything from MySQL, Redis, BoltDB, file etc functions.
Code generated by codegen.
Package sync provides tools to deal with goroutines.
Package tax takes care of all kind of taxes.
No description provided by the author
Package util should stay empty.