PHPackages                             divante-ltd/coreshop-vsbridge - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. divante-ltd/coreshop-vsbridge

ActivePimcore-bundle[API Development](/categories/api)

divante-ltd/coreshop-vsbridge
=============================

coreshop-vsbridge

0.3.0(5y ago)732.5k25[4 issues](https://github.com/DivanteLtd/coreshop-vsbridge/issues)[4 PRs](https://github.com/DivanteLtd/coreshop-vsbridge/pulls)MITPHPPHP &gt;=7.2CI failing

Since Apr 11Pushed 3y ago19 watchersCompare

[ Source](https://github.com/DivanteLtd/coreshop-vsbridge)[ Packagist](https://packagist.org/packages/divante-ltd/coreshop-vsbridge)[ Docs](https://divante.co)[ RSS](/packages/divante-ltd-coreshop-vsbridge/feed)WikiDiscussions master Synced today

READMEChangelog (5)Dependencies (12)Versions (9)Used By (0)

First Progressive Web App for Pimcore and CoreShop
==================================================

[](#first-progressive-web-app-for-pimcore-and-coreshop)

[![Build Status](https://camo.githubusercontent.com/8ad8824b546003320a164375d8302015aece59c25249ba6d1a25b4e08233e4b8/68747470733a2f2f7472617669732d63692e6f72672f446976616e74654c74642f636f726573686f702d76736272696467652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/DivanteLtd/coreshop-vsbridge)[![Branch stable](https://camo.githubusercontent.com/8dec478e268e38803b5b18dae3666ecd78a1ae41cb1a52ea328ab1f10eacad51/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f737461626c652532306272616e63682d6d61737465722d626c75652e737667)](https://camo.githubusercontent.com/8dec478e268e38803b5b18dae3666ecd78a1ae41cb1a52ea328ab1f10eacad51/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f737461626c652532306272616e63682d6d61737465722d626c75652e737667)[![Branch Develop](https://camo.githubusercontent.com/1a28e0fcaafd30dd06979c7f31c48669aa7cd5c77f66c5a8ae5ebcecccd4e2a1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6465762532306272616e63682d646576656c6f702d626c75652e737667)](https://camo.githubusercontent.com/1a28e0fcaafd30dd06979c7f31c48669aa7cd5c77f66c5a8ae5ebcecccd4e2a1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6465762532306272616e63682d646576656c6f702d626c75652e737667)[![Branch Develop](https://camo.githubusercontent.com/7c3c0528951f31d3e19ae8c1b92e612431e7864cdd59e9861aef25807340f91e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f6d6d756e697479253230636861742d736c61636b2d4646313439332e737667)](https://join.slack.com/t/vuestorefront/shared_invite/enQtMzA4MTM2NTE5NjM2LTI1M2RmOWIyOTk0MzFlMDU3YzJlYzcyYzNiNjUyZWJiMTZjZjc3MjRlYmE5ZWQ1YWRhNTQyM2ZjN2ZkMzZlNTg)

This projects bring You the [Pimcore](https://pimcore.com) plus [Coreshop](http://www.coreshop.org/) support as a backend platform for [Vue Storefront - first Progressive Web App for e-Commerce](https://github.com/DivanteLtd/vue-storefront).

Vue Storefront is a standalone PWA storefront for your eCommerce, possible to connect with any eCommerce backend (eg. Magento, Pimcore, Prestashop or Shopware) through the API.

Video demo
----------

[](#video-demo)

[![See how it works!](https://github.com/DivanteLtd/vue-storefront/raw/master/docs/.vuepress/public/Fil-Rakowski-VS-Demo-Youtube.png)](https://www.youtube.com/watch?v=L4K-mq9JoaQ)Sign up for a demo at  (Vue Storefront integrated with Pimcore OR Magento2).

Pimcore data bridge
===================

[](#pimcore-data-bridge)

Vue Storefront is platform agnostic - which mean: it can be connected to virtually any eCommerce CMS. This project is a data connector for *CoreShop* and *Pimcore* data structures

The module is created as a Pimcore Symfony Bundle and provides the native data exchange capabilities of:

- pushing the entities marked as Products (maped in the Pimcore Admin panel) to Elastic Search (including support for configurable products),
- exposing all required dynamic API backends - like shopping cart, user accounts, totals etc.

Setup and installation
======================

[](#setup-and-installation)

The Data Bridge is provided as a Pimcore extension (Symfony Bundle)

Requirements
------------

[](#requirements)

- php 7.1 or above
- pimcore/pimcore 5.4 or above
- coreshop/core-shop 2.0.x-dev
- vuestorefront and vuestorefront api containers must be visible for pimcore and vice versa

Register bundles
----------------

[](#register-bundles)

In `app/AppKernel.php` of Your Pimcore instance please add this line to `registerBundlesToCollection`:

```
        if (class_exists('\ONGR\ElasticsearchBundle\ONGRElasticsearchBundle')) {
            $collection->addBundle(new ONGR\ElasticsearchBundle\ONGRElasticsearchBundle);
        }

        if (class_exists('\Cocur\Slugify\Bridge\Symfony\CocurSlugifyBundle')) {
            $collection->addBundle(new \Cocur\Slugify\Bridge\Symfony\CocurSlugifyBundle());
        }

        if (class_exists('\SymfonyBundles\JsonRequestBundle\SymfonyBundlesJsonRequestBundle')) {
            $collection->addBundle(new \SymfonyBundles\JsonRequestBundle\SymfonyBundlesJsonRequestBundle());
        }

        if (class_exists('\Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle')) {
            $collection->addBundle(new \Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle());
        }

        if (class_exists('\Gfreeau\Bundle\GetJWTBundle\GfreeauGetJWTBundle')) {
            $collection->addBundle(new \Gfreeau\Bundle\GetJWTBundle\GfreeauGetJWTBundle());
        }

        if (class_exists('\Nelmio\CorsBundle\NelmioCorsBundle')) {
            $collection->addBundle(new Nelmio\CorsBundle\NelmioCorsBundle());
        }

        if (class_exists('Gesdinet\JWTRefreshTokenBundle\GesdinetJWTRefreshTokenBundle')) {
            $collection->addBundle(new \Gesdinet\JWTRefreshTokenBundle\GesdinetJWTRefreshTokenBundle());
        }

```

Configure ES connection
-----------------------

[](#configure-es-connection)

In `app/config/config.yml` of Your Pimcore instance add this ElasticSearch configuration:

```
ongr_elasticsearch:
    managers:
        default:
            index:
                index_name: vue_storefront_catalog
                hosts:
                    - es1:9200
            mappings:
                - CoreShop2VueStorefrontBundle

```

Update database schema
----------------------

[](#update-database-schema)

Please execute the schema update `php bin/console doctrine:schema:update --force`

JWT Configuration
-----------------

[](#jwt-configuration)

1. Inside root pimcore directory run these commands:

```
mkdir -p config/jwt
openssl genrsa -out config/jwt/private.pem -aes256 4096
openssl rsa -pubout -in config/jwt/private.pem -out config/jwt/public.pem

```

2. In the main config file - `app/config/config.yml` please do add the following section:

```
lexik_jwt_authentication:
    secret_key: '%kernel.project_dir%/config/jwt/private.pem'
    public_key: '%kernel.project_dir%/config/jwt/public.pem'
    pass_phrase: 'enterYourPhrase'
    token_ttl:  3600
    token_extractors:
        authorization_header:
            enabled: true
            prefix:  Bearer
            name:    Authorization

        query_parameter:
            enabled: true
            name: token

```

Vue Storefront Configuration
----------------------------

[](#vue-storefront-configuration)

After successfull Pimcore bundle installation Your Pimcore instance will be handling all the dynamic requests from Vue Storefront. Thereof You need to modify `vue-storefront/config/local.json` (assuming that Your Pimcore base URL is  and ElasticSearch running on)

**Note**: As the Vue Storefront will be connecting to ElasticSearch from the client's browser You probably should put some kind of Proxy in front of ElasticSearch for scalability and security reasons. Please consider using the vue-storefront-api. It's endpoint [`/api/catalog`](https://github.com/DivanteLtd/vue-storefront-api/blob/master/src/api/catalog.js) works as a ElasticSearch HTTP(s) proxy. You can achieve the same results using nginx either Varnish.

```
  "elasticsearch": {
    "httpAuth": "",
    "host": "localhost:9200",
    "index": "vue_storefront_catalog",
    "min_score": 0.02,
    "csrTimeout": 5000,
    "ssrTimeout": 1000
  },
 "cart": {
    "create_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/cart/create?token={{token}}",
    "updateitem_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/cart/update?token={{token}}&cartId={{cartId}}",
    "deleteitem_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/cart/delete?token={{token}}&cartId={{cartId}}",
    "pull_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/cart/pull?token={{token}}&cartId={{cartId}}",
    "totals_endpoint": "http://localhost:8080/api/cart/totals?token={{token}}&cartId={{cartId}}",
    "paymentmethods_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/cart/payment-methods?token={{token}}&cartId={{cartId}}",
    "shippingmethods_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/cart/shipping-methods?token={{token}}&cartId={{cartId}}",
    "shippinginfo_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/cart/shipping-information?token={{token}}&cartId={{cartId}}",
    "collecttotals_endpoint": "http://localhost:8080/api/cart/collect-totals?token={{token}}&cartId={{cartId}}",
    "deletecoupon_endpoint": "http://localhost:8080/api/cart/delete-coupon?token={{token}}&cartId={{cartId}}",
    "applycoupon_endpoint": "http://localhost:8080/api/cart/apply-coupon?token={{token}}&cartId={{cartId}}&coupon={{coupon}}"
  },
 "orders": {
    "endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/order?token={{token}}",
  },
  "users": {
    "endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/user",
    "history_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/user/order-history?token={{token}}",
    "resetPassword_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/user/reset-password",
    "changePassword_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/user/change-password?token={{token}}",
    "login_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/user/login",
    "create_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/user/create",
    "me_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/user/me?token={{token}}",
    "refresh_endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/user/refresh"
  },
  "stock": {
    "endpoint": "http://vuestorefrontcoreshop.localhost/vsbridge/stock"
  },
  "images": {
    "baseUrl": "http://vuestorefrontcoreshop.localhost/img/",
    "productPlaceholder": "/assets/placeholder.jpg"
  },

```

Data formats and architecture
=============================

[](#data-formats-and-architecture)

As Pimcore is a very extensible Framework, the data structures and format may vary. By default we do support official [CoreShop](http://coreshop.org) data structures. For demonstration purposes we do support all the standard entities like:

- set of required attributes,
- categories,
- products: localized attributes, single photo (can be easily extendend), variants, prices.

[![CoreShop integration architecture](doc/pimcore2vuestorefront-architecture.png)](doc/pimcore2vuestorefront-architecture.png)

Screenshots
===========

[](#screenshots)

Please visit [Vue Storefront site](http://vuestorefront.io) to check out why it's so cool!

[![Admin panel integration](doc/20181204-111321.png)](doc/20181204-111321.png)
This is the standard Pimcore panel where You can edit Your products, categories and assets.

[![Category admin panel](doc/20181204-111306.png)](doc/20181204-111306.png)

Here is the order as it was transmited from Vue Storefront to CoreShop [![Order admin panel](doc/20181204-111251.png)](doc/20181204-111251.png)

All the products attributes, description, categories assets and other meta data is synchronized with Vue Storefront in real time [![The frontend integration](doc/20181204-111019.png)](doc/20181204-111019.png)

Credits
=======

[](#credits)

This module has been initially created by Divante's team:

- Kamil Karkus - @kkarkus,
- Kamil Wręczycki - @kwreczycki

Support
=======

[](#support)

If You have any questions regarding this project feel free to contact us:

- [E-mail](mailto:contributors@vuestorefront.io),
- [Slack](http://slack.vuestorefront.io)

Licence
=======

[](#licence)

CoreShop VsBridge source code is completely free and released under the [MIT License](https://github.com/DivanteLtd/vue-storefront/blob/master/LICENSE).

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity32

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~98 days

Recently: every ~139 days

Total

8

Last Release

1899d ago

PHP version history (2 changes)v0.1.0PHP &gt;=7.1

v0.2.1PHP &gt;=7.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/5d63320079c394c7a98b388d3236f946e870694b068a229775803cdae0fb6d74?d=identicon)[kkarkus](/maintainers/kkarkus)

---

Top Contributors

[![dkarlovi](https://avatars.githubusercontent.com/u/209225?v=4)](https://github.com/dkarlovi "dkarlovi (33 commits)")[![pkarw](https://avatars.githubusercontent.com/u/211899?v=4)](https://github.com/pkarw "pkarw (21 commits)")[![kkarkus](https://avatars.githubusercontent.com/u/17312072?v=4)](https://github.com/kkarkus "kkarkus (16 commits)")[![kwreczycki](https://avatars.githubusercontent.com/u/271136?v=4)](https://github.com/kwreczycki "kwreczycki (13 commits)")[![michalfilik](https://avatars.githubusercontent.com/u/2090985?v=4)](https://github.com/michalfilik "michalfilik (3 commits)")[![michaelhader](https://avatars.githubusercontent.com/u/6122946?v=4)](https://github.com/michaelhader "michaelhader (1 commits)")

---

Tags

coreshopecommercepimcorepimcore-pluginvuestorefrontpimcorepimcore-plugin

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/divante-ltd-coreshop-vsbridge/health.svg)

```
[![Health](https://phpackages.com/badges/divante-ltd-coreshop-vsbridge/health.svg)](https://phpackages.com/packages/divante-ltd-coreshop-vsbridge)
```

###  Alternatives

[coreshop/core-shop

CoreShop - Pimcore eCommerce

289197.5k10](/packages/coreshop-core-shop)[divante-ltd/pimcore-magento2-bridge

Integration module allows to integrate Pimcore platform with Magento 2

3513.7k](/packages/divante-ltd-pimcore-magento2-bridge)[instride/data-definitions

Data Definitions allows you to define your DataObject Imports and Exports using a nice GUI and re-run the definitions as often you like.

8117.7k](/packages/instride-data-definitions)[dpfaffenbauer/process-manager

Process Manager helps you to see statuses for long running Processes

3289.3k2](/packages/dpfaffenbauer-process-manager)[youwe/workflow-gui

Workflow Configuration UI for Pimcore

2884.6k](/packages/youwe-workflow-gui)[components-web-app/api-components-bundle

Creates a flexible API for a website's structure, reusable components and common functionality.

322.8k](/packages/components-web-app-api-components-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
