code: 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;
      }
docs: Returns the "find available by country and weight" query.
  
  @return \Doctrine\ORM\Query