Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gestion des produits gratuits sans prix spécifié (unpriced items) #51

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

astranchet
Copy link
Contributor

On construit des Supply de type UnpricedItem de la même manière que les Supply qui ont des prix, et on leur ajoute la liste des pays contenu dans le Market du ProductSupply.

Note : les SupplyDetail peuvent être strictement identique, on les merge donc.

(désolé, mauvaise manip, j'ai fermé la PR #48)

@julbouln
Copy link
Member

J'ai un doute pour ce PR, il faut que je regarde de plus près

Copy link
Contributor Author

@astranchet astranchet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai un doute pour ce PR, il faut que je regarde de plus près

Pas de soucis, je me suis permis de commenter la PR pour faciliter la relecture.


# add territories if missing
if self.product_supplies
self.product_supplies.each do |ps|
ps.supply_details.each do |sd|

availability_date=sd.availability_date
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On remonte d'un niveau le calcul de la date de dispo, car elle va nous servir pour les prix et les "non prix"

:suppliers => sd.suppliers,
:available => sd.available?,
:availability_date => availability_date,
:unpriced_item_type => sd.unpriced_item_type.human,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Les prix "unpriced" ont les mêmes informations qu'un prix normal, avec en plus du détail sur le type de unpriced (voir https://onix-codelists.io/codelist/57)

<Date>20150401</Date>
</MarketDate>
</MarketPublishingDetail>
<SupplyDetail>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On peut retrouver le même bloc <SupplyDetail> dupliqué X fois : autant de fois qu'il y a de pays dans Market/Territory (chez Hachette par exemple).

end
end
end

# filter on availability, date, type and territories because suppliers are always the same
unpriced_items.uniq! do |i|
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dans l'onix, on peut avoir des blocs <SupplyDetail> identique (car l'information à propos du territoire n'est pas dans le noeud). Si c'est le cas, on n'en garde qu'un.

@julbouln
Copy link
Member

julbouln commented Jan 4, 2017

OK merci, vous auriez un cas d'usage pour ces UnpricedItem ? De notre côté, il me semble que nous l'utilisons pour décrire les offres multi-format mais je ne vois pas d'autre utilisation.

@johanpoirier
Copy link
Contributor

vous auriez un cas d'usage pour ces UnpricedItem ?

Hachette s'en sert par exemple pour leurs livres gratuits. Ils ne mettent pas de prix à 0€ mais bien un supply avec un <UnpricedItemType>1</UnpricedItemType>.

Voilà un exemple : http://www.decitre.fr/ebooks/dear-you-les-bonus-de-la-serie-9782280301831_9782280301831_9.html

Cela répond-il à votre question ?

@julbouln
Copy link
Member

D'accord, alors dans l'idée d'abstraction de ce gem, ne serait t'il serait plus pertinent d'avoir un hash supply avec {:price=>0} plutôt que d'ajouter un :unpriced_item_type ? Sauf pour le Unpriced item type code 01, je dirais que cela fait partie d'un usage avancé et ne devrait pas apparaître dans la méthode d'abstraction Product#supplies

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants