Integration of products attributes with the Magento connector

Registered by Guewen Baconnier @ Camptocamp on 2013-08-20

Summary:

We'll use the product_custom_attributes module. It will need some refactoring to give less weight to the groups (they will just become an option of the product.location).

To explain a bit how we'll synchronize them, I'll start by summarizing the different types of attributes in Magento:

*Magento system attributes*: they are part of the definition of the product *for* Magento and are not custom attributes. In that category, we have for instance the visibility or the tax class.

*Specification attributes*: they defines how and what is the product. That could be a color or a size.

*Marketing attributes*: the fields added on Magento to define how the products should be sold on the Magento platform (or on the connected Marketplaces).

The attributes should not be symmetric to the Magento attributes. Rather, they should be an excerpt with only the specifications attributes.

The *Magento system attributes* are hard-defined on the magento.product.product model, because they are always there in Magento. They are also only related to Magento and not to the product itself.

The *Marketing attributes* won't be synchronized with OpenERP. We consider that the marketing things should still be configured on Magento, firstly because they are only related to their magento platform, they are not part of the specifications of a product, but rather defines how *this product* is displayed / sold on *this magento*.

The *Specification attributes* are essentially what we want to synchronize and share with OpenERP and the other backends. They are stored on `product.product` or `product.variant`. The idea is that a color or a size is anyway the same for all backends because that's a characteristic of the product.

We'll have *OpenERP attribute sets* and *OpenERP attributes*, part of the product_custom_attributes modules and *Magento attribute sets* and *Magento attributes*, part of the Magento Connector. The key of this spec is to define the binding between them.

Note: an *OpenERP attribute set* or an *OpenERP attribute* may be bound with several *Magento attribute set* or several *Magento attributes* if we have several backends.

Features:

 - Add the *Magento system attributes* on `magento.product.product` (hard-coded)
 - Import magento sets in a magento.set model, this is a binding but not an _inherits
 - Do not import magento groups, we won't use them
 - Import *Magento attributes* in a magento.attribute model, this is a binding but not an _inherits
 - Generates the *OpenERP attributes* from the *Magento attributes* (with a wizard)
 - Be able to link the *OpenERP* attributes (or set) with the *Magento Attributes*
 - When attributes are linked, the options are imported in the *OpenERP Attributes Options* by a job.
 - When a new option is created on a *OpenERP Attribute* and used on a product exported to a Magento backend, the option is created on Magento if not yet existing

Blueprint information

Status:
Started
Approver:
None
Priority:
Undefined
Drafter:
Guewen Baconnier @ Camptocamp
Direction:
Needs approval
Assignee:
David BEAL (ak)
Definition:
Approved
Series goal:
None
Implementation:
Started
Milestone target:
None
Started by
Guewen Baconnier @ Camptocamp on 2013-10-07

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.