private function getFindAvailableByCountryAndWeightQuery()
    {
        if (null === $this->findAvailableByCountryAndWeightQuery) {
            $qb = $this->getCollectionQueryBuilder();

            $this->findAvailableByCountryAndWeightQuery = $qb
                ->join('o.prices', 'p')
                ->join('p.zone', 'z')
                ->andWhere($qb->expr()->isMemberOf(':country', 'z.countries'))
                ->andWhere($qb->expr()->gte('p.weight', ':weight'))
                ->andWhere($qb->expr()->eq('o.enabled', ':enabled'))
                ->andWhere($qb->expr()->eq('o.available', ':available'))
                ->addOrderBy('o.position', 'ASC')
                ->getQuery();
        }

        return $this->findAvailableByCountryAndWeightQuery;
    }