PayPal Payflow Pro not allowing user to buy product when I enable (and try to use) PayPal Payments Advanced and Payflow Link sub-module of Paypal module and submit the product form I get this error:

messageEntityMetadataWrapperException: Unknown data property 
commerce_customer_address. in EntityStructureWrapper-
&gt;getPropertyInfo() (line 335 of 
/site/sites/all/modules/entity/includes/entity.wrapper.inc).


When I remove Payflow Link module I do not get this error. 

The problem occurs when I remove the default 'address' field from the Customer Profiles > Billing Information and instead just use my own fields...but I don't want to use that default address field because it contains items I don't want.

Anyone know how I can fix this so i can use Payflow?

It appears to be a problem in the Entity module but only gives me an error when trying to use Payflow Pro to purchase a product.

This is what that line of the entity module file has:

  public function getPropertyInfo($name = NULL) {
    $this-&gt;spotInfo();
    if (!isset($name)) {
      return $this-&gt;propertyInfo['properties'];
    }
    if (!isset($this-&gt;propertyInfo['properties'][$name])) {
      throw new EntityMetadataWrapperException('Unknown data property


' . check_plain($name) . '.');
        }
        return $this->propertyInfo['properties'][$name] + $this-


  info['property defaults'] + $this->propertyInfoDefaults;
        }
No one but me seems to have encountered this problem. But in the oft-chance someone ever does encounter it, here's why. 

This error is occurring because I had removed the default address field from the customer profile > billing information in my drupal commerce store in favor of custom fields. But you apparently HAVE to use the default dynamic address field, or at least I don't know a way around it. 

Since most of those fields are valuable anyway, and I just wanted them really in a different order, I found it valuable to KEEP that field, add some custom fields as well, and then just re-order them using hook_form_alter() and the '#weight' property of each form element. Additionally using this function you may also hide any of the fields in the default address field (it contains multiple fields) that you don't want.