Pregunta

necesito para importar una carga de clientes a una tercera empresa de correo electrónico fiesta, pero necesidad de importar sólo los que está suscrito a boletines de noticias. La importación en sí tiene que ser un archivo de datos del cliente que necesito para generar. Sé que podría cargar todos los clientes en una colección y iterar a través de ellos, sólo la inserción de los que están suscritos en el archivo de importación, pero ya que tenemos más de 90.000 clientes que preferiría simplemente cargar los que están suscritos a la colección. La importación en sí utiliza una API sino que tiene que tener el archivo de importación añade como un archivo adjunto (bien haciendo que, al igual que para la información incluida).

¿Alguna idea?

¿Fue útil?

Solución

Usted tiene que unirse a la colección EAV con la tabla periódica. Es alcanzable con el método joinTable de clase Mage_Eav_Model_Entity_Collection_Abstract. El parámetro sucesivamente define la condición WHERE porque al parecer no se puede utilizar el método addAttributeToFilter aquí.

$collection = Mage::getModel('customer/customer')->getCollection();
$collection->addNameToSelect()
    ->joinTable('newsletter_subscriber', 'customer_id=entity_id', array('subscriber_status'), '{{table}}.subscriber_status=1');

Por favor, hágamelo saber si algo no está claro.

Otros consejos

Puede probar una cosa, esta es la forma que tenía hacer tal cosa anteriormente.

Consulta contra la newsletter_subscriber mesa y conseguir customer_id, por lo que tiene ID de cliente a continuación datos de los clientes de carga con este id.

Esta es una manera fácil, bastante performant para hacerlo.

$newsletterSubscribers = Mage::getResourceModel('newsletter/subscriber_collection')
        ->addFieldToFilter('subscriber_status', array ('eq' => 1)); // 1 is subscribed

A continuación, puede repetir por los abonados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top