{"id":380580,"date":"2026-10-12T07:02:18","date_gmt":"2026-10-12T07:02:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/canin-sync\/"},"modified":"2026-10-12T07:02:10","modified_gmt":"2026-10-12T07:02:10","slug":"canin-sync","status":"publish","type":"plugin","link":"https:\/\/kn.wordpress.org\/plugins\/canin-sync\/","author":23576207,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.1.1","stable_tag":"2.1.1","tested":"7.1.3","requires":"5.6","requires_php":"7.2","requires_plugins":null,"header_name":"Canin Sync","header_author":"\u06a9\u0627\u0646\u06cc\u0646","header_description":"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0648\u0648\u06a9\u0627\u0645\u0631\u0633 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0647 \u06a9\u0627\u0646\u06cc\u0646 \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0645\u062d\u0635\u0648\u0644\u0627\u062a\u060c \u0642\u06cc\u0645\u062a \u0648 \u0645\u0648\u062c\u0648\u062f\u06cc \u0634\u0645\u0627 \u0647\u0645\u06cc\u0634\u0647 \u0628\u0647\u200c\u0631\u0648\u0632 \u062f\u0631 \u06a9\u0627\u0646\u06cc\u0646 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f. \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a \u06cc\u06a9 \u0628\u0627\u0631 \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u062f\u061b \u0628\u0627\u0642\u06cc \u06a9\u0627\u0631\u0647\u0627 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.","assets_banners_color":"9bc7fb","last_updated":"2026-10-12 07:02:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/canin.ir\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.1.1":{"tag":"2.1.1","author":"canin","date":"2026-10-12 07:02:10","revision":3740656}},"upgrade_notice":{"2.1.1":"<p>Updates now come through WordPress. Your connection to Canin is kept.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3740688,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3740688,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3740688,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3740688,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.1.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[6601,8416,12448,1558,286],"plugin_category":[45],"plugin_contributors":[285982],"plugin_business_model":[],"class_list":["post-380580","plugin","type-plugin","status-publish","hentry","plugin_tags-inventory","plugin_tags-price-comparison","plugin_tags-stock","plugin_tags-sync","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-canin","plugin_committers-canin"],"banners":{"banner":"https:\/\/ps.w.org\/canin-sync\/assets\/banner-772x250.png?rev=3740688","banner_2x":"https:\/\/ps.w.org\/canin-sync\/assets\/banner-1544x500.png?rev=3740688","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/canin-sync\/assets\/icon-128x128.png?rev=3740688","icon_2x":"https:\/\/ps.w.org\/canin-sync\/assets\/icon-256x256.png?rev=3740688","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Canin (canin.ir) shows the prices of dental equipment from many shops side by side. This plugin connects your\nWooCommerce shop to Canin: your product list is made available to Canin's team, and after review and approval your\nproducts are shown on Canin. From then on, every change of price or stock is sent to Canin automatically, so a\nproduct that goes out of stock in your shop is also shown as out of stock on Canin.<\/p>\n\n<p>Nothing is sent to Canin until you connect the shop with a connection code from the Canin vendor panel.<\/p>\n\n<h4>What is shared with Canin<\/h4>\n\n<p>Only information about the products published in your shop, which any visitor of your site can already see: name,\nprice (and the price before discount), stock status, images, description, attributes, brand and categories.<\/p>\n\n<h4>What is not sent<\/h4>\n\n<p>Orders, customers, addresses, phone numbers, email addresses, sales figures or any other personal data. Canin has no\naccess to your WordPress dashboard, and this plugin makes no changes to your products or your shop settings.<\/p>\n\n<h4>Does it slow down my site?<\/h4>\n\n<p>No. Saving a product or placing an order never waits for Canin's server. Changes are written to an internal queue\nand sent later, in the background. If Canin's server is slow or unavailable, your shop keeps working at its usual\nspeed.<\/p>\n\n<p>The plugin's screens are in Persian, the language of the shops it serves.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to Canin (https:\/\/canin.ir), a price comparison service for dental equipment. The connection\nis the whole purpose of the plugin, and it starts only after you enter a connection code from the Canin vendor panel.<\/p>\n\n<p>What is sent to Canin, and when:<\/p>\n\n<ul>\n<li>When you connect, once: the connection code you entered, your site address, the plugin version and the price unit\nyou chose (toman or rial).<\/li>\n<li>When a product is created, saved, published or unpublished, when its stock changes (for example after an order),\nand in a full pass every six hours: the product's ID, address, price and stock status, together with your site\naddress, the plugin version, the price unit, and the address and private key that Canin uses to read your product\nlist.<\/li>\n<li>Canin then reads the list of your published products from your site, using that private key: ID, SKU, name,\naddress, product type, price and price before discount, stock status, brand, categories, short and full\ndescription, attributes, image addresses and the date of the last change. Without the key, that address returns\nnothing.<\/li>\n<\/ul>\n\n<p>Canin's terms of use: https:\/\/canin.ir\/terms.php\nCanin's privacy policy: https:\/\/canin.ir\/privacy.php<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin from \"Plugins \u2192 Add New Plugin\" (search for \"Canin Sync\"), or upload the zip file you downloaded\nfrom the \"Connect your shop\" (\u0627\u062a\u0635\u0627\u0644 \u0641\u0631\u0648\u0634\u06af\u0627\u0647) section of the Canin vendor panel, then activate it.<\/li>\n<li>Open the \"Canin\" (\u06a9\u0627\u0646\u06cc\u0646) menu in your WordPress dashboard.<\/li>\n<li>Choose your shop's price unit (toman or rial).<\/li>\n<li>In the Canin vendor panel, click \"Create connection code\" (\u0633\u0627\u062e\u062a \u06a9\u062f \u0627\u062a\u0635\u0627\u0644), enter the code on the plugin page\nand click \"Connect to Canin\" (\u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u06a9\u0627\u0646\u06cc\u0646).<\/li>\n<\/ol>\n\n<p>From then on, your products are shown after review by Canin's team, and every change of price or stock reaches Canin\nautomatically.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20happens%20if%20i%20choose%20the%20wrong%20price%20unit%3F\"><h3>What happens if I choose the wrong price unit?<\/h3><\/dt>\n<dd><p>Prices would be shown ten times too high or ten times too low. Canin checks the price unit again with every update,\nand if it differs from the unit registered when you connected, that update is refused so that no wrong price is\npublished. To change the unit, connect again.<\/p><\/dd>\n<dt id=\"how%20are%20products%20with%20several%20models%20or%20sizes%20shown%3F\"><h3>How are products with several models or sizes shown?<\/h3><\/dt>\n<dd><p>For a variable product, the lowest price among the models in stock is sent, and Canin shows \"from\" next to it. A\nmodel that is out of stock does not set the price, so the price shown on Canin is a price the customer can really\nbuy at.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20a%20new%20product%20i%20publish%3F\"><h3>What happens to a new product I publish?<\/h3><\/dt>\n<dd><p>It is added to Canin after review by Canin's team; you do not need to do anything. Until then, the plugin page\ncounts it among the products \"not yet listed on Canin\" (\u0647\u0646\u0648\u0632 \u062f\u0631 \u06a9\u0627\u0646\u06cc\u0646 \u062b\u0628\u062a \u0646\u0634\u062f\u0647 \u0627\u0633\u062a). This is normal and not an error.<\/p><\/dd>\n<dt id=\"my%20security%20plugin%20blocks%20wp-json.%20do%20i%20need%20to%20change%20it%3F\"><h3>My security plugin blocks wp-json. Do I need to change it?<\/h3><\/dt>\n<dd><p>No. Since version 2.1, if wp-json is blocked, Canin reads your product list from your site's normal address, and the\nautomatic sending also uses other routes. Without your shop's private key, these addresses return nothing.<\/p><\/dd>\n<dt id=\"my%20shop%20has%20few%20visitors.%20does%20the%20automatic%20sending%20still%20work%3F\"><h3>My shop has few visitors. Does the automatic sending still work?<\/h3><\/dt>\n<dd><p>Yes. Automatic sending uses the WordPress scheduler (WP-Cron), which runs when pages of your site are visited; if the\nscheduler does not run on your site, the plugin sends through other routes by itself. For a shop that goes hours\nwithout visitors, it is better to replace WP-Cron with a real scheduler on the server:<\/p>\n\n<pre><code>define('DISABLE_WP_CRON', true);   \/\/ in wp-config.php\n\n*\/5 * * * * wget -q -O - https:\/\/YOUR-SITE\/wp-cron.php?doing_wp_cron\n<\/code><\/pre>\n\n<p>Either way nothing is lost; it is only sent later. The status of the automatic sending is shown on the Canin page in\nyour WordPress dashboard.<\/p><\/dd>\n<dt id=\"where%20is%20the%20plugin%20page%3F\"><h3>Where is the plugin page?<\/h3><\/dt>\n<dd><p>In the \"Canin\" (\u06a9\u0627\u0646\u06cc\u0646) menu of your WordPress dashboard. Before version 2.1 the page was under \"Settings\"; the old\naddress still works and leads to the new page.<\/p><\/dd>\n<dt id=\"how%20do%20i%20update%20the%20plugin%3F\"><h3>How do I update the plugin?<\/h3><\/dt>\n<dd><p>Like any other plugin, from the Plugins screen of WordPress. Your connection is kept when you update. The plugin\nnever downloads or installs anything by itself.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20delete%20the%20plugin%3F\"><h3>What happens if I delete the plugin?<\/h3><\/dt>\n<dd><p>All of the plugin's settings and data are removed from your site. To end the connection completely, also click\n\"Cancel connection\" (\u0644\u063a\u0648 \u0627\u062a\u0635\u0627\u0644) in the Canin vendor panel.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>One version for both the Canin vendor panel and the WordPress.org plugin directory. Updates now come through the\nnormal WordPress update screen.<\/li>\n<li>The plugin page no longer points to the Canin vendor panel for new versions.<\/li>\n<li>The plugin guide is now in English.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>If wp-json is blocked, the product list is read from the site's normal address.<\/li>\n<li>Automatic sending uses three routes and keeps working when wp-json is blocked or WP-Cron does not run.<\/li>\n<li>The six-hourly full sync runs even without WP-Cron.<\/li>\n<li>A separate \"Canin\" menu in the WordPress dashboard.<\/li>\n<li>Rewritten texts and guide.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>The full product list (name, images, description, attributes and categories) is made available to Canin, so new\nproducts are added after review by Canin's team.<\/li>\n<\/ul>\n\n<h4>1.x<\/h4>\n\n<ul>\n<li>Automatic sending of product prices and stock.<\/li>\n<\/ul>","raw_excerpt":"Connects your WooCommerce shop to Canin, the dental equipment price comparison site, so your products, prices and stock stay up to date there.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/380580","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=380580"}],"author":[{"embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/canin"}],"wp:attachment":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=380580"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=380580"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=380580"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=380580"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=380580"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=380580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}