Giter VIP home page Giter VIP logo

shopware2vuestorefront's Introduction

Vue Storefront for Shopware 6

ℹ️ Try the native solution first -> visit the official shopware-pwa repository 💙


build:passed version Branch stable Branch Develop Branch Develop

This project is on the early stages of development. However it's probably OK for some limited production use. Expect some features that still requires development/bug fixing. See the Roadmap section.

Vue Storefront is a extremly fast and customizable frontend framework for eCommerce. Based on Vue.js, leverages the Headless architecture approach. With Vue Storefront You could build the stunning UI interfaces, increase the Conversion Rates, improve the UX. Now it's available for Shopware 6!.

Make the eCommerce development Fun Again. It's easy to do with Shopware 6 + Vue Storefront :-)

Made with ❤️ by Vue Storefront team.

What makes it unique?

This projects bring You the Shopware 6 support as a backend platform for Vue Storefront - first Progressive Web App for e-Commerce.

Vue Storefront is a standalone PWA storefront for your eCommerce. It leverages the Headless Architecture and lets You make the most of the modern Shopware 6 Storefront API.

Here are the key characteristics of Vue Storefront for Shopware:

  • Full product, categories, attributes + multimedia indexing.
  • Shopping cart with dynamic totals + promo rules applied,
  • Checkout with the dynamic shipping methods and 'Cash on delivery' payment method,
  • 100% offline support - via in-browser database + caching,
  • High speed with local caching (Service Workers + IndexedDB); avg. server response time < 0.3s; avg client-side rendering time < 2s,
  • Offline Orders support (via in-browser queue),
  • Single Page App User Experience with Server Side Rendering support for SEO,
  • Native app features - install on Home Screen (iOS, Android, Chrome), push notifications (via customization),
  • NoSQL/ElasticSearch database backend,
  • Modern Vue.js based frontend - easy to design and customize, atomic-design, design-system backed,
  • It's a Framework - customizable via Extensions, Themes, easy to update with separated Core,

This integration is not finished and it's not supporting all Shopware6 features. See the Roadmap section below.

The To-Do list includes:

  • Add support for configurable products (#4)
  • Add the on-demand indexeing capabilities (#5)
  • Add the order History support for the user account (#6)
  • Add the support for online payment methods (#7)
  • Add the CMS integration (#8)
  • ...

Roadmap

Based on the success of shopware2vuestorefront integration Shopware and Divante are working together on the next version of enhanced, native and dedicated PWA for Shopware. It will be Open Source (MIT) and will be released in Q2 2020.

This project is no longer actively supported by Vue Storefront. It will remain available open source, however we recommend using the official Shopware PWA, powered by Vue Storefront, which is currently being build. More information can be found on FAQ.

Contributors

We are looking for contributors and agencies willing to join us and build the best Frontend Experience for Shopware!

Read the contributing guide and start by creating Your first Pull Request!

See it in action

B2C Theme demo Try out our open demo and if you like it first give us some star on Github ★ and then contact us on Slack or via [email protected].

This demo site is connected to Shopware 6 with shopping carts and users synchronization so You can make an order (which unfortunatelly won't be shipped ;P).

If You like to learn more or contribute please do contact us.

How to try it?

Feel free to check out. In order to have the Shopware 6 PWA up and running on Your local host You need to install the Vue Storefront first.

Install Vue Storefront

Please do install the Vue Storefront using the official Installer. Make Sure that Vue Storefront is running with the default demo database on http://localhost:3000

git clone https://github.com/DivanteLtd/vue-storefront.git vue-storefront
cd vue-storefront
yarn
yarn installer

Download the Indexer and Api Extension

Vue Storefornt integration always requires two steps.

First - Integrate the Dynamic Requests calls

... requests like user login, shopping cart synchronization must find out the way to Your Shopware 6 backend. Vue Storefront API is in charge of sending these requests and all You need is to setup the Shopware connector in it.

Download a *.zip with the content of this repository (vsf-api-extension and vsf-shopware-indexer) and unpack the folders in the same parent directory Your vue-storefront and vue-storefront-api folders are located.

cd ..
wget https://github.com/DivanteLtd/shopware2vuestorefront/archive/master.zip
unzip master

Then, copy the content of vsf-api-extension/* to vue-storefront-api/src/platform/shopware

mkdir vue-storefront-api/src/platform/shopware
cp vsf-api-extension/* vue-storefront-api/src/platform/shopware/

Change the vue-storefront-api/config/local.json setting the platform to shopware. In the end - set the Shopware 6 API credentials in the vue-storefront-api/config/local.json.

Example shopware credentials inside vue-storefront-api/config/local.json

...
"shopware": {
     "imgUrl": "",
     "assetPath":"",
     "magentoUserName": "",
     "magentoUserPassword": "",
     "httpUserName": "",
     "httpUserPassword": "",
     "api": {
         "url": "https://yourshop.biz/api",
         "accessToken": "SWxxxxxxxxxxxxxG"
     },  
     "url":"https://yourshop.biz"
}
...

Second - Configure indexer and index the products, categories and other static elements

The second part of the integration is product's catalog which should be indexed into ElasticSearch index - which is the local database Vue Storefront is using in order to display the product catalog.

Follow the instructions located in vsf-shopware-indexer/README.md and then move to the next steps:

Now, please do configure the vsf-shopware-indexer by copying the vsf-shopware-indexer/config.js.dist to vsf-shopware-indexer/config.js and setting the proper API credentials. 9. Install the dependencies: cd vsf-shopware-indexer/; yarn install 8. Now You need to index Your local ElasticSearch index with the products from Shopware instance by running the:

node vsf-shopware-indexer/cli.js reindex attribute
node vsf-shopware-indexer/cli.js reindex category

Take a look for the attributes' IDs (for instance: color and size), and put them into vsf-shopware-indexer/config.js in the map section, adn then:

node vsf-shopware-indexer/cli.js reindex product

Then make sure You applied the proper data schema on Your brand-new Elastic index by running the: cd vue-storefront-api; yarn db rebuild

Restart Your Vue Storefront

Kill all Your node processes with the killall node (in order to apply the config changes). Run the yarn dev command in both: vue-storefront-api and vue-storefront folders.

Please do contact us in the case of any issues with the installation procedure.

More on Vue Storefront

See how it works!

Technical Webcast #1 - demo and the architecture

Demo and the architecture of Vue Storefront

Join the community on Slack

If you have any questions or ideas feel free to join our slack: https://vuestorefront.slack.com via invitation link

Contributing

If you want to help shaping future of Vue and Shopware we'd be more than happy if you want to contribute! Here you can find all the required information.

shopware2vuestorefront's People

Contributors

jeremy-seipelt avatar keulinho avatar memoict avatar mkucmus avatar pkarw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shopware2vuestorefront's Issues

Make client_credentials usable

Shopware allows Integrations so we can use a client secret and id to authenticate our storefront.

We should allow people to use both grant types for the indexer.

Download the Indexer and Api Extension

343/5000
on this stage, I couldn’t understand where folders are organized, can you help me?

in:
Then, copy the content of vsf-api-extension / * to vue-storefront-api / src / platform / shopware

mkdir vue-storefront-api / src / platform / shopware
cp vsf-api-extension / * vue-storefront-api / src / platform / shopware /

I need to unzip the .zip where?

Rename the `module` to `shopware-api-client` + publish it in the separate repo

const RestClient = require('./lib/rest_client').RestClient;

The first step is to just rename the misleading module to more self-explanatory shopware-api-client. The secound could be to publish it as a separate repo and include via package.json in here. Kind of a way we've got the magento2 rest client in vs-api: https://github.com/DivanteLtd/magento2-rest-client

ReadMe.md wrong path

Hello, i found an small issue in the ReadMe.md from the project : https://github.com/DivanteLtd/shopware2vuestorefront

in the installation it says:
"
Change the vue-storefront-api/local.json setting the platform to shopware. In the end - set the Shopware 6 API credentials in the vue-storefront-api/local.json.
"

  1. the file is located under vue-storefrint-api/configs/local.json
  2. there is nothing where i could see how to perfom this Shopware 6 credentials ( should may be added )

i personally dont know how to connect the vue-storefront to shopware6 now...

hope you can fix this

best greetings from Germany :)

TaxProxy calls calculateProductTax wrongly

I'm new with VSF and Shopware, I'm trying to set-up a dev environment.
I've noticed this error from api after shopware data-import to elastic, when i made a product search into the frontend:

vue-storefront-api    |     TypeError: Cannot read property 'tax_class_id' of undefined
vue-storefront-api    |     at Object.calculateProductTax (/var/www/src/lib/taxcalc.js:160:15)
vue-storefront-api    |     at TaxProxy.taxFor (/var/www/src/platform/shopware/tax.js:55:12)
vue-storefront-api    |     at /var/www/src/platform/shopware/tax.js:94:18
vue-storefront-api    |     at process._tickCallback (internal/process/next_tick.js:68:7)

and no items where listed in the results.

looking into vue-storefront-api/src/platform/shopware/tax.js (copied from shopware2vuestorefront/vsf-api-extension/tax.js)

  taxFor (product) {
    return calculateProductTax(product, this._taxClasses, this._taxCountry, this._taxRegion, this._sourcePriceInclTax)
  }

should be

taxFor (product) {
    return calculateProductTax({
      product: product,
      taxClasses: this._taxClasses,
      taxCountry: this._taxCountry,
      taxRegion: this._taxRegion,
      sourcePriceInclTax: this._sourcePriceInclTax
    })
  }

because the taxFor function's parameter is an object:
vue-storefront-api/src/lib/taxcalc.js

export function calculateProductTax ({ product, taxClasses, taxCountry = 'PL', taxRegion = '', sourcePriceInclTax = false, deprecatedPriceFieldsSupport = false, finalPriceInclTax = true, userGroupId = null, isTaxWithUserGroupIsActive }) {

After this change, the product search works.

Adding an example local.json

In the Readme it says I need to set the Shopware 6 api credentials, but nowhere in the file is a shopware api credential shown.

I think I am supposed to add :

"shopware": {
      "imgUrl": "http://demo-shopware.io/pub/media/catalog/product",
     "assetPath": "assetPath",
     "api": { 
       "url": "link to shopware API",
       "consumerKey": "API ACCES KEY",
       "consumerSecret": "NOT Shown in SHOPWARE BACKEND",
       "accessToken": "NOT SHOWN IN SHOPWARE BACKEND,
       "accessTokenSecret": "NOT SHOWN IN SHOPWARE BACKEND"
     },
     "url": "SHOPURL"
}

I think the part needs further explaining, where the credentials need to be placed and what is required for a the credentials to be valid.

An example locale Json in the src code or inside the readme would help a lot

I cannot understand what readme says.

In readme.md , it says

Take a look for the attributes' IDs (for instance: color and size), and put them into vsf-shopware-indexer/config.js in the map section, adn then: (<- it must be an typo :) )

but I can`t find id of color and size from elastic get _search query.

how can i get it?

Fix the Authorization header - should be dynamic based on credentials

return 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjhhYmZjZjIwYjRlYjQ5YzQ2YWIzODViMjZkMTJlZWQ1MDgxY2NjZDFjYWQyMGE3NjZlNjg3OTNlZDMyNzdkZWU0YzA0MGMyN2MxY2RiMzExIn0.eyJhdWQiOiJhZG1pbmlzdHJhdGlvbiIsImp0aSI6IjhhYmZjZjIwYjRlYjQ5YzQ2YWIzODViMjZkMTJlZWQ1MDgxY2NjZDFjYWQyMGE3NjZlNjg3OTNlZDMyNzdkZWU0YzA0MGMyN2MxY2RiMzExIiwiaWF0IjoxNTU3NzM2NDkxLCJuYmYiOjE1NTc3MzY0OTEsImV4cCI6MTU1Nzc0MDA5MSwic3ViIjoiYmY5M2U2YjlmYTM4NDk4MDg1ZTc3YmIxZjYyZGJlYTciLCJzY29wZXMiOlsid3JpdGUiLCJ3cml0ZSIsIndyaXRlIiwid3JpdGUiXX0.i0Sic0eHoRQuH51Ut1WsrBjeQdettJD3Gzi8Dw20ZmN57Nq7NfIRwH7P7tje31IdxV1StqTqhNpH8SC6AgayjzHKpC-_suqOH0x0BcmAlUu-lqqjisM9z6duGpD2BbsUJmpfHQLUH_E9GyGdwz5OtaBkoDHoTlX1HYSFX1SdNWIHsmKK4DrcfOVpT3BCt5vlK_6YY3S8izxtKjMDyTb6L4ChdejkeCwt5CEAMzy2a_-sGbL3kLB2oeVdQZFH3Nx1jKf35ZiUt3vgFajHjlw8ZSYoaqvTEqXYDScdNUOAmyZxotQbRbEVT4JmSPAScp47s_0RkOWNYySw3M37awdoRA'

Can't make it work.

I'm trying to make it work.

What I've done so far:

  1. I've got Shopware 6 running in docker.
  2. I've got vue-storefront running on port localhost:3000
  3. I've got vue-storefront-api running.

Nextly I started to move on with instructions from README.md

At this point: "Download the Indexer and Api Extension":

  1. I've done "First - Integrate the Dynamic Requests calls" section.
  2. But I'm stuck on next section:
    I've got vsf-shopware-indexer directory on the same level as others. I edited config so it looks like this:
    module.exports = { map: { attribute: { color: '<COLOR ATTRIBUTE ID TAKEN FROM ElasticSearch after indexation>', size: '<SIZE ATTRIBUTE ID TAKEN FROM ElasticSearch after indexation>' } }, api: { protocol: 'http', host: 'localhost:8000', token: 'SWSCTJLGEMV1TJE0BVBKANVBRQ', client_id: '', client_secret: '', grant_type: '', version: 'v1', prefix: 'sales-channel-api' }, elasticsearch: { host: 'localhost', port: 9200, logLevel: 'warn', indexName: 'vue_storefront_catalog' }, logger: { winston: { file: { level: 'info', filename: 'http://localhost:8000'}/logs/app.log', handleExceptions: true, json: true, maxsize: 5242880, maxFiles: 5, colorize: false }, console: { level: 'debug', handleExceptions: true, json: false, colorize: true } } } };

I runned yarn install.
And those commands fails:
image

After running first I get it in console:

2020-02-05 12:33:47 info: attributes are being rebuilt... (page: 1; size: 100)
{ Error: Request failed with status code 400
at createError (/home/pablo/Projects/storeFront/vsf-shopware-indexer/node_modules/axios/lib/core/createError.js:16:15)
at settle (/home/pablo/Projects/storeFront/vsf-shopware-indexer/node_modules/axios/lib/core/settle.js:18:12)
at IncomingMessage.handleStreamEnd (/home/pablo/Projects/storeFront/vsf-shopware-indexer/node_modules/axios/lib/adapters/http.js:202:11)
at IncomingMessage.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1094:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
config:
{ adapter: [Function: httpAdapter],
transformRequest: { '0': [Function: transformRequest] },
transformResponse: { '0': [Function: transformResponse] },
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus],
headers:
{ Accept: 'application/json, text/plain, /',
'Content-Type': 'application/json;charset=utf-8',
'User-Agent': 'axios/0.18.1',
'Content-Length': 71 },
method: 'post',
url: 'http://localhost:8000/api/oauth/token',
data:
'{"scopes":"write","client_id":"administration","grant_type":"password"}' },
request:
ClientRequest {
_events:
{ socket: [Function],
abort: [Function],
aborted: [Function],
error: [Function],
timeout: [Function],
prefinish: [Function: requestOnPrefinish] },
_eventsCount: 6,
_maxListeners: undefined,
output: [],
outputEncodings: [],
outputCallbacks: [],
outputSize: 0,
writable: true,
_last: true,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: true,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: null,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
socket:
Socket {
connecting: false,
_hadError: false,
_handle: [TCP],
_parent: null,
_host: 'localhost',
_readableState: [ReadableState],
readable: true,
_events: [Object],
_eventsCount: 7,
_maxListeners: undefined,
_writableState: [WritableState],
writable: false,
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: null,
_server: null,
parser: null,
_httpMessage: [Circular],
[Symbol(asyncId)]: 16,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: null,
[Symbol(kBytesRead)]: 0,
[Symbol(kBytesWritten)]: 0 },
connection:
Socket {
connecting: false,
_hadError: false,
_handle: [TCP],
_parent: null,
_host: 'localhost',
_readableState: [ReadableState],
readable: true,
_events: [Object],
_eventsCount: 7,
_maxListeners: undefined,
_writableState: [WritableState],
writable: false,
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: null,
_server: null,
parser: null,
_httpMessage: [Circular],
[Symbol(asyncId)]: 16,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: null,
[Symbol(kBytesRead)]: 0,
[Symbol(kBytesWritten)]: 0 },
_header:
'POST /api/oauth/token HTTP/1.1\r\nAccept: application/json, text/plain, /\r\nContent-Type: application/json;charset=utf-8\r\nUser-Agent: axios/0.18.1\r\nContent-Length: 71\r\nHost: localhost:8000\r\nConnection: close\r\n\r\n',
_onPendingData: [Function: noopPendingOutput],
agent:
Agent {
_events: [Object],
_eventsCount: 1,
_maxListeners: undefined,
defaultPort: 80,
protocol: 'http:',
options: [Object],
requests: {},
sockets: [Object],
freeSockets: {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256 },
socketPath: undefined,
timeout: undefined,
method: 'POST',
path: '/api/oauth/token',
_ended: true,
res:
IncomingMessage {
_readableState: [ReadableState],
readable: false,
_events: [Object],
_eventsCount: 3,
_maxListeners: undefined,
socket: [Socket],
connection: [Socket],
httpVersionMajor: 1,
httpVersionMinor: 1,
httpVersion: '1.1',
complete: true,
headers: [Object],
rawHeaders: [Array],
trailers: {},
rawTrailers: [],
aborted: false,
upgrade: false,
url: '',
method: null,
statusCode: 400,
statusMessage: 'Bad Request',
client: [Socket],
_consuming: false,
_dumped: false,
req: [Circular],
responseUrl: 'http://localhost:8000/api/oauth/token',
redirects: [] },
aborted: undefined,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
_redirectable:
Writable {
_writableState: [WritableState],
writable: true,
_events: [Object],
_eventsCount: 2,
_maxListeners: undefined,
_options: [Object],
_redirectCount: 0,
_redirects: [],
_requestBodyLength: 71,
_requestBodyBuffers: [],
_onNativeResponse: [Function],
_currentRequest: [Circular],
_currentUrl: 'http://localhost:8000/api/oauth/token' },
[Symbol(isCorked)]: false,
[Symbol(outHeadersKey)]:
{ accept: [Array],
'content-type': [Array],
'user-agent': [Array],
'content-length': [Array],
host: [Array] } },
response:
{ status: 400,
statusText: 'Bad Request',
headers:
{ date: 'Wed, 05 Feb 2020 11:33:48 GMT',
server: 'Apache/2.4.25 (Debian)',
'cache-control': 'no-cache, private',
'access-control-allow-origin': '*',
'access-control-allow-methods': 'GET,POST,PUT,PATCH,DELETE',
'access-control-allow-headers':
'Content-Type,Authorization,sw-context-token,sw-access-key,sw-language-id,sw-version-id',
'sw-version-id': '',
'sw-language-id': '',
'sw-context-token': '',
'x-frame-options': 'deny',
'x-debug-token': 'bb4a50',
'x-debug-token-link': 'http://localhost:8000/_profiler/bb4a50',
'x-robots-tag': 'noindex',
connection: 'close',
'transfer-encoding': 'chunked',
'content-type': 'application/json' },
config:
{ adapter: [Function: httpAdapter],
transformRequest: [Object],
transformResponse: [Object],
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus],
headers: [Object],
method: 'post',
url: 'http://localhost:8000/api/oauth/token',
data:
'{"scopes":"write","client_id":"administration","grant_type":"password"}' },
request:
ClientRequest {
_events: [Object],
_eventsCount: 6,
_maxListeners: undefined,
output: [],
outputEncodings: [],
outputCallbacks: [],
outputSize: 0,
writable: true,
_last: true,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: true,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: null,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
socket: [Socket],
connection: [Socket],
_header:
'POST /api/oauth/token HTTP/1.1\r\nAccept: application/json, text/plain, /\r\nContent-Type: application/json;charset=utf-8\r\nUser-Agent: axios/0.18.1\r\nContent-Length: 71\r\nHost: localhost:8000\r\nConnection: close\r\n\r\n',
_onPendingData: [Function: noopPendingOutput],
agent: [Agent],
socketPath: undefined,
timeout: undefined,
method: 'POST',
path: '/api/oauth/token',
_ended: true,
res: [IncomingMessage],
aborted: undefined,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
_redirectable: [Writable],
[Symbol(isCorked)]: false,
[Symbol(outHeadersKey)]: [Object] },
data: { errors: [Array] } } }
(node:25604) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'map' of undefined
at Object.reindex (/home/pablo/Projects/storeFront/vsf-shopware-indexer/src/modules/attribute/service.js:19:47)
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:25604) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:25604) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

MagentoUser

I have a question, if VueStorefront claims to be OPEN source, and it is meant to be used with a connected backend. Why after two years there are so few connectors, and they are so unfinished and undocumented. At first one thinks that is must be cuz they are not important, but they are crucial. Can you please explain where to find the shopware credentials, in particular MagentoUser.
Thanks a lot, its a great project.

installer configs and npm

I had some issues installing do to my use of npm instead of yarn.
I know you use yarn, but npm should be an acceptable drop in replacement, espacially because it works to a certain point.

Another really agonizing point during installation was always to reenter the installer parameters, and the need to remove the old backend folder which gets created but not removed when installation fails.

So my idea would be to allow an installer.json where the params can be static and something like an -f flag which allows overwriting an existing backend folder.

Maybe we could add npm as a fallback to yarn, because if you got node you probably got npm too and you dont need the additional dependency.

SW 6.0.0.ea1.1: Column "auto_increment" got removed from products

When I start the product indexer I'm getting the following error:

TypeError: Cannot read property 'toString' of undefined
    at configurable (.../vsf-shopware-indexer/src/modules/product/template.js:34:28)
    at transformedProduct (.../vsf-shopware-indexer/src/modules/product/transformer.js:182:33)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)

Thats because the product attribute "auto_increment" does not exists anymore in SW 6.0.0.ea1.1

Add the on-demand indexing mode

Currently, our data indexer runs the full-reindex and must be manually executed from the CLI. It would be awesome to add the on-demand indexing - similarily to how mage2vuestorefront is doing it

Indexer product template using missing fields

I looked at the product data retrieved by the indexer and it seems it tries to use missing fields.

The awaited object properties

{ id, autoIncrement, description, descriptionLong, price, name, ean, cover, stock, datasheet, createdAt, updatedAt, attributeIds}

Looking at the data from a fresh sw6 installation an autoIncrement is not returned and missing for the template.

It seems the autoIncrement uses actual ID of the product, was autoIncrement used before, was it removed from the newest SW6 release?

local.json

Hi

Can you explain how you modify the local.json file with the Shopware 6 Api Credentials?

an example would be great!

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.