طراحی کامل سایت فروشگاهی با هوش مصنوعی فقط ۱۰ میلیون تومان فرصت سفارش تا پایان این ماه طراحی کامل سایت فروشگاهی با هوش مصنوعی فقط ۱۰ میلیون تومان فرصت سفارش تا پایان این ماه
رفع خطای shippingDetails در Rank Math

رفع خطای اسکیما shippingDetails و hasMerchantReturnPolicy محصولات ووکامرس در سرچ کنسول

یکی از خطاهای رایج در بخش Merchant listings یا Rich Results در Google Search Console،
اخطارهای مربوط به فیلدهای اختیاری Schema مانند shippingDetails و hasMerchantReturnPolicy است.
اگر از افزونه Rank Math برای سئوی سایت ووکامرس خود استفاده می‌کنید، احتمالاً این خطاها را در صفحه محصول دیده‌اید.


🧩 علت خطا چیست؟

گوگل از شما انتظار دارد در داده‌های ساختاریافته محصول (Product Schema) اطلاعات تکمیلی درباره شرایط ارسال و مرجوعی کالا را درج کنید.
Rank Math به‌صورت پیش‌فرض این بخش‌ها را در JSON-LD اضافه نمی‌کند، اما می‌توان با چند خط کد ساده در فایل functions.php چایلد قالب این موارد را افزود.


⚙️ کد رفع خطای shippingDetails و hasMerchantReturnPolicy

کافی است قطعه کد زیر را در functions.php قالب فرزند خود (Child Theme) قرار دهید:

<?php
add_filter( 'rank_math/snippet/rich_snippet_product_entity', function( $entity ) {

	if ( ! function_exists('wc_get_product') || ! is_product() ) return $entity;

	$product = wc_get_product( get_the_ID() );
	if ( ! $product ) return $entity;

	$store_currency = get_woocommerce_currency();
	$schema_currency = ( $store_currency === 'IRT' ) ? 'IRR' : $store_currency;

	$entity['offers']['shippingDetails'] = array(
		'@type' => 'OfferShippingDetails',
		'shippingRate' => array(
			'@type' => 'MonetaryAmount',
			'value' => '0',
			'currency' => $schema_currency
		),
		'deliveryTime' => array(
			'@type' => 'ShippingDeliveryTime',
			'handlingTime' => array(
				'@type' => 'QuantitativeValue',
				'minValue' => '0',
				'maxValue' => '1',
				'unitCode' => 'DAY'
			),
			'transitTime' => array(
				'@type' => 'QuantitativeValue',
				'minValue' => '2',
				'maxValue' => '4',
				'unitCode' => 'DAY'
			)
		),
		'shippingDestination' => array(
			'@type' => 'DefinedRegion',
			'addressCountry' => 'IR'
		)
	);

	$entity['offers']['hasMerchantReturnPolicy'] = array(
		'@type' => 'MerchantReturnPolicy',
		'applicableCountry' => 'IR',
		'returnPolicyCategory' => 'https://schema.org/MerchantReturnFiniteReturnWindow',
		'merchantReturnDays' => 7,
		'returnMethod' => 'https://schema.org/ReturnByMail',
		'returnFees' => 'https://schema.org/FreeReturn'
	);

	return $entity;
});

با این کار، دو فیلد اختیاری به اسکیما محصول اضافه می‌شوند و در تست Rich Results یا سرچ کنسول،
دیگر خبری از خطاهای Missing field shippingDetails یا hasMerchantReturnPolicy نخواهد بود.


💡 نکته درباره خطای Invalid ISO 4217 currency code

اگر واحد پول سایت شما تومان (IRT) باشد، گوگل آن را معتبر نمی‌داند.
باید در اسکیما از کد رسمی IRR (ریال) استفاده کنید.
در مثال بالا این موضوع با یک شرط خودکار حل شده است؛ یعنی اگر ووکامرس از IRT استفاده کند، در اسکیما به IRR تغییر می‌یابد.


🎯 نتیجه نهایی

  • اسکیما محصول شما کامل‌تر و سازگارتر با استانداردهای Google Merchant می‌شود.
  • احتمال نمایش محصول در نتایج غنی (Rich Results) افزایش می‌یابد.
  • ارورهای Search Console برای همیشه برطرف می‌شوند.

📚 جمع‌بندی

اگر سایت فروشگاهی دارید و با Rank Math کار می‌کنید، افزودن این دو فیلد کوچک می‌تواند به بهبود اعتبار اسکیما و در نتیجه رتبه بهتر محصولات در نتایج گوگل کمک کند. اگر شما هم میخواین رتبه برتر گوگل بشین به صفحه سئو در مشهد وبینیو سر بزنید.
تیم وبینیو همیشه سعی دارد جدیدترین راهکارهای فنی سئو و وردپرس را به زبان ساده و کاربردی منتشر کند.

نویسنده این مطلب
اگر مفید بود به اشتراک بذار 😉
نظرات

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

طراحی سایت در مشهد

طراحی سایت حرفه‌ای و اختصاصی، دقیقاً متناسب با هدف کسب‌وکار شما در مشهد.

سئو در مشهد

رتبه اول گوگل و جذب مشتری واقعی با سئو تخصصی و اصولی.