protected function checkListRef( $prodId, $domain, array $refMap )
	{
		if( empty( $refMap ) ) {
			return;
		}

		$context = $this->getContext();
		$productManager = \Aimeos\MShop::create( $context, 'product' );
		$search = $productManager->createSearch( true );

		$expr = [$search->getConditions()];
		$expr[] = $search->compare( '==', 'product.id', $prodId );

		foreach( $refMap as $listType => $refIds )
		{
			foreach( $refIds as $refId )
			{
				$cmpfunc = $search->createFunction( 'product:has', [$domain, $listType, (string) $refId] );
				$expr[] = $search->compare( '!=', $cmpfunc, null );
			}
		}

		$search->setConditions( $search->combine( '&&', $expr ) );

		if( count( $productManager->searchItems( $search, [] ) ) === 0 )
		{
			$msg = $context->getI18n()->dt( 'controller/frontend', 'Invalid "%1$s" references for product with ID %2$s' );
			throw new \Aimeos\Controller\Frontend\Basket\Exception( sprintf( $msg, $domain, json_encode( $prodId ) ) );
		}
	}