Export existing expresso-store to new site - expressionengine

I've got Expresso Store set up and running on an old site. I've been developing a new site, installed a new version of Store and set up a few test-products. Any idea how to export the old products into the new site?
As far as I can see the products are stored in exp_channels and exp_store_products in the database. Can I do some export/import between the databases?

I would recommend getting something like DataGrab from AJ Weaver http://devot-ee.com/add-ons/datagrab
The data is stored in Channel Entries, so it should be as simple as exporting from the old channel and importing into the new channel.

As Carl said DataGrab would be your best bet if you do not want to dump the entire database and import it into the new site.
Store does have some data in exp_channel_data but you would also have data in exp_store_products, exp_store_product_modifiers, exp_store_product_options, exp_store_stock, exp_store_stock_options for your products that would need to be taken care of if you were looking at doing the transfer of data manually.z

Related

what should i learn to store shopping card after browser close like amazon?

I was trying to figure out the best way to store my product list card after browser is closed, so it won't be lost after I re-open? Or even re-open in another browser?
Should I directly store the list in a database? And we only GET request from API?
or something like local storage or session storage?
I'm still learning to make eCommerce website like amazon.
You can use redux-persist to retain the previous data and also you can use cache from backend as well as in frontend.

Fetching Initial Data from CloudKit

Here is a common scenario: app is installed the first time and needs some initial data. You could bundle it in the app and have it load from a plist or something, or a CSV file. Or you could go get it from a remote store.
I want to get it from CloudKit. Yes, I know that CloudKit is not to be treated as a remote database but rather a hub. I am fine with that. Frankly I think this use case is one of the only holes in that strategy.
Imagine I have an object graph I need to get that has one class at the base and then 3 or 4 related classes. I want the new user to install the app and then get the latest version of this class. If I use CloudKit, I have to load each entity with a separate fetch and assemble the whole. It's ugly and not generic. Once I do that, I will go into change tracking mode. Listening for updates and syncing my local copy.
In some ways this is similar to the challenge that you have using Services on Android: suppose I have a service for the weather forecast. When I subscribe to it, I will not get the weather until tomorrow when it creates its next new forecast. To handle the deficiency of this, the Android Services SDK allows me to make 'sticky' services where I can get the last message that service produced upon subscribing.
I am thinking of doing something similar in a generic way: making it possible to hold a snapshot of some object graph, probably in JSON, with a version token, and then for initial loads, just being able to fetch those and turn them into CoreData object graphs locally.
Question is does this strategy make sense or should I hold my nose and write pyramid of doom code with nested queries? (Don't suggest using CoreData syncing as that has been deprecated.)
Your question is a bit old, so you probably already moved on from this, but I figured I'd suggest an option.
You could create a record type called Data in the Public database in your CloudKit container. Within Data, you could have a field named structure that is a String (or a CKAsset if you wanted to attach a JSON file).
Then on every app load, you query the public database and pull down the structure string that has your classes definitions and use it how you like. Since it's in the public database, all your users would have access to it. Good luck!

Retrieving to-be-pushed entries in IMobileServiceSyncTable while offline

Our mobile client app uses IMobileServiceSyncTable for data storage and handling syncing between the client and the server.
A behavior we've seen is that, by default, you can't retrieve the entry added to the table when the client is offline. Only when the client table is synced with the server (we do an explicit PushAsync then a PullAsync) can the said entries be retrieved.
Anyone knows of a way to change this behavior so that the mobile client can retrieve the entries added while offline?
Our current solution:
Check if the new entry was pushed to the server
If not, save the entry to a separate local table
When showing the list for the table, we pull from both tables: sync table and regular local table.
Compare the entries from the regular local table to the entries from the sync table for duplicates.
Remove duplicates
Join the lists, order, and show to the user.
Thanks!
This should definitely not be happening (and it isn't in my simple tests). I suspect there is a problem with the Id field - perhaps you are generating it and there are conflicts?
If you can open a GitHub Issue on https://github.com/azure/azure-mobile-apps-net-client/issues and share some of your code (via a test repository), we can perhaps debug further.
One idea - rather than let the server generate an Id, generate an Id using Guid.NewGuid().ToString(). The server will then accept this as a new Id.

PouchDB - start local, replicate later

Does it create any major problems if we always create and populate a PouchDB database locally first, and then later sync/authenticate with a centralised CouchDB service like Cloudant?
Consider this simplified scenario:
You're building an accommodation booking service such as hotel search or airbnb
You want people to be able to favourite/heart properties without having to create an account, and will use PouchDB to store this list
i.e. the idea is to not break their flow by making them create an account when it isn't strictly necessary
If users wish to opt in, they can later create an account and receive credentials for a "server side" database to sync with
At the point of step 3, once I've created a per-user CouchDB database server-side and assigned credentials to pass back to the browser for sync/replication, how can I link that up with the PouchDB data already created? i.e.
Can PouchDB somehow just reuse the existing database for this sync, therefore pushing all existing data up to the hosted CouchDB database, or..
Instead do we need to create a new PouchDB database and then copy over all docs from the existing (non-replicated) one to this new (replicated) one, and then delete the existing one?
I want to make sure I'm not painting myself into any corner I haven't thought of, before we begin the first stage, which is supporting non-replicated PouchDB.
It depends on what kind of data you want to sync from the server, but in general, you can replicate a pre-existing database into a new one with existing documents, just so long as those document IDs don't conflict.
So probably the best idea for the star-rating model would be to create documents client-side with IDs like 'star_<timestamp>' to ensure they don't conflict with anything. Then you can aggregate them with a map/reduce function.

how to Add background worker in database application

I am working on an application which keeps records of check ins and checkouts of the customer. i want to embed the background worker class in my project.
here is the situation:
I want list of rooms to be upadted automatically on saving the information on the new room... for displaying room i am using gridview and for adding new room i created a new form and add LINQ to SQL query code to save the information of new room.
kindly help me with this.. or suggest me something else. how to implement it.. for you information and i am using LINQ to SQL class..
Technologies I am using:
Editor: Visual Studio2010
Language: C#
back end Database in MYSQL Server 2008
using LINQtoSQL for creating connection with the data base
As you can see in this question, the Linq-to-Sql does not provide access to MySQL database out-of-box, however, there are several workaround.

Resources