WebToffee Logo
  • Home
  • Plugins
  • Shopify apps
  • Bundles
  • Blog
  • Documentation
  • Support
Login
0

  • Getting Started
    • Plugin setup
    • Import/Export Products
    • Import/Export Product Reviews
    • Import/Export Product Tags
    • Import/Export Product Categories
  • Import
    • Import products with attributes
    • Import google drive images
    • Import grouped products
    • Importing and updating upsell an...
    • Import products using URL
    • Import every 'X' hours
    • Importing downloadable products
    • Import subscription products
    • Import products using CSV
    • Import products with images
    • Updating evaluation fields on Import
    • Import products from MS Excel
    • Importing products from a XML
    • Import products with categories
    • Import products from Google Spreadsheet
    • Import composite products
    • Import external/affiliate products
    • Import variable products from CSV
  • Export
    • Export products to CSV
    • Batch export products
    • Exporting products by category
    • Export definite number of products
    • Export products to MS Excel
    • Export product with categories
    • Export products with images
    • Export variable products
    • Export products with attributes
  • Meta Data
    • Import product metadata from CSV
  • Bulk Edit
    • Bulk update product category
    • Bulk upload variable products
    • Bulk upload products
    • Bulk update product price
  • FTP Cron Schedules
    • Cron Import products using multiple CSVs
    • Cron scheduled Import-export
    • Export products via SFTP
  • Advanced Topics
    • Export without user restrictions
    • Migrate from Shopify to WooCommerce
    • Update simple and variable products
    • Import/Export custom fields
    • Update inventory data
    • Import/Export products to Google Spreadsheets
    • Updating Single Field for Products
    • Updating product stock
    • Plugin visibility on a multisite
    • WPML Compatibility
    • Thumbnail regeneration failure on product import
    • Import/Export product bundles
    • Set up cron when site activity is less
    • Export WPML multilingual products
    • Update product variations without SKU
    • Steps to import WPML products
    • Duplicate entry in the media library
    • Memory limitations on Import/Export
    • Import/Export product images in ZIP
    • Modifying Import/Export Batch Count and Effects on Performance
  • Code Snippet
    • Set email alert on cron import
    • Export/Import bundled products
    • Export/Import product variation images
    • Filter and export WooCommerce products using custom taxonomy
    • Alter product data
    • Compatibility with YITH Product Bundle
    • Export reviews with no ratings
    • Import images from multiple columns
    • Support for WebP images
  • Troubleshooting
    • Finding PHP Error Logs
    • Resolve “Call to undefined function mb_detect_encoding()”
    • Resolve post ID conflicts on import
    • Troubleshooting Guide-Products
    • Maximum file upload size
  • Third-Party Compatibility
    • Plugins
  • FAQ
    • Frequently asked questions
  • Changelog
    • Version 1.1.5

Documentation/Product Import Export Plugin for WooCommerce/Importing Post ID Conflicts with an Existing Post ID

Importing Post ID Conflicts with an Existing Post ID

Last updated on June 8, 2021

When importing products to your WooCommerce website, you may have encountered with an error with the error message “Importing post ID Conflicts with an Existing ID” or “Post is not a Product”. This error occurs when the post ID already exists in the WooCommerce website to which the products are being imported to.

During an import, if you are updating existing product data, then do not forget to check the Update existing products tick box. Otherwise, it will generate the error of an existing ID.

Also, if the ID used in the CSV is not a product ID in the site to which it is imported to, then it can generate a conflict. For every product, WordPress creates a unique ID. It’s not just the products that are given unique IDs. They are given to tags, comments, categories, pages, and user ID as well to identify that particular item. All these are stored in WordPress in the wp_posts table. So the imported post ID can generate conflicts with these existing IDs also.

One way to avoid this type of error is to ensure that the post ID does not already exist as an Order ID, Page ID, Attachment ID etc. Another way to solve this problem is, when importing new products do not map ID column you can map with SKU and Parent_SKU columns instead. WordPress will assign a Post ID for the products that don’t have one.

In case of order import, there may be instances of ID mismatch. We can resolve this by reserving the IDs.

Reserving IDs for importing orders

When you create a new order, a new row will be created in the wp_posts table with a unique ID. However, if that ID conflicts with an existing post ID(due to content change), the next available ID will be assigned. This can sometimes result into ID mismatch. 
As a solution to this, you can reserve the IDs for future orders. For reserving IDs, modify the next order’s row ID to a bigger number, if you don’t have much extra rows after your last order.

Example: The last order ID is 5000, and the new order created will have ID 5001. Here, if we modify the order’s row ID to 8001, then the new order ID will start from 8002, reserving 3000 IDs for future orders.

  • Was this article helpful?
  • Yes, thanks!Not really

This article posted in Documentation, Knowledge Base, Product Import Export Plugin for WooCommerce, Troubleshooting, WooCommerce and tagged Import products, importing post id conflicts with an existing post id, woocommerce

Written by

Safwana

Safwana is a technical content writer for WebToffee. She loves working in WordPress and writing about it.

Comments (21)

  1. Niclas

    November 15, 2022

    Why was my first post deleted??

    I ask again… and take a screenshot.

    How can I customize already imported data?
    I have over 7,200 orders and 758 of them are incorrect.
    How can I correct this afterwards?

    Please help, thank you!

    Reply
    • Alan

      Alan

      November 25, 2022

      Hi,
      We haven’t deleted your post. If you are required to update any data of the already imported post then please export that post to the CSV using the plugin and then make the changes in the CSV and import it back with the Update option enabled.

      Reply
  2. Niclas

    November 15, 2022

    How can I still adjust the whole thing afterwards with the IDs?
    I have over 7,200 orders and 758 of them have failed.
    What else can I do to assign them correctly?

    Thank you and greetings from Germany.

    Reply
    • Alan

      Alan

      November 16, 2022

      Hi Niclas,

      If the orders are failing due to ID conflict then you will have to import those orders with a new ID as WordPress does not support multiple posts having the same ID. Or else if you are required to keep the order ID same then you will have to change the ID of the existing post by deleting and adding it again.

      Reply
  3. Acon

    April 10, 2021

    Hi,

    I’m using your plugin to migrate all products, customers, and orders from a live site to a new-built site on a subdomain, and I did get the message “Importing post ID Conflicts with an Existing ID” you described here with several products on the CSV. I understand the reason now and want to try your solution, but I’m just wondering that in the old site, how do all the relationships between the products, customers and orders got established and connected? Aren’t they inter-connected by this unique post ID? If the answer is yes and if I un-map the ID column and let the new site re-generate all the IDs for the imported products/customers/orders, how can I make sure that after the migrating, I can still see the right customers with the right orders and the right products all pieced together correctly?

    Also what sequence do you recommend to migrate? I heard that one should migrate products first, and then customers, finally the orders. Is that the right sequence?

    I’m not any database expert so this question might sound silly and I do apologize for that. I hope you can help me to sort it out because my new WooCommerce site depends one this to work.

    Thanks heaps.

    Best,

    Reply
    • Mark

      Mark

      April 13, 2021

      Hi,

      By default, the product and order are linked using product ID and if the ID is unmapped then they will fail to link. In this case, you can use SKU to link them. If your products have SKU data then please make sure that you enable the option Link products using SKU instead of Product ID while importing to link using SKU instead of ID. There will be no issues with linking users and orders since they are linked using the email address and not the ID. Hope this is clear.

      Yes, then import sequnece you mentioned is correct. You may please first import products and customers and then orders.

      Reply
  4. julian

    Julian Connett

    September 29, 2020

    Hi there,

    I was wondering if there was a ‘sequence’ that importing should be done in so not to cause ID conflicts? E.G Orders First > Coupons > Products/Media?

    Thanks in advance.

    Reply
    • Alan

      Alan

      September 29, 2020

      Hi,

      You may please unmap the ID column while importing to avoid the ID conflict issue. WordPress will automatically assign an available ID to the imported products, orders,..etc. For successful linking of order and product, you may please import the products & users first and then import the orders.

      Reply
      • julian

        Julian Connett

        October 1, 2020

        Thanks Alan,

        So I have been working on transferring and what I am finding is that our database is being massively blown out. We have around 300 products, 1200 customers, 57 posts, and 13,000 orders. The old database is 500MB! and the new one is already 180mb. Do you know why this would be bringing in so much? I tried to import only 1000 recent orders and it’s blown out. I have had to go back and delete all of the recent order, coupon and product imports as tons did not import properly because fo the ID conflict. But my database is still bloated?
        Do you have any suggestions on how I can clean up the database and import to the devsite without bloat?

        Thanks in advance.

        Reply
        • Alan

          Alan

          October 2, 2020

          Hi,

          We are not sure how your database is bloated. Is it caused due to the import done by our plugin? Please reach us via support.

          Reply
      • Eoin

        November 16, 2020

        How to unmap?

        Reply
        • Mark

          Mark

          November 17, 2020

          Hi,

          You may please select Do not import from the drop-down of the ID field while mapping or else you may please just delete the ID column.

          Reply
  5. Tanja

    November 5, 2019

    I have a similiar issue when importing orders for migrating a shop. I already imported most orders before (which worked), but now I have to do it again (in the meanwhile new orders in live shop came up). This time for all the new orders there is a conflict saying “Importing order(ID) conflicts with an existing post.”
    I really have no idea where there are existing posts with that ID. Any ideas what I could do? In a previous post you suggest “unmapping ID column”. How would I do that if it is the solution? Thanks a lot.

    Reply
    • Tanja

      November 5, 2019

      Sorry, now I know what you mean… you mean when exporting data you can unmap ID… I will try that and hope that it won’t lead to other conflicts as the correct ID then is missing…?

      Reply
      • Alan

        Alan

        November 6, 2019

        Hi,

        You may please either export the new orders with the ID column excluded or else you may please export the orders and remove the ID data from the ID column of the new order and import it.

        Please make sure that you have included the order ID in the CSV file if you are required to update the existing order. Existing orders are updated using the Order ID.

        Reply
  6. Kartik

    October 12, 2019

    the new wordpress is empty still shows the error – “Importing product(ID) conflicts with an existing post which is not a product.”

    Reply
  7. Thomas

    August 2, 2019

    Can ID conflicts be avoided when importing orders?

    Reply
    • Alan

      Alan

      August 3, 2019

      Hi,

      You can overcome the ID conflict issue while importing the orders by unmapping the ID column while mapping. WordPress will automatically assign the next available ID while importing.

      Reply
  8. Thomas

    August 1, 2019

    Would assigning post id conflicting products with an SKU before exporting them avoid problems with post id conflicts when importing associated customers and orders too? Thanks

    Reply
  9. Mark

    Mark

    October 19, 2018

    Hi,

    The issue you are facing is due to an already existing post with the same ID in the site. You may use an ID that is not already present in your site. Kindly please try using the ID that is not already stored in the wp_post tables.

    Reply
  10. Robert Rijnders

    October 12, 2018

    Hi,
    If I want to import products with cross (or up) sell ID’s, I’m forced to stick to predefined/set ID’s. I.e. if product with ID 1 has product with ID 2 as cross sell and vice versa, these exact ID’s need to be set/present in the wp_post (and wp_postmeta) tables. How would I ensure this to be imported correctly? I have made sure to start with ID’s (and corresponding cross sell ID’s) that are not yet in wp_posts (starting at 20000), but that doesn’t work, as I get the same error as described above, because each product apparently gets a unique ID in the wp_posts table. So, if I have – say – 300 post in there, the first 300 product records won’t be imported…
    I’m probably missing something, so any help would be appreciated.
    Thanks.

    Reply

Got any query? Please leave a comment or reach out to our support

Cancel reply

Your email address will not be published. Required fields are marked *

We develop awesome WordPress plugins & WooCommerce extensions to help build successful online businesses.

© 2023 WebToffee. All rights reserved.

Our plugins

  • GDPR Cookie Consent
  • PDF Invoices & Packings Slips
  • Product Import Export Plugin
  • User & Customer Import Export
  • Import Export Suite
  • Sequential Order Numbers
  • Smart Coupons for WooCommerce
  • URL Coupons for WooCommerce
  • PayPal Express Checkout
  • Stripe Payment Gateway
  • Subscriptions for Woocommerce
  • Product Catalog Sync for Facebook
  • PrintNode for PDF Invoices
  • Order, coupon, subscriptions for WooCommerce
  • WordPress Backup and Migration
View more +

Get Started

  • Plugins
  • Testimonials
  • Affiliates
  • We're hiring

Help & Support

  • Documentation
  • Documentation (Basic)
  • FAQ
  • Support

Company

  • Terms & Conditions
  • Privacy Policy
  • Refund policy
  • Support policy
  • License Activation

© 2023 WebToffee. All rights reserved.

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies. However you may visit Cookie Settings to provide a controlled consent.
Cookie settingsACCEPT
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of the basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website, to store user preferences and provide you with content and advertisements that are relevant. Such cookies will be stored on your browser but only upon procuring consent.

You will also have the option to opt-out of these cookies should you want to. But opting out of some of these cookies may have an effect on your browsing experience as per the descriptions elucidated against the respective categories below.

Necessary
Always Enabled
The cookies defined under this category are absolutely essential for the website to function. Hence they are loaded by default irrespective if user consent.
CookieDescription
__cfruidCloudflare sets this cookie to identify trusted web traffic.
__stripe_midStripe sets this cookie cookie to process payments.
__stripe_sidStripe sets this cookie cookie to process payments.
cookielawinfo-checkbox-advertisementSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .
cookielawinfo-checkbox-analyticsSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Analytics" category .
cookielawinfo-checkbox-necessarySet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Necessary" category .
cookielawinfo-checkbox-preferencesThis cookie is set by the GDPR Cookie Consent plugin to check if the user has given consent to use cookies under the "Preferences" category.
CookieLawInfoConsentRecords the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie.
PHPSESSIDThis cookie is native to PHP applications. The cookie is used to store and identify a users' unique session ID for the purpose of managing user sessions on the website. The cookie is a session cookie and is deleted when all the browser windows are closed.
viewed_cookie_policyThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not a user has consented to the use of cookies. It does not store any personal data.
Analytics
Analytics cookies help us understand how our visitors interact with the website. It helps us understand the number of visitors, where the visitors are coming from, and the pages they navigate. The cookies collect this data and are reported anonymously.
CookieDescription
_gaThis cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assigns a randomly generated number to identify unique visitors.
_ga_BQH8MSKD4MThis cookie is installed by Google Analytics.
_gat_gtagIdentification code of website for tracking visits.
_gidThis cookie is installed by Google Analytics. The cookie is used to store information on how visitors use a website and helps in creating an analytics report of how the website is doing. The data collected including the number visitors, the source where they have come from, and the pages visited in an anonymous form.
_hjAbsoluteSessionInProgressHotjar sets this cookie to detect the first pageview session of a user. This is a True/False flag set by the cookie.
_hjFirstSeenHotjar sets this cookie to identify a new user’s first session. It stores a true/false value, indicating whether it was the first time Hotjar saw this user.
_hjidHotjar cookie. This cookie is set when the customer first lands on a page with the Hotjar script. It is used to persist the random user ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID.
_hjIncludedInPageviewSampleHotjar sets this cookie to know whether a user is included in the data sampling defined by the site's pageview limit.
_hjIncludedInSampleThis cookie is set to let Hotjar know whether that visitor is included in the sample which is used to generate heatmaps, funnels, recordings, etc.
_hjIncludedInSessionSampleHotjar sets this cookie to know whether a user is included in the data sampling defined by the site's daily session limit.
_hjTLDTestTo determine the most generic cookie path that has to be used instead of the page hostname, Hotjar sets the _hjTLDTest cookie to store different URL substring alternatives until it fails.
CONSENTYouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.
has_recent_activityThis cookie is used to signal to the code repository website if the user has browsed other website resources during the current session.
tk_aiGathers information for our own first-party analytics tool about how our services are used. A collection of internal metrics for user activity and is used to improve user experience.
tk_lrThis cookie is set by the JetPack plugin on sites using WooCommerce. This is a referral cookie used for analyzing referrer behavior for Jetpack.
tk_orThis cookie is set by the JetPack plugin on sites using WooCommerce. This is a referral cookie used for analyzing referrer behavior for Jetpack.
tk_qsGathers information for our own first-party analytics tool about how our services are used. A collection of internal metrics for user activity and is used to improve user experience.
tk_r3dThe cookie is installed by JetPack. Used for the internal metrics for user activities to improve user experience.
Advertisement
Advertisement cookies help us provide our visitors with relevant ads and marketing campaigns.
CookieDescription
_fbpThis cookie is set by Facebook to deliver advertisements when they are on Facebook or on a digital platform powered by Facebook advertising after visiting this website.
frThe cookie is set by Facebook to show relevant advertisements to the users and measure and improve the advertisements. The cookie also tracks the behavior of the user across the web on sites that have Facebook Pixel or Facebook social plugin.
VISITOR_INFO1_LIVEA cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.
YSCYSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.
yt-remote-connected-devicesYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
yt-remote-device-idYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
Preferences
Preference cookies are used to store user preferences to provide them with content that is customized accordingly. This includes the language of the website or the location of the visitor.
CookieDescription
_gh_sessThis cookie is used to preserve users' states across page requests.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
CookieDurationDescription
_hjSession_137657130 minutesNo description
_hjSessionUser_13765711 yearNo description
_octo1 yearNo description available.
_zendesk_authenticatedpastNo description
_zendesk_sessionsessionNo description available.
_zendesk_shared_sessionsessionNo description available.
edd_wp_session12 hoursNo description available.
logged_in1 yearNo description available.
m2 yearsNo description available.
Save & Accept